На моем рабочем месте мы используем коммутаторы cisco для реализации настраиваемого механизма доставки трафика на уровне 2. Специальное программное обеспечение помещает определенные Mac-адреса назначения во фреймы Ethernet, а vlan разделяют трафик в разные места, в то время как статические записи в таблице MAC-адресов делают его для направления его в определенные порты. Вся система доставки довольно статична, поэтому у нас она работает достаточно хорошо. Не я его создавал, но достаточно хорошо понимаю.
Теперь я пытаюсь понять это немного лучше, поскольку вижу какое-то странное поведение переключателей. У меня два порта:
gi1/10
switchport mode access vlan 10
gi1/20
switchport mode trunk
switchport trunk allowed vlan 10-13
и две строки таблицы MAC-адресов, введенные пользователем:
mac-address-table static 0101.0000.0101 vlan 10 interface gi1/10
mac-address-table static 0101.0000.0000 vlan 13 interface gi1/20
Порты настроены по-разному, чтобы оценить разницу в методах.
У меня есть два хоста Linux, каждый из которых подключен к указанным выше портам. Каждый из них настроен одинаково с четырьмя подынтерфейсами:
eth1.10, eth1.11, eth1.12, and eth1.13.
На главном интерфейсе или каком-либо подинтерфейсе нет IP-адреса. У меня есть два источника трафика, отправляющих трафик. Каждый отправляет Ethernet-кадры с ОБЕИМИ MAC-адресами назначения, но один источник трафика находится на vlan 10, а другой - на vlan 13.
На хосте 1, подключенном к порту 1/10, я не вижу трафика, когда я нюхаю eth1.10,11,12 или 13, но вижу трафик, когда запускаю tcpdump -i eth1. Для меня это имеет смысл, поскольку эти подынтерфейсы будут ожидать только трафик, помеченный VLAN с соответствующим идентификатором VLAN (10,11,12 или 13), и этот порт коммутатора настроен для доступа. Правильно ли я это истолковал?
Любопытно то, что вывод tcpdump хоста 1 ТАКЖЕ показывает другой Mac, хотя статическая запись явно говорит о том, что через порт нужно отправлять только один тип трафика. Как такое возможно?
Не менее странная ситуация и с хостом 2 (подключенным к транкинговому порту). Он видит только один MAC-адрес (правильный), но видит его как на eth1.10, так и на eth1.13. Теперь я просто запуталась. Как это возможно, даже если у обоих vlan есть оба Mac назначения? Разве таблица mac-адресов не должна ограничивать это только тем, что там введено?
Определил свою проблему для заинтересованных. Третий источник трафика был неправильно настроен для отправки на 0101.0000.0000, но на vlan 10. Поскольку этот Mac не был известен для vlan 10, он транслировался на все интерфейсы, принадлежащие этому vlan, поэтому я вижу Mac в Linux. хост, подключенный к этому интерфейсу.
Это также объясняет, почему я вижу этот Mac как на vlan 10, так и на 13 на другом хосте. Он был подключен к обоим vlan и видел его хостом linux на каждом из них.
Ваша интерпретация g1 / 10 верна. Порт «режим доступа» не будет отправлять пакеты с тегами vlan.
Эти MAC-адреса, которые вы показываете, на самом деле то, что вы используете? Бит многоадресной рассылки установлен (первый (крайний слева) 01 - это бит многоадресной рассылки), что, вероятно, объясняет, почему вы видите эти пакеты на нескольких портах.