Каков конечный mac адрес широковещательного кадра ethernet
Перейти к содержимому

Каков конечный mac адрес широковещательного кадра ethernet

  • автор:

Технология сети Ethernet

Технология сети Ethernet

Ethernet — это самый распространенный на сегодняшний день стандарт технологии сети.

  • работает с коаксиальным кабелем, витой парой, оптическими кабелями;
  • топология – шина, звезда;
  • метод доступа – CSMA/CD.

Архитектура сетевой технологии Ethernet фактически объединяет целый набор стандартов, имеющих как общие черты, так и отличия.

Технология Ethernet была разработана вместе со многими первыми проектами корпорации Xerox PARC. Общепринято считать, что Ethernet был изобретён 22 мая 1973 года, когда Роберт Меткалф составил докладную записку для главы PARC о потенциале технологии Ethernet. Но законное право на технологию Меткалф получил через несколько лет. В 1976 году он и его ассистент Дэвид Боггс издали брошюру под названием «Ethernet: Distributed Packet Switching For Local Computer Networks». Меткалф ушёл из Xerox в 1979 году и основал компанию 3Com для продвижения компьютеров и локальных вычислительных сетей. Ему удалось убедить DEC, Intel и Xerox работать совместно и разработать стандарт Ethernet (DIX). Впервые этот стандарт был опубликован 30 сентября 1980 года.

Дальнейшее развитие технологии EtherNet:

  • 1982-1993 разработка 10Мбит/с EtherNet;
  • 1995-1998 разработка Fast EtherNet;
  • 1998-2002 разработка GigaBit EtherNet;
  • 2003-2007 разработка 10GigaBit EtherNet;
  • 2007-2010 разработка 40 и 100GigaBit EtherNet;
  • 2010 по сей день разработка Terabit Ethernet.

MAC адрес

На уровне MAC, который обеспечивает доступ к среде и передаче кадра, для идентификации сетевых интерфейсов узлов сети используются регламентированные стандартом уникальные 6-байтовые адреса, называемые MAC-адресами. Обычно MAC-адрес записывается в виде шести пар шестнадцатеричных цифр, разделенных тире или двоеточиями, например 00-29-5E-3C-5B-88. Каждый сетевой адаптер имеет MAC-адрес.

Структура MAC-адреса Ethernet

  • первый бит MAC-адреса получателя называется битом I/G (individual/group или широковещательным). В адресе источника он называется индикатором маршрута от источника (Source Route Indicator);
  • второй бит определяет способ назначения адреса;
  • три старших байта адреса называются защитным адресом (Burned In Address, BIA) или уникальным идентификатором организации (Organizationally UniqueIdentifier, OUI);
  • за уникальность младших трех байт адреса отвечает сам производитель.

Некоторые сетевые программы, в частности wireshark, могут сразу отображать вместо кода производителя — название фирмы производителя данной сетевой карты.

Формат кадра технологии EtherNet

В сетях Ethernet существует 4 типа фреймов (кадров):

  • кадр 802.3/LLC (или кадр Novell802.2),
  • кадр Raw 802.3 (или кадр Novell 802.3),
  • кадр Ethernet DIX (или кадр Ethernet II),
  • кадр Ethernet SNAP.

На практике в оборудовании EtherNet используется только один формат кадра, а именно кадр EtherNet DIX, который иногда называют кадром EtherNet II по номеру последнего стандарта DIX.

  • Первые два поля заголовка отведены под адреса:
    DA (Destination Address) – MAC-адрес узла назначения;
    SA (Source Address) – MAC-адрес узла отправителя. Для доставки кадра достаточно одного адреса – адреса назначения, адрес источника помещается в кадр для того, чтобы узел, получивший кадр, знал, от кого пришел кадр и кому нужно на него ответить.
  • Поле T (Type) содержит условный код протокола верхнего уровня, данные которого находятся в поле данных кадра, например шестнадцатеричное значение 08-00 соответствует проколу IP. Это поле требуется для поддержки интерфейсных функций мультиплексирования и демультиплексирования кадров при взаимодействии с протоколами верхних уровней.
  • Поле данных. Если длина пользовательских данных меньше 46 байт, то это поле дополняется до минимального размера байтами заполнения.
  • Поле контрольной последовательности кадра (Frame Check Sequence, FCS) состоит из 4 байт контрольной суммы. Это значение вычисляется по алгоритму CRC-32.

