Невозможно выполнить ping хоста Docker, подключенного к хосту через VPN

Невозможно выполнить ping хоста Docker, подключенного к хосту через VPN

У меня два хоста: CentOS 7, который является хостом Docker и сервером OpenVPN, и Ubuntu в качестве клиента. Я использую OpenVPN для подключения клиента к хосту, но проблема в том, что сервер VPN не отправляет ответ, т. е. не отправляет пакеты обратно. Клиент находится за NAT. Я проверил брандмауэр с обеих сторон — все типы трафика разрешены. Что еще мне следует проверить? MTU точно не является причиной. В качестве маршрутизатора мы используем Mikrotik.

Конфигурация клиента:

remote <Server IP>
dev tun
rport 18999
lport 18999
proto udp
ifconfig IP1 IP2
secret /etc/openvpn/static.key 1
persist-tun
persist-key
keepalive 10 60
ping-timer-rem
verb 3
daemon
log-append /var/log/openvpn.log

Конфигурация на стороне сервера:

ev tun.yasha
proto udp
local <someip>
lport 18999
rport 18999
secret /etc/openvpn/.keys/secret.key 0
ifconfig <IP2> <IP1>
user nobody # On CentOS
group nobody # On CentOS
persist-tun
persist-key
keepalive 10 60
ping-timer-rem
verb 6
daemon
log-append /var/log/openvpn.log

Выводы при активном туннеле: Клиент: ip-r

default via 192.168.88.1 dev wlp3s0 proto dhcp metric 600 
10.8.0.1 dev tun0 proto kernel scope link src 10.8.0.2 
169.254.0.0/16 dev wlp3s0 scope link metric 1000 
192.168.88.0/24 dev wlp3s0 proto kernel scope link src 192.168.88.34 metric 600

ip а

tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/none 
    inet 10.8.0.2 peer 10.8.0.1/32 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::9b45:4bf5:f2d7:5375/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever

Сервер:

ip р

default via 217.12.XXX.X dev eno1 
10.8.0.2 dev tun.yasha proto kernel scope link src 10.8.0.1

ip a (у нас на машине много интерфейсов, поэтому я их опускаю)

tun.yasha: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
    link/none 
    inet 10.8.0.1 peer 10.8.0.2/32 scope global tun.yasha
       valid_lft forever preferred_lft forever
    inet6 fe80::4815:ef11:3756:faea/64 scope link flags 800 
       valid_lft forever preferred_lft forever

решение1

В ваших конфигурациях вы настроили только IP-адрес для туннеля на клиенте.

Поскольку адрес представляет собой адрес «точка-точка» /32, по умолчанию может не быть добавлен ни одного маршрута. (Это может зависеть от платформы.)

Если вы просто хотите иметь возможность общаться с сервером через , IP1но это не работает «из коробки», добавления route IP1должно быть достаточно.

Если вы, например, хотите, чтобы весь трафик клиентского хоста направлялся в туннель, вам следует использовать эту опцию redirect-gateway.

Для последнего вам нужно убедиться, что клиентский хост использует DNS-серверы, которые могут быть доступны через туннель (см. dhcp-option DNS). Также на сервере необходимо включить IP-пересылку между туннелем и сетевой картой.

Связанный контент