Не уверен, что я делаю не так.У меня есть две машины, подключенные друг к другу с этой настройкой правила ebtable:
ebtables -A OUTPUT -p ARP --arp-op Request --nflog-group 100 -j DROP
У меня есть процесс, прослушивающий группу netlink 100. У меня есть следующая настройка на обеих машинах /etc/network/interface
давайте назовем это peer1 :
auto e101-001-0
iface e101-001-0 inet manual
auto bond100
iface bond100 inet manual
bond-slaves e101-001-0
bond-mode 4
bond-miimon 100
iface bond100.100 inet manual
vlan-raw-device bond100
auto br100
iface br100 inet static
bridge_ports bond100.100
address 10.1.1.1
netmask 255.255.255.0
peer2 имеет ту же настройку, за исключением того, что IP-адрес 10.1.1.2
.Когда я пытаюсь отправить пинг с peer1 на peer2 , я получаю пункт назначения недоступным.Использование arp -n
Я вижу, что это не решено.Я использовал tcpdump и увидел, что запрос ARP был сделан на peer1 мосте, но peer2 не получил его на своем мосту.Есть три способа, с помощью которых я знаю, чтобы получить эхо-запрос:
- Удалить правило ebtable на peer1 .
- Не используйте мост.Это прекрасно работает, если я просто пинг между физическим интерфейсом.
- Добавьте эту строку в правила etable выше:
--nflog-range 32
.Я могу пойти до 22, и это все еще будет работать.Он начинает давать сбой около 17.
Кажется, что-либо ниже 32 делает его перестать работать.Мои вопросы:
- Существует ли размер nflog-диапазона по умолчанию, если он не задан явно?
- Есть ли конфигурация ядра, которая влияет на размер nflog-range?
Я знаю, что все это является частью ядра, поэтому, если это поможет, я использую стандартное ядро Debian Stretch (Debian 4.9.110-3 + deb9u4) (никакой специальной конфигурации ядра). peer2 работает на модифицированном ядре и, как известно, работает.Если у меня две системы с такими же спецификациями, как peer2 , все работает нормально, что заставляет меня поверить в это возможно проблема конфигурации ядра.
Спасибо за чтение.