В таблице представлены состояния портов в STP и RSTP алгоритмах.
Административное состояние
STP
RSTP
Порт включен в активную топологию RSTP
Enabled
Blocking
Discarding
No
Enabled
Listening
Discarding
No
Enabled
Learning
Learning
Yes
Enabled
Forwarding
Forwarding
Yes
Disabled
Disabled
Discarding
No
Состояние Discarding означает, что порт не передает кадры с данными, но слушает BPDU. Это аналогично режиму Blocking в STP. В RSTP присутствует состояние Learning, но оно очень короткое по времени.
Типы портов в RSTP.
Коммутаторы SW2 и SW3 (рис. 16) так же, как и в STP, имеют корневые порты. Пусть SW4 получает BPDU с лучшей стоимостью через порт fa0/1. Тогда этот порт будет являться корневым. На порт fa0/2 приходят BPDU с худшей стоимостью, и поэтому, он будет являться альтернативным и ему присваивается тип Alternate-port. При этом он будет находиться в состоянии Discarding. В случае изменения топологии RSTP будет выбирать лучший альтернативный порт как корневой. Это ускоряет процесс конвергенции.
Если коммутатор имеет две линии связи, входящие в один и тот же сегмент, то одни порт переводится в состояние передачи, а другой в состоянии Discarding. Коммутатор SW3 связан с SW5 через концентратор (Hub) двумя линиями. BPDU передают и получают оба порта. Порт, находящийся в состоянии Discarding, называется Backup port. Если связь через порт fa0/3 прервётся, то SW3 немедленно переведёт порт fa0/4 в состояние передачи.
Рис. 16. Типы портов в RSTP.
Типы портов RSTP и STP.
RSTP
STP
Назначение
Root port
Root port
Единственный порт на каждом коммутаторе, через который коммутатор получает лучшие BPDU.
Designated port
Designated port
Один из портов коммутатора, подключенный к данному сегменту сети и передающий лучшее BPDU.
Alternate port
-
Порт на коммутаторе, который получает вторую по стоимости BPDU.
Backup port
-
Второй порт на коммутаторе, подключенный к одному сегменту сети.
Disabled
Disabled
Отключен администратором.
Конвергенция RSTP.
Edge-Type и Port Fast.
RSTP уменьшает время конвергенции путём немедленного перевода в состояние передачи порта, который становится физически активным. Это свойство присуще только оборудованию Cisco. Для включения RSTP на Edge-Type необходимо просто сконфигурировать Port Fast.
Link-Type Shared.
Поведение RSTP ничем не отличается от STP.
Link-Type Point-to-Point.
RSTP улучшает конвергенцию через full-duplex связи между коммутаторами. В STP процесс конвергенции начинается, если BPDU не приходят в течение Max Age. В RSTP процесс конвергенции начинается, если BPDU не приходят в течение трёх периодов hello (один период - 2 секунды), то есть через 6 секунд. RSTP переводит порт в состояние learning и активно изучает новое состояние сети путём определения соседних коммутаторов.
Пример ускорения конвергенции RSTP.
Сеть не имеет избыточных связей. RSTP определил все связи как link-type point-to-point и перевел порты в состояние передачи (рис. 17).
Рис. 17. Сеть без избыточных связей.
Добавляется избыточная связь (рис. 18). Коммутатор SW5 получает старые BPDU и начинает получать новые BPDU. При этом новые BPDU лучше, чем старые. И новые и старые BPDU поступают от одного корневого коммутатора, поэтому SW5 должен перевести порт fa0/2 в состояние передачи и этот порт становится корневым.
Рис. 18. Добавление избыточной связи.
RSTP временно блокирует все порты link-type SW4 для предотвращения появления петель (рис. 19). Затем SW5 начинает вести переговоры со своим соседним коммутатором через новый корневой порт. Для этого диалога используются специальные RSTP сообщения "Proposal" (предложение) и "Agreement" (соглашение). В результате SW5 и SW1 договариваются о том, что могут перевести новое соединение в состояние передачи немедленно. Это возможно, так как SW5 предварительно уже заблокировал все порты, через которые он был соединён с другими коммутаторами. Между SW5 и SW1 возникают, своего рода, доверительные отношения, так как SW5 блокирует все другие порты до тех пор, пока не будет уверен, что не может перевести некоторые из них в состояние передачи.
Рис. 19. Временная блокировка портов и процесс переговоров.
Следующий этап - это взаимодействие SW4 и SW5 (рис 20). Порт fa0/1 остается всё ещё заблокированным, но через него на коммутатор SW4 посылаются новые BPDU, кроме тех, которые поступают от SW3.
Рис. 20. Взаимодействие SW4 и SW5.
BPDU, поступающие от SW5 лучше, чем BPDU от SW3. Поэтому SW4 начинает процедуру анализа и переключения, аналогичную процедуре, проходившей в SW5, по следующим шагам:
1. SW4 решает изменить корневой порт, основываясь на BPDU от SW5.
2. SW4 блокирует все другие порты класса link-type.
3. SW4 и SW5 выполняют процесс переговоров.
4. В результате этих переговоров порт fa0/1 SW5 переключается в режим передачи link-type point-to-point между SW5 и SW4.
5. SW4 пока сохраняет в режиме блокировки все остальные порты link-type.
Рис. 21.
После этого на SW3 начинают поступать новые BPDU от SW4. Предположим, что новые BPDU хуже, чем BPDU, поступающие от SW2. В таком случае, процесса переговоров между SW3 и SW4 не происходит и дальше режим работы портов не меняется. Порт fa0/2 SW4 остается в режиме блокировки.
Рис. 22.
Построение виртуальных локальных сетей (VLAN) на коммутаторах.
Для того чтобы говорить о VLAN, уточним два понятия - домен коллизий и широковещательный домен.
Домен коллизий (collision domain) - это участок сети, где устройства одновременно распознают коллизию, в какой бы части сети она не возникла.
Широковещательный домен(broadcast domain) - это участок сети, где все узлы получают кадр с широковещательным адресом, посланный одним из узлов данной сети.
Основные концепции VLAN.
1. VLAN является неотъемлемой частью широковещательного домена.
2. VLAN создается при настройке коммутатора путем помещения отдельных портов в разные VLAN.
3. Коммутатор передает кадры между портами одного VLAN, но блокирует обмен информацией между портами, находящимися в разных VLAN.
4. Для связи между разными VLAN используют маршрутизатор.
Рис. 23. VLAN на коммутаторе.
Транковые соединения. Протоколы ISL и 802.1Q.
Если сеть не разбита на VLAN, то линия связи, которая их соединяет, просто передает кадры от одного коммутатора другому в соответствие с алгоритмом работы коммутатора. Если сеть разбита на VLAN, в сети больше одного коммутатора и отдельные порты разных коммутаторов принадлежат одним VLAN, то линия связи, соединяющая коммутаторы, называется транковым соединением.
Обмен кадрами между портами, находящимися на разных коммутаторах, но в одном VLAN называется VLAN trunking
Для определения принадлежности кадра к тому или иному VLAN каждый кадр при передаче по транковому соединению снабжается тегом (tag). Такой подход позволяет использовать много VLAN, порты которых находятся на разных коммутаторах.
Если WS1.1 (VLAN1) передаёт кадр WS2.1 (VLAN1) , то этот кадр коммутатор SW1 снабжает тегом с номером VLAN и передаёт по транковому порту SW2. Коммутатор SW2 определяет по тегу номер VLAN и передает порту этого VLAN кадр.
Рис. 24. Передача кадра между двумя портами разных коммутаторов одного VLAN.
Транковый протокол ISL.
Транковый протокол ISL (Interswitch link) был разработан до того, как в IEEE появился стандарт на транковые протоколы.
ISL - это протокол, который может работать только между коммутаторами Cisco.
Протокол ISL полностью упаковывает каждый кадр Ethernet, снабжая его ISL-заголовком и новой контрольной суммой. Сам кадр Ethernet внутри ISL остаётся неизменённым.
рис 25.
ISL заголовок включает в себя много дополнительных служебных полей, но наиболее важными являются: VLAN, определяющее номер VLAN, которому принадлежит передаваемый кадр, DA-МАС-адрес назначения и SA-МАС-адрес источника.
В заголовке ISL содержится следующая информация.
• DА -40-bit конечный адрес многоадресной рассылки
• Туре - 4-bit дескриптор типа инкапсулированного кадра: Ethrnet (0000), Token Ring (0001), Fiber Distributed Data Interface (FDDI) (0010), АТМ (0011)
• User -4-bit дескриптор, используемый для расширения поля Tуре или для определения приоритета Ethernet двоичное значение от 0 (минимальный приоритет) до З (максимальный приоритет).
• HAS -Первые три байта адреса источника (уникальный IDпроизводителя оборудования)
• VLAN ID -15-bit VLAN ID;только младшие 10 бит используются для 1024 VLAN
• ВРDU -1-bit дескриптор, определяющий содержимое кадра как ВPDU или СDР
• INDX - 16-bit дескриптор, определяющий ID передающего порта; используется для диагностики
• RES -16-bit резервное поле, используемое для передачи дополнительной информации, например, поля контроля кадра FDDI.
Транковый протокол 802.1Q.
Протокол IEEE 802.1Q - это стандартизированный транковый протокол, который поддерживается всеми коммутаторами. В отличие от протокола ISL, протокол 802.1Q просто добавляет стандартный заголовок Ethernet - тег длиной 4 байта. Так как заголовок кадра был изменён, то необходимо пересчитать контрольную сумму.
рис 26.
Сравнение ISL и 802.1Q.
Протокол ISL и 802.1Q используют 12-битный номер VLAN (VLAN_ID).
ISL и 802.1Q поддерживают отдельный STP для каждого VLAN. Преимущество такой настройки STP заключается в том, что когда все связи работают (рис. 27), то в разных VLAN разные интерфейсы находятся в режиме блокировки.
Рис. 27. STP для каждого VLAN.
SW4 полностью использует свои интерфейсы, так как STP на VLAN1 и VLAN2 блокирует разные интерфейсы. VLAN1 использует канал связи через SW3, а VLAN2 использует канал связи через SW2. Но если одно из этих соединений будет разорвано, то тогда топология связей для VLAN1 и VLAN2 станет одинаковой.
В протоколе ISL используется собственная технология Cisco называемая Per-VLAN Spanning Tree (PVST+), которая поддерживает несколько топологий STP. Протокол 802.1Q не имеет механизмов для поддержки нескольких топологий STP, но он может совместно использовать другие протоколы. Например, PVST+ может работать через транковые соединения 802.1Q.
IEEE разработана новая спецификация 802.1S, которая является дополнением 802.1Q и позволяет поддерживать несколько топологий STP.
Основным отличием между ISL и 802.1Q является понятие native VLAN.
802.1Q определяет один VLAN на каждый транк как native VLAN, по умолчанию это VLAN1. 802.1Q просто не упаковывает кадры в native VLAN, когда посылает их через транковое соединение. Когда коммутатор получает по транковому соединению кадр в native VLAN, он не видит заголовка 802.1Q и таким образом определяет, что кадр принадлежит native VLAN.
ISL не использует понятие native VLAN. Все кадры из всех VLAN, передаваемые через транковое соединение, проходят ISL-инкапсуляцию (добавляется заголовок ISL).
Ниже представлена сравнительная таблица для протоколов ISL и 802.1Q.
Критерий
ISL
802.1Q
Стандарты, определяющие протокол
Cisco
IEEE
Инкапсуляция исходного кадра
да
нет
Поддержка нескольких STP
PVST+
PVST+ или 802.1Q
Использование native VLAN
нет
да
Протокол VTP (VLAN Trunking Protocol).
Коммутаторы Cisco используют собственный протокол VTP для обмена между собой информацией о конфигурации VLAN. VTP- протокол второго уровня, который позволяет коммутаторам обмениваться информацией о VLAN во всей сети.
Например, если мы хотим переименовать VLAN2 в VLAN8,то можно настроить это на одном коммутаторе, а VTP распространит это изменение на все коммутаторы сети.
VTP управляет добавлением, удалением и изменением имён VLAN на всех коммутаторах, сводя к минимуму работу администратора и, соответственно, уменьшая количество ошибок.
Пусть в сети есть пять коммутаторов и надо сформировать VLAN5 на каждом из них. Для этого надо выполнить одни и те же действия по настройке на всех коммутаторах сети по очереди. Если использовать VTP, то достаточно создать VLAN5 на одном коммутаторе, а остальные коммутаторы получат информацию о VLAN5 динамически. Процесс работы VTP начинается с создания VLAN на коммутаторе, называемом VTP сервер. Изменения распространяются с этого коммутатора в сеть посредством широковещательных рассылок. VTP клиенты слышат эти сообщения и соответственно изменяют свою конфигурацию.
Принципы работы VTP.
VTP посылает объявления на весь VTP домен каждые пять минут или если произошли изменения в конфигурации. Объявления VTP включают номер конфигурации VTP, номера и имена VLAN и информацию о том, какие порты в каком коммутаторе в каком VLAN. Таким образом, все коммутаторы знают номера и имена всех VLAN в сети.
Важной частью объявлений VTP является номер конфигурационного обновления(configuration revision number). Каждый раз, когда VTP сервер модифицирует информацию о VLAN, он инкрементирует параметр configuration revision number. После этого сервер посылает обновление с новым номером. Когда SW-клиент получает VTP обновление с большим, чем у него, номером, он модифицирует свою конфигурацию VLAN.
Рис. 28. Распространение обновлений VTP.
VTP работает в одном из трёх режимов:
1. Сервер ( Server mode);
2. Клиент (Client mode);
3. Прозрачный (Transparent mode).
VTP серверы могут создавать, изменять и удалять VLAN и другие конфигурационные параметры во всём VTP домене. VTP серверы хранят конфигурацию VLAN в NVRAM.
VTP клиент не может создавать, изменять или уничтожать VLAN. VTP клиенты хранят конфигурацию в RAM.
Если коммутатор не является ни VTP сервером, ни VTP клиентом, то есть на нём режим VTP выключен, то считается, что он работает в прозрачном режиме VTP. Если в сети все коммутаторы работают в прозрачном режиме VTP, то значит, что VTP не используется. С другой стороны, в сети может быть некоторое количество коммутаторов, работающих в прозрачном режиме VTP, при этом VTP серверы и клиенты работают нормально. Коммутатор, работающий в прозрачном режиме VTP, просто ретранслирует через себя VTP сообщения других коммутаторов.
На коммутаторе, находящемся в прозрачном режиме VTP, можно создавать, уничтожать и изменять VLAN, но эти изменения не передаются другим коммутаторам в домене. Они влияют только на этот коммутатор. Прозрачный режим VTP включается на коммутаторе тогда, когда сеть находится под раздельным административным управлением.
Можно настроить пароль для управляющего домена VТР. Но тогда он должен быть одинаковым всех коммутаторах домена, иначе VТР не будет правильно работать.
Имя домена и пароль чувствительны к регистру символов. Имя домена не может быть удалено после назначения, оно может быть только переназначено.
Ниже приведена таблица со сравнением режимов VTP.
Действия
Server mode
Client mode
Transparent mode
Источник VTP объявления
Да
Нет
Нет
Обрабатывает VTP объявления и синхронизирует конфигурационную информацию о VLAN на коммутаторе
Да
Да
Нет
Передаёт VTP объявления, полученные через транковое соединение
Да
Да
Да
Хранит конфигурацию VLAN в NVRAM
Да
Нет
Да
Хранит конфигурацию VLAN в RAM
Да
Да
Да
Может создавать, изменять или уничтожать VLAN, используя команды конфигурации
Да
Нет
Да
Сокращение объявлений VTP (VTP pruning).
По умолчанию транковое соединение передаёт информацию для всех VLAN. Кадры с широковещательными и неизвестными локальными адресами назначения в любом VLAN посылаются каждому коммутатору в сети в соответствии с текущей STP топологией. Однако в большинстве сетей коммутаторы не имеют интерфейсов во всех VLAN, поэтому широковещательные сообщения для VLAN, которого на данном коммутаторе нет, только снижает производительность сети.
Сокращение объявлений VTP позволяет коммутаторам исключать поток широковещательных объявлений и кадров с неизвестными адресами в VLAN на те коммутаторы, в которых нет портов данного VLAN.
Рассмотрим пример на рис. 29. В VLAN5 находятся порты коммутаторов SW1, SW4 и SW6. Пусть включен режим VTP pruning. Если рабочая станция WS1 пошлет широковещательное сообщение, то оно будет передано в коммутаторы, порты которых находятся в VLAN5. Данное сообщение не распространяется на SW5 и SW7, так как их порты не входят в VLAN5. SW2 и SW6 остановят распространение этого сообщения. Коммутаторы SW2 и SW3 тоже не имеют портов в VLAN5, но только через них может выполняться передача информации между WS1, WS2 и WS3, поэтому они будут транслировать через себя кадры, передаваемые в VLAN5.
На основании вышесказанного можно сделать вывод о том, что существуют две основных причины использования протокола VTP:
1. Уменьшение загрузки сети посредством использования механизма VTP pruning.
2. Упрощение настройки VLAN на большом количестве коммутаторов.
Рис. 29. Ограничение широковещательного трафика в VLAN на разных коммутаторах.
Настройка VLAN и транковых соединений.
Прежде чем настраивать VLAN на коммутаторах нужно точно знать, какие порты коммутаторов какому VLAN будут принадлежать. Кроме того, необходимо будет сконфигурировать VTP и trunking. По умолчанию VTP включен на всех портах, а также по умолчанию через любой порт производятся попытки выполнить транковые обновления.
В таблице приведён список команд, позволяющих настроить VLAN, транковые соединения и VTP.
команда подрежима конфигурации интерфейса, которая определяет список разрешённых VLAN, определяет native VLAN и 802.1Q и ограничивает число VLAN, для которых может выполняться сокращение VTP
switchport access vlan vlan_id
Команда подрежима настройки интерфейса для статического занесения интерфейса в VLAN
show interfaces [interface_id | vlan vlan_id][switchport | trunk]
Показывает состояние транковых соединений
show vlan [brief | id vlan_id | name vlan_name | summary]
Команда для просмотра набора параметров VLAN
show vlan [vlan]
Команда для просмотра информации о VLAN
show vtp status
Команда для просмотра конфигурации VTP
show spanning-tree vlan vlan_id
Команда для просмотра информации о STP для конкретного VLAN
Создание VLAN на одном коммутаторе.
Для входа в режим конфигурирования VLAN вместо команды "configure terminal" в привилегированном режиме необходимо ввести команду "vlan database". В этом режиме можно конфигурировать VLAN и VTP. По умолчанию коммутатор находится в режиме VTP сервер, поэтому конфигурация VLAN будет передаваться в объявлениях VTP.
Рассмотрим пример конфигурации VLAN на одном коммутаторе (рис. 30).
Рис. 30. Распределение портов коммутатора в VLAN.
Все интерфейсы находятся по умолчанию в VLAN1, поэтому его создавать не надо и по отношению к портам fa0/1, fa0/4, fa0/5 никаких действий выполнять не будем. Создадим VLAN2 и VLAN3. Для этого в привилегированном режиме коммутатора введем команду "vlan database" и, используя команду "vlan", установим VLAN2 с именем Nic1 и VLAN3 с именем Nic2. Для завершения процедуры создания VLAN необходимо выполнить команду "exit".
Switch>enable
Switch#vlan database
Switch(vlan)#vlan 2 name Nic1
VLAN 2 added:
Name: Nic1
Switch(vlan)#vlan 3 name Nic2
VLAN 3 added:
Name: Nic2
Switch(vlan)#exit
APPLY completed.
Exiting....
Switch#
После того как VLAN созданы, необходимо распределить между ними интерфейсы.
Порт fa0/2 необходимо поместить в VLAN2. Для этого в режиме глобальной конфигурации входим в подрежим конфигурации интерфейса и вводим команду "switchport mode access"- использование порта для соединения с рабочей станцией, а не с другим коммутатором. Далее вводим команду "switchport access vlan2", с помощью которой порт fa0/2 помещается в VLAN2. Аналогичную последовательность операций выполняем для порта fa0/3 с помещением его в VLAN3 и для порта fa0/6 с помещением его в VLAN2.
Порты fa0/7-fa0/12 необходимо поместить в VLAN3. Так как они представляют собой непрерывный диапазон, то для входа в подрежим конфигурирования этих портов можно использовать команду "interface range fastEthеrnet 0/7-12" (таким образом можно настраивать одновременно несколько интерфейсов). После этого помещаем их в VLAN3.
Switch#configure
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line. End with CNTL/Z.