VPN経由でホストに接続されているDockerホストにpingを実行できない

VPN経由でホストに接続されているDockerホストにpingを実行できない

ホストが 2 つあります。Docker ホストおよび OpenVPN サーバーである CentOS 7 と、クライアントとしての 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 a

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 r

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)。また、サーバー上でトンネルと NIC 間の IP 転送を有効にする必要があります。

関連情報