Понимание адресации DPDK pktgen

У меня есть два сервера 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 ответ

Решение

Отвечая на ваши вопросы:

у интерфейса сервера с поддержкой DPDK не должно быть IP-адреса (я никогда не назначал его)

Нет, не должно. Но l2fwd означает пересылку OSI Layer 2, то есть коммутацию. Переключение не требует никаких IP-адресов для работы.

Кажется, что у клиента нет Dst MAC для своих пакетов.

Исходя из выходного MAC-адреса все нули. Вы можете изменить это с set mac <portlist> <mac> Команда CLI.

Как сервер получает эти пакеты? Клиент просто вещает в сеть? Разве IP-адрес не должен быть FF:FF:FF:FF:FF:FF, тогда?

Я полагаю, в вашем случае это unknown unicast + неразборчивый режим на сервере. У коммутатора посередине нет адреса 00:00:00:00:00:00 в своей таблице MAC-адресов, поэтому он заполняет неизвестную одноадресную рассылку на все порты (кроме источника и внутри VLAN).

Сервер получает этот кадр, потому что он переводит порт в случайный режим, поэтому NIC принимает все кадры, а не только адрес MAC NIC.

Надеюсь, что это отвечает на ваши вопросы.

Другие вопросы по тегам