5

Я устанавливаю новый кластер на моем новом рабочем месте, и я все еще администрирую другой кластер на своем последнем рабочем месте. По сути, я "копирую" конфигурацию первого, чтобы настроить новый.

Теперь я дома, и я хотел бы использовать оба VPN-подключения одновременно, а не одно за другим, чтобы получить доступ к обоим кластерам одновременно. На мой взгляд, это невозможно, но, может быть, у кого-то есть идея?

Одно VPN-соединение использует OpenVPN, а второе - VPNCO-клиент CISCO. Или, возможно, можно поиграть с правилами маршрута, чтобы получить это? Я не очень опытный в сети.

Я пытаюсь использовать route -n чтобы попытаться переопределить правила для различных подинтерфейсов. Вот что я получаю, когда VPN не активен:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.1.0.1        0.0.0.0         UG    0      0        0 eth0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0

Теперь, если я включаю VPN Cisco (VPN1):

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         xxx.xxx.xxx.117 0.0.0.0         UG    0      0        0 cscotun0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
xxx.xxx.xxx.0   0.0.0.0         255.255.255.0   U     0      0        0 cscotun0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.yy.yy.22    10.1.0.1        255.255.255.255 UGH   0      0        0 eth0

Если я использую openVPN (VPN2):

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.1.0.1      0.0.0.0         UG    0      0        0 eth0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.1.0     192.168.2.17    255.255.255.0   UG    0      0        0 tun0
192.168.2.17    0.0.0.0         255.255.255.255 UH    0      0        0 tun0
zzz.zzz.zz.zz   10.1.0.1        255.255.255.255 UGH   0      0        0 eth0

А теперь, если я включу оба (сначала vpn2, а затем vpn1):

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         xxx.xxx.xxx.117 0.0.0.0         UG    0      0        0 cscotun0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
xxx.xxx.xxx.0   0.0.0.0         255.255.255.0   U     0      0        0 cscotun0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.yy.yy.22    10.1.0.1        255.255.255.255 UGH   0      0        0 eth0
192.168.2.17    0.0.0.0         255.255.255.255 UH    0      0        0 tun0

В идеале все запросы для xxx.xxx.xxx.0 должны идти так, как если бы активен только VPN1 (cscotun0), а все запросы для 192.168.2.0 должны проходить через 192.168.2.17 (tun0), а другие через eth0 ...

Я не привык к маршрутизации и был бы признателен за любую помощь.

РЕДАКТИРОВАТЬ: вдохновленный ответами, которые я пытаюсь поиграть с командой route чтобы попытаться правильно настроить мой конфиг.

чтобы быть более понятным, я отредактировал вышеупомянутые таблицы маршрутов, чтобы отразить результат команды route -n , который является более информативным. Я также изменил свой домашний маршрутизатор, чтобы у меня дома были 10.1.0.0 nm 255.255.255.0 ip-адресов.

Если я хорошо понимаю, когда активен только VPN2 (tun0), он использует шлюз defalut моего дома (10.1.0.1) и определяет несколько новых маршрутов, скажите мне, если я неправильно понимаю:

192.168.1.0   192.168.2.17 -> this says "everything for 192.162.1.0 network (vpn2 network), then pass through official gateway 192.168.2.17 "
192.168.2.17  0.0.0.0 -> this says "everything for host 192.168.2.17, goes to default gateway  (0.0.0.0) " , which is currently pointing to my home rooter"
zzz.zzz.zz.zz 10.1.0.1 -> this says "everything for zzz.zzz.zz.zz . pass through my home router (10.1.0.1)

Когда я включаю только VPN1, он переопределяет шлюз по умолчанию своим собственным (xxx.xxx.xxx.53), и все, что перенаправлено на это. Это также, почему я не вижу свою домашнюю сеть между прочим (если я прав).

Теперь я вижу, что, когда я включаю оба VPN, шлюз по умолчанию перенаправляется на шлюз VPN1 (xxx.xxx.xxx.53), и я спрашиваю: как я могу настроить правила, чтобы:

  • все для 198.162.1.0 проходит через 198.162.2.17
  • вещи за 198.162.2.17 проходят через 10.1.0.1
  • вещи для xxx.xxx.xxx.0 проходят через xxx.xxx.xxx.117
  • вещи за 10.1.0.0 переходят на 10.1.0.1

Я пытался поиграть с route add и route del но я более или менее пытаюсь сделать это методом проб и ошибок, и я бы лучше понял, что я должен делать, и если правила, которые я хочу применить прямо здесь, правильно или в принципе глупо ...

РЕДАКТИРОВАТЬ 2: Следуя предложению MariusMatutiae, я добавляю сюда результат ifconfig, когда обе VPN включены:

cscotun0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:xxx.xxx.xxx.117  P-t-P:xxx.xxx.xxx.117  Mask:255.255.255.0
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1380  Metric:1
          RX packets:21 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:4007 (4.0 KB)  TX bytes:3789 (3.7 KB)