Кадр EtherNet DIX (II) не отражает разделения канального уровня EtherNet на уровень MAC и уровень LLC: его поля поддерживают функции обоих уровней, например интерфейсные функции поля T относятся у функциям уровня LLC, в то время как все остальные поля поддерживают функции уровня MAC.

Рассмотрим формат кадра EtherNet II на примере перехваченного пакета с помощью сетевого анализатора Wireshark

Обратите внимание, что так как MAC адрес состоит из кода производителя и номера интерфейса, то сетевой анализатор сразу преобразует код производителя в название фирмы-изготовителя.

Таким образом в технологии EtherNet в качестве адреса назначения и адреса получателя выступают MAC адреса.

Стандарты технологии Ethernet

Физические спецификации технологии Ethernet включают следующие среды передачи данных.

  • 10Base-5 — коаксиальный кабель диаметром 0,5 дюйма (1дм=2,54см), называемый «толстым» коаксиальным кабелем, с волновым сопротивлением 50Ом.
  • 10Base-2 — коаксиальный кабель диаметром 0,25 дюйма, называемый «тонким» коаксиальным кабелем, с волновым сопротивлением 50Ом.
  • 10Base-T — кабель на основе не экранированной витой пары (Unshielded Twisted Pair, UTP), категории 3,4,5.
  • 10Base-F — волоконно-оптический кабель.

Число 10 обозначает номинальную битовую скорость передачи данных стандарта, то есть 10Мбит/с а слово «Base» — метод передачи на одной базовой частоте. Последний символ обозначает тип кабеля.

10Base-5

Кабель используется как моноканал для всех станций, максимальная длина сегмента 500м. Станция подключаться к кабелю через приемопередатчик — трансивер. Трансивер соединяется с сетевым адаптером разъема DB-15 интерфейсным кабелем AUI. Требуется наличие терминаторов на каждом конце, для поглощения распространяющихся по кабелю сигналов.

Правила «5-4-3» для коаксиальных сетей:

Стандарт сетей на коаксиальном кабеле разрешает использование в сети не более 4 повторителей и, соответственно, не более 5 сегментов кабеля. При максимальной длине сегмента кабеля в 500 м это дает максимальную длину сети в 500*5=2500 м. Только 3 сегмента из 5 могут быть нагруженными, то есть такими, к которым подключаются конечные узлы. Между нагруженными сегментами должны быть не нагруженные сегменты.

10Base-2

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

Также используется правило 5-4-3.

10Base-T

Образует звездообразную топологию на основе концентратора, концентратор осуществляет функцию повторителя и образует единый моноканал, максимальная длина сегмента 100м. Конечные узлы соединяются с помощью двух витых пар. Одна пара для передачи данных от узла к концентратору — Tx, а другая для передачи данных от концентратора к узлу – Rx.
Правила «4-х хабов» для сетей на основе витой пары:
В стандарте сетей на витой паре определено максимально число концентраторов между любыми двумя станциями сети, а именно 4. Это правило носит название «правила 4-х хабов». Очевидно, что если между любыми двумя узлами сети не должно быть больше 4-х повторителей, то максимальный диаметр сети на основе витой пары составляет 5*100 = 500 м (максимальная длина сегмента 100м).

10Base-F

Функционально сеть Ethernet на оптическом кабеле состоит из тех же элементов, что и сеть стандарта 10Base-T

Стандарт FOIRL (Fiber Optic Inter-Repeater Link) первый стандарт комитета 802.3 для использования оптоволокна в сетях Ethernet. Мах длина сегмента 1000м, мах число хабов 4, при общей длине сети не более 2500 м.

Стандарт 10Base-FL незначительное улучшение стандарта FOIRL. Мах длина сегмента 2000 м. Максимальное число хабов 4,а максимальная длина сети — 2500 м.

Стандарт 10Base-FB предназначен только для соединения повторителей. Конечные узлы не могут использовать этот стандарт для присоединения к портам концентратора. Мах число хабов 5, мах длина одного сегмента 2000 м и максимальной длине сети 2740 м.

Таблица. Параметры спецификаций физического уровня для стандарта Ethernet

При рассмотрении правила «5-4-3» или «4-х хабов», в случае появления на пути распространения по кабелям воображаемого сигнала устройства типа «свич», расчет топологических ограничений начинается с нуля.

