Введение
Предварительные условия
Требования
Используемые компоненты
Условные обозначения
Что такое транк?
Основные характеристики транкинга 802.1Q
Механизм добавления тегов
Фактор связующего дерева
Реализации Cisco
Конфигурирование транков 802.1Q
Требования к программному обеспечению и оборудованию
Режимы DTP
Пошаговый пример
Распространенные ошибки
Разные собственные виртуальные локальные сети
Разные VTP домены
Ошибка при удалении сетей VLAN расширенного диапазона из порта транка
Режим транкинга несовместим с типом инкапсуляции
Команды, используемые в данном документе
Перечень команд
Дополнительные сведения
Данный документ содержит общие сведения о концепции транкинга между двумя коммутаторами Ethernet и сосредоточен на стандарте транкинга IEEE 802.1Q. После краткого описания механизма транкинга 802.1Q приведено описание реализации с использованием коммутаторов Catalyst серий 4500/4000, 5500/5000 и 6500/6000. Пример приведен полностью вместе с указанием нескольких типичных ошибок конфигурации транкинга 802.1Q, возникающих при использовании системного ПО Catalyst OS (CatOS). Примеры транкинга 802.1Q с системным ПО Cisco IOS® см. в Конфигурация транкинга 802.1Q между коммутаторами Catalyst 3550/3560/3750 и Catalyst, на которых выполняется ПО Cisco IOS.
Для этого документа отсутствуют особые требования.
Настоящий документ не имеет жесткой привязки к каким-либо конкретным версиям программного обеспечения и оборудования.
Дополнительные сведения об условных обозначениях см. в документе Условные обозначения технических терминов Cisco.
В терминологии Cisco, транк — это канал типа "точка-точка", по которому передаются данные нескольких сетей VLAN. Назначение транка – экономить порты при создании канала связи между двумя устройствами, реализующими VLAN (обычно это два коммутатора). На следующей схеме можно видеть две виртуальные локальные сети, которые должны быть доступными на двух коммутаторах: Sa и Sb. Первым простым способом реализации является создание между устройствами двух физических каналов. Каждый из этих каналов передает трафик для виртуальной локальной сети.
Конечно, это решение не масштабируется. Условием добавления третьей VLAN является потеря двух дополнительных портов. Кроме того данная модель неэффективна в плане распределения нагрузки — трафик некоторых VLAN может не оправдывать пропускную способность выделенного канала. Транк объединяет виртуальные каналы в один физический канал передачи данных, как показано на следующей схеме:
В данном примере уникальный физический канал между двумя коммутаторами может передавать трафик любой сети VLAN. Для этого каждый кадр, отправляемый по каналу, Sa добавляет тег, чтобы Sb знал какой сети VLAN этот кадр принадлежит. Существуют различные схемы добавления тегов. Для сегментов Ethernet наиболее часто используются следующие:
протокол межкоммутационного канала Inter-Switch Link (ISL) (патентованный собственный ISL протокол Cisco)
802.1Q (стандарт IEEE, который рассматривается в данном документе)
802.1Q использует внутренний механизм добавления тегов. "Внутренний" означает, что тэг вставляется в кадр:
Примечание. В случае протокола ISL кадр инкапсулируется.
Примечание. Обратите внимание на транк 802.1Q, одна VLAN НЕ помечена. Эта виртуальная локальная сеть, называемая собственной VLAN, должна быть настроена на каждой стороне транка. Таким образом можно выяснить какой сети VLAN принадлежит кадр, полученный без тега.
Механизм добавления тегов предполагает изменение кадра; устройство транкинга вставляет 4-байтный тег и повторно вычисляет контрольную последовательность кадра (FCS):
Поле EtherType, определяющее кадр 802.1Q, имеет значение 0x8100. В дополнение к 12-битному VLAN-ID, 3 бита зарезервированы для добавления тега приоритета IEEE 802.1p.
Примечание. Вставка тега в кадр, который уже имеет максимальный размер для Ethernet, создает кадр размером 1522 байт, который приемное оборудование может воспринять как "baby giant" (большой кадр). В спецификации стандарта IEEE 802.3 увеличен максимальный размер стандартного кадра, чтобы устранить эту проблему.
Стандарт IEEE 802.1Q — это не только механизм добавления тегов. Он также определяет уникальный экземпляр связующего дерева, выполняющийся на собственной сети VLAN для всех остальных VLAN в сети. Такая сеть с одним связующим деревом (MST) является менее гибкой чем сеть со связующими деревьями для каждой VLAN (PVST), в которой для каждой сети VLAN используется свой экземпляр протокола Spanning Tree Protocol (STP). Cisco разработала протокол PVST+, чтобы сделать возможным выполнение нескольких экземпляров STP (даже в сети 802.1Q), используя механизм туннелирования. Хотя это не входит в спектр вопросов данного документа, но кратко это можно описать, как использование устройства Cisco для соединения зоны MST (обычно сеть на основе 802.1Q другого поставщика) с зоной PVST (обычно сеть на основе Cisco ISL). Нет особой конфигурации, которую можно настроить для реализации этого. В идеальной ситуации смешанная среда выглядит как показано на схеме ниже:
В текущей реализации устройства Cisco поддерживают сети VLAN в количестве только до 1005. Это ограничение, введенное для согласования количества VLAN доступных с протоколом ISL, разрешено стандартом 802.1Q. Cisco разработала функцию сопоставления VLAN в CatOS 5.1, чтобы упростить функциональную совместимость с устройствами других поставщиков, однако она редко требуется.
Примечание. Дополнительную информацию о функции сопоставления VLAN см. в Настройка сетей VLAN.
Cisco также адаптировала свой динамический протокол ISL (DISL) и преобразовала его в динамический протокол транкинга (DTP). DISL может согласовывать транкинг ISL на канале между двумя устройствами. DTP, помимо этого, может согласовать тип инкапсуляции транкинга (802.1 Q или ISL), который также будет использован. Это полезная возможность, поскольку некоторые устройства Cisco поддерживают только ISL или 802.1Q, тогда как другие поддерживают оба протокола.
В реализации Cisco транк – это двухточечное соединение, хотя можно использовать инкапсуляцию 802.1Q на сегменте Ethernet, совместно используемом более чем двумя устройствами. Такая конфигурация требуется редко, но возможна при отказе согласования DTP.
С точки зрения ПО инкапсуляция 802.1Q впервые появилась в ПО CatOS версии 4.1. Однако в этом выпуске конфигурацию транкинга необходимо было программировать, прикладывая значительные усилия; DTP появился только в CatOS версии 4.2. См. раздел Режимы DTP данного документа.
Порты не всех коммутаторов Cisco Catalyst поддерживают инкапсуляцию 802.1Q. В настоящее время коммутаторы Catalyst 4500/4000 поддерживают только 802.1Q, порты Catalyst 6500/6000 способны использовать инкапсуляцию 802.1Q или ISL. В зависимости от модуля, порты Catalyst 5500/5000, поддерживающие транкинг, способны работать с инкапсуляцией ISL, инкапсуляцией 802.1Q или и с обеими одновременно. Выполните команду show port capabilities, чтобы получить точные сведения об этом. Способность транкинга указывается в явном виде:
Sa> (enable) show port capabilities 1/1 Model WS-X5530 Port 1/1 Type 1000BaseSX Speed 1000 Duplex full Trunk encap type 802.1Q,ISL Trunk mode on,off,desirable,auto,nonegotiate Channel no Broadcast suppression percentage(0-100) Flow control receive-(off,on,desired),send-(off,on,desired) Security no Membership static Fast start yes Rewrite no
При настройке порта для транкинга можно задать два параметра: режим транкинга и тип инкапсуляции (если порт поддерживает DTP).
Режим транкинга определяет согласование портом настройки транка со своим портом назначения. Ниже перечислены возможные настройки:
Режим транкинга |
Отправка кадров DTP |
Описание |
Конечное состояние (локальный порт) |
---|---|---|---|
on |
Да, периодически |
Локальный порт сообщает удаленным портам о своем переходе в состояние транкинга. |
Транкинг, без условий. |
auto |
Да, периодически |
Локальный порт сообщает удаленным портам о своей способности транкинга, но не запрашивает переход в состояние транкинга. |
Этот порт перейдет в состояние транкинга, только если это нужно удаленному порту, т.е. удаленный порт в режиме on или desirable. |
desirable |
Да, периодически |
Локальный порт сообщает удаленным портам о своей способности транкинга и запрашивает переход в состояние транкинга. |
Если порт обнаруживает, что удалённый порт способен к транкингу (удаленный порт в режиме on, desirable или auto), он перейдет в состояние транкинга или останется в состоянии без транкинга. |
nonegotiate |
НЕТ |
Локальный порт переходит в режим безусловного транкинга без DTP уведомления удаленного порта. |
Транкинг, без условий. |
off |
ДА |
Отключить транкинг порта. DTP кадры отправляются только если порт переходит в состояние без транкинга. |
Без транкинга, без условий. |
Обратите внимание, что некоторые режимы (on, nonegotiate, off) явно задают состояние, в каком окажется порт. Неправильная настройка может привести к опасному или несовместимому состоянию, когда одна сторона выполняет транкинг, а другая – нет.
Порт в режиме on, auto или desirable периодически отправляет DTP кадры. Порт транкинга в режиме auto или desirable переходит в состояние без транкинга, если не получает DTP обновление от соседа в течение пяти минут.
Примечание. Если используется ПО CatOS 4.1, необходимо отключить любую форму согласования, задав режим off или nonegotiate при настройке транкинга 802.1Q.
Тип инкапсуляции позволяет пользователю выбрать использование 802.1Q или ISL при настройке транка. Конечно этот параметр уместен, если используемый модуль поддерживает оба типа. Параметр может принимать три различных значения:
Тип инкапсуляции |
Описание |
---|---|
ISL |
Устанавливает ISL для инкапсуляции порта. |
dot1q |
Устанавливает 802.1Q для инкапсуляции порта. |
negotiate |
Эта инкапсуляция доступна только в режимах auto или desirable транкинга.
|
В разделе Результаты возможных конфигураций транков Fast Ethernet и Gigabit Ethernet документа Настройка транков VLAN на портах Fast Ethernet и Gigabit Ethernet см. список всех возможных результирующих конфигураций.
Примечание. Между двумя коммутаторами, находящимися в различных VLAN Trunk Protocol (VTP) доменах, согласование будет отсутствовать. См. раздел Настройка VTP.
Этот пример основан на очень простой лабораторной системе, состоящей из двух коммутаторов Catalyst 5500/5000, соединенных между собой через порты, поддерживающие транки. Для соединения двух коммутаторов требуется перекрестный кабель.
Выполните следующие действия.
Убедитесь, что состояния портов показывают, что они включены, но не находятся в состоянии транкинга.
Соедините терминал с консолью коммутаторов. См. документ Подключение терминала к порту консоли на коммутаторах Catalyst, если необходимо. Сначала проверьте состояние порта, участвующего в установке. Используйте команду show port 5/24 на Sa (show port 2/24 на Sb) и убедитесь, что они в состоянии connected (подключен):
Sa> (enable) show port 5/24 Port Name Status Vlan Level Duplex Speed Type ----- ------------------ ---------- ---------- ------ ------ ----- ------------ 5/24 connected 1 normal a-full a-100 10/100BaseTX !--- Output suppressed.
Для порта этого типа установлено значение по умолчанию. Этим значением является VLAN 1, оно получено в результате согласования полнодуплексной передачи данных на скорости 100 Мбит/с. Выполните команду show trunk 5/24, чтобы получить явное подтверждение, что порт не в состоянии транкинга, а его режим по умолчанию auto и инкапсуляция negotiate.
Sa> (enable) show trunk 5/24 Port Mode Encapsulation Status Native vlan -------- ----------- ------------- ------------ ----------- 5/24 auto negotiate not-trunking 1 !--- Output suppressed.
Задайте IP-адрес на интерфейсах управления sc0.
Используйте команду set interface sc0 10.0.0.1 на коммутаторе Sa и команду set interface sc0 10.0.0.2 на коммутаторе Sb, чтобы назначить IP-адрес этим двум коммутаторам. Команда show interface подтверждает, что интерфейс управления теперь правильно настроен в сети VLAN 1 по умолчанию:
Sa> (enable) set interface sc0 10.0.0.1 Interface sc0 IP address set. Sa> (enable) show interface sl0: flags=51<,POINTOPOINT,RUNNING> slip 0.0.0.0 dest 0.0.0.0 sc0: flags=63<UP,BROADCAST,RUNNING> vlan 1 inet 10.0.0.1 netmask 255.0.0.0 broadcast 10.255.255.255 Sa> (enable)
При наличии результата выполнения команды show interface от устройства Cisco, можно воспользоваться средством интерпретации выходных данных Output Interpreter (только для зарегистрированных пользователей), чтобы выявить потенциальные проблемы и их местоположение.
Проверьте возможность подключения между Sa и Sb.
Выполните команду ping 10.0.0.2 из коммутатора Sa, чтобы подтвердить возможность подключения к коммутатору Sb:
Sa> (enable) ping 10.0.0.2 10.0.0.2 is alive Sa> (enable)
Настройте одинаковый VTP домен на обоих коммутаторах.
Теперь назначьте одинаковый VTP домен обоим коммутаторам. Как видно наличие одинакового VTP домена обязательно для использования DTP согласования. Выполните команду set vtp domain cisco на обоих коммутаторах, чтобы настроить их с одинаковым именем домена "cisco":
Sa> (enable) set vtp domain cisco VTP domain cisco modified Sa> (enable)
Создайте сеть VLAN 2 в каждом коммутаторе.
Выполните команду set vlan 2 на обоих коммутаторах, чтобы создать VLAN 2. Если коммутаторы уже соединены транком, необходимо выполнить эту команду только на одном коммутаторе, а другой коммутатор узнает об этом автоматически через VTP. Поскольку транк еще не создан, отсутствует VTP связь между Sa и Sb:
Sa> (enable) set vlan 2 Vlan 2 configuration successful Sa> (enable)
Измените интерфейсы управления на VLAN 2.
Теперь переместите интерфейс управления на обоих коммутаторах в VLAN 2. Таким способом демонстрируется отсутствие связи между Sa и Sb перед установлением транка. Выполните команду set interface sc0 2 на каждом коммутаторе, чтобы переместить интерфейс sc0 в VLAN 2. Выполните команду show interface, чтобы проверить эффективность команды:
Sa> (enable) set interface sc0 2 Interface sc0 vlan set. Sa> (enable) show interface sl0: flags=51<UP,POINTOPOINT,RUNNING> slip 0.0.0.0 dest 0.0.0.0 sc0: flags=63<UP,BROADCAST,RUNNING> vlan 2 inet 10.0.0.1 netmask 255.0.0.0 broadcast 10.255.255.255 Sa> (enable)
Проверьте, не нарушено ли соединение между двумя коммутаторами.
Теперь проверка связи командой ping 10.0.0.2 с коммутатором Sb дает отрицательный результат, подтверждая отсутствие соединения в VLAN 2 между двумя коммутаторами:
Sa> (enable) ping 10.0.0.2 no answer from 10.0.0.2 Sa> (enable)
Проверьте возможности порта.
Перед началом настройки транка, командой show port capabilities можно убедиться, что оба порта способны реализовать транкинг 802.1Q:
Sa> (enable) show port capabilities 5/24 Model WS-X5225R Port 5/24 Type 10/100BaseTX Speed auto,10,100 Duplex half,full Trunk encap type 802.1Q,ISL Trunk mode on,off,desirable,auto,nonegotiate Channel 5/23-24,5/21-24 Broadcast suppression percentage(0-100) Flow control receive-(off,on),send-(off,on) Security yes Membership static,dynamic Fast start yes Rewrite yes Sa> (enable)
Задайте инкапсуляцию транка 802.1Q.
Теперь необходимо настроить транк в Sa. Как видно на шаге 1 оба порта были в режиме транкинга по умолчанию auto, а тип инкапсуляции negotiate. Комбинация режимов auto-auto не устанавливает транк. Так и должно быть: каждая сторона готова стать транком, но сделает это лишь по запросу удаленной стороны. Принимая во внимание конфигурацию по умолчанию:
Необходимо всего лишь изменить режим транкинга на desirable на одной стороне, чтобы установить транк. По причине того, что порт в режиме desirable уведомляет своего соседа о желании перейти в режим транкинга. Поскольку удаленный порт (в режиме auto) переходит в состояние транкинга после получения запроса, этого достаточно для установления транка.
Если на подчиненном интерфейсе настроить инкапсуляцию dot1q, тогда VLAN невозможно будет вновь использовать в системе, поскольку внутренним образом 6500 или 7600 выделяют VLAN, а затем делают подчиненный интерфейс единственным членом этой сети. Таким образом невозможно иметь VLAN и пытаться использовать ее в подчиненном интерфейсе и наоборот. Чтобы устранить эту проблему, вместо подчиненных интерфейсов создайте порты транкинга и, таким образом, VLAN будет видна во всех интерфейсах. Если требуются подчиненные интерфейсы, тогда сети VLAN, добавленные в эти подчиненные интерфейсы, невозможно использовать в других портах.
Также нужно указать, какую инкапсуляцию следует использовать. Это нужно из-за того, что оба порта поддерживают ISL, и сначала выбирается эта инкапсуляция, когда обе стороны в режиме negotiate.
Синтаксис команды: set trunk модуль/порт [on | off | desirable | auto | nonegotiate] [vlan_range] [isl | dot1q | negotiate]. Выполните команду set trunk 5/24 dot1q desirable на коммутаторе Sa:
Sa> (enable) set trunk 5/24 dot1q desirable Port(s) 5/24 trunk mode set to desirable. Port(s) 5/24 trunk type set to dot1q. 1997 May 07 17:32:01 %DTP-5-TRUNKPORTON:Port 5/24 has become dot1q trunk 1997 May 07 17:32:02 %PAGP-5-PORTFROMSTP:Port 5/24 left bridge port 5/24 1997 May 07 17:32:13 %PAGP-5-PORTTOSTP:Port 5/24 joined bridge port 5/24
Убедитесь, что установлен транк.
Журнал консоли для предыдущей команды ясно показывает, что порт перешел в состояние транкинга, однако можно также выполнить команду show trunk 5/24 на Sa и команду show trunk 2/24 на Sb для проверки. Обратите внимание на небольшое различие между двумя примерами выходных данных:
Порт на Sa находится в режиме desirable, а порт на Sb находится в режиме auto.
Еще интереснее то, что инкапсуляция dot1q на Sa, тогда как на Sb — это n-dot1q. Это свидетельство того, что Sb согласовал свою инкапсуляцию с dot1q. Если не задана инкапсуляция на Sa, оба порта установят инкапсуляцию n-isl:
Sa> (enable) show trunk 5/24 Port Mode Encapsulation Status Native vlan -------- ----------- ------------- ------------ ----------- 5/24 desirable dot1q trunking 1 Port Vlans allowed on trunk -------- ----------------------------------------------------------- 5/24 1-1005 Port Vlans allowed and active in management domain -------- ----------------------------------------------------------- 5/24 1-2 Port Vlans in spanning tree forwarding state and not pruned -------- ----------------------------------------------------------- 5/24 1-2 Sa> (enable) Sb> (enable) show trunk 2/24 Port Mode Encapsulation Status Native vlan -------- ----------- ------------- ------------ ----------- 2/24 auto n-dot1q trunking 1 !--- Output suppressed.
При наличии результата выполнения команды show trunk на устройстве Cisco, можно воспользоваться средством интерпретации выходных данных Output Interpreter (только для зарегистрированных пользователей), чтобы выявить потенциальные проблемы и их местоположение.
Проверка соединения.
Можно убедиться, что VLAN 2 теперь проходит через транк, простой проверкой связи с Sb командой ping с Sa:
Sa> (enable) ping 10.0.0.2 10.0.0.2 is alive Sa> (enable)
Выполните следующие действия.
Выполните команду set vlan.
Команда set vlan 2 5/24 используется для назначения порта конкретной сети VLAN. В случае порта транкинга он меняет собственную VLAN на VLAN 2. Разумеется аналогичную операцию необходимо выполнить на Sb командой set vlan 2 2/24 :
Sa> (enable) set vlan 2 5/24 VLAN 2 modified. VLAN 1 modified. VLAN Mod/Ports ---- ----------------------- 2 5/24 Sa> (enable)
Теперь, до изменения собственной VLAN на Sb, имеется несоответствие между конфигурациями Sa и Sb. Две стороны транка имеют разные конфигурации собственной VLAN. На этом этапе на консоли Sb появляются некоторые предупредительные сообщения.
Примечание. Сообщать о несоответствии могут разные коммутаторы, в зависимости от того, какой коммутатор является корневым мостом для сетей VLAN 1 и 2.
Sb> (enable) 2000 Dec 07 16:31:24 %SPANTREE-2-RX_1QPVIDERR: Rcved pvid_inc BPDU on 1Q port 2/24 vlan 1. 2000 Dec 07 16:31:24 %SPANTREE-2-TX_BLKPORTPVID: Block 2/24 on xmtting vlan 2 for inc peer vlan. 2000 Dec 07 16:31:24 %SPANTREE-2-RX_BLKPORTPVID: Block 2/24 on rcving vlan 1 for inc peer vlan 2. Sb> (enable) Sb> (enable) set vlan 2 2/24 VLAN 2 modified. VLAN 1 modified. VLAN Mod/Ports ---- ----------------------- 2 2/24 Sb> (enable) 2000 Dec 07 16:31:46 %SPANTREE-2-PORTUNBLK: Unblock previously inc port 2/24 on vlan 1. 2000 Dec 07 16:31:48 %SPANTREE-2-PORTUNBLK: Unblock previously inc port 2/24 on vlan 2.
Несоответствие собственных VLAN было исправлено и все пришло в норму.
Проверьте результат.
Теперь просто проверьте результат выполнения этих команд для транка командой show trunk 5/24:
Sa> (enable) show trunk 5/24 Port Mode Encapsulation Status Native vlan -------- ----------- ------------- ------------ ----------- 5/24 desirable dot1q trunking 2 <
Выполните следующие действия.
Создайте дополнительные VLAN.
Вновь создаваемый транк по умолчанию содержит все сети VLAN, существующие в сети. Рассмотрим, как можно ограничить список разрешенных сетей VLAN для транка. Во-первых, необходимо создать две дополнительных сети VLAN (3 и 4). Например, чтобы создать дополнительные VLAN выполните команду set vlan 3 и команду set vlan 4 на Sa. Команду необходимо ввести только на одном коммутаторе, а VTP распространит эти изменения на другой коммутатор.
Примечание. Эта часть настройки одинакова независимо от используемой инкапсуляции: 802.1Q или ISL.
Sa> (enable) set vlan 3 Vlan 3 configuration successful Sa> (enable) set vlan 4 Vlan 4 configuration successful
Удаление VLAN из транка.
Команда clear trunk модуль/список портов vlan позволяет удалить одну или несколько VLAN из заданного транка. На данном этапе четыре созданных сети VLAN были определены на транке. Удалите VLAN 2 и VLAN 3 командой clear trunk 5/24 2-3 на Sa и командой clear trunk 2/24 2-3 на Sb. Проверьте результат выполнения команды clear командой show trunk 5/24. Теперь только сети VLAN 1 и 4 входят в транк между Sa и Sb. Проверка связи между Sa и Sb командой ping теперь дает отрицательный результат:
Sa> (enable) clear trunk 5/24 2-3 Removing Vlan(s) 2-3 from allowed list. Port 5/24 allowed vlans modified to 1,4-1005. Sa> (enable) show trunk 5/24 Port Mode Encapsulation Status Native vlan -------- ----------- ------------- ------------ ----------- 5/24 desirable dot1q trunking 2 Port Vlans allowed on trunk -------- --------------------------------------------------------- 5/24 1,4-1005 Port Vlans allowed and active in management domain -------- --------------------------------------------------------- 5/24 1,4 Port Vlans in spanning tree forwarding state and not pruned -------- --------------------------------------------------------- 5/24 1,4
Повторная активация VLAN.
Чтобы добавить VLAN обратно в транк, используйте команду set trunk модуль/список портов vlan.
Sa> (enable) set trunk 5/24 2 Adding vlans 2 to allowed list. Port(s) 5/24 allowed vlans modified to 1-2,4-1005. Sa> (enable) show trunk Port Mode Encapsulation Status Native vlan -------- ----------- ------------- ------------ ----------- 5/24 desirable dot1q trunking 2 Port Vlans allowed on trunk -------- --------------------------------------------------------- 5/24 1-2,4-1005 Port Vlans allowed and active in management domain -------- --------------------------------------------------------- 5/24 1-2,4 Port Vlans in spanning tree forwarding state and not pruned -------- --------------------------------------------------------- 5/24 1-2,4
Теперь VLAN 2 вновь передается по транку. Проверка связи между Sa и Sb командой ping теперь дает положительный результат.
Это распространенная ошибка конфигурации. На каждом конце транка 802.1Q должна быть настроена одинаковая собственная VLAN. Помните, что коммутатор при получении кадра без тега назначит его собственной VLAN транка. Если одна сторона настроена для собственной VLAN 1, а другая – для собственной VLAN 2, кадр, отправленный в VLAN 1 на одной стороне, будет получен VLAN 2 на другой стороне. Это приводит к объединению VLAN 1 и 2. Однако для этого нет никаких оснований, а следствием такого объединения могут быть проблемы с подключениями в сети.
Устройство Cisco, как правило, предупреждает о несоответствии собственной VLAN. Типы сообщений об ошибках, отображаемые в этом случае на консоли, см. в шаге 1 раздела Задание собственной VLAN. Всегда проверяйте, чтобы собственная VLAN была одинаковой в конфигурации транка на обоих коммутаторах.
При создании транка между двумя коммутаторами и использовании DTP согласования перепроверьте, что настроен один и тот же VTP домен на обоих коммутаторах. Между двумя коммутаторами, находящимися в различных VTP доменах, согласование не осуществляется. В примере, приведенном в данном разделе, используется рабочая конфигурация транкинга, описанная выше.
Примечание. Даже если два коммутатора находятся в разных VTP доменах можно организовать связь между ними, вручную добавив сети VLAN на каждом коммутаторе. Несмотря на различие VTP доменов, связь по сети VLAN будет работать. Однако VTP обновления не распространяются по такому каналу на этой VLAN из-за различия доменов.
Sa в режиме транкинга desirable, инкапсуляция dot1q
Sb в режиме транкинга auto, инкапсуляция negotiate
Одна и та же собственная VLAN и одинаковые сети VLAN разрешены на каждой стороне
Единственным различием является то, что VTP домен "с" назначен на Sa, а VTP домен "cisco" назначен на Sb:
Sa> (enable) show trunk No ports trunking. Sa> (enable) show trunk 5/24 Port Mode Encapsulation Status Native vlan -------- ----------- ------------- ------------ ----------- 5/24 desirable dot1q not-trunking 1 Port Vlans allowed on trunk -------- ------------------------------------------------------------- 5/24 1-1005 Port Vlans allowed and active in management domain -------- ------------------------------------------------------------- 5/24 1 Port Vlans in spanning tree forwarding state and not pruned -------- ------------------------------------------------------------- 5/24 Sb> (enable) show trunk No ports trunking. Sb> (enable) show trunk 2/24 Port Mode Encapsulation Status Native vlan -------- ----------- ------------- ------------ ----------- 2/24 auto negotiate not-trunking 1 Port Vlans allowed on trunk -------- --------------------------------------------------------------- 2/24 1-1005 Port Vlans allowed and active in management domain -------- --------------------------------------------------------------- 2/24 1 Port Vlans in spanning tree forwarding state and not pruned -------- --------------------------------------------------------------- 2/24 Sb> (enable)
Видно, что транк не создан. При возникновении ошибки подобного типа проверьте VTP домен, настроенный на каждом коммутаторе. Выполните команду show vtp domain:
Sa> (enable) show vtp domain Domain Name Domain Index VTP Version Local Mode Password -------------------------------- ------------ ----------- ----------- ---------- c 1 2 server - Vlan-count Max-vlan-storage Config Revision Notifications ---------- ---------------- --------------- ------------- 8 1023 0 disabled Last Updater V2 Mode Pruning PruneEligible on Vlans --------------- -------- -------- ------------------------- 10.0.0.1 disabled disabled 2-1000 Sb> (enable) show vtp domain Domain Name Domain Index VTP Version Local Mode Password -------------------------------- ------------ ----------- ----------- ---------- cisco 1 2 server - Vlan-count Max-vlan-storage Config Revision Notifications ---------- ---------------- --------------- ------------- 8 1023 20 disabled Last Updater V2 Mode Pruning PruneEligible on Vlans --------------- -------- -------- ------------------------- 10.0.0.1 disabled disabled 2-1000
Теперь переместите коммутатор Sa в VTP домен "cisco" командой set vtp domain cisco. Через несколько секунд после согласования транк будет установлен вновь:
Sa> (enable) set vtp domain cisco VTP domain cisco modified Sa> (enable) 1997 May 13 13:59:22 %DTP-5-TRUNKPORTON:Port 5/24 has become dot1q trunk 1997 May 13 13:59:22 %PAGP-5-PORTFROMSTP:Port 5/24 left bridge port 5/24 1997 May 13 13:59:33 %PAGP-5-PORTTOSTP:Port 5/24 joined bridge port 5/24
Если нужно сохранить различные VTP домены, но при этом создать транк между двумя коммутаторами, необходимо запрограммировать транкинг на каждой стороне транка (используя nonegotiate/on).
При попытке удалить сети VLAN расширенного диапазона из порта транка командой clear trunk, на консоли коммутатора иногда возникает эта ошибка:
Failed to clear vlans in the extended range Maximum of 64 trunks can have non-default extended range vlan configuration. Use the 'set trunk' command to restore some existing entries to the default value.
Примечание. Термин расширенный диапазон подразумевает любую сеть VLAN в диапазоне 1025-4094. Термин стандартный расширенный диапазон по умолчанию подразумевает все сети VLAN в диапазоне 1025-4094. При попытке удалить любую VLAN в диапазоне 1025-4094, сеть VLAN становится нестандартного расширенного диапазона. Максимальное число транков, входящих в нестандартный расширенный диапазон составляет 64. К ним относятся неактивные и активные транки.
Эта ошибка и ограничение числа транков значением 64 обусловлены блоком энергонезависимого ОЗУ, используемого для хранения нестандартных конфигураций для сетей VLAN расширенного диапазона. Чтобы увидеть все транки, настроенные с нестандартными расширенными диапазонами, выполните команду show trunk extended-range. По умолчанию конфигурация целиком хранится в энергонезависимом ОЗУ. Энергонезависимое ОЗУ имеет различные "блоки" для хранения нестандартных конфигураций. Эти блоки распределяются по разным категориям, например глобальный или модульный. Блок, содержащий нестандартную конфигурацию для расширенных диапазонов, ограничен 64 транками.
Имеется два способа уменьшить число транков нестандартного расширенного диапазона. Первый способ заключается в настройке любых портов неактивных/неиспользуемых транков обратно для стандартных разрешенных сетей VLAN. Используйте команду set trunk модуль/порт 1025-4094. После чего команда clear trunk модуль/порт 1025-4094 должна выполняться для расширенных сетей VLAN. Второй способ состоит в изменении режима конфигурирования с двоичного (по умолчанию) на текстовый. Командой set config mode text можно изменить режим конфигурирования на текстовый. Текстовый режим обычно использует меньший объем энергонезависимого ОЗУ или флэш-памяти по сравнению с двоичным режимом конфигурирования.
Примечание. При работе в режиме настройки текстового файла большинство пользовательских настроек сразу не сохраняются в энергонезависимом ОЗУ; изменения конфигурации записываются только в динамическое ОЗУ. Необходимо выполнить команду write memory, чтобы сохранить конфигурацию в энергонезависимой памяти. Командой set config mode text auto-save можно автоматически сохранить текстовую конфигурацию в энергонезависимом ОЗУ.
Об этой распространенной проблеме центру технической поддержки Cisco известно с момента начала поставок первых модулей с поддержкой 802.1Q и ISL. Пользователи привыкли к настройке транка командой set trunk модуль/порт on или set trunk модуль/порт nonegotiate. Проблема в том, что по умолчанию задан тип инкапсуляции negotiate. Инкапсуляцию типа negotiate поддерживают только режимы auto или desirable транкинга. Типы on и nonegotiate инкапсуляции не выполняют никаких согласований между коммутаторами и должны жестко задаваться для инкапсуляции ISL или 802.1Q при настройке. Ниже приведена запись журнала о том, что происходит в коммутаторе в этом случае:
Sa> (enable) set trunk 5/24 on Failed to set port 5/24 to trunk mode on. Trunk mode 'on' not allowed with trunk encapsulation type 'negotiate'. Sa> (enable) set trunk 5/24 nonegotiate Failed to set port 5/24 to trunk mode nonegotiate. Trunk mode 'nonegotiate' not allowed with trunk encapsulation type 'negotiate'. Sa> (enable)
Это имеет смысл, поскольку если нет согласования с удаленным портом, как узнать тип инкапсуляции (802.1Q или ISL), который нужно использовать, чтобы создать транк? Имеется две возможности:
Использовать режим desirable. В этом случае происходит согласование режима инкапсуляции с удаленным портом:
Sa> (enable) set trunk 5/24 desirable Port(s) 5/24 trunk mode set to desirable. Sa> (enable) 1997 May 09 17:49:19 %DTP-5-TRUNKPORTON:Port 5/24 has become isl trunk
Задание инкапсуляции, которую следует использовать:
Sa> (enable) set trunk 5/24 isl on Port(s) 5/24 trunk mode set to on. Port(s) 5/24 trunk type set to isl. Sa> (enable) 1997 May 09 17:50:16 %DTP-5-TRUNKPORTON:Port 5/24 has become isl trunk