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

Docker и StrongSwan: целевой хост недоступен

У меня проблемы с обменом данными между контейнерами с помощью туннелей IPsec. Вот моя установка:

У меня Docker установлен на нескольких хостах Ubuntu 14.04, и на каждом я запускаю разные контейнеры. Мне нужны некоторые из этих контейнеров, чтобы иметь возможность общаться с контейнерами на разных серверах.

Я только что перешел из конфигурации OpenVPN в конфигурацию StrongSwan. Вот файлы конфигурации с двух моих узлов.

ipsec.conf на node4

config setup

conn %default
        ikelifetime=60m
        keylife=20m
        rekeymargin=3m
        keyingtries=%forever
        keyexchange=ikev2
        closeaction=restart
        dpdaction=restart
        authby=secret
        leftfirewall=yes
        lefthostaccess=yes
        auto=start
        left=node4.publicdomain.com
        leftsourceip=192.168.255.4

conn me
        leftsourceip=
        leftsubnet=192.168.255.4/32
        right=%any
        rightsourceip=%config

ipsec.conf на node5

config setup

conn %default
        ikelifetime=60m
        keylife=20m
        rekeymargin=3m
        keyingtries=%forever
        keyexchange=ikev2
        closeaction=restart
        dpdaction=restart
        authby=secret
        leftfirewall=yes
        lefthostaccess=yes
        auto=start
        left=node5.publicdomain.com
        leftsourceip=192.168.255.5

conn node1
        right=node1.publicdomain.com
        rightsubnet=192.168.255.1/32

conn node3
        right=node3.publicdomain.com
        rightsubnet=192.168.255.3/32

conn node4
        right=node4.publicdomain.com
        rightsubnet=192.168.255.4/32

conn me
        leftsourceip=
        leftsubnet=192.168.255.5/32
        right=%any
        rightsourceip=%config

На хосте node5 я могу успешно пропинговать все настроенные узлы. Однако, если я вхожу в контейнер докеров на node5 и пытаюсь выполнить ping, вот результат.

root@b0cf0114b815:/# ping 192.168.255.5
PING 192.168.255.5 (192.168.255.5): 56 data bytes
64 bytes from 192.168.255.5: icmp_seq=0 ttl=64 time=0.074 ms
64 bytes from 192.168.255.5: icmp_seq=1 ttl=64 time=0.059 ms
64 bytes from 192.168.255.5: icmp_seq=2 ttl=64 time=0.063 ms
^C--- 192.168.255.5 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.059/0.065/0.074/0.000 ms
root@b0cf0114b815:/# ping 192.168.255.4
PING 192.168.255.4 (192.168.255.4): 56 data bytes
92 bytes from [node5 PUBLIC IP]: Destination Host Unreachable
92 bytes from [node5 PUBLIC IP]: Destination Host Unreachable
92 bytes from [node5 PUBLIC IP]: Destination Host Unreachable

Я могу добраться до адреса node5, но не до адреса node4. Кто-нибудь знает, как я могу перенастроить это, чтобы все мои контейнеры на node5 могли связываться с node4 и другими узлами, которые я настроил?

Спасибо!

К сожалению разобраться не смог.

В качестве альтернативы я использовал tinc: http://www.tinc-vpn.org/

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

Все равно, спасибо за помощь!

Вы поняли это? Я думаю, что проблема может быть в ваших подсетях: 192.168.255.1/32 означает 192.168.255.1 - 192.168.255.6, поэтому он конфликтует с 192.168.255.3/32 или 192.168.255.4/32 или 192.168.255.5/32

они не должны перекрываться, поэтому вы можете использовать что-то вроде

192.168.255.1/32

192.168.255.8/32

192.168.255.16/32

192.168.255.24/32

вместо