Пропускная способность сети Ethernet

Пропускная способность оценивается через количество кадров либо количество байт данных, передаваемых по сети за единицу времени. Если в сети не происходят коллизии, максимальная скорость передачи кадров минимального размера(64 байта) составляет 14881 кадров в секунду. При этом полезная пропускная способность для кадров Ethernet II – 5.48 Мбит/с.

Максимальная скорость передачи кадров максимального размера (1500 байт) составляет 813 кадров в секунду. Полезная пропускная способность при этом составит 9.76 Мбит/с.

Лекция 2. Протоколы канального уровня

Канальный уровень (L2, link layer) занимает особое место в иерархии сетевого взаимодействия: он согласует физические аспекты передачи с логическим представлением устройства для системы и программ. У канального уровня нет четких границ: он тесно интегрирован с физическим уровнем ниже, а с другой стороны, выше канального уровня действуют протоколы, которые не относящиеся к сетевому уровню (например, ARP).

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

Вышестоящий логический подуровень называется LLC (logical-link control) и реализуется драйверами и ОС; подуровень для доступа к среде передачи называется MAC (media access control) и реализован в прошивке сетевой карты.

Канальный уровень действует в локальных сетях (local area network, LAN), то есть между устройствами, соединенными так, что могут передавать данные друг другу напрямую. Такую сеть называют еще L2-сегментом. В плане реализации это сети квартир, служебных и офисных помещений (но не полных организаций), размером единицы-десятки машин.

Задачи канального уровня:

  1. Формирование и считывание кадров (frame), то есть блоков данных (MAC).
  2. Доставка кадров отдельному узлу в пределах единой среды передачи (LLC).
  3. Обеспечение для сетевого уровня отправки передачи пакетов в локальной сети.

Кадр 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 ). Анализируя адрес назначения, узел определяет, ему ли предназначен пакет, или он пришел лишь потому, что с адресатом общая среда передачи. Адрес отправителя не влияет на прием кадра, но может использоваться для формирования ответа.

Тип протокола вышестоящего уровня ( EtherType ) — двухбайтовый код. Например, для IPv4 он равен 0x0800 ( 0x08 , 0x00 — порядок байтов сетевой). По нему получатель определяет, как обрабатывать полезную нагрузку (payload). Все типы имеют код от 1536 и выше, потому что в устаревшем стандарте Ethernet (не II) у тех же байт был иной смысл — длина полезных данных от 0 до 1500.

Контрольная сумма ( 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).

Завышенная оценка: 19,53 Mpps = 10×10⁹ bps / (8 b/B × 64 B/p)
Правильный расчет: 14,88 Mpps = 10×10⁹ bps / (8 b/B × (64 + 8 + 12) B/p)

Ограничение сверху на размер кадра влечет ограничение на размер полезных данных в нем — MTU (maximum transmission unit), для Ethernet это 1500 октетов, но может быть настроено меньше. Сетевому уровню известно MTU, поэтому L3 не генерирует сообщений, превышающих его. Если же принят пакет L3 большего размера и требуется переслать его дальше, на сетевом уровне создаются два пакета с частями исходного и посылаются отдельными кадрами — происходит фрагментация, которая будет более подробно рассмотрена вместе с IP.

Адресация на канальном уровне

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

  • одному конкретному узлу — адресная рассылка (unicast);
  • каждому узлу некой группы — многоадресная рассылка на L2 (MAC multicast);
  • всем узлам локальной сети — широковещательная рассылка (broadcast).

Соответственно, узел обрабатывает кадр, если MAC-адрес назначения:

  • равен ff:ff:ff:ff:ff:ff (широковещательный адрес);
  • является групповым адресом (см. ниже), и узел считает себя членом группы;
  • совпадает с MAC-адресом, принадлежащим сетевому порту, принявшему кадр.

Большая часть трафика является адресной рассылкой. Непременное техническое требование к MAC-адресам сетевых портов для этого — уникальность в локальной сети. Как достигается уникальность, зависит от происхождения MAC-адресов.

MAC-адреса могут назначаться вручную администратором или автоматически, например, при создании виртуальных машин. За уникальностью при этом следит администратор или программа. По стандартам IEEE локально выданные MAC-адреса (locally administered) должны иметь 1 в определенном бите, например, 0a:11:11:11:11:11 ( 000010 1 0:… ), см. рис. 2.

