我有两台Emulab服务器,都配置为DPDK。一个(称之为客户端)运行 pktgen ;另一个(称之为服务器)运行 l2fwd 。
在客户端,我在 pktgen 输出中看到以下内容:
Src/Dest Port : 1234 / 5678
Pkt Type:VLAN ID : IPv4 / TCP:0001
Dst IP Address : 192.168.1.1
Src IP Address : 192.168.0.1/24
Dst MAC Address : 00:00:00:00:00:00
Src MAC Address : a0:36:9f:08:1c:28
根据 l2fwd 的输出,服务器正在接收来自客户端的数据包。
我想我错过了关于如何在这里工作的问题;服务器的启用DPDK的接口不应该有IP地址(我从来没有分配过它)。客户端似乎没有其数据包的Dst MAC。
服务器如何获取这些数据包?客户端只是广播到网络吗? IP地址不应该是FF:FF:FF:FF:FF:FF,那么?
答案 0 :(得分:1)
回答你的问题:
服务器启用DPDK的接口不应该有IP地址(我从未为其分配过一个)
不,不应该。但l2fwd代表OSI第2层转发,即切换。切换不需要任何IP工作。
客户端似乎没有针对其数据包的Dst MAC。
从输出中,目标MAC全为零。
您可以使用set mac <portlist> <mac>
CLI命令更改它。
服务器如何获取这些数据包?客户端只是广播到网络吗? IP地址不应该是FF:FF:FF:FF:FF:FF,那么?
我想,在你的情况下,它是服务器上的unknown unicast
+混杂模式。中间的交换机在其MAC表中没有地址00:00:00:00:00:00
,因此它将未知单播泛洪到所有端口(除了源和VLAN内)。
服务器收到此帧是因为它将端口置于混杂模式,因此NIC接受所有帧,而不仅仅是寻址到NIC的MAC。
希望这能回答你的问题。