我创建了一个 tap 设备 tap0 地址 10.2.1.4,并将其添加到主机桥 br1,地址为 10.2.1.1
我在主机上运行“nc 10.2.1.4 -l 1234”,并在另一台机器上执行“nc 10.2.1.4 1234”。
tcpdump -i tap0 没有显示任何流量。当我执行“tcpdump -i br1”时,流量就会显示出来
我要怎么做才能让流量显示在 tap0 上。
答案1
通常桥接接口不能作为接收流量并将其引导至主机协议栈的端点。一旦添加桥接,它就会自行负责此类工作。
Tap 是一种特殊的逻辑接口,在内部表示并可访问。提示:从网桥中移除 tap0,它仍可从其他主机访问。
因此,数据路径为:网络 -> eth0 -> br1 -> 堆栈 TCP/IP -> 应用程序
如果出现以下情况,您可以在 tap0 上看到流量:
- 已經播送。
- 它被路由,比如说 tap0 用于隧道或 VM 连接。
答案2
如果你想强制tap0
接收自己的 IP 数据包,你可以使用ebtables
。当数据包在 的以太网层被处理DROP
时,这些数据包将进入 的 IP 层,而不是。另请参阅:tap0
broute
tap0
eth0
http://ebtables.sourceforge.net/examples/real.html#example1
如果您只是想要为您的主机提供更多地址,请使用ip address add ...
。