Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!

Если ваша сеть построена таким образом, что домен L2 включает множество устройств, то можно ждать беды.
cisco-01-TEST#show sdm prefer
The current template is «desktop default» template.
The selected template optimizes the resources in
the switch to support this level of features for
8 routed interfaces and 1024 VLANs.
number of unicast mac addresses: 6K
number of IPv4 IGMP groups + multicast routes: 1K
number of IPv4 unicast routes: 8K
number of directly-connected IPv4 hosts: 6K
number of indirect IPv4 routes: 2K
number of IPv4 policy based routing aces: 0
number of IPv4/MAC qos aces: 0.5K
number of IPv4/MAC security aces: 1K
— 3750G — [давно устаревший и снятый с продажи] L3 свитч
— А какой вообще смысл проверять такое на древнющей железке, которую уже даже не купишь кроме как подержанную?
— Проверьте что-нибудь более модное вроде замечательных 3650/3850
В последнем абзаце совершенно верное утверждение, что не должно быть тысяч хостов на L2 сегмент, нереалистичный это сценарий.
Странно, но пишет, что у нее памяти всего на 5507 адресов:
Сгенерируем заведомо большее, чем заявлено, количество адресов (12288), я указал 13000:
cisco-01-TEST#show mac address-table count
Mac Entries for Vlan 20:
— Dynamic Address Count: 4281
Static Address Count: 0
Total Mac Addresses: 4281
Total Mac Address Space Available: 1219
Как видно, заполнить всю таблицу удалось не сразу и попали далеко не все адреса, вот вам и колизионность. Пробую еще раз:
И медленный режим (максимум, что удалось вместить):
Mac Entries for Vlan 20:
— Dynamic Address Count: 5945
Static Address Count: 0
Total Mac Addresses: 5945
Total Mac Address Space Available: 3
cisco-01-TEST#show mac address-table count
Рандомный тест:
cisco-01-TEST#sh mac address-table count
Mac Entries for Vlan 20:
— Dynamic Address Count: 4417
Static Address Count: 0
Total Mac Addresses: 4417
Total Mac Address Space Available: 1499
Рандомный медленный тест:
cisco-01-TEST#sh mac address-table count
Mac Entries for Vlan 20:
— Dynamic Address Count: 5947
Static Address Count: 0
Total Mac Addresses: 5947
Total Mac Address Space Available: 1
/* Wait timeout */
if(workslow == 1) usleep(SleepTime);
#define SleepTime 50000 // microseconds
Настройки тестового порта:
interface GigabitEthernet1/0/1
switchport access vlan 20
switchport mode access
end
Кто Вам сказал, что здесь виновата коллизия в CAM таблице?
Здесь проблема с большой вероятностью связана с производительностью control-plane коммутатора. Ибо MAC Learning для данной платформы — осуществляется на CPU, а не в «железе». Если в сторону control-plane поступает множество запросов, то есть риск того, что «ниточка» к CPU или сам CPU коммутатора будут перегружены. В этом случае — запрос будет сброшен. Кроме того, мы с Вами говорим про коммутатор третьего уровня и теоретически ситуация может осложняться (зависит от конфигурации коммутатора) при наличии L3 интерфейсов (в этом случае коммутатору, может потребоваться ARP Learning).
Смотрим дальше, 50000 microseconds = 0.05 sec. MAC aging time by default 300 seconds или 0.05/300 = 6000 адресов за 5 минут (или 1200 адресов в минуту).
Из Вашего поста непонятно. Когда был проверена CAM таблица? Через какое время? После 5 минут работы Вашего скрипта? Через 10 минут? Через 15 минут? Это имеет значение и может влиять на результаты.
Это значит, что порт проходит все стадии STP. Теперь поговорим на тему TCN/STP, flushing CAM таблиц и Aging-time.
Every bridge is then notified and reduces the aging time to forward_delay (15 seconds by default) for a certain period of time (max_age + forward_delay). It is more beneficial to reduce the aging time instead of clearing the table because currently active hosts, that effectively transmit traffic, are not cleared from the table.
Опять же, когда был запущен тест? Сразу? После того, как стал доступен другой хост? Через 15 секунд, после того, как порт перешел в состояние forwarding?
Это предположение. Схемотехники и временных диаграмм работы ASIC у меня нет,- это немного другое исследование, кстати тоже возможное.
Возможно, тем не менее проблема есть. Согласитесь, что вам, как пользователю, откровенно говоря, должно быть наплевать на то, у кого там проблема с производительностью при learning.
Коммутатор хоть и L3, но стоит он в тестовой стойке и никак не нагружен, не использует функционал L3 и не имеет L3 интерфейсов.
Задается количество маков, которые генерируются, т.е. генерация не зависит от времени. Если взять ваши же расчеты, то получается, что 6к пакетов сгенерируется как раз за 300 секнд. На практике обучилось меньше, чем могло сгенерироваться и меньше, чем cisco пишет. Но стоит отметить, что таблица заполнилась полностью (она динамически изменяема), так что тут претензий нет. Претензия лишь в «потере» адресов в быстром режиме. Или для вас это не проблема?
Если бы тест был запущен сразу, то количество адресов в первом тестовом запросе равнялось бы нуля (у меня их там 10), что не верно, их там 10, что соответствует условию тестовой генерации. Последующие же этапы тестирования проводились без отключения от порта, следовательно STP не перестраивался.
А чего тут исследовать? Открыл, посмотрел какой ASIC стоит, поискал в Интернете спецификацию на чип (или запросил у вендора). Схему и внутр. устройство чипа конечно же не дадут, да и не нужна она (сомневаюсь, что у Вас цель — разработка своего ASIC).
Не согласен! Не нужно здорового, записывать в больного.
Первое. Рекомендация — это подсеть не больше /24 (а это не более 254 IP адресов). Ибо в большом широковещательном домене Ethernet начинается масса других проблем.
Второе. Вы забываете, что рекомендованный дизайн для STP это не более 7 транзитных хопов. Даже если мы представим себе, что у нас к магистральному коммутатору подключено каскадом 5 коммутаторов по 48 портов (к которым в свою очередь подключен IP телефон + компьютер), то это не более 480 MAC адресов.
Третье. Даже если флапнет магистральный линк, то это далеко не значит, что все 480 хостов начнут моментально посылать пакеты. Более того, далеко не факт, что всем 480'ми хостам потребуется отправить трафик «наверх». Не забываем про поведение коммутатора в случаях с uknown unicast и для какого коммутатора и где будет возникать unknown unicast ситуация (это к вопросу сходимости L2 среды).
Четвертое. Коммутатор 3750G предназначен для офисной сети.
Пятое. Конечно же существуют сети, в которых больше тысячи MAC адресов, но это сети другого класса и оборудование там используется совершенно другое, ибо к ним предъявляют соотвествующие требование. Я еще ни разу не видел, чтобы кто-то для агрегации колец на Metro Ethernet или в ЦОДе ставил 3750, быстрее встретишь 4500/4900 серию (у которых аппаратная платформа одинаковая). У 4500 серии MAC Learning Rate в районе 20,000 MAC per second.
Седьмое. В реальности, всю эту «ораву» MAC адресов нужно приземлить на L3 интерфейс маршрутизатора. И быстрее начнутся проблемы с ARP Learning и control-plane на маршрутизаторе, чем проблемы на коммутаторе.
Седьмое. 3750G — это старое железо и если мне не изменяет память, оно уже объявлено в EoS/EoL. На смену данному железу уже пришло оборудование следующего поколения и далеко не факт, что там будут такие же «проблемы».
Вряд ли cisco вам пришлет даже обобщенный даташит на свои ASIC. Но мы здесь не про это говорим, проехали.
Рекомендация кого? Cisco? Да, есть такое, я тоже учился у них на курсах. Несколько выше я писал, откуда вообще кейс такой возник.
Это ваше умозаключение, основанное на ошибке, истолкованной вами же в пункте выше (так же упоминаете «рекомендованный дизайн»).
Опять же ваши допущения. А если рассмотреть ситуацию несколько иначе. Есть злоумышленник, который генерит тонны маков, что будет с клиентами (кстати, почему мы только о cisco, в статье и о других говорится)?
В некоторых случаях они просто не получат сервис.
И не надо сейчас говорить о vpls, atom, vlan-per-client и т.п. Я не спорю что это применимо и даже необходимо, просто сейчас мы не об этом.
А я вот знаю как минимум 5 крупных операторов, сети 2 из которых я даже эксплуатировал, где стоят себе такие 3750 и даже не G и работают на благо клиентов. Так что замечание опять же из области теории и дизайна, навязываемого сиськами.
Опять же вы оперируете технологиями, которых просто может не быть в конкретном месте и в конкретное время. Я не говорю что вы не правы, с точки зрения дизайна — более чем верно, но реальный мир все таки отличается.
Скажите это тысячам операторов на территории этой страны, даже интересно, что вам ответит экономический отдел.
Про MAC-таблицы в коммутаторах