在以下设置中,当我尝试通过 VPN 从主机“a”向主机“c”发送 ping 时,我看到它在主机 b 的 tun0 接口上接收并在 eth0 上转发,但随后它消失了。我没有看到任何东西进入主机 c 的 eth0 接口。最终结果是 ping 没有得到回复。我可以直接从主机 b ping 主机 c(其中源 IP 地址显示在主机 b 和 c 所在的子网内,主机 a 具有不同的范围(10.8.0.0/16))。
我该如何调试?可能是什么问题?如何检测流量是否由硬件发出?(它会被linux防火墙阻止吗?)
设置:
主机(a)-> VPN(b)->要ping的主机(c)
主机 a 有 eth0 接口 主机 b 有 tun0 和 eth0 接口。主机 c 具有 eth0 接口。
证据:
on host a's tun0 interface
> sudo tcpdump -i tun0 'icmp[icmptype] = icmp-echo or icmp[icmptype] = icmp-echoreply'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
05:09:36.878793 IP 10.8.0.6 > 10.10.146.8: ICMP echo request, id 3497, seq 611, length 64
05:09:37.884830 IP 10.8.0.6 > 10.10.146.8: ICMP echo request, id 3497, seq 612, length 64
On host b's eth0 interface
> sudo tcpdump -i eth0 'icmp[icmptype] = icmp-echo or icmp[icmptype] = icmp-echoreply'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
05:07:43.991961 IP 10.8.0.6 > 10.10.146.8: ICMP echo request, id 3497, seq 499, length 64
05:07:44.997944 IP 10.8.0.6 > 10.10.146.8: ICMP echo request, id 3497, seq 500, length 64
on host c's eth0 interface
> sudo tcpdump -i eth0 'icmp[icmptype] = icmp-echo or icmp[icmptype] = icmp-echoreply'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
<no output>