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

Как записать таблицу arp при использовании сетевого моста?

У меня есть компьютер с двумя сетевыми интерфейсами, соединенными мостом, и мне нужно средство отличать машины, подключенные к eth0, от машин, подключенных к eth1.

Я надеялся использовать что-то вроде команды "arp -a". Однако, когда NICS соединены мостом, таблица arp всегда пуста. Я считаю, что это правильно, поскольку в разделе 2.1.1. Обзор протокола разрешения адресов [http://linux-ip.net/html/ether-arp.html], упоминает, что "Поскольку сетевое оборудование, такое как коммутаторы, концентраторы и мосты работают с кадрами Ethernet, они не знают о данных более высокого уровня, переносимых этими кадрами ".

Кто-нибудь знает о других инструментах, которые я мог бы использовать, которые будут поддерживать таблицу arp на конкретной сетевой карте, даже если сетевая карта была подключена мостом?

Вы не получите IP-адрес таким образом, но вы можете увидеть, какие MAC-адреса изучил мост:

# brctl showmacs br0
port no mac addr                is local?       ageing timer
  1     00:16:3e:aa:bb:cc       no                 3.02
  1     00:16:3e:ab:bb:cc       no                30.37
  1     00:16:3e:ac:bb:cc       no                90.66
  2     fe:ff:ff:ff:ff:ff       yes                0.00

Обратите внимание port столбец, это сообщает вам, на каком интерфейсе (port) пакет вошел в мост. Если неясно, какой из них какой, запустите brctl show.

Если вам тоже нужен IP-адрес, вам нужно будет назначить сетевой адрес мосту и запустить ping-сканирование:

ip addr add X.X.X.X/yy dev br0
nmap -T5 -sP X.X.X.Z/yy
arp -a
ip addr del X.X.X.X/yy dev br0

Хотя приведенные выше ответы верны и будут работать, я хотел что-то более тихое, чем сканирование ping.

Я все еще немного не понимаю, почему стандартная команда arp не работает. Я уверен, что я пропустил какую-то конфигурацию.

Однако мое текущее решение - использовать arpwatch [http://en.wikipedia.org/wiki/Arpwatch] в сочетании с "brctl showmacs".

Arpwatch генерирует разные выходные файлы, сопоставляя IP-адреса с MAC-адресами. "brctl showmacs" предоставляет MAC-адрес для сопоставления физического порта. С этими двумя инструментами у меня есть все, что мне нужно.

[Edit] Кроме того, arpalert имеет очень похожую функциональность, и с ним немного проще работать.

Спасибо всем, кто прокомментировал.