У меня есть компьютер с двумя сетевыми интерфейсами, соединенными мостом, и мне нужно средство отличать машины, подключенные к 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 имеет очень похожую функциональность, и с ним немного проще работать.
Спасибо всем, кто прокомментировал.