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

Одноадресный трафик между хостами на коммутаторе, покидающий коммутатор по восходящей линии связи. Зачем?

У меня в офисе происходит странная вещь, которую я не могу понять. В частности, я не могу сказать, проблема ли это в переключателе или проблема в конфигурации.

У нас есть коммутатор Cisco SG300-52 (sw01) в верхней части стойки в нашей серверной комнате, подключенный к другому SG300-28, который действует как наш основной коммутатор (core01). Оба работают только на уровне 2, наши межсетевые экраны выполняют маршрутизацию между VLAN. Между ними около дюжины виртуальных локальных сетей. Gi1 на sw01 - это магистральный порт, подключенный к gi1 на core01.

(Раскрытие информации: в нашей среде есть и другие переключатели, но я почти уверен, что изолировал проблему от этих двух. При необходимости я рад предоставить дополнительную информацию.)

Поведение, которое я вижу, ограничено одной VLAN, vlan 12 - или, по крайней мере, этого не происходит в других, которые я проверял (трудно гарантировать отсутствие пакетов), и это: sw01 перенаправляет на core01 трафик между двумя хостами, которые оба подключены к sw01.. (Я заметил это, потому что IDS в нашем брандмауэре дал ложное срабатывание по трафику, который должен не добраться до брандмауэра.)

Мы заметили это в основном между нашими двумя серверами dhcp / dns, net01 (10.12.0.10) и net02 (10.12.0.11). net01 - это физическое оборудование, а net02 - на сервере VMware ESX. net01 подключен к gi44 на sw01, а сервер ESX net02 - к gi11.

[net01]----gi44-[sw01]-gi1----gi1-[core01]
[net02]----gi11/

Посмотрим несколько интерфейсов! Помните, vlan 12 - это проблема vlan. Из других я явно подтвердил, что vlan 27 был не затронуты.

Вот порты двух хостов: esx01 содержит net02.

sw01#sh run int gi11
interface gigabitethernet11
 description esx01
 lldp med disable
 switchport trunk allowed vlan add 5-7,11-13,100
 switchport trunk native vlan 27
!
sw01#sh run int gi44
interface gigabitethernet44
 description net01-1
 lldp med disable
 switchport mode access
 switchport access vlan 12
!

Вот ствол на sw01.

sw01#sh run int gi1 
interface gigabitethernet1
 description "trunk to core01"
 lldp med disable
 switchport trunk allowed vlan add 4-7,11-13,27,100
!

А другой конец магистрали на core01.

interface gigabitethernet1
 description sw01
 macro description switch
 switchport trunk allowed vlan add 2-7,11-16,27,100
!

У меня есть порт монитора на core01, поэтому:

core01#sh run int gi12
 interface gigabitethernet12
 description "monitor port"
 port monitor GigabitEthernet 1
!

И порт монитора на core01 видит одноадресный трафик, идущий между net01 и net02, оба из которых находятся на sw01! Я проверил это с помощью порта монитора на sw01, который также видит одноадресный трафик net01-net02, уходящий через gi1.

sw01 знает, что оба этих хоста находятся на портах, которые не являются его магистральным портом:

:) ratchet$ arp -a | grep net
net02.2ndsiteinc.com (10.12.0.11) at 00:0C:29:1A:66:15 [ether] on eth0
net01.2ndsiteinc.com (10.12.0.10) at 00:11:43:D8:9F:94 [ether] on eth0

sw01#sh mac addr addr 00:0C:29:1A:66:15
Aging time is 300 sec

  Vlan        Mac Address         Port       Type    
-------- --------------------- ---------- ---------- 
   12      00:0c:29:1a:66:15      gi11     dynamic   

sw01#sh mac addr addr 00:11:43:D8:9F:94
Aging time is 300 sec

  Vlan        Mac Address         Port       Type    
-------- --------------------- ---------- ---------- 
   12      00:11:43:d8:9f:94      gi44     dynamic   

Я также поднял неиспользуемый порт на sw01 на vlan 12, но одноадресный трафик был (насколько я мог судить) не выходит из этого порта. Так что не похоже, что sw01 выталкивает все свои порты, только правильные порты а также gi1!

Я убедился, что sw01 не заполняет свою адресную таблицу:

sw01#sh mac addr count
This may take some time.
Capacity : 8192 
Free     : 7983 
Used     : 208 

Доступны полные конфигурации для core01 и sw01: core01, sw01.

Наконец, версии:

sw01#sh ver
SW version    1.1.2.0 ( date  12-Nov-2011 time  23:34:26 )
Boot version    1.0.0.4 ( date  08-Apr-2010 time  16:37:57 )
HW version    V01

core01#sh ver
SW version    1.1.2.0 ( date  12-Nov-2011 time  23:34:26 )
Boot version    1.1.0.6 ( date  11-May-2011 time  18:31:00 )
HW version    V01

Так что мой понимание это так: sw01 должен принимать одноадресный трафик для net01 и отправлять его только через порт net02, и наоборот; ни один из них не должен выходить из восходящего канала sw01. Но core01, получая трафик на gi1 для хоста, который знает является на gi1, правильно отправляет ему все свои порты. (То есть sw01 плохо себя ведет, но core01 делает то, что следует в данных обстоятельствах.)

У меня вопрос: Почему sw01 отправляет этот одноадресный трафик по восходящей линии связи, gi1?

(И превентивно: да, я знаю, что SG300 оставляют желать лучшего, и да, нам следовало бы включить связующее дерево, но сейчас я нахожусь именно здесь.)

Я бы посмотрел на MAC-адреса в захваченных пакетах. Если маска, таблица arp или шлюз на одном из хостов неверны, возможно, установлен неправильный MAC-адрес назначения.