次のような小規模なネットワークを設定しています。
私のサーバーをWANに接続するためのPfsenseがあります。LANからWANにNATを使用しています。
リモートワーカーをサーバーと同じLANネットワークに配置できるようにするために、TAPを使用しているOpenVPNサーバーがあります。
現在、接続すると、すべてのルートがクライアント側で正常に見えます。
Destination Gateway Genmask Flags Metric Ref Use Iface
300.300.300.300 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.25.0.0 10.25.255.254 255.255.0.0 UG 0 0 0 tap0
10.25.0.0 0.0.0.0 255.255.0.0 U 0 0 0 tap0
0.0.0.0 300.300.300.300 0.0.0.0 UG 0 0 0 eth0
LANインターフェイスにpingを実行できます。
root@server:# ping 10.25.255.254
PING 10.25.255.254 (10.25.255.254) 56(84) bytes of data.
64 bytes from 10.25.255.254: icmp_req=1 ttl=64 time=7.65 ms
64 bytes from 10.25.255.254: icmp_req=2 ttl=64 time=7.49 ms
64 bytes from 10.25.255.254: icmp_req=3 ttl=64 time=7.69 ms
64 bytes from 10.25.255.254: icmp_req=4 ttl=64 time=7.31 ms
64 bytes from 10.25.255.254: icmp_req=5 ttl=64 time=7.52 ms
64 bytes from 10.25.255.254: icmp_req=6 ttl=64 time=7.42 ms
しかし、LANインターフェイスを越えてpingすることはできません。
root@server:# ping 10.25.255.1
PING 10.25.255.1 (10.25.255.1) 56(84) bytes of data.
From 10.25.255.254: icmp_seq=1 Redirect Host(New nexthop: 10.25.255.1)
From 10.25.255.254: icmp_seq=2 Redirect Host(New nexthop: 10.25.255.1)
Em1インターフェイス(IPが10.25.255.254のLANインターフェイス)でtcpdumpを実行しました
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on em1, link-type EN10MB (Ethernet), capture size 96 bytes
08:21:13.449222 IP 10.25.24.1 > 10.25.255.1: ICMP echo request, id 23623, seq 10, length 64
08:21:13.458211 ARP, Request who-has 10.25.255.1 tell 10.25.24.1, length 28
08:21:14.450541 IP 10.25.24.1 > 10.25.255.1: ICMP echo request, id 23623, seq 11, length 64
08:21:14.458431 ARP, Request who-has 10.25.255.1 tell 10.25.24.1, length 28
08:21:15.451794 IP 10.25.24.1 > 10.25.255.1: ICMP echo request, id 23623, seq 12, length 64
08:21:15.458530 ARP, Request who-has 10.25.255.1 tell 10.25.24.1, length 28
08:21:16.453203 IP 10.25.24.1 > 10.25.255.1: ICMP echo request, id 23623, seq 13, length 64
したがって、トラフィックはLANインターフェイスに到達し、ホストにも渡され、ホストは応答します。ただし、トラフィックはLANインターフェイスに送られません。
問題は、openvpnまたはpfsenseアプライアンスではなく、VMWare vSwitchにありました。 VMWareでpfsenseを実行している場合は、pfsenseネットワークに関連付けられているvSwitchの「無差別モード」を拒否から受け入れに変更する必要があります。これを行わない場合、OpenVPNブリッジクライアントが認識する唯一のホストはpfsenseサーバー自体です。
ファイアウォールには、UIでは表示できない暗黙のルールもあります。 PFログを精査し、手動でルールを無効にする必要があります。