Портам физических устройств MAC-адреса назначаются при производстве. Производители не могут заранее знать, какие два устройства окажутся в одной сети, поэтому им назначают адреса, уникальные глобально (globally unique). Для этого регистратор IEEE выделяет производителям трехбайтовые номера (organizationally unique ID, OUI), которые используются как первые три октета MAC-адреса. Остальные три октета производитель выбирает сам так, чтобы не было двух портов с одинаковыми адресами. В Wireshark можно видеть отображаемые MAC-адреса в виде Routerbo_b3:0f:d0 , где октеты OUI заменены сокращенным названием производителя (в данном случае — RouterBoard).

Рисунок 2: Структура MAC-адреса (источник, CC-BY-SA 2.5)

Широковещательная рассылка используется либо когда MAC-адрес целевого узла неизвестен, либо для оповещения всех узлов. Чаще всего она встречается с протоколом ARP (см. ниже).

Многоадресная (или групповая) рассылка используется в основном в корпоративных и промышленных сетях. Групповые MAC-адреса имеют нечетный первый октет. Групповая рассылка используется, чтобы отправить кадр:

  1. Сразу всей группе заинтересованных узлов. В чем именно заинтересованных, то есть какой именно группе, определяется выбранным групповым адресом.
  2. Одному узлу, который в данный момент выполняет известную роль, но при этом неизвестно, какой это конкретно узел. (Термин «групповая рассылка» здесь условен.)

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

1. Рассылка для группы узлов. Если транслировать все каналы всем (широковещательно), сеть будет перегружена. Если транслировать для каждого абонента адресно, придется отправлять одни и те же данные несколько раз и отслеживать текущие каналы абонентов, что усугубляет нагрузку на сервер трансляций.

Здесь группа заинтересованных узлов — зрители телеканала. Многоадресная передача позволяет серверу отправлять данные каждого канала один раз, а при распределении трафика по сети (см. ниже) кадры будут продублированы и получены правильными узлами.

В случае IP-телевидения многоадресная рассылка на канальном уровне используется в сочетании с многоадресной же рассылкой на сетевом уровне (IP multicast), чтобы транслировать передачи между локальными сетями. При этом используются специальные IP-адреса, а групповые MAC-адреса вида 01:00:5e:xx:xx:xx (IPv4) или 33:33:00:xx:xx:xx (IPv6) строятся из них по правилам: xx заменяются младшими байтами IP-адреса.

2. Отправка узлу по его роли. Сервер провайдера соединен с абонентами физически не напрямую, а через промежуточные сетевые устройства. Предположим, что это коммутатор, в один порт которого подключен сервер трансляций, а в другие порты — абоненты (реальная сеть существенно сложнее). Получив кадр трансляции, коммутатор должен направить его не во все порты, а только в те, к которым подключены абоненты, смотрящие один канал. Но откуда известно, в какие?

При переключении канала абонент шлет на адрес своей новой группы (смотрящих новый канал) пакет по специальному протоколу IGMP (Internet Group Management Protocol). Коммутатор отслеживает кадры всех групп 01:00:5e:xx:xx:xx . Получив такой кадр с порта, коммутатор делает вывод, что в дальнейшем кадры для этой группы нужно отправлять в порт, с которого пришло оповещение.

В той же ситуации абонент может отправить еще на специальный адрес, означающий «все роутеры», оповещение, что ему больше не нужно присылать кадры канала, который он смотрел ранее. Коммутатор заинтересован в оповещении и учтет его.

Протокол разрешения адресов (ARP)

Чтобы сформировать кадр, необходимо знать MAC-адрес получателя. Вышестоящие уровни не обладают этой информацией, а только адресом L3 (обычно IP-адресом). Получателю свой MAC-адрес известен, следовательно, он и должен его сообщить. По получателю неизвестно, что с ним пытаются связаться. Поэтому отправитель должен предварительно отправить запрос. Это нельзя сделать адресно (нет собственно MAC-адреса), нельзя сделать групповой рассылкой (любой узел может быть получателем — такая группа включала бы все узлы), следовательно, остается широковещательная рассылка запроса.

Протокол разрешения адресов (address resolution protocol, ARP) и предназначен для нахождения MAC-адреса по IP-адресу. Структура его пакетов, одинаковая для запросов и ответов, приведена на рис. 3.

Рисунок 3: Формат пакета ARP (источник, CC-BY-SA 4.0)

