Принципы работы L2-устройств

С канальным уровнем обычно связаны следующие сетевые соединительные устройства:

- мосты;

- коммутаторы;

- сетевые интерфейсные платы (сетевые интерфейсные карты, адаптеры и т.д.).

Рассмотрим подробнее принципы работы коммутатора, так как их понимание является важным для понимания работы сети.

Адресация происходит на основе МАС-адресов, каждый коммутатор в процессе работы составляет таблицу MAC-адресов (CAM table) всех хостов, подключенных в его порты.

Для того, чтобы передавать фреймы, коммутатор использует три базовых механизма:

1. Flooding (лавинная передача) - фрейм, полученный на один из портов, передается на остальные порты коммутатора. Эта операция выполняется в следующих случаях: при получении широковещательного или мультикаст фрейма при определенных условиях, при получении неизвестного юникаст фрейма. Это позволяет коммутатору доставить фрейм хосту (при условии, что хост достижим и существует), даже когда он не знает, где именно хост находится.

2. Forwarding (передача) — передача фрейма, полученного на одном порту, через другой порт в соответствии с записью в таблице коммутации.

3. Filtering (фильтрация) — если коммутатор определяет, что MAC-адрес получателя фрейма находится в том же сегменте, что и адрес его отправителя, такие данные не передаются в другой сегмент. Коммутатор считает, что в этом случае хост уже получил этот фрейм, и не дублирует его.

Как же коммутатор составляет таблицу коммутации, на основании которой принимает решения о том, что делать с пришедшим на порт фреймом?

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

Первоначально информация о том, какие МАС-адреса имеют подключенные к конкретному порту интерфейсы, в коммутаторе отсутствует. Поэтому коммутатор, получив кадр, передает его на все свои порты, за исключением того, на который кадр был получен, и одновременно анализирует МАС-адрес источника (отправителя) и запоминает его в адресной таблице.

Рассмотрим, как это работает на примере. На рисунке ниже представлена простейшая схема сети, состоящая из четырех хостов и соединяющего их коммутатора. Все устройства только что подключены в сеть, на хостах сконфигурированы статические IP-адреса из диапазона 192.168.1.0/24.

1

Рисунок 1. Сегмент сети с подписанными именами хостов и портами

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

https://itempuniversity.com/pluginfile.php/8491/mod_lesson/page_contents/53/%D0%BF%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF%D1%8B%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B%20L2-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B8%CC%86%D1%81%D1%82%D0%B21.docx.png

Рисунок 2. Таблица коммутации сразу после включения в сеть


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

https://itempuniversity.com/pluginfile.php/8491/mod_lesson/page_contents/53/%D0%BF%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF%D1%8B%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B%20L2-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B8%CC%86%D1%81%D1%82%D0%B21.docx.png

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


https://itempuniversity.com/pluginfile.php/8491/mod_lesson/page_contents/53/%D0%BF%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF%D1%8B%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B%20L2-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B8%CC%86%D1%81%D1%82%D0%B21.docx.png

Рисунок 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 будет проходить без использования механизмов лавинной рассылки.