Инкапсуляция ISL и 802.1Q

Автор A.HunSolo специально для CiscoLab.RU

Для переноса трафика принадлежащего нескольким VLAN между коммутаторами по одному и тому же линку используются магистральные каналы или транки. Оборудование может определить к какому VLAN принадлежит трафик по его идентификатору VLAN.
Идентификатор VLAN это метка которая инкапсулируется в данные. Для переноса данных от нескольких VLAN по магистральным каналам используются два типа инкапсуляции ISL и 802.1Q

ISL


ISL – это протокол разработанный Cisco для соединения коммутаторов друг с другом и поддержания информации о VLAN в трафике, проходящем через них. ISL выполняет группообразование VLAN в единый магистральный канал на поной скорости соединения Ethernet в полнодуплексном или полудуплексном режиме. ISL работает в среде точка-точка и может поддерживать вплоть до 1000 VLAN. При ISL инкапсуляции к оригинальному фрейму добавляется заголовок ISL, оригинальный пакет остается в неизменном виде, а также в конце фрейма добавляется новая контрольная сумма - FCS (Frame Check Sequence). Контрольная сумма оригинального пакета остается БЕЗ изменений. Затем полученный кадр передается в магистральный канал.
На приемной стороне, заголовок ISL удаляется и кадр пересылается в назначенный VLAN.

Формат кадра ISL:
 
Инкапсуляция ISL и 802.1Q


DA - Destianation Address (адрес получателя), здесь используется мультикаст-адрес, что и является сигналом для получателя, что кадр инкапсулирован с помощью ISL. Используются адреса "0x01-00-0C-00-00" или "0x03-00-0c-00-00."

TYPE - поле типа, 4 бита, указывает протокол 2го уровня, инкапсулированный в пакет. Возможные варианты:
 
  • 0000 - Ethernet
     
  • 0001 - Token-Ring
     
  • 0010 - FDDI
     
  • 0011 – ATM
     


USER - пользовательские данные, используются для расширения значения поля типа. Для Ethernet-кадров в этом поле записывается приоритет кадра при прохождении через свитч:
 
  • XX00 - Normal Priority
     
  • XX01 - Priority 1
     
  • XX10 - Priority 2
     
  • XX11 - Highest Priority
     


SA - Source Address, адрес источника. Устанавливается MAC-адрес порта каталиста, отправившего данный кадр. Получателем данное поле может игнорироваться.

LEN - Length, длина. Сохраняет длину пакета целиком, в байтах, кроме полей DA, TYPE, USER, SA, LEN, FCS. В итоге получается длина все кадра вместе с инкапсуляцией минус 18 байт.

AAAA03 (SNAP) - Subnetwork Access Protocol (SNAP) and Logical Link Control (LLC) - поле содержит константу 0xAAAA03

HSA - High Bits of Source Address, содержит старшие биты (3байта = 24 бита) производителя (код производителя) поля SA (адрес коммутатора-отправителя), содержит постоянное значение 0x00-00-0C (код Cisco).

VLAN - Destination Virtual LAN ID, номер влана получателя. 15-битовое поле, часто упоминается как "цвет" ("color") фрейма.

BPDU - Bridge Protocol Data Unit and Cisco Discovery Protocol Indicator, индикатор пакета BPDU и CDP. Устанавливается в 1 при передаче инкапсулированных пакетов VTP и CDP.

INDX - Index, индекс. Указывается индекс порта-отправителя на коммутаторе. Используется только для диагностических целей, может быть установлено в любое значение отправителем (другим девайсом). 16-битовое значение, игнорируется получателем.

RES - Reserved for Token Ring and Fiber Distributed Data Interface (FDDI), резервное поле для протоколов TR и FDDI. 16 бит. Для пакетов протокола Ethernet должны быть все нули, для протокола TR в данном поле размещаются значения полей AC (Access Control) FC (Frame Control) оригинального фрейма. Для протокола FDDI поле FC размещается в младших битах данного поля (пример: FC = 0x12 -> RES = 0x0012)

ENCAPSULATED FRAME - оригинальный фрейм (до инкапсуляции). Данный фрейм включается свою собственную CRC - оригинальное, не измененное значение. Данное значение имеет смысл ТОЛЬКО после деинкапсуляции. Длина инкапсулированного фрейма может быть от 1 до 24575 байт для Ethernet, Token Ring, FDDI пакетов. После получения фрейма и деинкапсуляции устройство-получатель использует инкапсулированный фрейм без изменений, в соответствии с номером влана-получателя.

FCS - Frame Check Sequence, поле контрольной суммы. 4 байта. Создается устройством-отправителем ISL-кадра, рекалькулируется коммутатором-получателем для контроля целостности передачи. При вычислении данного поля используются поля DA, SA, Length/Type, Data созданного пакета. Вычисляется ПОСЛЕ присоединения заголовка ISL, контрольная сумма добавляется в конец фрейма. Вычисление данного поля НЕ имеет отношения к полю FCS оригинального фрейма (неинкапсулированного).

Размер ISL Фрэйма

Фрейм, инкапсулированный в ISL "подрастает" на 30 байт - 26 байт заголовок плюс 4 контрольная сумма. Минимальный размер пакета из всех возможных технологий - FDDI, 17 байт. Следовательно, минимальный пакет ISL может быть 47 байт. Максимальный размер для всех технологий - 17848 байт для Token Ring, следовательно, максимальный пакет ISL может быть 17848 байт, плюс 39 байт ISL заголовка минус 1 байт при отбрасывании поля AC, что дает 17886 байт. Для технологии Ethernet размер фрейма может варьироваться от 94 до 1548 байт.

Также возрастает качество передачи, так как подсчет контрольной суммы производится дважды - в оригинальном фрейме и в уже инкапсулированном. Это довольно просто реализуется в коммутаторах, однако создает дополнительные сложности производителям маршрутизаторов и сетевых плат (NICs - Network Interface Cards).


Опубликовал admin
20 Мар, Вторник 2007г.



Программирование для чайников.