Рисунок 3: Формат пакета ARP (источник, CC-BY-SA 4.0)

Клиент шлет широковещательный пакет на 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-адрес и IP-адрес из ответа и добавляет их в свою таблицу ARP. (Содержимое таблицы в Windows, Linux и MacOS можно просмотреть программой arp .)

Может показаться, что ответ ARP избыточен: MAC-адрес сервера уже указан в кадре как MAC отправителя, а искомый IP-адрес дублируется из запроса. Но избыточности нет:

Клиент может одновременно сделать несколько ARP-запросов доя разных IP. Если не указывать искомый IP в ответе, клиент не сможет определить, к какому IP относится MAC сервера.

В сложных случаях для передачи запросов ARP может использоваться один протокол канального уровня, а для связи с искомым узлом — другой. При этом адрес отправителя в кадре-ответе и адрес отправителя в ответе ARP (содержимом кадра) не будут или даже не могут совпадать. Строго говоря, ARP не ограничен MAC- и IP-адресами, но применяется в основном для них.

При включении в сеть некоторые устройства и ОС посылают так называемые анонсы ARP (ARP announcement) или приветственные ARP (gratuitous ARP): ответы ARP самому себе, но посланные на широковещательный адрес. Таким образом присутствовавшие в сети устройства могут узнать о новом.

Очерк устройства и иерархической архитектуры сетей

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

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

Что это за устройства?

  1. Оконечные устройства, создающие и потребляющие передаваемую по сети информацию: компьютеры, смартфоны, IP-телефоны, камеры, датчики и другие.
  2. Промежуточные устройства, обеспечивающие работу сети: коммутаторы, маршрутизаторы, системы фильтрации трафика и другие.

Для средних и крупных организаций (десятки-сотни и сотни-тысячи узлов соответственно) целесообразно связывать устройства в иерархическую архитектуру, показанную на рис. 4.

Рисунок 4: Иерархическая архитектура сети (источник, по материалам Cisco Press)

Рисунок 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 разделяют 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)

Первые два байта — всегда 0x8100 ( 0x81 , 0x00 ), это идентификатор протокола тэгов IEEE 802.11Q (tag protocol identifier, TPID).

Вторые два байта — управляющие данные тэга (tag control information, TCI). Из них 12 битов — идентификатор VLAN, используемый для их различения. Еще 4 бита отвечают за приоритизацию трафика, что выходит за рамки обсуждения. Из 2¹² = 4096 номеров VLAN есть два особых: 0x000 означает, что тэг несет только информацию о приоритете трафика), 0xfff зарезервирован и не должен использоваться.

Заметим, что по одному каналу (обычно в ядре или между площадками) может идти вперемешку тэгированный и нетэгированный трафик. Идентификатор протокола тэгов позволяет различить их. Кадр начинает обрабатываться как нетэгированный. Поле TPID расположено в кадре там же, где код протокола L3. Его анализ обнаружит, что кадр тэгирован, будет учтен VLAN ID, а код протокола L3 будет прочитан вслед за меткой VLAN.

Откуда берется метка у кадров, в каком месте определяется VLAN ID?

В типичном случае это делает коммутатор. Его порты, связанные с оконечным устройством настраиваются в так называемый access-режим:

  1. Порту назначается VLAN, в которую будет входить подключенное устройство.
  2. Когда в порт поступает нетэгированный кадр, в него добавляется метка с настроенным VLAN ID.
  3. Когда в коммутатор поступает кадр на MAC-адрес подключенного к порту устройства, тэгированный тем же VLAN ID, что и у порта, метка снимается, и оконечному устройству направляется нетэгированный кадр.
  4. В остальных случаях (тэгированный кадр со стороны оконечного устройства, несоответствие VLAN ID) кадр отбрасывается, то есть не обрабатывается.

Это удобно для управления сетью:

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

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

Козлюк Д. А. для кафедры Управления и информатики НИУ «МЭИ», 2018 г.

Форматы кадров технологии Ethernet

