Какие сведения анализирует и использует коммутатор ethernet для построения таблицы адресов

Обновлено: 05.07.2024

Сегодня мы поговорим о том, как все же работает коммутатор.

Как мы уже знаем коммутаторы являются 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).

Маршрутизаторы широковещательный трафик не пропускают, поэтому каждый порт маршрутизатора образует широковещательный домен.

Вот мы и добрались до одного из первых интересных устройств. Коммутатор - одно из ключевых устройств каждой сети.

Рисунок 3.2 Принцип работы коммутатора

Рисунок 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

Рисунок 3.3 Фрейм от ПК1 к ПК3

Шаг 3. Начнем с ПК2, который тоже примет фрейм, но сразу же его отбросит, т.к. адрес получателя не его адрес. ПК3 примет фрейм и обработает его (передаст на уровень выше). Допустим ПК3 формирует ответ, указывая свой MAC-адрес в качестве отправителя (05FE) и MAC-адрес ПК1 в качестве получателя (03FA)

Рисунок 3.4 Фрейм от ПК3 к ПК1

Рисунок 3.4 Фрейм от ПК3 к ПК1

Шаг 4. По аналогии с шагом 2, первым делом switch смотрит на MAC-адрес отправителя и, если его нет в таблице МАС-адресов, добавляет (в нашем случае добавляет), в противном случае обновит таймер, по истечении заданного промежутка времени строчка с этим адресом будет удалена. Далее switch смотрит на МАС-адрес получателя, в нашем примере он находит его в своей таблице коммутации, и, значит, передаст фрейм напрямую через порт fa0/1.

Итоги нашего примера

Switch (коммутатор) после включения начинает изучать сеть, он узнает, на каком порту находится тот или иной MAC адрес. Switch смотрит на MAC адрес источника полученного фрейма и добавляет его в свою таблицу коммутации, если такого нет (очень важная информация!). Далее switch смотрит на адрес получателя и ищет его в своей таблице, если не находит, то рассылает на все порты кроме того, от которого тот был получен.

Главное - не только понимать, как это работает, но еще уметь представлять, как ходит фрейм по сети, поэтому ниже представлена "гифка", которая визуализирует выше описанный пример (рисунок 3.4). В "гифке" показано, когда и как заполняется таблица коммутации. В конце фиолетовый фрейм идет прямиком от ПК1 до ПК3. Это говорит о том, что таблица коммутации заполнена, и коммутатор знает, на какие порты отправлять этот фрейм.

Рисунок 3.5 Заполнение таблицы коммутации

Широковещательный фрейм

Широковещательный фрейм (broadcast frame) - фрейм, где адресом получателя (destination) является широковещательный адрес (broadcast) - FFFF.FFFF.FFFF. Также у switch есть стандартное поведение при получении широковещательного фрейма - рассылает его на все порты, кроме того откуда он пришел (очень важная информация!).

Преимущество Switch над Hub:

  1. Возможность передавать и принимать фреймы одновременно (это и есть full-duplex).
  2. Избавление от коллизий (при условии full-duplex).
  3. Возможность передавать несколько потоков фреймов за счет буферизации (временного хранения в памяти).
  4. Switch может понимать фреймы, а, значит, может передавать их на требуемые порты (за счет таблицы коммутации, таблицы MAC-адресов).

Наш Спонсор

block

Наш Спонсор

block

Если вы нашли в тексте ошибку, выделите текст и нажмите Ctrl + Enter.

Спасибо, за проявленный интерес к этому проекту.

Вы нашли ошибку здесь:

А надо так: Это поле заполнять не обязательно, но приветствуется :).


Привет, Хабр!
Случается так, что иногда хочется отойти от скупой теории и перейти к практике. Сейчас как раз такой случай. Желание возникло на фоне воспоминаний того, как мы делали коммутатор. Он — вещь довольно простая, делов-то — пересылай пакеты с порта на порт, да статистику веди. Все оказалось немного сложнее.

  • broadcast (FF:FF:FF:FF:FF:FF)
  • multicast (младший бит первого октета равен 1)
  • первый октет 0x00, остальные случайны
  • все октеты случайны
  • cisco 3750G-16TD-S (12288 MAC)
  • zyxel gs-3012f (16384 MAC)
  • d-link dgs-3426 (8192 MAC)
  • metrotek x10-24 (16368 MAC)

cisco 3750G-16TD-S

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.

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 адресов:

Total Mac Address Space Available: 5507

interface GigabitEthernet1/0/1
switchport access vlan 20
switchport mode access
end

После пробного теста (./send_pkt -i eth0 -n 10) наблюдаем следующее:

Mac Entries for Vlan 20:
— Dynamic Address Count: 11
Static Address Count: 0
Total Mac Addresses: 11

Total Mac Address Space Available: 5496


Одиннадцатый адрес — это адрес нетбука, с которого запускался тест. Доступное место для адресов уменьшился.
Сгенерируем заведомо большее, чем заявлено, количество адресов (12288), я указал 13000:

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: 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

Mac Entries for Vlan 20:
— Dynamic Address Count: 4417
Static Address Count: 0
Total Mac Addresses: 4417

Total Mac Address Space Available: 1499

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


Генерируем с превышением 17000 (поддерживается 16384):

Медленный режим не использовался, т.к. даже в быстром таблица заполнена практически полностью.
Рандомный тест:

Итог
В целом, хорошие результаты. Коммутатор не “теряет” адреса, генерируемые на скорости порта. Размер таблицы и ее заполнение соответствует заявленному.

D-Link DGS-3426

