Понимание адресации 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.
Надеюсь, что это отвечает на ваши вопросы.