eth0      Link encap:Ethernet  HWaddr 00:21:cc:6b:3e:ae  
          inet addr:10.1.0.226  Bcast:10.1.0.255  Mask:255.255.255.0
          inet6 addr: fe80::221:ccff:fe6b:3eae/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:28245 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29039 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:14287030 (14.2 MB)  TX bytes:5521200 (5.5 MB)
          Interrupt:20 Memory:f3a00000-f3a20000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:9928 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9928 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:4962141 (4.9 MB)  TX bytes:4962141 (4.9 MB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:192.168.2.18  P-t-P:192.168.2.17  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:719 errors:0 dropped:0 overruns:0 frame:0
          TX packets:764 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:103523 (103.5 KB)  TX bytes:56000 (56.0 KB)

РЕДАКТИРОВАТЬ 3:

описание того, что не работает: после того, как я включаю оба VPN, я не могу достичь VPN tun0; и если я пытаюсь ping что-то за пределами xxx.xxx.xxx.0, я получаю ping: sendmsg: Operation not permitted .

В идеале, я хотел бы получить доступ как к VPN (если DNS для сетей VNP не работает, я могу управлять им с прямым IP, не проблема), так и в идеале к локальному сетевому подключению тоже ...

К сожалению, мне не хватает специалиста по iptables, чтобы понять, как мне поступить.

заранее спасибо

3 ответа3

6

Конечно, вы можете использовать несколько VPN одновременно. Основная проблема в организации этого заключается в том, чтобы убедиться, что таблица маршрутизации верна, потому что все VPN будут пытаться изменить ее, не предполагая, что больше VPN делает то же самое.

Ваш сценарий очень прост, потому что вы в основном используете VPN для доступа к удаленным локальным сетям, а не для перенаправления всего вашего трафика. Последняя конфигурация потребовала бы более сложной настройки, но в вашем случае мы можем уйти с гораздо меньшим количеством работы.

Обязательным условием для этого является то, что все подсети разные: у вас дома и на двух ваших рабочих местах ».

Предположим, что вы уже договорились об этом, тогда вы должны убедиться, что ваш файл конфигурации клиента для OpenVPN не содержит следующий оператор

    redirect-gateway def1

и что файл конфигурации сервера не содержит следующую инструкцию:

   push "redirect-gateway def1 bypass-dhcp"

Поскольку вас интересует только работа с двумя VPN, это уже решает вашу проблему, потому что, даже если другая VPN захватит маршрут по умолчанию, в вашей таблице маршрутизации будет один маршрут по умолчанию, и все готово.

Однако Cisco VPN по умолчанию не получает маршрут по умолчанию. Так что с тобой должно быть все в порядке. Чтобы проверить, убедитесь, что выходные данные route -n содержат пару строк, как показано ниже:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.73.1    0.0.0.0         UG    0      0        0 eth0

где 192.168.73.1 - ваш домашний маршрутизатор по умолчанию (при необходимости измените его, если ваш маршрутизатор не 192.168.73.1).

Эта проблема была бы намного веселее, если бы вы хотели перенаправить весь трафик через обе VPN одновременно (да, это можно сделать).

Редактировать:

Вы также можете использовать OpenVPN на разных сетевых интерфейсах, если хотите. Например, вы можете вызвать виртуальный интерфейс на основе вашей сетевой карты следующим образом:

   ip link add link eth0 mac0 address 56:61:4f:7c:77:db type macvlan
   ip link set mac0 up
   dhclient mac0

а теперь проверьте IP-адрес виртуального интерфейса mac0 с помощью

   ip addr show

Затем в вашем конфигурационном файле клиента openvpn вы можете ввести инструкцию

   local IP_address_of_mac0

и когда вы подключаетесь к вашему серверу OpenVPN, соединение будет привязано только к интерфейсу mac0. Затем, чтобы получить доступ к удаленной локальной сети, вам нужно не забыть привязать все приложения к одному и тому же интерфейсу mac0 и к его IP-адресу. Например, чтобы получить доступ к ПК через ssh, вам нужно будет сказать:

  ssh -b IP_address_of_mac0 user@remote_LAN_pc

и так далее. Для пинга, вы должны использовать

   ping -i IP_address_of_mac0 remote_LAN_pc
1

Вполне возможно запустить несколько VPN одновременно.

Я вижу пару проблем с вашей настройкой -

В зависимости от того, что вы пытаетесь сделать, вы должны убедиться, что сервер VPN не публикует (или игнорирует или использует более низкую метрику для правильного) маршрут по умолчанию. В противном случае у вас есть VPN, пытающиеся маршрутизировать друг друга и ломаться. Конечно, это означает, что вы используете VPN для доступа только к определенным сетям / маршрутам.

Вторая проблема, которая может возникнуть (обратите внимание на дубликаты сетей 192.168.1.0 с маской сети 255.255.255.0), заключается в том, что обе сети, к которым вы пытаетесь подключиться, находятся на 192.168.1.x. Это проблема, поскольку ядро не знает, на какую вы ссылаетесь. Правильным решением является перенумерация одной из сетей, чтобы она находилась в другом сетевом блоке. (Могут быть ужасные, ужасные, ужасные хаки, которые вы можете делать с iptables и файлами hosts и другими приемами, чтобы эмулировать это в вашей системе, но это очень специализированный, хрупкий и не рекомендуемый).

Кстати, при создании таблиц маршрутов, как правило, лучше использовать переключатель «-n», чтобы они показывали IP-адреса, а не пытались разрешать имена компьютеров - имена компьютеров для нас ничего не значат !!!

0

А как насчет простой настройки виртуальной машины W7 в VirtualBox и использования второй VPN через нее, а затем использования двунаправленной общей папки между хостом и гостем? Простота. :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .