从连接到网桥接口的 Tap 接口 Ping 无法正常工作

ram*_*amz 11 networking linux ping tap interface

我的要求是创建多个 tap 接口,每个接口在同一子网上都有 ip 地址。

我通过创建一座桥来尝试这个

               br0 (192.168.1.199)
     ___________|_____________________________________
     |                    |       |      |      |     |
   eth0                  tap0    tap1   tap2   tap3   tap4
                (192.168.1.150)  (.151) (.152) (.153) (.154)
Run Code Online (Sandbox Code Playgroud)

我需要可以从外部 PC 访问所有 Tap 接口。当我从 tap0 ping 到外部计算机时说 192.168.1.200

ping -I tap0 192.168.1.200 -- the ping is not going through. 
Run Code Online (Sandbox Code Playgroud)

但是当我从 192.168.1.200 ping 到 192.168.1.150 (tap0) 时它正在工作,但我得到了网桥的 mac 地址 (br0)

我有两个问题:

  1. 如何从tap接口ping到外部
  2. 从外部 ping 时如何获取正确的 tap 接口的 mac 地址。

And*_*orn 1

回复问题1:

ping -I tap0
Run Code Online (Sandbox Code Playgroud)

告诉 ping 在 tap0 上发送 ping 数据包。这将绕过网桥,实际上只在指定的“物理”接口上发送。因此,实际上,您不是从“tap 接口”执行 ping 操作,而是“向”它执行 ping 操作。

如果您想“从”Tap 接口执行 ping 操作,则需要在其上附加某些东西(例如 OpenVPN),并从 Tap 接口所连接的虚拟电缆的另一端发送 ping。

回复问题2:你可以尝试类似的方法

arp -i br0 -Ds 192.168.1.150 tap0 pub
Run Code Online (Sandbox Code Playgroud)

ETC。