2017-08-03 27 views
0

我有兩個Emulab服務器,都配置爲DPDK。一個(稱之爲客戶端)運行pktgen;另一臺(稱爲服務器)運行l2fwd瞭解DPDK pktgen的目標地址

在客戶端,我看到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:然後?

回答

1

回答您的問題:

服務器上啓用了DPDK接口不應該有一個IP地址(我從來沒有賦予它一個)

不,它不應該。但是l2fwd表示OSI第2層轉發,即交換。交換不需要任何IP地址。

客戶端似乎沒有爲其數據包設置Dst MAC。

從輸出中,目標MAC全部爲零。 您可以使用set mac <portlist> <mac> CLI命令更改它。

服務器如何獲取這些數據包?客戶是否只是向網絡廣播?不應該IP地址是FF:FF:FF:FF:FF:然後?

我想,在你的情況下,它是一個unknown unicast +服務器上的混雜模式。中間的交換機在其MAC表中沒有地址00:00:00:00:00:00,所以它將未知單播泛洪到所有端口(源和VLAN除外)。

服務器收到這個幀是因爲它將端口置於混雜模式,所以NIC接受所有的幀,而不是隻發給NIC的MAC。

希望這回答你的問題。