Стандарт на технологию Ethernet, описанный в документе 802.3, дает описание единственного формата кадра МАС-уровня. Так как в кадр МАС-уровня должен вкладываться кадр уровня LLC, описанный в документе 802.2, то по стандартам IEEE в сети Ethernet может использоваться только единственный вариант кадра канального уровня, образованный комбинацией заголовков МАС и LLC подуровней. Тем не менее, на практике в сетях Ethernet на канальном уровне используются заголовки 4-х типов. Это связано с длительной историей развития технологии Ethernet до принятия стандартов IEEE 802, когда подуровень LLC не выделялся из общего протокола и, соответственно, заголовок LLC не применялся. Затем, после принятия стандартов IEEE и появления двух несовместимых форматов кадров канального уровня, была сделана попытка приведения этих форматов к некоторому общему знаменателю, что привело еще к одному варианту кадра.

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

  • Кадр 802.3/LLC (или кадр Novell 802.2)
  • Кадр Raw 802.3 (или кадр Novell 802.3)
  • Кадр Ethernet DIX (или кадр Ethernet II)
  • Кадр Ethernet SNAP

Заголовок кадра 802.3/LLC является результатом объединения полей заголовков кадров, определенных в стандартах 802.3 и 802.2.

  • Поле преамбулы состоит из семи байтов синхронизирующих данных. Каждый байт содержит одну и ту же последовательность битов — 10101010. При манчестерском кодировании эта комбинация представляется в физической среде периодическим волновым сигналом. Преамбула используется для того, чтобы дать время и возможность схемам приемопередатчиков (transceiver) прийти в устойчивый синхронизм с принимаемыми тактовыми сигналами.
  • Начальный ограничитель кадра состоит из одного байта с набором битов 10101011. Появление этой комбинации является указанием на предстоящий прием кадра.
  • Адрес получателя — может быть длиной 2 или 6 байтов (MAC-адрес получателя). Первый бит адреса получателя — это признак того, является адрес индивидуальным или групповым: если 0, то адрес указывает на определенную станцию, если 1, то это групповой адрес нескольких (возможно всех) станций сети. При широковещательной адресации все биты поля адреса устанавливаются в 1. Общепринятым является использование 6-байтовых адресов.
  • Адрес отправителя — 2-х или 6-ти байтовое поле, содержащее адрес станции отправителя. Первый бит — всегда имеет значение 0.
  • Двухбайтовое поле длины определяет длину поля данных в кадре.
  • Поле данных может содержать от 0 до 1500 байт. Но если длина поля меньше 46 байт, то используется следующее поле — поле заполнения, чтобы дополнить кадр до минимально допустимой длины.
  • Поле заполнения состоит из такого количества байтов заполнителей, которое обеспечивает определенную минимальную длину поля данных (46 байт). Это обеспечивает корректную работу механизма обнаружения коллизий. Если длина поля данных достаточна, то поле заполнения в кадре не появляется.
  • Поле контрольной суммы — 4 байта, содержащие значение, которое вычисляется по определенному алгоритму (полиному CRC-32). После получения кадра рабочая станция выполняет собственное вычисление контрольной суммы для этого кадра, сравнивает полученное значение со значением поля контрольной суммы и, таким образом, определяет, не искажен ли полученный кадр.

Кадр 802.3 является кадром MAС-подуровня, в соответствии со стандартом 802.2 в его поле данных вкладывается кадр подуровня LLC с удаленными флагами начала и конца кадра. Формат кадра LLC был описан выше.

Результирующий кадр 802.3/LLC изображен в левой части рисунка 3. Так как кадр LLC имеет заголовок длиной 3 байта, то максимальный размер поля данных уменьшается до 1497 байт.

Рис. 3. Форматы кадров Ethernet

Справа на этом рисунке приведен кадр, который называют кадром Raw 802.3 (то есть «грубый» вариант 802.3) или же кадром Novell 802.3. Из рисунка видно, что это кадр MAC-подуровня стандарта 802.3, но без вложенного кадра подуровня LLC. Компания Novell долгое время не использовала служебные поля кадра LLC в своей операционной системе NetWare из-за отсутствия необходимости идентифицировать тип информации, вложенной в поле данных — там всегда находился пакет протокола IPX, долгое время бывшего единственным протоколом сетевого уровня в ОС NetWare.

Теперь, когда необходимость идентификации протокола верхнего уровня появилась, компания Novell стала использовать возможность инкапсуляции в кадр MAC-подуровня кадра LLC, то есть использовать стандартные кадры 802.3/LLC. Такой кадр компания обозначает теперь в своих операционных системах как кадр 802.2, хотя он является комбинацией заголовков 802.3 и 802.2.

