Принципы работы L2-устройств
Принципы работы L2-устройств
С канальным уровнем обычно связаны следующие сетевые соединительные устройства:
- мосты;
- коммутаторы;
- сетевые интерфейсные платы (сетевые интерфейсные карты, адаптеры и т.д.).
Рассмотрим подробнее принципы работы коммутатора, так как их понимание является важным для понимания работы сети.
Адресация происходит на основе МАС-адресов, каждый коммутатор в процессе работы составляет таблицу MAC-адресов (CAM table) всех хостов, подключенных в его порты.
Для того, чтобы передавать фреймы, коммутатор использует три базовых механизма:
1. Flooding (лавинная передача) - фрейм, полученный на один из портов, передается на остальные порты коммутатора. Эта операция выполняется в следующих случаях: при получении широковещательного или мультикаст фрейма при определенных условиях, при получении неизвестного юникаст фрейма. Это позволяет коммутатору доставить фрейм хосту (при условии, что хост достижим и существует), даже когда он не знает, где именно хост находится.
2. Forwarding (передача) — передача фрейма, полученного на одном порту, через другой порт в соответствии с записью в таблице коммутации.
3. Filtering (фильтрация) — если коммутатор определяет, что MAC-адрес получателя фрейма находится в том же сегменте, что и адрес его отправителя, такие данные не передаются в другой сегмент. Коммутатор считает, что в этом случае хост уже получил этот фрейм, и не дублирует его.
Как же коммутатор составляет таблицу коммутации, на основании которой принимает решения о том, что делать с пришедшим на порт фреймом?
Реализация алгоритма происходит за счет создания статических или динамических записей адресной таблицы. Статические записи, как упоминалось в одной из прошлых лекций, создаются администратором. В общем случае коммутатор можно не конфигурировать, он будет работать по умолчанию, создавая записи адресной таблицы в динамическом режиме.
Первоначально информация о том, какие МАС-адреса имеют подключенные к конкретному порту интерфейсы, в коммутаторе отсутствует. Поэтому коммутатор, получив кадр, передает его на все свои порты, за исключением того, на который кадр был получен, и одновременно анализирует МАС-адрес источника (отправителя) и запоминает его в адресной таблице.
Рассмотрим, как это работает на примере. На рисунке ниже представлена простейшая схема сети, состоящая из четырех хостов и соединяющего их коммутатора. Все устройства только что подключены в сеть, на хостах сконфигурированы статические IP-адреса из диапазона 192.168.1.0/24.

Рисунок 1. Сегмент сети с подписанными именами хостов и портами
Посмотрим таблицу коммутацию с помощью команды show mac-address-table, можно увидеть, что она пустая, потому что коммутатор только что подключен в сеть, и в этом сегменте еще не было сетевой активности.

Рисунок 2. Таблица коммутации сразу после включения в сеть
Инициируем сетевое взаимодействие, пропинговав хост с IP-адресом 192.168.1.3 с хоста с IP-адресом 192.168.1.4. Как видно на рисунках 3 и 4 ниже, обмен пакетами был удачен, в итоге таблица коммутации изменилась.

Рисунок 3. Обмен пакетами между двумя хостами

Рисунок 4. Таблица коммутации после сетевого взаимодействия
В результате каких процессов мы наблюдаем появление двух новых записей в таблице коммутации? Давайте разберемся.
1. Хост PC2 с адресом 192.168.1.4 посылает пакет хосту PC1 с адресом 192.168.1.3. Коммутатор принимает данные на порту FastEthernet2/1, куда подключен PC2, изучает фрейм и записывает соответствие MAC-адрес отправителя и данного порта в свою таблицу. Таким образом получается запись 00d0.ffe9.ac4c DYNAMIC Fa2/1.
2. Далее коммутатор ищет соответствие для MAC-адреса получателя, то есть хоста PC1 с адресом 192.168.1.3, но не находит, так как на данный момент в таблице всего одна запись для порта Fa2/1. В данном случае коммутатор использует лавинную рассылку, отправляя данные во все подключенные порты (кроме того порта, откуда пришел трафик, то есть кроме Fa2/1).
3. PC0 и PC3 отбрасывают пакет, так как не являются его получателями, PC1 принимает его, отвечает и отсылает ответ обратно. В ответном пакете PC1 является отправителем, PC2 — получателем.
4. Коммутатор принимает пакет от PC1 на порту FastEthernet1/1, изучает и записывает соответствие MAC-адрес отправителя и данного порта в свою таблицу. Таким образом получается вторая запись 0005.5e99.d369 DYNAMIC Fa1/1.
5. Далее коммутатор отсылает данные через порт Fa2/1, так как в таблице уже имеется запись для хоста PC2.
6. Дальнейшее взаимодействие PC1 и PC2 будет проходить без использования механизмов лавинной рассылки.