Рейтинг:0

Ответ ARP не пересылается на TAP-устройство через мост Linux

флаг gl

Создайте два TAP-устройства, каждое из которых будет считываться и записываться стеком протоколов пользовательского пространства. Кроме того, два устройства TAP соединены мостом Linux. Скрипт для подготовки среды выглядит следующим образом.

sudo ip tuntap добавить режим dev tap0
sudo ip tuntap добавить dev tap1 mode tap

sudo ip-адрес добавить 10.0.0.1/24 dev tap0
sudo ip addr add 10.0.0.2/24 dev tap1

sudo ip link настроить tap0
sudo ip link настроить tap1

sudo brctl addbr br0
sudo brctl addif br0 tap1
sudo brctl addif br0 tap0
sudo ip link set br0 up

Стек протоколов пользовательской области имеет возможность отправлять и получать ARP. Процедура создания этой проблемы была следующей.

  1. скинуть ARP-запрос от tap0.
  2. Он достигает tap1 через br0 и отправляет ARP-ответ.
  3. br0 получает ответ ARP, но не достигает tap0.

Я захватил пакеты следующим образом.

vagrant@impish64:~$ sudo tcpdump -i br0 -nv
tcpdump: прослушивание на br0, тип канала EN10MB (Ethernet), длина снимка 262144 байт
13:14:23.103549 ARP, Ethernet (длина 6), IPv4 (длина 4), Запросить, у кого есть 10.0.0.2, сообщить 10.0.0.1, длина 28
13:14:23.104203 ARP, Ethernet (длина 6), IPv4 (длина 4), ответ 10.0.0.2 is-at 3a:2c:25:5b:e1:40, длина 28
vagrant@impish64:~$ sudo tcpdump -i tap0 -nv
tcpdump: прослушивание по tap0, тип ссылки EN10MB (Ethernet), длина снимка 262144 байт
13:13:40.868761 ARP, Ethernet (длина 6), IPv4 (длина 4), Запросить у кого есть 10.0.0.2 сообщить 10.0.0.1, длина 28
vagrant@impish64:~$ sudo tcpdump -i tap1 -nv
tcpdump: прослушивание по tap1, тип ссылки EN10MB (Ethernet), длина снимка 262144 байт
13:12:50.368294 ARP, Ethernet (длина 6), IPv4 (длина 4), Запросить, у кого есть 10.0.0.2, сообщить 10.0.0.1, длина 28
13:12:50.368699 ARP, Ethernet (длина 6), IPv4 (длина 4), ответ 10.0.0.2 is-at 3a:2c:25:5b:e1:40, длина 28

Схема этой задачи выглядит следующим образом.

диаграмма

Почему ARP-ответ не прилетает на кран0 с этой настройкой?

A.B avatar
флаг cl
A.B
проверьте https://xyproblem.info/
A.B avatar
флаг cl
A.B
Интерфейс, установленный как порт моста, *никогда* не должен получать IP-адрес. После установки в качестве порта моста только собственный интерфейс моста (br0) должен быть допущен к участию в маршрутизации. Даже без IP-адреса он будет участвовать в маршрутизации, но адреса на портах вызывают проблемы с маршрутизацией. Адреса не должны принадлежать системе, а только «стеку пользовательских протоколов», который вы забыли описать.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.