Таблица коммутации коммутатора как посмотреть
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Коммутатор, таблица мак-адресов
Добрый вечер! Вопрос: вот есть, например, комп1-коммутатор1-коммутатор2-комп2. у коммутатора1 в.
Коммутатор и таблица коммутации
Доброго времени суток! На данный момент разбираюсь с таблицей коммутации и ее устройством. В.
работа low-speed usb устройств через хаб (и неработа без хаб
А сможет кто-нибудь простыми словами объяснить механизм, почему mr3020 отказывается видеть.
Обжим кабеля хаб — хаб
Нужно протянуть кабель между двумя мелкими сетями (2-3 компа) которые подключены к хабам, скажите.
Сообщение от boris9057
Сообщение от boris9057
так же и останется
мак 1 пк портA
мак 2 пк портA
мак 3 пк портA
мак 4 пк портA
http://xgu.ru/wiki/VLAN
правда, пример с VLAN’ами, но смысл тот же
Разве после прохождения кадров через коммутатор MAC адреса не меняются? У коммутатора же есть MAC адрес?
Добавлено через 3 минуты
Например, роутер точно меняет MAC адреса — при ретрансляции указывается в качестве MAC отправителя MAC роутера, для MAC получателя — MAC следующего маршрутизатора или конечного хоста.
Добавлено через 20 минут
Или не так?
Сообщение от boris9057
Хорошая статья) Вот еще пару вопросов:
1) Нужны ли switch MAC адреса? Есть ли они у него?
2) Как switch определяет есть ли кто-нибудь на порту или нет?
Добавлено через 3 минуты
Со сменой MAC вроде разобрался. В кадры MAC адреса упаковывает сетевой уровень, а свитч работает на канальном. Поэтому он их не меняет.
Сообщение от boris9057
По ссылке не нашел ответ на вопрос «Как свитч определяет, что другой конец кабеля физические подключен к компьютеру?».
Добавлено через 1 минуту
Сообщение от insect_87
Вы могли бы уточнить, MAC адреса в кадр вставляет сетевой уровень или сам канальный? ARP — 3 же уровень?
Добавлено через 1 час 16 минут
Сообщение от boris9057
Сообщение от insect_87
Вообщем, подведу итоги. Некоторые вопросы, возможно, продублированы. Для лучшего понимания нарисовал схему сети и таблиц коммутации (смотреть рисунок ниже). Таблицы коммутации представил в виде «деревьев» (несколько вариантов). В одном варианте предполагал, что коммутатор имеет MAC, а в другом нет. Требуется сделать следующее:
1) Проверить есть ли верная таблица или нет?
2) Может ли при коммутаторах одного типа первая таблица быть верной, а при коммутаторах второго типа — вторая.
3) Хаб никогда не изменят MAC? Свитч в зависимости от типа или тоже никогда?
4) Роутер всегда меняет MAC? (дополнительный вопрос)
5) Как коммутатор может узнать, что на порту висит коммутатор, а не конечная машина?
Сообщение от MR_Andrew
1) всю таблицу точно проверять не нужно. Будете смотреть по конкретному маку/порту.
2) при неизменной топологии таблицы всегда будут одинаковые, вне зависимости от коммутаторов. А менеджмент коммутаторов надо выносить в отдельный ВЛАН.
3) Хаб и свич — никогда. Они только перенаправляют пакеты.
4) любое L3-устройство меняет мак. Подчеркиваю — Л3! Свичи тоже Л3 бывают.
5) по специальным протоколам. Но в чистом виде коммутатору все-равно что там висит. Хоть админ повесился
Добавлено через 2 минуты
и вообще, забудьте про хабы! их уже никто не использует.
Сообщение от boris9057
Сообщение от MR_Andrew
Немного не понял, хотел, чтобы посмотрели какая из таблиц коммутации правильная. Там два варианта таблиц для первого коммутатора. Особенно интересуют порты 1 и 4.
Добавлено через 23 секунды
Сообщение от MR_Andrew
Нет, про выдачу своего МАК)
Добавлено через 10 минут
Сообщение от MR_Andrew
Сообщение от boris9057
любой управляемый коммутатор имеет свой мак-адрес. Уникальный. У него настраивается менеджмент, прибивается ему ИП-адрес. В таком случае он будет выдавать свой мак в таблицу на равне со всеми.
Первый вариант абсолютно верен. Но при условии, что используем неуправляемое оборудование.
Добавлено через 2 минуты
Сообщение от boris9057
Сообщение от boris9057
обязательно. Одно без другого не бывает.
Ну разве что если вообще выключить удаленное управление, то может тогда он свой мак выдавать и не будет.
Сообщение от boris9057
Сообщение от MR_Andrew
Чем дальше, тем больше вопросов) Вот смотрите, если я правильно понимаю, то switch — многопортовый повторитель и он только перенаправляет пакеты, не изменяя MAC-адреса отправителя. Теперь дальше, пусть в примере выше все switch управлямые и имеют MAC-адреса. Чтобы MAC s3 попал в таблицу коммутации MAC s1, свитч s3 должен отправить фрейм на порт 4 свича s1. Но свитч s3 же не генерирует фреймы свои, он только перенаправляет фреймы хостов F и E, причем не меняя их MAC. Тогда получается, что фрейм с MAC s3 никогда не придет на порт свича s1. Верно?
Добавлено через 4 минуты
Или все таки предполагается, что при управлении switch он будет как-то отвечать, например, требовать пароль? Например, если switch 3 управляется хостом A, который подключен к switch 1, то при аутентификации хоста A на свиче 3, свич 3 будет отправлять какие-то запросы, например, требования пароля. Или, обычно, управляющий хост соединяется со свичом напрямую?
Принцип работы коммутатора
Вот мы и добрались до одного из первых интересных устройств. Коммутатор — одно из ключевых устройств каждой сети.
Рисунок 3.2 Принцип работы коммутатора
Прежде чем переходить к подробному разбору работы коммутатора, поясним некоторые элементы рисунка 3.2. 03FA — MAC-адрес записан не полностью для экономии места, Fa0/1 — номер порта (отверстие, в которое вставляется провод), Fa — FastEthernet, означает что максимальная скорость передачи данных на этом интерфейсе 100 Мб/с, 0/1 — порядковый номер порта.
Рассмотрим пример на рисунке 3.2 пошагово:
Шаг 1. ПК1 формирует фрейм, предназначенный ПК3, указывая свой MAC-адрес в качестве отправителя (адрес отправителя 03FA, source 03FA) и MAC-адрес ПК3 в качестве получателя (адрес получателя 05FE, destination 05FE, допустим, что ПК1 уже знал MAC-адрес ПК3).
Рисунок 3.3 Фрейм от ПК1 к ПК3
Шаг 2. Коммутатор (далее Switch) принимает фрейм, смотрит на адрес отправителя (source 03FA) и ищет его в свой таблице коммутации (таблице MAC-адресов). Если такой адрес отсутствует, добавляет в таблицу (Fa0/1 | 03FA). Такая запись будет означать для него, что такой-то MAC-адрес сидит на таком-то порте и, если фрейм будет предназначен для этого МАС-адреса (МАС-адрес получателя совпадет со строчкой в таблице коммутации), то он отправит его на этот порт. Т.е. в самом начале switch изучает сеть, заполняет таблицу коммутации MAC-адресами и портами. После того, как он разобрался с адресом отправителя, он смотрит на адрес получателя (destination 05FE), в нашем случае его еще нет в таблице коммутации, тогда логика switch — отправить на все порты, кроме того порта, от которого данный фрейм пришел.
Шаг 3. Начнем с ПК2, который тоже примет фрейм, но сразу же его отбросит, т.к. адрес получателя не его адрес. ПК3 примет фрейм и обработает его (передаст на уровень выше). Допустим ПК3 формирует ответ, указывая свой MAC-адрес в качестве отправителя (05FE) и MAC-адрес ПК1 в качестве получателя (03FA)
Рисунок 3.4 Фрейм от ПК3 к ПК1
Шаг 4. По аналогии с шагом 2, первым делом switch смотрит на MAC-адрес отправителя и, если его нет в таблице МАС-адресов, добавляет (в нашем случае добавляет), в противном случае обновит таймер, по истечении заданного промежутка времени строчка с этим адресом будет удалена. Далее switch смотрит на МАС-адрес получателя, в нашем примере он находит его в своей таблице коммутации, и, значит, передаст фрейм напрямую через порт fa0/1.
Итоги нашего примера
Главное — не только понимать, как это работает, но еще уметь представлять, как ходит фрейм по сети, поэтому ниже представлена «гифка», которая визуализирует выше описанный пример (рисунок 3.4). В «гифке» показано, когда и как заполняется таблица коммутации. В конце фиолетовый фрейм идет прямиком от ПК1 до ПК3. Это говорит о том, что таблица коммутации заполнена, и коммутатор знает, на какие порты отправлять этот фрейм.
Рисунок 3.5 Заполнение таблицы коммутации
Коммутация. Port security
Получить достижение
Пройдите тест, чтобы получить достижение.
Уже получили 186 пользователей
Основные моменты работы коммутатора
Мы уже изучили как работает коммутатор здесь, поэтому предлагаю повторить только основные моменты и переходить к практике.
- Когда фрейм приходит на коммутатор, первое, что он делает – смотрит на адрес отправителя и ищет его в своей таблице коммутации, если его там нет, то добавляет MAC-адрес и порт, с которого пришел это фрейм. Таким образом, коммутатор изучает сеть.
- После того, как таблица коммутации (таблица MAC адресов) заполнена, коммутатор в соответствии с ней отправляет фрейм на порт, где находится получатель.
- При получении широковещательного фрейма (с MAC-адресом получателя FFFF:FFFF:FFFF), коммутатор рассылает его на все порты, кроме того, откуда он пришел. Такая же логика, если MAC-адреса получателя фрейма нет в таблице коммутации.
Защита портов (port security)
Port security – функция коммутатора, которая позволяет жестко обозначить MAC-адрес/-адреса, которым разрешено проходить через этот порт.
Виды “запоминания MAC-адресов”
- Статический – жестко указывается MAC-адрес/-адреса.
- Динамический – указать максимальное кол-во MAC-адресов.
- Смешанный – некоторые адреса указываются жестко, а так же указывается максимальное кол-во MAC-адресов.
Виды реагирования на нарушение (violation mode)
- Protect – только отбрасывает фреймы, нарушающие установленную политику (если MAC-адреса нет в списке или превышено максимальное кол-во адресов).
- Restrict – отбрасывает фреймы, нарушающие установленную политику, и логгирует событие (заносит информацию в журнал).
- Shutdown – при нарушении политики, переводит порт в состояние error-disabled (выключен из-за ошибки).
Общая информация
Packet Tracer version: 6.2.0
Рабочий файл: скачать
Тип: Теория и практика
Версия файла: 2.0
Уже получили: 186 пользователей
Получить достижение
Код активации можно получить выполнив практическое задание
Уже получили 136 пользователей
Начальные данные
В данной практической работе будет использоваться схема сети, которая представлена на рисунке ниже.
Схема сети для практической работы
- Разобрать строение таблицы коммутации.
- Научиться выключать порты коммутатора.
- Изучить как выключение порта влияет на таблицу коммутации.
- Изучить функцию Port Security.
- Добавить описание к интерфейсу.
Выполнение
Ваш основной инструмент при выполнении практического задания – ПК0.
Разобрать строение таблицы коммутации.
Зайдем на коммутатор SW1. Адрес: 10.23.10.101, пароль: cisco123.
Чтобы посмотреть таблицу коммутации (таблицу MAC-адресов), надо вызвать команду sh mac address-table . Давайте вызовем ее и изучим более подробно.
Первый столбец пока нас не очень интересует, т.к. с VLAN-ами мы еще не познакомились. Второй столбец озаглавлен “Mac Address”, и под ним список MAC-адресов. Третий столбец говорит о том, как был добавлен MAC-адрес – динамически или статически (если его кто-то самостоятельно добавил в таблицу). Четвертый столбец “Порты” говорит нам, с какого порта был узнан MAC-адрес.
Таблица коммутации очень полезный инструмент, с помощью нее можно определить на каком порту находится то или иное устройство (чаще всего ноутбук или компьютер). Если вы видите много MAC-адресов на одном порту, то это может означать только одно – за этим портом находится еще один коммутатор (чаще всего так, но есть исключения).
Предлагаю определить на каком порту находится наш компьютер (ПК0). Для начала надо узнать его MAC-адрес. Это можно сделать из командной строки самого компьютера, вызвав команду ipconfig /all , рисунок 3.1. Под словами “Physical Address” подразумевается MAC-адрес. Теперь мы можем уверенно сказать, что наш компьютер подключен к порту Fa0/3.
Рисунок 3.1 Вывод команды ipconfig /all
Научиться выключать порты коммутатора.
Порты на коммутаторе выключаются с помощью команды shutdown . Давайте выключим порт Fa0/5, где предположительно находится еще один коммутатор (после того, как вы узнаете как выключать порты, самое главное по ошибке не выключить порт Fa0/3, иначе работу придется начинать заново).
В начале разберем название порта Fa0/5. Fa – FastEthernet (вы должны уже знать какая максимальная пропускная способность на этом порту, а если нет, читать тут), 0/5 – 0 говорит о том, что этот порт принадлежит коммутатору (можно сказать и по-другому – припаян к основной плате), если это число отлично от нуля, то порт принадлежит модулю (платы-расширения, покупаются отдельно и вставляются для увеличения кол-ва портов), число 5 это порядковый номер порта. Теперь выключаем порт.
Все просто, зашли в режим настройки порта interf fastEthernet 0/5 , выключили порт shutdown . Теперь посмотрим в каком он статусе.
Мы уже знаем, что такое состояние up, теперь узнаем другие состояния. Administratively down – выключен вручную с помощью команды shutdown . Down – выключен по причине отсутствия физической среды (провод не вставлен).
Чтобы включить порт, надо в режиме настройки этого порта выполнить команду no shutdown (частица no отменяет последующую команду, мы еще не раз ее встретим).
Изучить как выключение порта влияет на таблицу коммутации.
Посмотрим на таблицу коммутации после выключения порта.
Как мы видим, MAC-адресов стало гораздо меньше, что было предсказуемо.
Изучить функцию Port Security.
Давайте включим порт Fa0/5 и зайдем на коммутатор SW_2. Адрес: 10.23.10.102, пароль: cisco123.На портах коммутатора SW_2 Fa0/12 и Fa0/20 находятся ПК2 и ПК3, мы будем использовать их для наших экспериментов.
Начнем с простой настройки Port Security на порту Fa0/12. По умолчанию, если мы не задали ни одного параметра, а просто включили Port Security, то выставляются настройки: максимум адресов на порту – 1, MAC-адрес – первый попавшийся, в случае нарушения – выключить порт. Ниже представлена настройка и просмотр состояния.
(ох, как много букв, сейчас разберемся). Первое, что мы сделали, это настроили port-security командой switchport port-security (перед этим мы ввели команду switchport mode access , она обязательна, но значение ее мы узнаем в следующем разделе). Частица do позволяет в режиме конфигурации вызывать команды из privilege mode, бывает очень полезно, но не всегда удобно. Команда show port-security позволяет просмотреть краткую статистику всех интерфейсов с настроенной функцией port-security. Более подробную информацию по конкретному интерфейсу мы можем посмотреть при помощи команды show port-security interface , важные моменты в выводе этой команды прокомментированы. Так же обратите внимание, что в таблице коммутации к порту Fa0/12 прикреплен MAC-адрес.
Теперь настроим порт Fa0/20 на определенный MAC-адрес и выставим другую политику в случае нарушения, например restrict.
Мы специально настроили в port-security фиктивный MAC-адрес, что бы посмотреть как поведет себя политика.Отличие режимов Restrict от Protect, только в логирование нарушений, Protect отбрасывает фреймы и нигде это не фиксирует. Просматривая статистику, мы можем видеть, что счетчик нарушений растет, и что последний MAC-адрес, появившийся на этом порту, отличается от того, который мы указали.
Чтобы получить достижение оставьте порт Fa0/20 в режиме Restrict и ничего не меняйте
Разберем последний пример с портом Fa0/1, на этот раз в случае нарушения порт выключится (не промахнитесь, если будете настраивать на порту Fa0/2, то отпилите сук на котором сидите).
Мы настроили на порту максимум 3 адреса, если политика нарушается, порт выключается. Так как на порту Fa0/1 больше чем три адреса, порт выключился из соображений безопасности. Вывод команды sh port interf fa0/1 показывает статус порта как Secure-shutdown или “безопасно-выключен”, а в самом конце мы можем видеть из-за какого MAC-адреса это произошло. Теперь разберемся как реанимировать такой порт.
Соответственно, чтобы реанимировать порт, который был выключен из соображения безопасности, надо его вручную выключить, а потом включить. В нашем случае перед тем как реанимировать, мы отключили Port-Security командой no switchport port-security , что бы после “поднятия” он снова не “упал”.
Добавить описание к интерфейсу.
На последок давайте добавим описание к интерфейсу. Делается это в режиме настройки интерфейса с помощью команды description . Описание порта бывает очень полезно, особенно если на нем “висит” что-то очень важное. Предлагаю подписать порт Fa0/1 и Fa0/12.
Чтобы получить достижение настройте описание так же.
Общая информация
Packet Tracer version: 6.2.0
Рабочий файл: скачать
Тип: Самостоятельная работа
Версия файла: 2.0
Уже получили: 186 пользователей
Урок 14. Принцип работы сетевого коммутатора Ethernet
Сегодня мы поговорим о том, как все же работает коммутатор.
Как мы уже знаем коммутаторы являются L2 устройствами, так как работают на канальном уровне. Они обрабатывают заголовок Ethernet кадра, а точнее MAC адреса получателя и отправителя, а также контрольную сумму.
Каждый коммутатор составляет таблицу MAC адресов (CAM table) всех хостов, подключенных в его порты.
Каким же образом он составляет эту таблицу ?
При включении питания коммутатора его таблица пуста.
Далее начинается процесс обучения, который представлен ниже
При поступлении каждого кадра на вход коммутатора, МАС адрес отправителя вносится в таблицу МАС адресов с указанием интерфейса, принявшего данный кадр.
Далее анализируется МАС адрес получателя. Если его нет в таблице, то коммутатор ретранслирует принятые кадры на все порты, кроме принявшего.
Если же МАС адрес получателя найден в таблице, то кадр направляется указанному в таблице интерфейсу.
Таблица адресов динамическая и сохраняется только в оперативной памяти, то есть при отключении питания таблица удаляется.
Все МАС адреса хранятся в таблице ограниченное время ( aging-time ), которое в некоторых коммутаторах можно изменить.
Почему нельзя сохранять адреса вечно?
Дело в том, что может понадобиться реконфигурация сети и некоторые хосты могут быть отключены от портов коммутатора, поэтому таблица адресов уже будет неактуальна, что приведет к неправильному функционированию сети.
Коммутаторы могут работать в одном из 3-х режимов:
- С промежуточным хранением ( Store and forward ). Коммутатор принимает кадр, затем проверяет на наличие ошибок. Если кадр не содержит ошибок, то коммутатор пересылает его получателю.
- Сквозной ( Cut-through ). Коммутатор считывает МАС адрес получателя и сразу пересылает его получателю. Проверка на ошибки в данном режиме отсутствует.
- Бесфрагментный ( Fragment-free ). Принимаются первые 64 байта, которые анализируются на наличие ошибок и коллизий, а затем кадр пересылается получателю.
В целом процесс коммутации происходит довольно быстро.
А с чем это связано?
Во-первых, сам процесс происходит на втором уровне (канальный уровень), что снижает время на обработку данных. Во-вторых, коммутация происходит не программно, а аппаратно. То есть для этого используются специализированные чипы ASIC.
Это специальные микросхемы, которые разрабатываются для решения узкопрофильных задач. Кроме того, они отличаются быстротой работы.
Широковещательный домен и домен коллизий
Как мы знаем, благодаря коммутации, каждому хосту выделяется канал связи. В то время, как в концентраторе эта возможность отсутствует. То есть имеется общий канал для всех хостов, благодаря чему и возникают коллизии. Поэтому такое подключение или сеть (с общим каналом) называют доменом коллизий.
Как видно из рисунка в сети с концентратором в определенный момент времени может вести передачу только один компьютер. В то время как остальные ждут, когда он закончит. Такой режим связи называется полудуплексным (half duplex).
Ситуация усугубляется, когда в сети растет количество компьютеров, так как времени на передачу для каждого компьютера выделяется все меньше и меньше.
То есть, чем больше компьютеров и концентраторов, тем хуже?
Верно. Пропускная способность такой сети (домена коллизий) значительно снижается.
А как называется подключение с коммутатором?
Так как в коммутаторе коллизии в принципе исключены, то каждый его порт считается доменом коллизий. То есть в принципе, к порту можно подключить несколько хостов посредством концентратора, но пропускная способность при этом изменится только в рамках конкретного порта, к которому подключен концентратор. В сети с коммутаторами все хосты могут принимать и передавать данные одновременно, не мешая друг другу. Такой режим связи называется дуплексным (full duplex).
Сама же сеть, в которой присутствуют только коммутаторы называется широковещательным доменом, так как коммутаторы обрабатывают и пропускают широковещательный (broadcast) трафик.
Что такое широковещательный (broadcast) трафик?
Это когда в качестве получателя указывается адрес, говорящий, что данный пакет/кадр предназначен всем хостам.
Как выглядит такой адрес?
В МАС адресе устанавливаются все единицы, то есть FF.FF.FF.FF.FF.
Как называется обычный трафик, когда в качестве получателя указывается конкретный получатель?
Такой трафик называется одноадресатный (unicast).
Маршрутизаторы широковещательный трафик не пропускают, поэтому каждый порт маршрутизатора образует широковещательный домен.
Про MAC-таблицы в коммутаторах
Привет, Хабр!
Случается так, что иногда хочется отойти от скупой теории и перейти к практике. Сейчас как раз такой случай. Желание возникло на фоне воспоминаний того, как мы делали коммутатор. Он — вещь довольно простая, делов-то — пересылай пакеты с порта на порт, да статистику веди. Все оказалось немного сложнее.
Вы когда нибудь задумывались над тем, как происходит коммутация? На курсах говорят, что пакет из порта (А) анализируется и пересылается согласно таблице соответствия в порт (Б) назначения, или во все порты, кроме (А) источника, если запись не найдена. Остановимся на таблице и разберем как происходит ее заполнение.
Самый простой способ — записывать адреса в один столбец, а соответствующие порты в другой, т.е. используется линейный алгоритм поиска, асимптотическая сложность которого O(n). Худший случай для алгоритма — отсутствие искомого ключа, поскольку требуется просмотреть все ключи, и в коммутации встречается очень часто: включение нового клиента, включение или перезагрузка устройства. На самом деле, всевозможные оптимизации и хитрые алгоритмы, применяемые в чипах сетевых устройств, заточены либо для экономии памяти чипа, либо для удовлетворения требований по скорости обработки.
Используемый же большинством производителей способ — хеш-таблица. Смысл в том, что при вычислении хеш-функции от MAC-адреса на выходе имеем сразу адрес в памяти (индекс), обратившись по которому вычитываем номер порта. Если ничего не вычитали, то пишем по этому адресу текущий порт. Сложность алгоритма поиска O(1). Правда существует проблема коллизий, но при правильно подобранной хеш-функции она минимизируется. Остается лишь проверить коллизионную стойкость устройства. Наглядный пример такой таблицы и частичной коллизии:
У большинства записей хеш-индексы не совпадают, что в результате дает мгновенное чтение по индексу, но у Jack и Andrew случилось так, что хеш совпал и проявилась коллизия. В этом случае для разрешения коллизии производится линейный поиск по вложенному списку, что увеличивает задержку, но происходит это в единичных случаях.
Проверку можно провести, пополняя хеш-таблицу новыми записями. Записи могут быть последовательными или случайным, а так же принадлежать специальным типам.
Специальные типы MAC-адресов:
- broadcast (FF:FF:FF:FF:FF:FF)
- multicast (младший бит первого октета равен 1)
Не все адреса должны записываться в таблицу. Например туда не попадают широковещательный и мультикаст адреса. В результате я написал небольшой генератор raw-пакетов, которому передаются параметры:
В обычном режиме генерируются пакеты с последовательными MAC-адресами, изменяются последние два октета, что дает 65536 комбинаций и для большинства коммутаторов более чем достаточно (всегда можно увеличить). Первый октет выставлен в 0x00, т.е. адреса юникастовые. Случайные адреса генерируются в двух режимах:
- первый октет 0x00, остальные случайны
- все октеты случайны
Предусмотрен запуск в медленном режиме, например для тестирования aging-time.
Интересно как на флуд отреагирует оборудование: проверим в двух режимах (последовательном и случайном) сколько адресов попадут в таблицу. У меня в тестовой стойке 5 коммутаторов:
- cisco 3750G-16TD-S (12288 MAC)
- zyxel gs-3012f (16384 MAC)
- d-link dgs-3426 (8192 MAC)
- metrotek x10-24 (16368 MAC)
Специально никто их не отбирал — просто используются для различных целей, вроде проверки на совместимость STP (про это вообще можно отдельную статью написать). Пойдем по порядку.
cisco 3750G-16TD-S
cisco-01-TEST#sh ver
Cisco IOS Software, C3750 Software (C3750-ADVIPSERVICESK9-M), Version 12.2(46)SE, RELEASE SOFTWARE (fc2)
Copyright 1986-2008 by Cisco Systems, Inc.
Compiled Thu 21-Aug-08 15:43 by nachen
Image text-base: 0x00003000, data-base: 0x01940000
ROM: Bootstrap program is C3750 boot loader
BOOTLDR: C3750 Boot Loader (C3750-HBOOT-M) Version 12.2(18)SE1, RELEASE SOFTWARE (fc2)
cisco-01-TEST uptime is 4 weeks, 5 days, 1 hour, 11 minutes
System returned to ROM by power-on
System image file is «flash:c3750-advipservicesk9-mz.122-46.SE»
This product contains cryptographic features and is subject to United
States and local country laws governing import, export, transfer and
use. Delivery of Cisco cryptographic products does not imply
third-party authority to import, export, distribute or use encryption.
Importers, exporters, distributors and users are responsible for
compliance with U.S. and local country laws. By using this product you
agree to comply with applicable laws and regulations. If you are unable
to comply with U.S. and local laws, return this product immediately.
A summary of U.S. laws governing Cisco cryptographic products may be found at:
www.cisco.com/wwl/export/crypto/tool/stqrg.html
If you require further assistance please contact us by sending email to
export@cisco.com.
cisco WS-C3750G-16TD (PowerPC405) processor (revision F0) with 118784K/12280K bytes of memory.
Processor board ID CSG0921P0EB
Last reset from power-on
1 Virtual Ethernet interface
16 Gigabit Ethernet interfaces
1 Ten Gigabit Ethernet interface
The password-recovery mechanism is enabled.
512K bytes of flash-simulated non-volatile configuration memory.
Base ethernet MAC Address: 00:14:1C:D7:33:80
Motherboard assembly number: 73-9143-08
Power supply part number: 341-0045-01
Motherboard serial number: CAT091916AM
Power supply serial number: LIT09130942
Model revision number: F0
Motherboard revision number: A0
Model number: WS-C3750G-16TD-S
System serial number: CSG0921P0EB
Top Assembly Part Number: 800-24591-04
Top Assembly Revision Number: A0
CLEI Code Number: COM1D10ARB
Hardware Board Revision Number: 0x01
Switch Ports Model SW Version SW Image
— — — — —
* 1 17 WS-C3750G-16TD 12.2(46)SE C3750-ADVIPSERVICESK9-M
Configuration register is 0xF
cisco-01-TEST#show mac address-table count
Total Mac Address Space Available: 5507
cisco-01-TEST#show mac address-table count
Mac Entries for Vlan 20:
— Dynamic Address Count: 11
Static Address Count: 0
Total Mac Addresses: 11
Total Mac Address Space Available: 5496
cisco-01-TEST#sh mac- vl 20
Mac Address Table
— Vlan Mac Address Type Ports
— — — — 20 0001.0203.0001 DYNAMIC Gi1/0/1
20 0001.0203.0002 DYNAMIC Gi1/0/1
20 0001.0203.0003 DYNAMIC Gi1/0/1
20 0001.0203.0004 DYNAMIC Gi1/0/1
20 0001.0203.0005 DYNAMIC Gi1/0/1
20 0001.0203.0006 DYNAMIC Gi1/0/1
20 0001.0203.0007 DYNAMIC Gi1/0/1
20 0001.0203.0008 DYNAMIC Gi1/0/1
20 0001.0203.0009 DYNAMIC Gi1/0/1
20 0001.0203.000a DYNAMIC Gi1/0/1
20 50af.7312.8435 DYNAMIC Gi1/0/1
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
cisco-01-TEST#show mac address-table count
Mac Entries for Vlan 20:
— Dynamic Address Count: 5724
Static Address Count: 0
Total Mac Addresses: 5724
Total Mac Address Space Available: 192
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
Итог
Получается, что заявленная производителем характеристика не соответствует действительности (если я не прав, например влияет IOS и для него есть особые заметки, дайте знать с пруфом). Разница почти в два раза. Даже если опираться на сведения, выводимые самой системой (5507), то им тоже не стоит верить: в быстром режиме таблица недозаполнилась на 1219 адресов, а в медленном постоянно перестраивалась и показания суммарного счетчика менялись, от режима генерации (последовательно/случайно) не зависит.
ZyXEL GS-3012F
zyxel-01-T# show version
Current ZyNOS version: V3.80(LR.2) | 03/04/2008
zyxel-01-T# show system-information
System Name: zyxel-01-TEST
System Contact:
System Location:
Ethernet Address: 00:19:cb:2d:d8:49
ZyNOS F/W Version: V3.80(LR.2) | 03/04/2008
RomRasSize: 3234952
System up Time: 837:37:39 (11f939d5 ticks)
Bootbase Version: V3.00 | 01/14/2005
ZyNOS CODE: RAS Mar 4 2008 11:51:18
Product Model: GS-3012F
Итог
В целом, хорошие результаты. Коммутатор не “теряет” адреса, генерируемые на скорости порта. Размер таблицы и ее заполнение соответствует заявленному.
D-Link DGS-3426
DGS-3426:admin#show tech_support
Command: show tech_support
[SYS 2000-1-1 00:07:51]
Boot Time: 31 Dec 1999 23:59:59
RTC Time: 2000/01/01 00:07:51
Boot PROM Version: Build 1.00-B13
Firmware Version: Build 2.70.B56
Hardware Version: 2A1
MAC Address: 00-17-9A-10-CD-AA
[STACKING 2000-1-1 00:07:51]
DGS-3426:admin#show fdb vlan TEST
Command: show fdb vlan TEST
VID VLAN Name MAC Address Port Type
— — — — — 20 TEST 00-01-02-03-00-01 1 Dynamic
20 TEST 00-01-02-03-00-02 1 Dynamic
20 TEST 00-01-02-03-00-03 1 Dynamic
20 TEST 00-01-02-03-00-04 1 Dynamic
20 TEST 00-01-02-03-00-05 1 Dynamic
20 TEST 00-01-02-03-00-06 1 Dynamic
20 TEST 00-01-02-03-00-07 1 Dynamic
20 TEST 00-01-02-03-00-08 1 Dynamic
20 TEST 00-01-02-03-00-09 1 Dynamic
20 TEST 00-01-02-03-00-0A 1 Dynamic
20 TEST 00-01-02-03-00-0B 1 Dynamic
20 TEST 00-01-02-03-00-0C 1 Dynamic
20 TEST 00-01-02-03-00-0D 1 Dynamic
DGS-3426:admin#show fdb vlan TEST
Command: show fdb vlan TEST
VID VLAN Name MAC Address Port Type
— — — — — 20 TEST 00-00-01-33-82-27 1 Dynamic
20 TEST 00-00-03-43-5A-66 1 Dynamic
20 TEST 00-00-03-66-C4-5D 1 Dynamic
20 TEST 00-00-05-32-86-B1 1 Dynamic
20 TEST 00-00-07-6D-3A-40 1 Dynamic
20 TEST 00-00-0A-0F-E0-AE 1 Dynamic
20 TEST 00-00-22-3A-81-2B 1 Dynamic
20 TEST 00-00-24-68-E9-70 1 Dynamic
20 TEST 00-00-35-00-B0-93 1 Dynamic
20 TEST 00-00-3F-04-BE-95 1 Dynamic
20 TEST 00-00-43-01-A4-A4 1 Dynamic
20 TEST 00-00-71-27-41-8A 1 Dynamic
20 TEST 00-00-92-3C-2A-5A 1 Dynamic
20 TEST 00-00-92-5B-94-62 1 Dynamic
20 TEST 00-00-95-26-49-3D 1 Dynamic
20 TEST 00-00-9F-2E-45-DF 1 Dynamic
20 TEST 00-00-9F-6D-BE-1E 1 Dynamic
20 TEST 00-00-A7-75-72-4F 1 Dynamic
20 TEST 00-00-A9-17-38-DD 1 Dynamic
20 TEST 00-00-AF-5A-8C-54 1 Dynamic
Итог
У этого коммутатора тоже все в порядке. Таблица заполняется как заявлено, на случайных данных показатели незначительно хуже. А в качестве “фишки” таблица маков при просмотре сортируется (возможно потому, что никакого строкового процессора нет, например как у cisco).
Metrotek X10-24
# show-mac-table -v 20 | wc -l
16368
# show-mac-table -v 20 | wc -l
14429
Итог
Для инкрементарных адресов таблица полностью соответствует заявленной, а вот для случайных показатели ухудшаются, хотя и лежат в довольно близком к заявленному диапазоне.
Вывод
Если ваша сеть построена таким образом, что домен L2 включает множество устройств, то можно ждать беды. Странным оказалось то, что самый весомый вендор показал худшие результаты. Отсюда мораль — доверяй только собственным глазам и тесту, а не маркетинговым заявлениям с мелким шрифтом в сноске.
Я был так удивлен положением вещей, что решил об этом написать. Если есть возможность провести такой же тест, то прошу опубликовать результаты в комментариях.
Про MAC-таблицы в коммутаторах
Привет, Хабр!
Случается так, что иногда хочется отойти от скупой теории и перейти к практике. Сейчас как раз такой случай. Желание возникло на фоне воспоминаний того, как мы делали коммутатор. Он — вещь довольно простая, делов-то — пересылай пакеты с порта на порт, да статистику веди. Все оказалось немного сложнее.
Вы когда нибудь задумывались над тем, как происходит коммутация? На курсах говорят, что пакет из порта (А) анализируется и пересылается согласно таблице соответствия в порт (Б) назначения, или во все порты, кроме (А) источника, если запись не найдена. Остановимся на таблице и разберем как происходит ее заполнение.
Самый простой способ — записывать адреса в один столбец, а соответствующие порты в другой, т.е. используется линейный алгоритм поиска, асимптотическая сложность которого O(n). Худший случай для алгоритма — отсутствие искомого ключа, поскольку требуется просмотреть все ключи, и в коммутации встречается очень часто: включение нового клиента, включение или перезагрузка устройства. На самом деле, всевозможные оптимизации и хитрые алгоритмы, применяемые в чипах сетевых устройств, заточены либо для экономии памяти чипа, либо для удовлетворения требований по скорости обработки.
Используемый же большинством производителей способ — хеш-таблица. Смысл в том, что при вычислении хеш-функции от MAC-адреса на выходе имеем сразу адрес в памяти (индекс), обратившись по которому вычитываем номер порта. Если ничего не вычитали, то пишем по этому адресу текущий порт. Сложность алгоритма поиска O(1). Правда существует проблема коллизий, но при правильно подобранной хеш-функции она минимизируется. Остается лишь проверить коллизионную стойкость устройства. Наглядный пример такой таблицы и частичной коллизии:
У большинства записей хеш-индексы не совпадают, что в результате дает мгновенное чтение по индексу, но у Jack и Andrew случилось так, что хеш совпал и проявилась коллизия. В этом случае для разрешения коллизии производится линейный поиск по вложенному списку, что увеличивает задержку, но происходит это в единичных случаях.
Проверку можно провести, пополняя хеш-таблицу новыми записями. Записи могут быть последовательными или случайным, а так же принадлежать специальным типам.
Специальные типы MAC-адресов:
- broadcast (FF:FF:FF:FF:FF:FF)
- multicast (младший бит первого октета равен 1)
Не все адреса должны записываться в таблицу. Например туда не попадают широковещательный и мультикаст адреса. В результате я написал небольшой генератор raw-пакетов, которому передаются параметры:
send_pkt -i -n -i interface for packet sending -n number of MAC's -s work in slow mode -r generate random Src MAC for each new packet -a set random for all octets
В обычном режиме генерируются пакеты с последовательными MAC-адресами, изменяются последние два октета, что дает 65536 комбинаций и для большинства коммутаторов более чем достаточно (всегда можно увеличить). Первый октет выставлен в 0x00, т.е. адреса юникастовые. Случайные адреса генерируются в двух режимах:
- первый октет 0x00, остальные случайны
- все октеты случайны
Предусмотрен запуск в медленном режиме, например для тестирования aging-time.
Интересно как на флуд отреагирует оборудование: проверим в двух режимах (последовательном и случайном) сколько адресов попадут в таблицу. У меня в тестовой стойке 5 коммутаторов:
- cisco 3750G-16TD-S (12288 MAC)
- zyxel gs-3012f (16384 MAC)
- d-link dgs-3426 (8192 MAC)
- metrotek x10-24 (16368 MAC)
Специально никто их не отбирал — просто используются для различных целей, вроде проверки на совместимость STP (про это вообще можно отдельную статью написать). Пойдем по порядку.
cisco 3750G-16TD-S
Информация о платформе:
cisco-01-TEST#sh ver
Cisco IOS Software, C3750 Software (C3750-ADVIPSERVICESK9-M), Version 12.2(46)SE, RELEASE SOFTWARE (fc2)
Copyright 1986-2008 by Cisco Systems, Inc.
Compiled Thu 21-Aug-08 15:43 by nachen
Image text-base: 0x00003000, data-base: 0x01940000
ROM: Bootstrap program is C3750 boot loader
BOOTLDR: C3750 Boot Loader (C3750-HBOOT-M) Version 12.2(18)SE1, RELEASE SOFTWARE (fc2)
cisco-01-TEST uptime is 4 weeks, 5 days, 1 hour, 11 minutes
System returned to ROM by power-on
System image file is «flash:c3750-advipservicesk9-mz.122-46.SE»
This product contains cryptographic features and is subject to United
States and local country laws governing import, export, transfer and
use. Delivery of Cisco cryptographic products does not imply
third-party authority to import, export, distribute or use encryption.
Importers, exporters, distributors and users are responsible for
compliance with U.S. and local country laws. By using this product you
agree to comply with applicable laws and regulations. If you are unable
to comply with U.S. and local laws, return this product immediately.
A summary of U.S. laws governing Cisco cryptographic products may be found at:
www.cisco.com/wwl/export/crypto/tool/stqrg.html
If you require further assistance please contact us by sending email to
export@cisco.com.
cisco WS-C3750G-16TD (PowerPC405) processor (revision F0) with 118784K/12280K bytes of memory.
Processor board ID CSG0921P0EB
Last reset from power-on
1 Virtual Ethernet interface
16 Gigabit Ethernet interfaces
1 Ten Gigabit Ethernet interface
The password-recovery mechanism is enabled.
512K bytes of flash-simulated non-volatile configuration memory.
Base ethernet MAC Address: 00:14:1C:D7:33:80
Motherboard assembly number: 73-9143-08
Power supply part number: 341-0045-01
Motherboard serial number: CAT091916AM
Power supply serial number: LIT09130942
Model revision number: F0
Motherboard revision number: A0
Model number: WS-C3750G-16TD-S
System serial number: CSG0921P0EB
Top Assembly Part Number: 800-24591-04
Top Assembly Revision Number: A0
CLEI Code Number: COM1D10ARB
Hardware Board Revision Number: 0x01
Switch Ports Model SW Version SW Image
— — — — —
* 1 17 WS-C3750G-16TD 12.2(46)SE C3750-ADVIPSERVICESK9-M
Configuration register is 0xF
Странно, но пишет, что у нее памяти всего на 5507 адресов:
cisco-01-TEST#show mac address-table count
Total Mac Address Space Available: 5507
Настройки тестового порта:
interface GigabitEthernet1/0/1
switchport access vlan 20
switchport mode access
end
Пустая таблица адресов для тестового vlan:
cisco-01-TEST#sh mac- vl 20
Mac Address Table
— Vlan Mac Address Type Ports
— — — ——
После пробного теста (./send_pkt -i eth0 -n 10) наблюдаем следующее:
cisco-01-TEST#show mac address-table count
Mac Entries for Vlan 20:
— Dynamic Address Count: 11
Static Address Count: 0
Total Mac Addresses: 11
Total Mac Address Space Available: 5496
cisco-01-TEST#sh mac- vl 20
Mac Address Table
— Vlan Mac Address Type Ports
— — — — 20 0001.0203.0001 DYNAMIC Gi1/0/1
20 0001.0203.0002 DYNAMIC Gi1/0/1
20 0001.0203.0003 DYNAMIC Gi1/0/1
20 0001.0203.0004 DYNAMIC Gi1/0/1
20 0001.0203.0005 DYNAMIC Gi1/0/1
20 0001.0203.0006 DYNAMIC Gi1/0/1
20 0001.0203.0007 DYNAMIC Gi1/0/1
20 0001.0203.0008 DYNAMIC Gi1/0/1
20 0001.0203.0009 DYNAMIC Gi1/0/1
20 0001.0203.000a DYNAMIC Gi1/0/1
20 50af.7312.8435 DYNAMIC Gi1/0/1
Одиннадцатый адрес — это адрес нетбука, с которого запускался тест. Доступное место для адресов уменьшился.
Сгенерируем заведомо большее, чем заявлено, количество адресов (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
Как видно, заполнить всю таблицу удалось не сразу и попали далеко не все адреса, вот вам и колизионность. Пробую еще раз:
cisco-01-TEST#show mac address-table count
Mac Entries for Vlan 20:
— Dynamic Address Count: 5724
Static Address Count: 0
Total Mac Addresses: 5724
Total Mac Address Space Available: 192
И медленный режим (максимум, что удалось вместить):
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
Итог
Получается, что заявленная производителем характеристика не соответствует действительности (если я не прав, например влияет IOS и для него есть особые заметки, дайте знать с пруфом). Разница почти в два раза. Даже если опираться на сведения, выводимые самой системой (5507), то им тоже не стоит верить: в быстром режиме таблица недозаполнилась на 1219 адресов, а в медленном постоянно перестраивалась и показания суммарного счетчика менялись, от режима генерации (последовательно/случайно) не зависит.
ZyXEL GS-3012F
Информация о платформе:
zyxel-01-T# show version
Current ZyNOS version: V3.80(LR.2) | 03/04/2008
zyxel-01-T# show system-information
System Name: zyxel-01-TEST
System Contact:
System Location:
Ethernet Address: 00:19:cb:2d:d8:49
ZyNOS F/W Version: V3.80(LR.2) | 03/04/2008
RomRasSize: 3234952
System up Time: 837:37:39 (11f939d5 ticks)
Bootbase Version: V3.00 | 01/14/2005
ZyNOS CODE: RAS Mar 4 2008 11:51:18
Product Model: GS-3012F
Генерируем с превышением 17000 (поддерживается 16384):
zyxel-01-T# show mac-count
No: 16312
Медленный режим не использовался, т.к. даже в быстром таблица заполнена практически полностью.
Рандомный тест:
zyxel-01-T# show mac-count
No: 14331
Итог
В целом, хорошие результаты. Коммутатор не “теряет” адреса, генерируемые на скорости порта. Размер таблицы и ее заполнение соответствует заявленному.
D-Link DGS-3426
Информация о платформе:
DGS-3426:admin#show tech_support
Command: show tech_support
[SYS 2000-1-1 00:07:51]
Boot Time: 31 Dec 1999 23:59:59
RTC Time: 2000/01/01 00:07:51
Boot PROM Version: Build 1.00-B13
Firmware Version: Build 2.70.B56
Hardware Version: 2A1
MAC Address: 00-17-9A-10-CD-AA
[STACKING 2000-1-1 00:07:51]
Генерируем с превышением 9000 (поддерживается 8192):
DGS-3426:admin#show fdb vlan TEST
Command: show fdb vlan TEST
VID VLAN Name MAC Address Port Type
— — — — — 20 TEST 00-01-02-03-00-01 1 Dynamic
20 TEST 00-01-02-03-00-02 1 Dynamic
20 TEST 00-01-02-03-00-03 1 Dynamic
20 TEST 00-01-02-03-00-04 1 Dynamic
20 TEST 00-01-02-03-00-05 1 Dynamic
20 TEST 00-01-02-03-00-06 1 Dynamic
20 TEST 00-01-02-03-00-07 1 Dynamic
20 TEST 00-01-02-03-00-08 1 Dynamic
20 TEST 00-01-02-03-00-09 1 Dynamic
20 TEST 00-01-02-03-00-0A 1 Dynamic
20 TEST 00-01-02-03-00-0B 1 Dynamic
20 TEST 00-01-02-03-00-0C 1 Dynamic
20 TEST 00-01-02-03-00-0D 1 Dynamic
Медленный режим, как и в предыдущем тесте не использовался, поскольку таблица заполнена почти полностью.
Рандомный тест:
DGS-3426:admin#show fdb vlan TEST
Command: show fdb vlan TEST
VID VLAN Name MAC Address Port Type
— — — — — 20 TEST 00-00-01-33-82-27 1 Dynamic
20 TEST 00-00-03-43-5A-66 1 Dynamic
20 TEST 00-00-03-66-C4-5D 1 Dynamic
20 TEST 00-00-05-32-86-B1 1 Dynamic
20 TEST 00-00-07-6D-3A-40 1 Dynamic
20 TEST 00-00-0A-0F-E0-AE 1 Dynamic
20 TEST 00-00-22-3A-81-2B 1 Dynamic
20 TEST 00-00-24-68-E9-70 1 Dynamic
20 TEST 00-00-35-00-B0-93 1 Dynamic
20 TEST 00-00-3F-04-BE-95 1 Dynamic
20 TEST 00-00-43-01-A4-A4 1 Dynamic
20 TEST 00-00-71-27-41-8A 1 Dynamic
20 TEST 00-00-92-3C-2A-5A 1 Dynamic
20 TEST 00-00-92-5B-94-62 1 Dynamic
20 TEST 00-00-95-26-49-3D 1 Dynamic
20 TEST 00-00-9F-2E-45-DF 1 Dynamic
20 TEST 00-00-9F-6D-BE-1E 1 Dynamic
20 TEST 00-00-A7-75-72-4F 1 Dynamic
20 TEST 00-00-A9-17-38-DD 1 Dynamic
20 TEST 00-00-AF-5A-8C-54 1 Dynamic
Итог
У этого коммутатора тоже все в порядке. Таблица заполняется как заявлено, на случайных данных показатели незначительно хуже. А в качестве “фишки” таблица маков при просмотре сортируется (возможно потому, что никакого строкового процессора нет, например как у cisco).
Metrotek X10-24
Этот коммутатор, точнее его разработка — причина статьи. В нем используется ASIC матрица от японской компании Fujitsu. Изучая документацию, можно сделать вывод, что экономили ресурсы очень серьезно, поэтому и были выполнены независимые тесты.
Информация о платформе:
x10-00002# show version report
Origin: Metrotek
Label: Metrotek
Codename: oxygen
Version: 1.0.1
Date: Wed, 4 Mar 2015 11:04:37 UTC
Architectures: armel i386
Components: contrib non-free
Description: Metrotek X10-24 Gigabit Ethernet Switch
Генерируем с превышением 17000 (поддерживается 16368):
root@x10-00002:~# show-mac-table -v 20 | wc -l
16368
Медленный режим не использовался
Рандомный тест:
root@x10-00002:~# show-mac-table -v 20 | wc -l
14429
Итог
Для инкрементарных адресов таблица полностью соответствует заявленной, а вот для случайных показатели ухудшаются, хотя и лежат в довольно близком к заявленному диапазоне.
Вывод
Если ваша сеть построена таким образом, что домен L2 включает множество устройств, то можно ждать беды. Странным оказалось то, что самый весомый вендор показал худшие результаты. Отсюда мораль — доверяй только собственным глазам и тесту, а не маркетинговым заявлениям с мелким шрифтом в сноске.
Я был так удивлен положением вещей, что решил об этом написать. Если есть возможность провести такой же тест, то прошу опубликовать результаты в комментариях.
Спасибо за внимание.
- сети передачи данных
- тестирование сетей передачи данных
- таблиц коммутации
- Информационная безопасность
- Тестирование IT-систем
Таблица коммутации при VLAN
Эта ветка закрыта для дальнейших ответов. Вы можете создать новую тему, чтобы поделиться своими идеями или задать вопросы.
Таблица коммутации при VLAN
Эта ветка закрыта для дальнейших ответов. Вы можете создать новую тему, чтобы поделиться своими идеями или задать вопросы.
Таблица коммутации при VLAN
Полезный: 0
Дата регистрации: 2017-12-07
2017-12-07 08:20:42
Полезный: 0
Дата регистрации: 2017-12-07
Таблица коммутации при VLAN
2017-12-07 08:20:42
Здравствуйте.
Возникла проблема с реализацией VLAN на оборудовании TP-link.
Пробуем реализовать схему указанную в FAQ http://www.tp-linkru.com/FAQ-544.html на T1700G-28TQ.
Это классический вариант, когда к общему ресурсу организован доступ с помощью VLAN.
Все прекрасно реализуется и работает. VLAN разделяются и пакеты бегают куда надо. Но это только если проверять командой пинг. )
Однако если начать использовать с реальной нагрузкой то сеть «ложится».
Производительность при такой схеме работы отсутствует.
Как мне кажется я смог понять в чем дело.
Проблема в том как заполняется таблица коммутации при такой схеме.
Если посмотреть таблицу коммутации, то там мы видим что в нее автоматически добавляется только одна запись на каждый порт c указанием что этот порт принадлежит только одной VLAN, той какой PVID стоит на порту. Хотя например, порт номер 9 присутствует сразу в 3 VLAN. Порты клиентов 2-3 и 4-8 присутствуют сразу в двух VLAN.
И получается что коммутатор превращается в хаб 🙁 до тех пор пока ручками не пропишешь статическую таблицу коммутации для этих вланов 🙁
Действительно, таблица коммутации заполняется только записями с мак адресами и портами с тем номером VLAN который указан на порту как PVID.
А нужно добавлять для каждого порта несколько записей «мак — порт — VLAN» и прописать на каждый порт столько строк, в скольких VLAN этот порт состоит.
И получается что трафик из всех портов льется на все порты в том VLAN какой PVID стоит на порту.
«В том случае, если МАС-адрес приемника в поступившем кадре неизвестен (в таблице коммутации отсутствует соответствующая запись), коммутатор создает множество копий этого кадра и передает их через все свои порты, за исключением того, на который он поступил. Этот процесс называется лавинной передачей (flooding).»
Таким образом сеть ложится, так как во все порты VLAN льется весь трафик и отбрасывается уже только на сетевой карте.
Проблема решается если ручками прописать в таблицу коммутации нужные записи. Нужно прописать на каждый порт столько строк, в скольких VLAN этот порт состоит.!
Если я ручками это делаю и тогда все начинает работать как нужно, с возможной производительностью.
Подскажите, пожалуйста, как сделать так что-бы таблица коммутации заполнялась автоматически записями на каждый порт в зависимости от того в скольких VLAN этот порт состоит.
Или объясните, что нужно сделать что-бы трафик с VLAN общего ресурса не попадал на порты, которым он не предназначен, а адресовался только тому порту откуда он запрошен.
Как посмотреть таблицу mac адресов коммутатора
Коммутаторы получают MAC-адрес источника кадра, полученного на входной интерфейс , и регистрируют его в таблице коммутации . Кадры, которые имеют MAC-адрес назначения, зарегистрированный в таблице, могут переключаться только на соответствующий интерфейс без использования широковещательной передачи на все порты. Если в течение 300 секунд с какого-либо узла нет передачи кадров, то такой узел удаляется из таблицы. Не дожидаясь истечения заданного времени, администратор может вручную произвести очистку динамически созданных адресов путем использования команды clear mac -address-table в привилегированном режиме.
Таблица коммутации ( таблица MAC-адресов ) может формироваться, изменяться и дополняться в статическом режиме администратором. При этом повышается безопасность сети. Чтобы сконфигурировать статически МАС- адрес на заданный интерфейс , применяется следующая команда :
Ниже приведен пример конфигурирования коммутатора Switch_A, на котором уже были динамически сформированы три строки таблицы с интерфейсами FA0/7, FA0/8 и FA0/9, отображаемые по команде
Затем администратором статически конфигурируется новая запись :
которая отображается в таблице коммутации (Type – STATIC):
Подобную информацию можно также увидеть по команде sh run :
Чтобы удалить созданные статически МАС-адреса, нужно использовать следующую команду:
15.3. Конфигурирование безопасности на коммутаторе
Порты коммутатора доступны через структурированную кабельную систему. Кто угодно может включиться в один из портов – потенциальный пункт входа в сеть неправомочного пользователя. При этом злоумышленник может сконфигурировать коммутатор так, чтобы он функционировал как концентратор , а это позволяет проанализировать весь трафик сети, проходящий через коммутатор . Поэтому коммутаторы должны обеспечивать безопасность портов (port security).
Статическое конфигурирование администратором МАС-адресов обеспечивает безопасность путем жесткой привязки адреса к интерфейсу, однако это достаточно сложно. Для обеспечения динамического режима безопасности используется ряд команд конфигурирования коммутатора . Например, динамический режим обеспечения безопасности на интерфейсе Fast Ethernet 0/7 конфигурируется следующей последовательностью команд:
или последовательностью, применяемой в виртуальных локальных сетях :
После ввода указанной последовательности команд таблица коммутации приобретает следующий вид:
То есть привязка адреса к интерфейсу реализуется автоматически.
С целью повышения безопасности ограничивают число МАС-адресов интерфейса коммутатора , которым разрешено присоединяться к данному интерфейсу. Например, число МАС-адресов на порт может быть ограничено до 1. В этом случае первый адрес , динамически изученный коммутатором , считается безопасным адресом:
Верификация режима port security конкретного интерфейса обеспечивается командой show port security :
Третья строка распечатки показывает режим реагирования системы на нарушения безопасности, который по умолчанию установлен в состояние «Выключение» ( Shutdown ). Нарушение безопасности происходит, когда станция, чей MAC-адрес отсутствует в таблице коммутации , пытается получить доступ к интерфейсу. При этом порт немедленно выключается и формируется сообщение о нарушении безопасности. Существуют еще два режима реагирования на нарушения безопасности: режим защиты ( Protect ) и режим ограничения ( Restrict ). В этих режимах пакеты с неизвестными исходящими МАС-адресами уничтожаются. При этом в режиме ограничения формируется уведомление, а в режиме защиты – не формируется. Установить режим «Выключение» можно по команде
Для повышения безопасности рекомендуется выключить все неиспользуемые порты коммутатора по команде shutdown . Ниже приведен пример фрагмента распечатки команды sh run, где показано, что интерфейс Fast Ethernet 0/10 выключен.
Выключение режима безопасности port security обеспечивается формой no команды, по которой режим вводился.
10. Конфигурирование таблицы MAC-адресов
Таблица MAC — это таблица соответствий между MAC-адресами устройств назначения и портами коммутатора. MAC-адреса могут быть статические и динамические. Статические MAC-адреса настраиваются пользователем вручную, имеют наивысший приоритет, хранятся постоянно и не могут быть перезаписаны динамическими MAC-адресами. MAC-адреса — это записи, полученные коммутатором в пересылке кадров данных, и хранятся в течение ограниченного периода времени. Когда коммутатор получает кадр данных для дальнейшей передачи, он сохраняет MAC-адрес кадра данных вместе с соответствующим ему портом назначения. Когда MAC-таблица опрашивается для поиска MAC-адреса назначения, при нахождении нужного адреса кадр данных отправляется на соответствующий порт, иначе коммутатор отправляет кадр на широковещательный домен. Если динамический MAC-адрес не встречается в принятых кадрах данных длительное время, запись о нем будет удалена из MAC-таблицы коммутатора.
Возможны 2 операции с таблицей MAC-адресов:
1. Поиск MAC-адреса;
2. Пересылка или фильтрация кадра данных в соответствии с таблицей.
10.1.1. Получение таблицы MAC-адресов
Таблица MAC-адресов может быть создана динамически или статически. Статическая конфигурация заключается в ручной настройке соответствия между MAC-адресами и портами. Динамическое обучение — это процесс, в котором коммутатор изучает соответствие между MAC-адресами и портами и регулярно обновляет таблицу MAC. В этом разделе мы рассмотрим процесс динамического обучения MAC-таблицы.
Рисунок 28.1 — Динамическое обучение MAC-таблицы.
Топология на Рисунке 28.1: 4 ПК подключены к коммутатору. ПК1 и ПК2 подключены из одного физического сегмента (домена коллизий) подключены к порту коммутатора Ethernet 1/0/5, а ПК3 и ПК4, также из одного физического сегмента, подключены к порту Ethernet 1/0/12.
Начальная таблица MAC-адресов не содержит записей. Рассмотрим пример обмена кадрами между ПК1 и ПК3 и процесс обучения MAC-адресов:
Когда ПК1 отправляет кадр к ПК3, MAC-адрес источника 00-01-11-11-11-11 из этого сообщения, а также порт коммутатора Ethernet 1/0/5 заносятся в MAC-таблицу;
В это же время коммутатор определяет, что сообщение предназначено для 00-01-33-33-33-33, а поскольку MAC-таблица содержит только запись соответствия MAC-адреса 00-01-11-11-11-11 и порта Ethernet 1/0/5, коммутатор передает это сообщение всем портам коммутатора (при условии, что все порты принадлежат VLAN 1 по-умолчанию);
ПК3 и ПК4, подключенные к порту Ethernet 1/0/12, получают кадр, отправленный ПК1, но так как MAC-адрес назначения 00-01-33-33-33-33, ПК4 не отвечает, только ПК3 отвечает ПК1. Когда порт Ethernet 1/0/12 принимает кадр от ПК3, в таблице MAC-адресов создается запись соответствия адреса 00-01-33-33-33-33 порту Ethernet 1/0/12.
Теперь таблица MAC-адресов имеет 2 записи: адрес 00-01-11-11-11-11 — порт Ethernet 1/0/5 и адрес 00-01-33-33-33-33 — порт Ethernet 1/0/12.
После обмена кадрами между ПК1 и ПК3, коммутатор больше не получает кадры от ПК1 и ПК3. Поэтому записи соответствия MAC-адресов в MAC-таблице удаляются через 300 или 600 секунд (простое или двойне время жизни). По-умолчанию выбрано время жизни в 300 секунд, но оно может быть изменено на коммутаторе.
10.1.2. Пересылка или фильтрация
Коммутатор может переслать или отфильтровать принятые кадры данных в соответствии с таблицей MAC-адресов. Рассмотрим пример на рисунке 28.1: допустим, что коммутатор изучил MAC-адреса ПК1 и ПК3, а пользователь вручную добавил соответствия для MAC-адресов ПК2 и ПК4. Таблица MAC-адресов будет выглядеть следующим образом:
MAC-адрес
Номер порта
Способ добавления
Пересылка данных в соответствии с таблицей MAC-адресов:
Если ПК 1 отправит кадр к ПК 3, коммутатор пересылает принятый кадр данных с порта 1/0/5 в порт 1/0/12.
2. Фильтрация в соответствии с таблицей MAC-адресов: Если ПК 1 отправит кадр к ПК 2, коммутатор, проверив таблицу MAC-адресов, находит ПК 2 в том же физическом сегменте, что и ПК 1 — коммутатор отбрасывает этот кадр.
Коммутатором могут пересылаться 3 типа кадров:
Широковещательные. Коммутатор может определять коллизии в домене, но не в широковещательном. Если VLAN не определена, все устройства, подключенные к коммутатору, находятся в одном широковещательном домене. Когда коммутатор получает широковещательный кадр, он передает кадр во все порты. Если на коммутаторе настроены VLAN, таблица MAC-адресов соответствующим образом адаптирована для добавления информации о VLAN и широковещательные кадры будут пересылаться только в те порты, в которых настроена данная VLAN.
Многоадресные. Если многоадресный домен неизвестен, коммутатор пересылает многоадресный кадр как широковещательный. Если на коммутаторе включен IGMP-snooping и сконфигурирована многоадресная группа, коммутатор будет пересылать многоадресный кадр только портам этой группы.
Одноадресные. Если на коммутаторе не настроена VLAN, коммутатор ищет MAC-адрес назначения в таблице MAC-адресов и отправляет кадр на соответствующий порт. Если соответствие MAC-адреса и порта не найдено в таблице MAC-адресов, коммутатор пересылает одноадресный кадр как широковещательный. Если на коммутаторе настроен VLAN, коммутатор пересылает кадр только в этом VLAN. Если в таблице MAС-адресов найдено соответствие для VLAN, отличного от того, в котором был принят кадр, коммутатор пересылает кадр широковещательно в том VLAN, в котором кадр был принят.
10.2. Конфигурация таблицы MAC-адресов.
Настройка времени жизни MAC-адреса
Настройка статической пересылки и фильтрации
Очистка таблицы MAС-адресов
Обучение таблицы MAС-адресов через CPU
Настройка времени жизни MAC-адреса
Команда
Описание
no mac-address-table aging-time
! В режиме глобальной конфигурации
Настройка времени жизни MAC-адреса
Применение настроек по-умолчанию
2. Настройка статической пересылки и фильтрации
Команда
Описание
mac-address-table address vlan [interface ethernet ] | [source|destination|both]
no mac-address-table [address ] [vlan ][interface ethernet ]
! В режиме глобальной конфигурации
Настройка статических записей и фильтрации
Удаление статических записей и фильтрации
l2-address-table static-multicast address vlan vlan Источник
Артём Санников
Языки программирования
- Python
- Синтаксис
- Работа со строками
- Списки
- Кортежи
- Конструкции if
- Словари
- Ввод данных (input)
- Циклы while
- Функции
- Команда import
- ООП
- Переменные
- Константы
- Операторы
- Управляющие конструкции
- Функции
- Введение
Базы данных
- MySQL
- Введение
- Выборка данных
- Операторы
- Манипуляции с данными
- Функции агрегирования
- Сортировка и группировка
- Комбинированные запросы
- Объединение таблиц
- Математические функции
- Работа со строками
- Введение
- Firebase (Web)
- Введение
- Манипуляции с данными
- Регулярные выражения
- Представления
- Процедуры
- Курсоры
- Триггеры
- Обработка транзакций
- Оконные функции
Программное обеспечение
- Работа с графикой
- Adobe Photoshop
- Balsamiq
- Wireless Network Watcher
- WinMTR
- PuTTY
- MyPublicWiFi
- WifiInfoView
- TCPView
- CurrPorts
- Git
- Denwer
- Xampp
- Microsoft Excel
- KeePass
- Sublime Text
- TeamViewer
- Radmin
- Google Chrome
- Mozilla Firefox
- Safari
- Opera
- Internet Explorer
- Game Protector
Операционные системы
- Windows 7
- Установка
- Оптимизация
- Командная строка
- Установка
- Установка
- Программы
- Команды
- Руководства
Мобильная разработка
Менеджеры пакетов
Сетевые технологии
- Академия Cisco
- CCNA: Introduction to Networks
- CCNA: Routing and Switching Essentials
- Обеспечение безопасности корпоративных сетей
- Cisco Packet Tracer
- Список терминов
CMS системы
- WordPress
- Настройки
- Плагины
- Создание темы
- Функции
- Хаки
Математика
SEO продвижение
- Основы продвижения
- Терминология
- Внутренняя оптимизация
- Внешняя оптимизация
Социальные сети
- ВКонтакте
- Wiki разметка
- Виджеты
- Сервисы
- Мобильное приложение
- Виджеты
Психология
Хостинг провайдер
Смартфоны
- Главная
- Блог
- Портфолио
- Контакты
- Бесплатные материалы
Таблица MAC-адресов. Получение информации о MAC-адресах. CCNA Routing and Switching.
Коммутатор создает таблицу MAC-адресов динамически, проверяя MAC-адрес источника в кадрах, принимаемых портом. Он пересылает кадры на основе совпадения между MAC-адресом назначения в кадре и записью в таблице MAC-адресов.
При каждом поступлении кадра Ethernet в коммутатор выполняется следующий процесс.
Получение информации: проверка MAC-адреса источника
Рисунок 1 — Получение информации: проверка MAC-адреса источника.
При каждом поступлении кадра в коммутатор выполняется проверка на наличие новой информации. Проверяются MAC-адрес источника, указанный в кадре, и номер порта, по которому кадр поступает в коммутатор.
- Если MAC-адрес источника отсутствует, он добавляется в таблицу вместе с номером входящего порта. В примере на рисунке 1 компьютер PC-A отправляет кадр Ethernet компьютеру PC-D. Коммутатор добавляет MAC-адрес компьютера PC-A в таблицу.
- Если MAC-адрес источника уже существует, коммутатор обновляет таймер обновления для этой записи. По умолчанию в большинстве коммутаторов Ethernet данные в таблице хранятся в течение 5 минут.
Примечание: Если MAC-адрес источника указан в таблице, но с другим портом, коммутатор считает эту запись новой. Запись заменяется на тот же MAC-адрес, но с более актуальным номером порта.
Пересылка: проверка MAC-адреса назначения
Рисунок 2 — Пересылка: проверка MAC-адреса назначения.
Если MAC-адрес назначения является индивидуальным адресом, коммутатор ищет совпадение между MAC-адресом назначения в кадре и записью в таблице MAC-адресов.
- Если MAC-адрес назначения есть в таблице, коммутатор пересылает кадр через указанный порт.
- Если MAC-адреса назначения нет в таблице, коммутатор пересылает кадр через все порты, кроме входящего порта. Эта ситуация называется «неизвестный индивидуальный адрес» (unknown unicast). Как показано на рисунке 2, в таблице коммутатора нет MAC-адреса назначения для компьютера PC-D, поэтому он пересылает кадр через все порты, кроме порта 1.
Примечание: Если MAC-адрес назначения является широковещательным или групповым адресом, коммутатор также пересылает кадр через все порты, кроме входящего порта.
Источник: Академия Cisco.
Другие статьи из категории «CCNA: Introduction to Networks»
Основы конфигурирования коммутаторов
15.2. Управление таблицей коммутации
Коммутаторы получают MAC-адрес источника кадра, полученного на входной интерфейс , и регистрируют его в таблице коммутации . Кадры, которые имеют MAC-адрес назначения, зарегистрированный в таблице, могут переключаться только на соответствующий интерфейс без использования широковещательной передачи на все порты. Если в течение 300 секунд с какого-либо узла нет передачи кадров, то такой узел удаляется из таблицы. Не дожидаясь истечения заданного времени, администратор может вручную произвести очистку динамически созданных адресов путем использования команды clear mac -address-table в привилегированном режиме.
Таблица коммутации ( таблица MAC-адресов ) может формироваться, изменяться и дополняться в статическом режиме администратором. При этом повышается безопасность сети. Чтобы сконфигурировать статически МАС- адрес на заданный интерфейс , применяется следующая команда :
Ниже приведен пример конфигурирования коммутатора Switch_A, на котором уже были динамически сформированы три строки таблицы с интерфейсами FA0/7, FA0/8 и FA0/9, отображаемые по команде
Затем администратором статически конфигурируется новая запись :
которая отображается в таблице коммутации (Type – STATIC):
Подобную информацию можно также увидеть по команде sh run :
Чтобы удалить созданные статически МАС-адреса, нужно использовать следующую команду:
15.3. Конфигурирование безопасности на коммутаторе
Порты коммутатора доступны через структурированную кабельную систему. Кто угодно может включиться в один из портов – потенциальный пункт входа в сеть неправомочного пользователя. При этом злоумышленник может сконфигурировать коммутатор так, чтобы он функционировал как концентратор , а это позволяет проанализировать весь трафик сети, проходящий через коммутатор . Поэтому коммутаторы должны обеспечивать безопасность портов (port security).
Статическое конфигурирование администратором МАС-адресов обеспечивает безопасность путем жесткой привязки адреса к интерфейсу, однако это достаточно сложно. Для обеспечения динамического режима безопасности используется ряд команд конфигурирования коммутатора . Например, динамический режим обеспечения безопасности на интерфейсе Fast Ethernet 0/7 конфигурируется следующей последовательностью команд:
или последовательностью, применяемой в виртуальных локальных сетях :
После ввода указанной последовательности команд таблица коммутации приобретает следующий вид:
То есть привязка адреса к интерфейсу реализуется автоматически.
С целью повышения безопасности ограничивают число МАС-адресов интерфейса коммутатора , которым разрешено присоединяться к данному интерфейсу. Например, число МАС-адресов на порт может быть ограничено до 1. В этом случае первый адрес , динамически изученный коммутатором , считается безопасным адресом:
Верификация режима port security конкретного интерфейса обеспечивается командой show port security :
Третья строка распечатки показывает режим реагирования системы на нарушения безопасности, который по умолчанию установлен в состояние «Выключение» ( Shutdown ). Нарушение безопасности происходит, когда станция, чей MAC-адрес отсутствует в таблице коммутации , пытается получить доступ к интерфейсу. При этом порт немедленно выключается и формируется сообщение о нарушении безопасности. Существуют еще два режима реагирования на нарушения безопасности: режим защиты ( Protect ) и режим ограничения ( Restrict ). В этих режимах пакеты с неизвестными исходящими МАС-адресами уничтожаются. При этом в режиме ограничения формируется уведомление, а в режиме защиты – не формируется. Установить режим «Выключение» можно по команде
Для повышения безопасности рекомендуется выключить все неиспользуемые порты коммутатора по команде shutdown . Ниже приведен пример фрагмента распечатки команды sh run, где показано, что интерфейс Fast Ethernet 0/10 выключен.
Выключение режима безопасности port security обеспечивается формой no команды, по которой режим вводился.