Что такое инкапсуляция? Это “заворачивание” одного фрейма в другой. Инкапсуляция используется тогда, когда нужно передавать несколько vlan’ов через один порт. Происходит это так: на одном конце вланы инкапсулируются, а на другом – “разинкапсулируются” обратно.
В свичах cisco существуют 2 типа инкапсулации: dot1q (укороченная версия IEEE 802.1q) и isl (например, в сериях 19ХХ это единственный доступный тип инкапсуляции) В разных моделях свичей по дефолту используются разные методы инкапсуляции, которые между собой не совместимы. Для примера, в свчиах моделей Cisco Catalyst 2900XL по дефолту стоит isl, а в Cisco Catalyst 2950/60 – dot1q (потому что там нет isl и будет проблематично связать его, например, с 19ХХ). Поэтому, если вы всё настроили, но пакеты не бегают, то проверьте тип инкапсуляции на обеих сторонах.
Что бы посмотреть, какой тип инкапсуляции используется нужно выполнить такую команду:
cisco>show interface switchport
Пример (выполнялось на 290XL):
root-sw>sh int fa0/5 switchport
Name: Fa0/5
Switchport: Enabled
Administrative mode: static access
Operational Mode: static access
Administrative Trunking Encapsulation: isl
Operational Trunking Encapsulation: isl
Negotiation of Trunking: Disabled
Access Mode VLAN: 55 (VLAN0055)
Trunking Native Mode VLAN: 1 (default)
Trunking VLANs Enabled: NONE
Pruning VLANs Enabled: NONE
Priority for untagged frames: 0
Override vlan tag priority: FALSE
Voice VLAN: none
Appliance trust: none
Self Loopback: No
Как видим, тип инкапсуляции установлен в isl. Выполним ту же команду на 2950:
delta-sw#sh interface FastEthernet0/2 switchport
Name: Fa0/2
Switchport: Enabled
Administrative Mode: dynamic desirable
Operational Mode: static access
Administrative Trunking Encapsulation: dot1q
Operational Trunking Encapsulation: native
Negotiation of Trunking: On
Access Mode VLAN: 101 (VLAN0101)
Trunking Native Mode VLAN: 1 (default)
Voice VLAN: none
Administrative private-vlan host-association: none
Administrative private-vlan mapping: none
Administrative private-vlan trunk native VLAN: none
Administrative private-vlan trunk encapsulation: dot1q
Administrative private-vlan trunk normal VLANs: none
Administrative private-vlan trunk private VLANs: none
Operational private-vlan: none
Trunking VLANs Enabled: ALL
Pruning VLANs Enabled: 2-1001
Capture Mode Disabled
Capture VLANs Allowed: ALL
Protected: false
Appliance trust: none
А теперь, что представляют собой эти инкапсуляции.
ISL – этот тип используется только тогда, когда требуется соединение точка-точка (в настоящее время более не поддерживается, был разработан до принятия стандарта 802.1q), не обрабатывает VLAN’ы, но способно коммутировать фреймы, сформированные по этому стандарту
DOT1Q – используется для multiple соединений. Это укороченная версия от IEEE 802.1q. Так как802.1Q не изменяет заголовки кадра, то сетевые устройства, которые не поддерживают этот стандарт, могут передавать трафик без учёта его принадлежности к VLAN. 802.1Q помещает внутрь фрейма тег, который передает информацию о принадлежности трафика к VLAN’у. В стандарте 802.1Q существует понятие Native VLAN. По умолчанию это VLAN 1. Трафик, передающийся в этомVLAN, не тегируется.
Учитывая, что между собой эти инкапсуляции не совместимы, будем иметь следующее. Для того, что бы связать транком, например 2900XL и 2950 нужно на 2950 принудительно изменить инкапсуляцию на dot1q.
Пример(все настройки выполняем на 2900XL):
root-sw#conf t
Enter configuration commands, one per line. End with CNTL/Z.
root-sw(config)#int fa0/3
root-sw(config-if)#switchport mode trunk
root-sw(config-if)#switchport trunk encapsulation dot1q
root-sw(config-if)#switchport trunk allowed vlan 51,103
Только после этого начнётся нормальный обмен пакетами.
Очень хорошо про инкапсуляции описано здесь.
Дополнение от пользователя Pilferst.
Есть ещё такое понятие как native vlan (“родной влан”). По дефолту он vlan1. Для чего он нужен? Суть его следующая: если на порт попадает нетегированый пакет, то ему назначается native vlan.
Native vlan назначается соответствующему порту на коммутаторе:
root-sw#conf t
Enter configuration commands, one per line. End with CNTL/Z.
root-sw(config)#int fa0/7
root-sw(config-if)#switchport trunk native vlan 51
Проверяем:
root-sw#sh interfaces fa0/7 switchport
Name: Fa0/7
Switchport: Enabled
Administrative mode: static access
Operational Mode: static access
Administrative Trunking Encapsulation: isl
Operational Trunking Encapsulation: isl
Negotiation of Trunking: Disabled
Access Mode VLAN: 55 (VLAN0055)
Trunking Native Mode VLAN: 51 (VLAN0051)
Trunking VLANs Enabled: NONE
Pruning VLANs Enabled: NONE
Priority for untagged frames: 0
Override vlan tag priority: FALSE
Voice VLAN: none
Appliance trust: none
Self Loopback: No
Вот так вот.
2 коментарі “Транки и инкапсуляция”
Спасибо за статью, всегда рад почитать вас!
Молодцы. Просто и доступным языком. Если чесно понравилось как про native описано. Англицкий вариант не понял, на вики смутно описано, а тут просто. Сенкс.