[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]

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


Медленный режим, как и в предыдущем тесте не использовался, поскольку таблица заполнена почти полностью.
Рандомный тест:

Итог
У этого коммутатора тоже все в порядке. Таблица заполняется как заявлено, на случайных данных показатели незначительно хуже. А в качестве “фишки” таблица маков при просмотре сортируется (возможно потому, что никакого строкового процессора нет, например как у cisco).

Metrotek X10-24


Этот коммутатор, точнее его разработка — причина статьи. В нем используется ASIC матрица от японской компании Fujitsu. Изучая документацию, можно сделать вывод, что экономили ресурсы очень серьезно, поэтому и были выполнены независимые тесты.
Информация о платформе:

Генерируем с превышением 17000 (поддерживается 16368):

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

Вывод

Если ваша сеть построена таким образом, что домен L2 включает множество устройств, то можно ждать беды. Странным оказалось то, что самый весомый вендор показал худшие результаты. Отсюда мораль — доверяй только собственным глазам и тесту, а не маркетинговым заявлениям с мелким шрифтом в сноске.
Я был так удивлен положением вещей, что решил об этом написать. Если есть возможность провести такой же тест, то прошу опубликовать результаты в комментариях.

Ethernet – технология локальных сетей, отвечающая за передачу данных по кабелю, доступную для устройств компьютерных и промышленных сетей. Данная технология располагается на канальном (подуровни LLC и MAC) и физическом уровнях модели OSI.

Компьютерные сети от А до Я: технология Ethernet и коммутаторы

По скорости передачи данных существуют такие технологии:

  1. Ethernet – 10 Мб/с
  2. Fast Ethernet – 100 Мб/с
  3. Gigabit Ethernet – 1 Гб/с
  4. 10G Ethernet – 10 Гб/с

Современное оборудование позволяет достигать скорости в 40 Гб/с и 100 Гб/с: такие технологии получили название 40GbE и 100GbE соответственно.

Также стоит выделить классический и коммутируемый Ethernet. Первый изначально использовал разделяемую среду в виде коаксиального кабеля, который позже был вытеснен концентраторами (hub). Основные недостатки – низкая безопасность и плохая масштабируемость (искажение данных при одновременной передаче 2-мя и более компьютерами, также известное как "коллизия").

Классический Ethernet

Коммутируемый Ethernet является более новой и усовершенствованной технологией, которая используется по сей день. Чтобы устранить недостатки предыдущей версии, разделяемую среду исключили и использовали соединение точка-точка. Это стало возможным благодаря новым устройствам под названием "коммутаторы" (switch).

Компьютерные сети от А до Я: технология Ethernet и коммутаторы

Классическая технология Ethernet давно и успешно заменена новыми технологиями, но некоторые нюансы работы сохранились. Рассмотрим классическую версию.

Физический уровень включает в себя 3 варианта работы Ethernet, которые зависят от сред передачи данных. Это:

  • коаксиальный кабель
  • витая пара
  • оптоволокно

Канальный, в свою очередь, включил методы доступа, а также протоколы, что ничем не отличаются для различных сред передачи данных. Подуровни LLC и MAC в классической технологии присутствуют вместе.

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

По типам MAC-адреса разделяются на:

  • Индивидуальные (для отдельных компьютеров).
  • Групповые (для нескольких компьютеров).
  • Широковещательные (для всех компьютеров сети).

Адреса могут назначаться как производителем оборудования (централизованно), так и администратором сети (локально).

Технология Ethernet и формат кадра:

Компьютерные сети от А до Я: технология Ethernet и коммутаторы

Также не стоит забывать о коллизиях. Если сигнал, который принят, отличается от переданного, это означает, что произошла коллизия.

Технология CSMA/CD разработана с учетом возникновения коллизий и предполагает их контроль. Модель CSMA/CD выглядит следующим образом:

Модель CSMA/CD

Классический Ethernet плох тем, что становится неработоспособным при нагрузке более чем 30%.

На сегодняшний день это наиболее оптимальная альтернатива, которая полностью исключает возможность появления коллизий и связанных с ними проблем.

Суть коммутируемого Ethernet в том, что вместо хаба используется свич (коммутатор) – устройство, которое работает на канальном уровне и обладает полносвязной топологией, что обеспечивает соединение всех портов друг с другом напрямую по технологии точка-точка.

Таблицы коммутации есть в каждом таком устройстве. Они описывают, какие компьютеры к какому порту свича подключены. Чтобы узнать MAC-адреса, используется алгоритм обратного обучения, а для передачи данных – алгоритм прозрачного моста.

Простейшая таблица коммутации:

таблица коммутации

Алгоритм обратного обучения работает таким образом: коммутатор принимает кадры, анализирует заголовок и извлекает из него адрес отправителя. Таким образом, к определенному порту подключен компьютер с конкретным MAC-адресом.

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

Технология Ethernet претерпела немало изменений с момента своего появления. Сегодня она способна обеспечить высокоскоростное соединение, лишенное коллизий и не ограниченное небольшой нагрузкой сети, как это было в случае с классическим Ethernet.

В современных локальных сетях используются коммутаторы, которые по своей функциональности значительно эффективнее концентраторов. Больше нет разделяемой среды и связанных с ней коллизий, затрудняющих работу с сетью. Свичи анализируют заголовки и передают кадры только конечному получателю по принципу точка-точка. Способны "изучать" сеть благодаря таблице коммутации и алгоритму обратного обучения.

Плюсами коммутируемого Ethernet являются масштабируемость, высокая производительность и безопасность.

Читайте также: