Одноадресная, Многоадресная и Широковещательная передача Ethernet
В Ethernet для одноадресной, многоадресной и широковещательной передачи используются различные MAC-адреса Уровня 2.
Одноадресная передача
Одноадресный MAC-адрес является уникальным адресом, используемым, когда кадр передается с одного передающего устройства на единственное устройство назначения.
В примере, показанном на рисунке, узел с IP-адресом 192.168.1.5 (источник) запрашивает веб-страницу с сервера по IP-адресу 192.168.1.200. Для одноадресного пакета, который будет отправлен и получен, IP-адрес назначения должен быть в заголовке пакета IP. Соответствующий MAC-адрес назначения также должен присутствовать в заголовке Кадра Ethernet. IP-адрес и MAC-адрес комбинируются, чтобы доставить данные одному определенному конечному хосту.
Широковещательная передача
При широковещательной передаче пакет содержит IP-адрес назначения, у которого в хостовой части адреса стоят одни единички. Эта нумерация в адресе означает, что все узлы в этой локальной сети (широковещательном домене) получат и обработают пакет. Ряд сетевых протоколов, таких как Протокол динамического конфигурирования узлов (DHCP) и Протокол определения адресов (ARP), используют широковещательные сообщения. Как ARP использует широковещательные сообщения, чтобы отобразить адреса Уровня 2 на адреса Уровня 3, будет описано позже в этой рубрике.
Многоадресная передача
Вспомните, что групповые адреса позволяют исходному устройству отправлять пакет группе устройств. Устройствам, которые принадлежат группе многоадресной передачи, присваиваются IP-адрес группы многоадресной передачи. Диапазон групповых адресов от 224.0.0.0 до 239.255.255.255. Поскольку групповые адреса представляют группу адресов (иногда называемую группой узлов), они могут использоваться только в качестве места назначения пакета. У источника всегда будет индивидуальный адрес.
Как в случае с индивидуальными и широковещательными адресами, многоадресный IP-адрес требует соответствующего многоадресного MAC-адреса для фактической доставки фрейма по локальной сети. Многоадресный MAC-адрес является специальным значением, которое начинается с 01-00-5E в шестнадцатеричной записи. Значение заканчивается путем преобразования младших 23 битов группового адреса многоадресного IP-пакета в оставшиеся 6 шестнадцатеричных символов Ethernet-адреса. Остающийся бит в MAC-адресе всегда «0».
Примером, как показано на рисунке, является шестнадцатеричный адрес 01-00-5E-00-00-01. Каждый шестнадцатеричный символ составляет 4 бита.
Что сделает узел когда примет широковещательный кадр ethernet
2. Влияние широковещательного служебного трафика на производительность сети
2.2.1. Назначение широковещательного трафика
Пропускная способность любого канала локальной сети ограничивается максимальной эффективной пропускной способностью используемого канального протокола. Если же часть этой пропускной способности используется не для передачи пользовательских данных, а для передачи служебного трафика, то эффективная пропускная способность сети еще уменьшается. Обычно некоторую часть доступной пропускной способности сети отнимает у пользовательских данных широковещательный служебный трафик, который является неотъемлемой частью практически всех стеков протоколов, работающих в локальных сетях.
Оба приведенных способа работы пользователя с ресурсами обычно основываются на том или ином виде широковещательного трафика, когда узел, осуществляющий просмотр сети, отправляет в нее запросы с широковещательным адресом, опрашивающие наличие в сети тех или иных серверов. Получив такой запрос, сервер отвечает запрашивающему узлу направленным пакетом, в котором сообщает свой точный адрес и описывает предоставляемые сервером услуги.
2.2.2. Поддержка широковещательного трафика на канальном уровне
Практически все протоколы, используемые в локальных сетях, поддерживают широковещательные адреса (кроме протоколов АТМ). Адрес, состоящий из всех единиц (111. 1111), имеет один и тот же смысл для протоколов Ethernet, TokenRing, FDDI, FastEthernet, 100VG-AnyLAN: кадр с таким адресом должен быть принят всеми узлами сети. Ввиду особого вида и регулярного характера широковещательного адреса вероятность его генерации в результате ошибочной работы аппаратуры (сетевого адаптера, повторителя, моста, коммутатора или маршрутизатора) оказывается достаточно высокой. Иногда ошибочный широковещательный трафик генерируется в результате неверной работы программного обеспечения, реализующего функции протоколов верхних уровней.
Широковещательный трафик канального уровня распространяется в пределах не только сегмента, образованного пассивной кабельной системой или несколькими повторителями/концентраторами, но и в пределах сети, построенной с использованием мостов и коммутаторов. Принципы работы этих устройств обязывают их передавать кадр с широковещательным адресом на все порты, кроме того, откуда этот кадр пришел. Такой способ обработки широковещательного трафика создает для всех узлов, связанных друг с другом с помощью повторителей, мостов и коммутаторов, эффект общей сети, в которой все клиенты и серверы «видят» друг друга.
2.2.3. Широковещательный шторм
Каждый протокол-источник широковещательных пакетов чаще всего порождает широковещательный трафик постоянной интенсивности, так как посылает в сеть пакеты фиксированного размера через определенные промежутки времени. Например, протокол SAP объявляет о существовании конкретного файл- или принт- сервиса каждые 60 секунд с помощью широковещательного сообщения фиксированного размера. Можно привести пример источника, порождающего широковещательный трафик переменной интенсивности. Таким источником является протокол обмена маршрутной информации RIP, который раз в 30 или 60 секунд рассылает по сети содержимое таблицы маршрутизации, а так как эта таблица может иметь переменный размер, то и интенсивность трафика, создаваемого протоколом RIP, может изменяться.
Превышение широковещательным трафиком уровня более 20% называется широковещательным штормом (bradcaststorm). Это явление крайне нежелательно, так как приводит к возрастанию коэффициента использования сети, а, следовательно, и к резкому увеличению времени ожидания доступа.
2.2.4. Поддержка широковещательного трафика на сетевом уровне
Как уже было сказано, мосты и коммутаторы не изолируют сегменты сетей, подключенных к портам, от широковещательного трафика канальных протоколов. Это может создавать проблемы для больших сетей, так как широковещательный шторм будет «затапливать» всю сеть и блокировать нормальную работу узлов. Надежной преградой на пути широковещательного шторма являются маршрутизаторы.
Однако, для нормальной работы сети часто оказывается желательной возможность широковещательной передачи пакетов некоторого типа в пределах всей составной сети. Например, пакеты протокола объявления сервисов SAP в сетях NetWare требуется передавать и между сетями, соединенными маршрутизаторами, для того, чтобы клиенты могли обращаться к серверам, находящимся в других сетях. Именно так работает программное обеспечение маршрутизации, реализованное компанией Novell в ОС NetWare. Для поддержания этого свойства практически все производители аппаратных маршрутизаторов также обеспечивают широковещательную передачу трафика SAP.
Подобные исключения делаются не только для протокола SAP, но и для многих других служебных протоколов, выполняющих функции автоматического поиска сервисов в сети или же другие не менее полезные функции, упрощающие работу сети.
Ниже описаны наиболее популярные в локальных сетях протоколы, порождающие широковещательный трафик.
2.2.5. Виды широковещательного трафика
2.2.5.1. Широковещательный трафик сетей NetWare
Стек протоколов сетей NetWare использует наибольшее число различных типов широковещательного трафика:
RIP IPX (Routing Information Protocol). Распространяет по интерсети информацию о составляющих сетях IPX, известных данному маршрутизатору, а также о расстоянии от данного маршрутизатора до каждой сети. Инормация распространяется каждые 60 секунд. Так как каждый сервер NetWare всегда является и маршрутизатором, то уровень трафика RIPIPX прямо пропорционален количеству серверов NetWare в интерсети, к которому следует добавить также количество установленных аппаратных маршрутизаторов, работающих по протоколу RIP.
NLSP (NetWare Link State Protocol). Новый протокол обмена маршрутной информацией, который серверы NetWare и IPX-маршрутизаторы независимых производителей могут использовать вместо протокола RIP. Протокол NLSP создает меньший уровень широковещательного трафика, так как основную часть его широковещательных сообщений представляют сообщения об изменении состояния связей в сети и состояния самих маршрутизаторов. Очевидно, что в надежной сети такие сообщения генерируются достаточно редко. Протокол NLSP создает также и периодически генерируемый трафик, но он используется только для тестирования связей между соседними маршрутизаторами и порождает пакеты очень небольшой длины.
NDS (NetWare Directory Services). Служба NDS сетей NetWare представляет собой централизованную справочную службу, хранящую информацию о всех пользователях и ресурсах сети. При наличии в сети сервера, выполняющего функции NDS, отпадает необходимость постоянной генерации трафика протокола SAP остальными серверами сети. Однако сам сервер службы NDS пользуется протоколом SAP для того, чтобы клиенты сети NetWare автоматически смогли узнать о его существовании и адресе. Поэтому служба NDS создает в сети собственный широковещательный трафик взамен трафика, создаваемого отдельными серверами. В сети может существовать несколько серверов NDS, реализующих распределенную и резервируемую структуру справочной службы, поэтому уровень широковещательного трафика NDS может быть значительным.
2.2.5.2. Широковещательный трафик сетей TCP/IP
Как уже отмечалось, в сетях TCP/IP широковещательный трафик используется гораздо реже, чем в сетях NetWare. Широковещательный трафик в сетях TCP/IP создают протоколы разрешения IP-адресов ARP и RARP (реверсивный ARP), а также протоколы обмена маршрутной информацией RIPIP и OSPF. Протоколы ARP и RARP используются только в локальных сетях, где широковещательность поддерживается на канальном уровне. Протокол RIPIP принципиально ничем не отличается от протокола RIPIPX, а протокол OSPF является протоколом типа «состояния связей» как и протокол NLSP, поэтому он создает широковещательный трафик гораздо меньшей интенсивности, чем RIP.
2.2.5.3. Широковещательный трафик сетей NetBIOS
Протокол NetBIOS широко используется в небольших сетях, не разделенных маршрутизаторами на части. Этот протокол поддерживается в операционных системах WindowsforWorkgroups и WindowsNT компании Microsoft, в операционной системе OS/2 Warp компании IBM, а также в некоторых версиях Unix. NetBIOS используется не только как коммуникационный протокол, но и как интерфейс к протоколам, выполняющим транспортные функции в сети, например, к протоколам TCP, UDP или IPX. Последняя роль NetBIOS связана с тем, что в ОС, традиционно использовавших NetBIOS в качестве коммуникационного протокола, многие приложения и протоколы прикладного уровня были написаны в расчете на API, предоставляемый протоколом NetBIOS. При замене протокола NetBIOS на другие транспортные протоколы разработчики приложений и ОС захотели оставить свои программные продукты в неизменном виде, поэтому появились реализации интерфейса NetBIOS, оторванные от его функций как коммуникационного протокола, и выполняющие роль некоторой прослойки, транслирующей запросы одного API в другой.
Основным источником широковещательного трафика в сетях, использующих NetBIOS либо в качестве интерфейса, либо в качестве протокола, является служебный протокол разрешения имен, который ставит в соответствие символьному имени компьютера его МАС-адрес. Все компьютеры, поддерживающие NetBIOS, периодически рассылают по сети запросы и ответы NameQuery и NameRequest, с помощью которых это соответствие поддерживается. При большом количестве компьютеров уровень широковещательного трафика может быть весьма высоким.
Маршрутизаторы обычно не пропускают широковещательный трафик NetBIOS между сетями.
Для уменьшения уровня этого трафика необходимо использовать централизованную службу имен, подобную службе WINS компании Microsoft.
2.2.5.4. Широковещательный трафик мостов и коммутаторов, поддерживающих алгоритм SpanningTree
Мосты и коммутаторы используют алгоритм покрывающего дерева SpanningTree для поддержания в сети резервных избыточных связей и перехода на них в случае отказа одной из основных связей. Алгоритм работы мостов и коммутаторов не позволяет использовать избыточные связи в основном режиме работы (при такой топологии связей кадры могут зацикливаться или дублироваться), поэтому основной задачей алгоритма SpanningTree является нахождение топологии дерева, покрывающей исходную топологию сети.
Для создания древовидной конфигурации мосты и коммутаторы, поддерживающие алгоритм SpanningTree постоянно обмениваются специальными служебными кадрами, которые вкладываются в кадры MAC-уровня. Эти кадры рассылаются по всем портам моста/коммутатора, за исключением того, на который они пришли, точно так же, как и пакеты протоколов RIP или OSPF маршрутизаторами. На основании этой служебной информации некоторые порты мостов переводятся в резервное состояние, и тем самым создается топология покрывающего дерева.
После установления этой топологии широковещательный трафик алгоритма SpanningTree не прекращается. Мосты/коммутаторы продолжают распространять по сети кадры протокола SpanningTree для контроля работоспособности связей в сети. Если какой-либо мост/коммутатор перестает периодически получать такие кадры, то он снова активизурует процедуру построения топологии покрывающего дерева.
Уровень широковещательного трафика протокола SpanningTree прямо пропорционален количеству мостов и коммутаторов, установленных в сети.
Маршрутизаторы трафик алгоритма SpanningTree не передают, ограничивая топологию покрывающего дерева одной сетью.
2.2.5.5. Ограничение уровня широковещательного трафика в составных сетях с помощью техники спуфинга
Эта техника была развита производителями коммуникационного оборудования, объединяющего локальные сети по низкоскоростным глобальным каналам, а именно, производителями удаленных мостов и маршрутизаторов.
Существуют различные реализации спуфинга. Наиболее его простой вариант заключается в простом исключении некоторого количества циклов передачи служебных пакетов между сетями, когда, например, в другую сеть передается только каждый 5-й или 10-й пакет SAP, поступающий из исходной локальной сети.
Спуфинг можно применять и в локальной составной сети для уменьшения уровня широковещательного трафика.
Канальный уровень (L2, link layer) занимает особое место в иерархии сетевого взаимодействия: он согласует физические аспекты передачи с логическим представлением устройства для системы и программ. У канального уровня нет четких границ: он тесно интегрирован с физическим уровнем ниже, а с другой стороны, выше канального уровня действуют протоколы, которые не относящиеся к сетевому уровню (например, ARP).
Мы будем рассматривать в основном вопросы логического характера: какие байты передаются и для чего, а не как они кодируются в среде передачи. Мы также ограничимся популярнейшей реализацией — Ethernet.
Вышестоящий логический подуровень называется LLC (logical-link control) и реализуется драйверами и ОС; подуровень для доступа к среде передачи называется MAC (media access control) и реализован в прошивке сетевой карты.
Канальный уровень действует в локальных сетях (local area network, LAN), то есть между устройствами, соединенными так, что могут передавать данные друг другу напрямую. Такую сеть называют еще L2-сегментом. В плане реализации это сети квартир, служебных и офисных помещений (но не полных организаций), размером единицы-десятки машин.
Задачи канального уровня:
Кадр Ethernet
Стандартизацией Ethernet занимается IEEE (Институт инженеров электротехники и электроники, читается «ай-трипл-и»). В стандартизации L1 и L2 в целом участвует МЭК (IEC), ISO, ITU (Международный телекоммуникационный союз). В настоящее время актуален стандарт IEEE 802.3 — Ethernet II.
Структура кадра Ethernet показана на рис. 1:
Рисунок 1: Структура кадра Ethernet IEEE 802.3 (адаптировано, CC-BY-SA 3.0)
Адрес отправителя и получателя — MAC-адреса из шести октетов каждый. MAC-адреса записываются через двоеточия ( 12:34:56:78:90:ab ), через дефисы ( 12-34-56-78-90-ab ) или по два байта через точки ( 1234.5678.90ab ). Анализируя адрес назначения, узел определяет, ему ли предназначен пакет, или он пришел лишь потому, что с адресатом общая среда передачи. Адрес отправителя не влияет на прием кадра, но может использоваться для формирования ответа.
Контрольная сумма ( CRC/FCS — control redundant checksum / frame check sequence) нужна для защиты от ошибок передачи. Отправитель считает контрольную сумму на основе всех остальных октетов кадра и записывает в кадр, а получатель повторяет расчет и сверяет с присланной. В случае несовпадения можно сделать вывод, что кадр был поврежден при передаче, и не обрабатывать его. Часто такая фильтрация делается на MAC-подуровне, а LLC контрольную сумму даже не наблюдает (кроме траты четырех байтов длины).
Преамбула (preamble) и межкадровый интервал (inter-frame gap) относятся к MAC-подуровню и необходимы, чтобы различать начало и конец кадра в потоке битов, генерируемом физическим уровнем. Размер межпакетного интервала отличается в разных вариантах Ethernet, от 1 до 12 октетов.
Максимальным размером кадра считается 1518 октетов с учетом контрольной суммы. Преамбула (8 октетов) и межкадровый интервал (например, 12 октетов у FastEthernet) в длину кадра не входят, но их необходимо учитывать при расчетах. Пример: известна емкость канала FastEthernet — 10 Gbps (гигабит в секунду), нужно рассчитать скорость в 64-байтовых (64 B) пакетах в секунду (pps).
Ограничение сверху на размер кадра влечет ограничение на размер полезных данных в нем — MTU (maximum transmission unit), для Ethernet это 1500 октетов, но может быть настроено меньше. Сетевому уровню известно MTU, поэтому L3 не генерирует сообщений, превышающих его. Если же принят пакет L3 большего размера и требуется переслать его дальше, на сетевом уровне создаются два пакета с частями исходного и посылаются отдельными кадрами — происходит фрагментация, которая будет более подробно рассмотрена вместе с IP.
Адресация на канальном уровне
MAC-адреса принадлежат сетевым портам устройств и идентифицируют их. В порт может поступить кадр с любым MAC-адресом назначения, и узел должен решить, считать ли, что кадр направлен ему. В свою очередь, кадр может быть направлен:
Соответственно, узел обрабатывает кадр, если MAC-адрес назначения:
Большая часть трафика является адресной рассылкой. Непременное техническое требование к MAC-адресам сетевых портов для этого — уникальность в локальной сети. Как достигается уникальность, зависит от происхождения MAC-адресов.
MAC-адреса могут назначаться вручную администратором или автоматически, например, при создании виртуальных машин. За уникальностью при этом следит администратор или программа. По стандартам IEEE локально выданные MAC-адреса (locally administered) должны иметь 1 в определенном бите, например, 0a:11:11:11:11:11 ( 000010 1 0:… ), см. рис. 2.
Рисунок 2: Структура MAC-адреса (источник, CC-BY-SA 2.5)
Широковещательная рассылка используется либо когда MAC-адрес целевого узла неизвестен, либо для оповещения всех узлов. Чаще всего она встречается с протоколом ARP (см. ниже).
Многоадресная (или групповая) рассылка используется в основном в корпоративных и промышленных сетях. Групповые MAC-адреса имеют нечетный первый октет. Групповая рассылка используется, чтобы отправить кадр:
Так далее многоадресная рассылка подробнее не изучается, рассмотрим пример: трансляцию IP-телевидения в сети провайдера абонентам, которые могут переключать каналы.
1. Рассылка для группы узлов. Если транслировать все каналы всем (широковещательно), сеть будет перегружена. Если транслировать для каждого абонента адресно, придется отправлять одни и те же данные несколько раз и отслеживать текущие каналы абонентов, что усугубляет нагрузку на сервер трансляций.
Здесь группа заинтересованных узлов — зрители телеканала. Многоадресная передача позволяет серверу отправлять данные каждого канала один раз, а при распределении трафика по сети (см. ниже) кадры будут продублированы и получены правильными узлами.
В случае IP-телевидения многоадресная рассылка на канальном уровне используется в сочетании с многоадресной же рассылкой на сетевом уровне (IP multicast), чтобы транслировать передачи между локальными сетями. При этом используются специальные IP-адреса, а групповые MAC-адреса вида 01:00:5e:xx:xx:xx (IPv4) или 33:33:00:xx:xx:xx (IPv6) строятся из них по правилам: xx заменяются младшими байтами IP-адреса.
2. Отправка узлу по его роли. Сервер провайдера соединен с абонентами физически не напрямую, а через промежуточные сетевые устройства. Предположим, что это коммутатор, в один порт которого подключен сервер трансляций, а в другие порты — абоненты (реальная сеть существенно сложнее). Получив кадр трансляции, коммутатор должен направить его не во все порты, а только в те, к которым подключены абоненты, смотрящие один канал. Но откуда известно, в какие?
В той же ситуации абонент может отправить еще на специальный адрес, означающий «все роутеры», оповещение, что ему больше не нужно присылать кадры канала, который он смотрел ранее. Коммутатор заинтересован в оповещении и учтет его.
Протокол разрешения адресов (ARP)
Чтобы сформировать кадр, необходимо знать MAC-адрес получателя. Вышестоящие уровни не обладают этой информацией, а только адресом L3 (обычно IP-адресом). Получателю свой MAC-адрес известен, следовательно, он и должен его сообщить. По получателю неизвестно, что с ним пытаются связаться. Поэтому отправитель должен предварительно отправить запрос. Это нельзя сделать адресно (нет собственно MAC-адреса), нельзя сделать групповой рассылкой (любой узел может быть получателем — такая группа включала бы все узлы), следовательно, остается широковещательная рассылка запроса.
Протокол разрешения адресов (address resolution protocol, ARP) и предназначен для нахождения MAC-адреса по IP-адресу. Структура его пакетов, одинаковая для запросов и ответов, приведена на рис. 3.
Клиент шлет широковещательный пакет на MAC-адрес ff:ff:ff:ff:ff:ff со своего MAC-адреса. Смысл пакета — запрос, чтобы тот узел, которой обладает указанным IP, ответил клиенту. IP-адрес укаызывается как target protocol address, MAC-адрес и IP-адрес отправителя заносятся как sender addresses, а target hardware address обнуляется.
Если сервер, получивший запрос ARP, имеет искомый адрес, он формирует ответ со своего MAC на MAC клиента. В ответе дублируется искомый IP и MAC-адрес сервера (как sender protocol и hardware address), а также MAC-адрес и IP-адрес запросившего (как target addresses).
Может показаться, что ответ ARP избыточен: MAC-адрес сервера уже указан в кадре как MAC отправителя, а искомый IP-адрес дублируется из запроса. Но избыточности нет:
Клиент может одновременно сделать несколько ARP-запросов доя разных IP. Если не указывать искомый IP в ответе, клиент не сможет определить, к какому IP относится MAC сервера.
В сложных случаях для передачи запросов ARP может использоваться один протокол канального уровня, а для связи с искомым узлом — другой. При этом адрес отправителя в кадре-ответе и адрес отправителя в ответе ARP (содержимом кадра) не будут или даже не могут совпадать. Строго говоря, ARP не ограничен MAC- и IP-адресами, но применяется в основном для них.
При включении в сеть некоторые устройства и ОС посылают так называемые анонсы ARP (ARP announcement) или приветственные ARP (gratuitous ARP): ответы ARP самому себе, но посланные на широковещательный адрес. Таким образом присутствовавшие в сети устройства могут узнать о новом.
Очерк устройства и иерархической архитектуры сетей
Из-за тесной связи канального и физического уровня рассуждать о протоколах L2 непродуктивно без представления, хотя бы краткого, об устройствах и способах их связи, применяемых в локальных сетях на практике.
Физическая топология Ethernet-сетей почти повсеместно — «звезда», то есть несколько устройств, подключенных к центральному отдельными кабелями. Таким образом, физически общей средой являются только каждый из этих кабелей, и такую среду делят всего два устройства.
Что это за устройства?
Для средних и крупных организаций (десятки-сотни и сотни-тысячи узлов соответственно) целесообразно связывать устройства в иерархическую архитектуру, показанную на рис. 4.
Рисунок 4: Иерархическая архитектура сети (источник, по материалам Cisco Press)
Структура реальной сети может сильно отличаться, но как правило, чем крупнее сеть, тем более отчетливо в ней проявляются черты, предписываемые архитектурой, поскольку она рациональна. Подробное обоснование и описание можно прочитать в учебниках Cisco, которая эту архитектуру предложила.
Основное промежуточное устройство сегодня — коммутатор, или свитч (switch). Его ключевая задача — имитировать для подключенных устройств нахождение в едином сегменте L2 (для связности), разделяя при этом их физические среды (для эффективности). Обычные домашние Wi-Fi точки доступа — коммутаторы: они объединяют в единую сеть устройства, подключенные к их портам и по Wi-Fi (но домашние модели совмещают функции коммутатора с другими функциями). У промышленных моделей больше портов (12, 24, 32, 48) и почти нет функций L3 и выше (обеспечивать их для стольких устройств слишком сложно и дорого). Уровень иерархии сети, на котором оконечные устройства подключаются к сети через промежуточные, называется уровнем доступа (access layer).
Коммутаторы могут соединяться в свою иерархию (то есть объединять свои сегменты) и подключаются в итоге к маршрутизатору, или роутеру (router). Маршрутизаторы связывают L3-сегменты, то есть сети с разными IP-адресами. При этом они разделяют broadcast-домены, то есть широковещательные и групповые кадры из разных локальных сетей не проходят через маршрутизатор. Этот слой иерархии называется уровнем распределения (distribution layer), на нем применяются правила маршрутизации и контроля доступа из сети в сеть.
Маршрутизаторы соединяются между собой специальными высокопроизводительными и функциональными коммутаторами в ядре сети (core layer). Это самая нагруженная часть сети, так как через нее проходит весь трафик. Поэтому же ядро обязательно резервируется, то есть строится из нескольких устройств, соединенных избыточно, чтобы выход одного из строя не парализовал работу сети. Одна из функций уровня распределения — ограничить доступ к ядру сети.
Хотя коммутаторы имитируют единую среду и не видны на канальном уровне как отдельные устройства (L2-прозрачны), это интеллектуальное оборудование. Коммутаторы не соединяют электрически каналы, а принимают кадры, обрабатывают их и отправляют далее (схема store-and-forward). Например, они отслеживают для каждого порта, устройства с какими MAC-адресами подключены к нему (ведут таблицы MAC-адресов), и пересылают кадры для этих устройств только в нужный порт, что снижает нагрузку на сеть. Возможности продвинутых коммутаторов включают агрегацию каналов (например, создание канала 40 Гбит/с из четырех портов на 10 Гбит/с), борьбу с петлями в сети (STP), защитные функции.
Виртуальные локальные сети (VLAN)
Даже при грамотном проектировании архитектуры с ростом размера локальной сети до десятков машин возникают проблемы и задачи, которые чистый Ethernet не позволяет качественно решить.
Безопасность и надежность. Например, трафик из сети бухгалтерии не должен проходить до локальной сети серверной фермы, будь то попытка взлома или следствие неполадок. В целом, локальные сети не должны влиять одна на другую, а неполадки в них не должны выводить из строя всю сеть.
Производительность. В больших сетях широковещательные и групповые рассылки порождают значительный трафик, а типичные системы на это не рассчитаны. В случае ARP, например, возникает положительная обратная связь: широковещательные рассылки переполняют таблицы MAC-адресов, что вынуждает узлы слать новые широковещательные запросы.
Удобство управления. Администраторам нужно иметь доступ к промежуточным устройствам. Если их трафик будет передаваться вместе с остальным, при неполадках администраторы лишатся доступа вместе со всеми и не смогут удаленно перенастроить устройство.
Теоретически возможно устранять перечисленные проблемы покупкой большего количества оборудования (по маршрутизатору на отдел), прокладкой выделенных линий для администрирования. Однако это дорого, выше вероятность поломок и сама прокладка такой сети громоздка.
Решение есть на программном уровне: создать виртуальные локальные сети (virtual LAN, VLAN), то на одном и том же оборудовании (network fabric) обрабатывать трафик разных логических сетей отдельно.
Наделим меткой VLAN все порты коммутаторов, к которым подключены оконечные устройства этой VLAN, и все кадры этой VLAN. Кадры с определенной меткой будем обрабатывать на коммутаторах так, как будто нет портов и кадров с другими метками. Таким образом трафик оконечных устройств из одной VLAN никогда не попадет к устройствам другой VLAN, то есть каждая VLAN работает как отдельная локальная сеть, но оборудование используется всеми VLAN совместно.
Между VLAN трафик может проходить только на маршрутизаторах, если это настроено.
Сказанное относится и к широковещательным кадрам, поэтому говорят, что VLAN разделяют broadcast-домены, то есть широковещательные запросы в одной VLAN не видны в других.
Остается вопрос связности: как кадры с метками (тэгированный трафик) обрабатываются при передаче вверх по иерархии? Между промежуточными устройствами передается трафик из разных VLAN одновременно — такие каналы называются VLAN trunk. Администратор настраивает, трафик каких именно VLAN может передаваться по каждому каналу.
На рис. 5 приведен пример из двух VLAN: инженерного отдела (VLAN 1) и отдела маркетинга (VLAN 2). Каждый из отделов физически присутствует на двух этажах. На каждом этаже установлено по коммутатору, к которому подключены ПК на этаже. Однако логически весь инженерный отдел (ПК на обоих этажах) находится в единой сети, обособленной от такой же сети отдела маркетинга. Access-порты инженерного отдела — 2, 3, 5 на втором этаже и 2, 4, 6 на третьем. Канал между коммутаторами работает в режиме trunk, пропуская кадры обеих VLAN.
Рисунок 5: Пример использования VLAN (источник, CC-BY-SA 4.0)
Как правило, выделяют особую VLAN управления (management VLAN), в которую входит все промежуточное оборудование, и трафик которой разрешен на всех trunk´ах. Эту сеть используют для диагностики и настройки.
Рассмотрим, как технически реализованы метки VLAN.
Чтобы пометить кадр, нужно включить в него дополнительные данные — собственно, метку — то есть поменять его формат, как показано на рис. 6. Он стандартизирован IEEE 802.11Q. Метка размером 4 байта добавляется перед полем кода протокола L3. При этом MTU сохраняется 1500 октетов, то есть максимальный размер кадра IEEE 802.11Q увеличен до 1522 октетов.
Рисунок 6: Структура кадра IEEE 802.11Q (источник, CC-BY-SA 3.0)
Вторые два байта — управляющие данные тэга (tag control information, TCI). Из них 12 битов — идентификатор VLAN, используемый для их различения. Еще 4 бита отвечают за приоритизацию трафика, что выходит за рамки обсуждения. Из 2¹² = 4096 номеров VLAN есть два особых: 0x000 означает, что тэг несет только информацию о приоритете трафика), 0xfff зарезервирован и не должен использоваться.
Заметим, что по одному каналу (обычно в ядре или между площадками) может идти вперемешку тэгированный и нетэгированный трафик. Идентификатор протокола тэгов позволяет различить их. Кадр начинает обрабатываться как нетэгированный. Поле TPID расположено в кадре там же, где код протокола L3. Его анализ обнаружит, что кадр тэгирован, будет учтен VLAN ID, а код протокола L3 будет прочитан вслед за меткой VLAN.
Откуда берется метка у кадров, в каком месте определяется VLAN ID?
В типичном случае это делает коммутатор. Его порты, связанные с оконечным устройством настраиваются в так называемый access-режим:
Это удобно для управления сетью:
В альтернативном варианте метки проставляют сами оконечные устройства при генерации кадров. Обычно это серверы, работающие как шлюзы между сетями. Также метки проставляют роутеры в некоторых схемах. Порты коммутаторов, на которые поступает тэгированный трафик от таких устройств, настраивают в режиме trunk.
Козлюк Д. А. для кафедры Управления и информатики НИУ «МЭИ», 2018 г.