了解DPDK pktgen的目的地址

时间:2017-08-03 01:43:28

标签: networking dpdk

我有两台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,那么?

1 个答案:

答案 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。

希望这能回答你的问题。