Назад | Перейти на главную страницу

Мост Linux отвечает на arp на неправильном интерфейсе?

Я пытаюсь построить бесшумный мост для мониторинга. Мой компьютер работает под управлением Linux 2.6, brctl 1.4 и имеет 3 сетевых адаптера:
eth0 с назначенным IP-адресом, используемый для обслуживания SSH
eth1 и eth2, 2 порта моста br0

все устанавливается в etc / network / interfaces:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 192.168.1.120
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.254

auto br0
iface br0 inet manual
        bridge_ports eth1 eth2
        bridge_maxwait 0
        bridge_stp off

Таким образом, как eth0, так и eth1 подключены к моей локальной сети (eth2 подключен к моему шлюзу) Но только eth0 имеет IP-адрес.

Мост работает нормально, и я могу отслеживать трафик с помощью tcpdump -i br0 или других инструментов.

Поскольку у моста нет IP-адреса, он не должен передавать трафик. Однако иногда он отвечает на запрос arp вместо eth0.

Предполагая, что eth0 имеет 00: 01: 02: ab: 00: 00, а eth1 имеет 00: 01: 02: ab: 00: 01 для MAC-адреса: это то, что я получаю на моей локальной станции, на которой запущен wirehark:

packet no time   source    dest   protocol info
    4303  1063.539943 00:01:02:ab:00:01 Giga-Byt_46:d9:fe ARP 192.168.1.120 is at 00:01:02:ab:00:01
    4305  1063.539958 00:01:02:ab:00:00 Giga-Byt_46:d9:fe ARP 192.168.1.120 is at 00:01:02:ab:00:00

Поскольку мой «настоящий» IP-интерфейс отвечает на миллисекунды позже, но это не могло быть так ... Как я могу решить эту проблему?

http://kb.linuxvirtualserver.org/wiki/Using_arp_announce/arp_ignore_to_disable_ARP должен помочь вам, если вы попросите мост не отвечать на запросы arp.

Другой вариант помимо использования / proc / * / arp_ignore - избавиться от интерфейса eth0 и поместить IP-адрес на мост:

auto br0
iface br0 inet manual
        bridge_ports eth1 eth2
        bridge_maxwait 0
        bridge_stp off
        address 192.168.1.120
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.254

Лично я думаю, что это несколько упрощает концептуально, потому что тогда интерфейс напрямую подключается к мосту.