Что такое таблица MAC-адресов коммутатора и что происходит при её переполнении?

Недавно я изучил принцип работы свичей и пришёл к некоторым выводам. Как я понял, свичи функционируют на 2-м уровне модели OSI и передают фреймы определённым устройствам по MAC-адресам, которые находятся в его таблице. Если нужный MAC-адрес отсутствует, фрейм отправляется на все порты свича.

У свичей есть ограничение на количество MAC-адресов, которые они могут хранить в таблице, и каждый MAC-адрес соответствует одному сетевому устройству, верно? Я также заметил, что существуют свичи с 4 портами, которые могут хранить до 4000 MAC-адресов.

У меня возникли два вопроса:
1) Зачем свичу с 4 портами иметь возможность хранить таблицу до 4000 MAC-адресов, если в действительности максимумом, который может быть подключен, являются только 4 устройства (4 MAC-адреса)?
2) Что произойдет, если количество MAC-адресов превысит лимит в 4000 на свиче? Как это возможно, если у свича всего 4 порта, что подразумевает наличие лишь 4 MAC-адресов?
  • 26 сентября 2024 г. 18:03
Ответы на вопрос 3
Ваши выводы о работе свичей и их MAC-таблицах верны. Давайте разберем ваши вопросы подробнее.

### 1) Зачем свичу с 4 портами иметь возможность хранить таблицу до 4000 MAC-адресов?

Хотя у свича может быть всего 4 порта, это не означает, что он может работать только с 4 устройствами одновременно. Вот несколько причин, по которым свич может иметь большую емкость для хранения MAC-адресов:

- **Динамическое добавление устройств:** В сетях устройства могут подключаться и отключаться в любое время. Например, временные устройства могут подключаться к свичу, а затем отключаться. Поэтому свич должен хранить большее количество MAC-адресов, чтобы гарантировать возможность работы с временно подключенными устройствами.

- **Сетевые топологии:** В сложных сетях свичи могут передавать трафик между большим количеством узлов. Даже если физически к свичу подключены только 4 устройства, возможно, что они будут взаимодействовать с другими устройствами, находящимися на других свичах внутри одной сети.

- **Переход на другие сети:** Если к сети подключены другие свичи, которые имеют множество устройств, обмен трафиком между ними также требует способностей обработки большего числа MAC-адресов.

### 2) Что произойдет, если количество MAC-адресов превысит лимит в 4000 на свиче?

Когда таблица MAC-адресов переполняется, свич сталкивается с некоторыми проблемами. Основные последствия таковы:

- **Удаление старых записей:** Когда новое устройство с MAC-адресом подключается и таблица заполнена, свич может удалить наименее используемые (или самые старые) записи, чтобы освободить место для новых. Таким образом, свич продолжает функционировать, но может потерять информацию о старых устройствах, которые могли бы снова обратиться к нему.

- **Флудинг:** Если свич не знает, куда отправить фрейм (например, если MAC-адрес не находится в таблице и таблица переполнена), он будет отправлять этот фрейм на все порты, что называется "флудингом". Это приводит к дополнительному трафику и может перегружать сегмент сети.

В итоге, даже если свич имеет лишь 4 порта, во время динамической деятельности в сети может возникнуть ситуация, когда потребуется поддержка гораздо большего числа MAC-адресов, чем количество физических портов.
Этот свитч может быть подключен в сеть из 4тыс устройств и через него гоняется трафик 2тыс хостов
В порт может быть подключен другой коммутатор, а в него третий, четвёртый и пятый, а в них ещё 20 и только где-нибудь на пятом уровне пойдут реальные устройства. 
Если превысить размер таблицы, то поведение зависит от разработчика прошивки. Простые коммутаторы сразу начнут слать броадкаст для MAC'ов, отсутствующих в таблице. Более продвинутые могут попробовать сначала перестроить таблицу, удалив самые старые записи.
Похожие вопросы