3

我的机器上有两个虚拟 TAP 接口 tap0 和 tap1。它们的 IP 分别为 10.0.0.1 和 10.0.0.2。它们都使用 socat 相互连接。两者都有网络掩码 255.255.255.0 (因此在同一个子网上)。使用此设置,我尝试通过 tap0 ping 10.0.0.2,反之亦然。由于某种原因,这似乎不起作用。尽管 tcpdump 显示从 tap0 到达 tap1 的 ARP 数据包,但没有 ARP 回复,因此没有 ICMP 请求,因此也没有 ICMP 回复。使用 TUN 设备而不是 TAP 设备绕过 ARP 请求/响应周期,但现在 ICMP 请求显示在 tap1 上,没有返回 ICMP 响应。

我尝试了一些方法,例如启用 ip_forward ( echo 1 > /proc/sys/net/ipv4/ip_forward) 和禁用反向路径过滤 ( echo 0 > /proc/sys/net/ipv4/conf/tap0/rp_filter 和 echo 0 > /proc/sys/net/ipv4/conf/tap1/rp_filter )。

以下是重现我的问题的命令:

sudo socat TUN:10.0.0.1/24,tun-type=tap TUN:10.0.0.2/24,tun-type=tap
sudo ifconfig tap0 10.0.0.1 netmask 255.255.255.0
sudo ifconfig tap1 10.0.0.2 netmask 255.255.255.0
ping -Itap0 10.0.0.2
tcpdump -Itap0 -n
tcpdump -Itap1 -n
4

0 回答 0