Кадр стандарта Ethernet DIX, называемый также кадром Ethernet II, похож на кадр Raw 802.3 тем, что он также не использует заголовки подуровня LLC, но отличается тем, что на месте поля длины в нем определено поле типа протокола (поле Type). Это поле предназначено для тех же целей, что и поля DSAP и SSAP кадра LLC — для указания типа протокола верхнего уровня, вложившего свой пакет в поле данных этого кадра. Для кодирования типа протокола используются значения, превышающие значение максимальной длины поля данных, равное 1500, поэтому кадры Ethernet II и 802.3 легко различимы.

Еще одним популярным форматом кадра является кадр Ethernet SNAP (SNAP — SubNetwork Access Protocol, протокол доступа к подсетям). Кадр Ethernet SNAP определен в стандарте 802.2H и представляет собой расширение кадра 802.3 путем введения дополнительного поля идентификатора организации, которое может использоваться для ограничения доступа к сети компьютеров других организаций.

В таблице 2 приведены данные о том, какие типы кадров Ethernet обычно поддерживают реализации популярных протоколов сетевого уровня.

Сети → Алгоритм работы свича (коммутатора)

работа свича

Чтобы принят решение об пересылке (forwarding decision), коммутатор использует таблицу коммутации, в которой MAC-адреса сети и соответствующий порт.

таблица коммутацииБуферы (buffers) представляют собой микросхемы памяти в коммутаторе, которые используются для временного хранения нескольких фреймов.

Буферизируя фреймы, свичи не создают коллизий.

Способность посылать и одновременно получать данные называется полный дуплекс (full duplex). Наложенное логикой CSMA/CD ограничение, позволяющее одновременно или только передавать данные, или только получать их, называют полудуплекс (half duple).

Процесс обучения (learning) свича – процесс составления таблицы адресов:

  1. Когда ПК1 посылает фрейм, в Ethernet заголовке фрейма обязательно содежрится MAC-адрес отправителя (в поле адрес отправителя). Поэтому коммутатор полагает, что MAC-адрес ПК1 связан с портом, через который коммутатор получил фрейм, например E0. Коммутатор просто добавляет запись в таблицу MAC-адресов и связывает порт с этим MAC-адресом;
  2. Когда ПК2 посылает фрейм, коммутатор изучает MAC-адрес ПК2, для этого он «смотрит» на адрес отправителя фрейма, который послал ПК2. Коммутатор связывает этот MAC-адрес с портом (скажем Е1), потому что это – порт, через который был получен фрейм.

Лавинная адресация (flooding) – когда свич получает фрейм, адрес назначения которого не содержится в таблице MAC-адресов, коммутатор пересылает этот фрейм на все порты кроме того, через который фрейм был получен. Ответит на него тот, кому он предназначен, и после этого в таблицу адресов коммутатора вноситься запись с MAC-адресом этого ПК.

Ethernet определят специальный MAC-адрес, называемый широковещательным адресом (broadcast address) – FF-FF-FF-FF-FF-FF. Когда компьютер посылает фрейм с адресом получателя FF-FF-FF-FF-FF-FF, это означает, что фрейм должен быть отправлен всем устройствам локальной сети.

Алгоритм работы свича:

  1. Свичи решают, куда переслать фрейм, сравнивая адрес получателя фрейма с записями в таблице MAC-адресов;
  2. Свичи делают записи в таблице MAC-адресов на основании MAC-адресов отправителей фреймов, которые они получают;
  3. Решение о пересылке в зависимости от решения о фильтрации просто означает, что коммутатор пересылает фрейм только на необходимые порты (пересылка) и не пересылает фрейм (фильтрация) на другие порты;
  4. Свич осуществляет лавинную адресацию фреймов, которые были посланы неизвестному ему одноадресному получателю; неизвестные одноадресные получатели – это те, адреса которых коммутатор еще не добавил в свою таблицу MAC-адресов;
  5. Свич осуществляет лавинную адресацию фреймов, посланных по широковещательному адресу;
  6. Свичи препятствуют возникновению коллизий, буферизируя фреймы вместо того, чтобы пытаться посылать много фреймов через одну и ту же витую пару в одно и то же время.

Механизм автоматического согласования (autonegotiation) позволяет коммутатору и плате интерфейса сети на другом конце кабеля автоматически согласовывать скорость (10/100/1К Мбит/с).

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *