Назад | Перейти на главную страницу

Маршрутизация через туннель IPSec

У меня есть два сервера, устанавливающих IPSec VPN как тип настройки site-to-side. Я использую StrongSwan на Ubuntu 16.04 для обоих серверов, и сам VPN работает. Что может быть немного особенным, так это то, что подсеть за каждым шлюзом просто виртуальная, как в случае, когда я создал виртуальный сетевой адаптер. eth0:0.

auto eth0
    iface eth0 inet static
    address <PublicIP-A>
    ... etc

auto eth0:0
    iface eth0:0 inet static
    address 192.168.6.1
    netmask 255.255.255.0
    broadcast 192.168.6.255

(Второй сервер имеет 192.168.6.0/24 network и PublicIP-B, где PublicIP-A и -B, естественно, заменяются реальными и рабочими IP-адресами.)

Причина создания виртуальной сети заключается в том, что я хочу подключиться к одному из серверов через туннель IPSec VPN и использовать этот туннель для передачи данных по SSH / FTP. Я обнаружил, что для подключения к серверу через SSH / FTP или ping мне нужна эта виртуальная сеть. (Обнаружено, что в более ранних тестах с конфигурацией VPN типа «сеть-сеть», которая работала; к сожалению, это изменилось с моей настройкой типа «сеть-сеть».) Подходит ли виртуальная сеть? Есть что-нибудь получше?

Мой /etc/ipsec.conf:

config setup
    # strictcrlpolicy=yes
    # uniqueids = no

conn %default
    ikelifetime=60m
    keylife=20m
    rekeymargin=3m
    keyingtries=1
    authby=secret
    keyexchange=ike

conn net-net
    right=<PublicIP-A>
    rightsubnet=192.168.6.0/24
    left=<PublicIP-B>
    leftsubnet=192.168.5.0/24
    auto=add

Когда я traceroute адрес виртуальной сети сервера B 192.168.5.1, он пытается пройти через Интернет вместо туннеля и застревает ... Итак, я попытался настроить маршруты с подобными подходами в различных комбинациях - но с очень ограниченным успехом:

ip route add 192.168.5.0/24 via 192.168.6.1 dev eth0 src PublicIP-A table 220

Я также попробовал некоторые настройки iptables, взятые из документации StrongSwan (https://www.strongswan.org/testing/testresults/ikev2/net2net-psk/), но не запустил.

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

Заранее спасибо!

ИЗМЕНИТЬ 2016-08-26

Думая о комментарии @ ecdsa, мне не нужна настройка site-to-site. Site-to-host в порядке.

traceroute вывод

traceroute to PublicIPServer-B (PublicIPServer-B), 30 hops max, 60 byte packets
 1  PublicIPServer-B (PublicIPServer-B)  1.467 ms  1.298 ms  1.229 ms

тогда как без туннеля всплывают некоторые другие шлюзы.

Это помогло перейти с сервера B на хост A - SSH работает - но другое направление не хочет работать. Позже реальная настройка будет осуществляться по принципу «сайт-хост», где за шлюзом B находится реальная сеть.

Взято отсюда https://www.strongswan.org/testing/testresults/ikev2/host2host-cert/, Я пытался добавить маршрут

ip route add PublicIPServer-B via PublicIPServer-B src PublicIPHost-A
// and
ip route add 192.168.5.0/24 via PublicIPServer-B src PublicIPHost-A

что приводит к RTNETLINK answers: Network is unreachable ошибки. Не уверен, что мне когда-нибудь понадобится прямая связь между хостами, но было бы неплохо на всякий случай. (Тем более что я не уверен на 100%, что ответы на traceroute отправляются через туннель)

Есть идеи, как достичь последнего бита?

ИЗМЕНИТЬ 2016-08-26 (2-й)

По-видимому, strongSwan настраивает маршруты в этом сценарии. traceroute-ing и ping-ing удаленная подсеть (как в IP-адресе удаленной подсети Server-B 192.168.5.1) работает.

Так что да, я думаю, что на данный момент это решено!

Приветствую @ecdsa