Строим отказоустойчивую сетевую инфраструктуру предприятия.
Часть 1: "MSTP на HP ProCurve"
Часть 3: "Тюнинг настроек пограничных портов и портов доступа на Cisco и HP ProCurve"
Продолжаем серию для "начинающих профессионалов" :) В прошлый раз мы собрали в единую сеть все наши HP ProCurve, а сегодня настал черед подключить оставшееся оборудование Cisco к нашей схеме:
Часть 2: Соединяем Cisco и HP ProCurve при помощи MSTP.
(Update from 2016.01.05)
(Update from 2016.01.05)
Часть 3: "Тюнинг настроек пограничных портов и портов доступа на Cisco и HP ProCurve"
Продолжаем серию для "начинающих профессионалов" :) В прошлый раз мы собрали в единую сеть все наши HP ProCurve, а сегодня настал черед подключить оставшееся оборудование Cisco к нашей схеме:
Кроссируем наши Cisco 1, 2, 3 и 4, как показано на схеме, но один из линков в каждой группе из двух коммутаторов пока отключаем для предотвращения петли, до тех пор, пока не заработает Spanning Tree.
Итак, на ProCurve мы настраивали MSTP, по логике мы должны настроить и на Cisco MSTP, и в интернете даже есть некоторое количество информации на тему связывания этих двух производителей, и даже официальные доки от HP и от Cisco. Но к сожалению...
Настройка MSTP на Cisco.
Для начала, если вы еще не читали Часть 1: "MSTP на HP ProCurve", то советую почитать! Там рассматриваются основные принципы настройки MSTP на коммутаторах, которые являются общими и для HP и для Cisco. Ну а вкратце основные рекомендации Cisco и здравого смысла по настройке MSTP такие:
Убеждаемся, что на транках между Cisco и ProCurve у нас разрешены все необходимые VLAN'ы, после чего приступаем:
conf t
spanning-tree mst configuration
Все делаем как и на ProCurve. Задаём имя региона, такое же как и на ProCurve, т.е. одинаковое во всём регионе:
name H2SO4
Номер ревизии конфига должен обязательно совпадать во всем регионе:
revision 1
Разбиваем наши вланы на 2 instance, абсолютно аналогично, как на ProCurve:
instance 1 vlan 1-35,101,111-500,1001-4094
instance 2 vlan 36-100,102-110,501-1000
И для профилактики, не выходя из режима конфигурации MST смотрим, что у нас получилась за конфигурация:
show pending
Pending MST configuration
Name [H2SO4]
Revision 1 Instances configured 3
Instance Vlans mapped
-------- ---------------------------------------------------------------------
0 none
1 1-35,101,111-500,1001-4094
2 36-100,102-110,501-1000
-------------------------------------------------------------------------------
Для сохранения конфигурации набираем exit или нажимаем CTRL-Z:
exit
conf t
spanning-tree mst 1 root primary
spanning-tree mst 0-1 priority 0
spanning-tree mst 2 priority 4096
Cisco 2/4:
conf t
spanning-tree mst 2 root primary
spanning-tree mst 0-1 priority 4096
spanning-tree mst 2 priority 0
spanning-tree mode mst
Синим цветом выделена контрольная сумма, она должна совпадать при правильной и одинаковой конфигурации на HP и Cisco. Если она отличается - ищите различия. Пока она отличается, все будет работать через instance 0 и все порты будет Boundary.
Cisco:
Name [H2SO4]
В этом случае, не мудрствуя лукаво, MSTP просто для всех instances заблокировал межкоммутаторный линк оставив его на случай аварии, что логично. Ведь этот линк менее быстрый, и больше хопов на пути до root bridge.
Немного статистики с Cisco:
sh spanning-tree mst 1
##### MST1 vlans mapped: 1-35,101,111-500,1001-4094
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Gi0/18 Desg FWD 20000 128.18 P2p
Gi0/20 Desg FWD 200000 128.20 P2p
Gi0/21 Desg FWD 200000 128.21 P2p
Gi0/22 Desg FWD 200000 128.22 P2p
Gi0/23 Desg FWD 200000 128.23 P2p
Gi0/24 Altn BLK 20000 128.24 P2p
Po1 Root FWD 20000 128.36 P2p
sh spanning-tree mst 2
##### MST2 vlans mapped: 36-100,102-110,501-1000
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Gi0/24 Altn BLK 20000 128.24 P2p
Po1 Root FWD 20000 128.36 P2p
Для начала, если вы еще не читали Часть 1: "MSTP на HP ProCurve", то советую почитать! Там рассматриваются основные принципы настройки MSTP на коммутаторах, которые являются общими и для HP и для Cisco. Ну а вкратце основные рекомендации Cisco и здравого смысла по настройке MSTP такие:
- Использовать один регион во всей сети.
- Минимальное количество instances, т.е. не более числа дублирующих линков.
- Задавать приоритеты для root bridge.
- Заранее разбивать сразу весь возможный диапазон VLAN на instances.
- Все instances на всех коммутаторах региона должны содержать одинаковый список VLAN'ов! На Cisco в этом вопросе на помощь придёт протокол VTP v3, который умеет обслуживать не только VLAN'ы, но и instances MST. На ProCurve есть только GVRP, который является аналогом VTP V1/2, и работать с MSTP не умеет, так что все синхронизации настроек instances между коммутаторами на HP выполняются "ручками".
- Имя домена и ревизия конфигурации должны совпадать в регионе!
- На всех транках между коммутаторами должен быть разрешен весь список VLAN'ов которые обслуживает Spanning Tree.
А так же еще есть правила для связывания ProCurve и Cisco:
- Cisco поддерживает 802.1s MSTP только с 2005 года, и надо убедиться, что IOS новее 2005 года. Апдейт фирмвари вообще делать полезно!
- Не путать Pre-STD MST с MSTP - они несовместимы.
- Убедиться, что на транках между Cisco и HP установлен Native/Untagged VLAN 1.
Убеждаемся, что на транках между Cisco и ProCurve у нас разрешены все необходимые VLAN'ы, после чего приступаем:
conf t
spanning-tree mst configuration
Все делаем как и на ProCurve. Задаём имя региона, такое же как и на ProCurve, т.е. одинаковое во всём регионе:
name H2SO4
Номер ревизии конфига должен обязательно совпадать во всем регионе:
revision 1
Разбиваем наши вланы на 2 instance, абсолютно аналогично, как на ProCurve:
instance 1 vlan 1-35,101,111-500,1001-4094
instance 2 vlan 36-100,102-110,501-1000
И для профилактики, не выходя из режима конфигурации MST смотрим, что у нас получилась за конфигурация:
show pending
Pending MST configuration
Name [H2SO4]
Revision 1 Instances configured 3
Instance Vlans mapped
-------- ---------------------------------------------------------------------
0 none
1 1-35,101,111-500,1001-4094
2 36-100,102-110,501-1000
-------------------------------------------------------------------------------
Для сохранения конфигурации набираем exit или нажимаем CTRL-Z:
exit
В случае, если Cisco у вас главные в MST регионе, или у вас Cisco-Only сеть, то задаём параметры определяющие, что наши коммутаторы будут главными в MSTP регионе для конкретных instances, как мы делали на HP в прошлой статье, и зададим приоритеты для instances:Cisco 1/3:
conf t
spanning-tree mst 1 root primary
spanning-tree mst 0-1 priority 0
spanning-tree mst 2 priority 4096
Cisco 2/4:
conf t
spanning-tree mst 2 root primary
spanning-tree mst 0-1 priority 4096
spanning-tree mst 2 priority 0
Для нашей конфигурации Cisco+HP данная настройка приоритетов на Cisco не требуется, так как root bridge у нас ProCurve, и все высшие приоритеты у нас на ProCurve!После того, как сконфигурировали ваш MSTP на всех Cisco в пределах группы, включаем его:
spanning-tree mode mst
Все должно легко и непринужденной взлететь, если только вы следовали инструкциям, и в вашей сети не притаился за углом сюрприз, как было в моей :)
Я несколько дней убил пытаясь понять, почему у меня ничего не работает! В итоге, в тёмном забытом углу нашлась Cisco 3560, про которую все забыли, и которая работала в режиме PVST... Признаться я даже не предполагал, что BPDU могут вот так пролетать сквозь всю топологию, и портить жизнь. В общем её BPDU пролетали насквозь и сводили с ума Cisco на которых я включал MSTP. Постоянные пересчеты топологии, веерные блокировки портов и т.д. и т.п.
000068: 00:49:18: %SPANTREE-2-PVSTSIM_FAIL: Blocking root port Gi0/8: Inconsistent inferior PVST BPDU received on VLAN 110, claiming root 32878:0015.c6d7.9900
Gi0/7 Mstr BKN*20000 128.7 P2p Bound(PVST) *PVST_Inc
Кстати, на HP есть такая штука, как pvst-filter, возможно ее включение спасло бы меня без поиска всех железок отправляющих неправильные BPDU.
Итак, что же я делал... Включаю на Cisco debug принятых BPDU:
term mon
debug spanning-tree bpdu receive
И вижу вот такую картину:
002836: Jan 5 16:36:57.625: STP: MST0 rx BPDU: config protocol = mstp, packet from GigabitEthernet0/8 , linktype IEEE_SPANNING , enctype 2, encsize 17
002837: Jan 5 16:36:57.625: STP: enc 01 80 C2 00 00 00 00 1B 3F 58 31 EF 00 89 42 42 03
002838: Jan 5 16:36:57.625: STP: Data 000003023C1000001B3FC1A800000000001000001B3FC1A80080110000140002000F00
002839: Jan 5 16:36:57.634: STP: MST0 Gi0/8:0000 03 02 3C 1000001B3FC1A800 00000000 1000001B3FC1A800 8011 0000 1400 0200 0F00
002840: Jan 5 16:36:58.238: STP: MST0 rx BPDU: config protocol = mstp, packet from GigabitEthernet0/8 , linktype SSTP , enctype 3, encsize 22
002841: Jan 5 16:36:58.238: STP: enc 01 00 0C CC CC CD 9C 4E 20 B2 2E 98 00 32 AA AA 03 00 00 0C 01 0B
002842: Jan 5 16:36:58.238: STP: Data 000000000080649C4E20B22E800000000080649C4E20B22E8080180000140002000F00
002843: Jan 5 16:36:58.238: STP: MST0 Gi0/8:0000 00 00 00 80649C4E20B22E80 00000000 80649C4E20B22E80 8018 0000 1400 0200 0F00
IEEE_SPANNING - это то, что должно быть, это нормально.
А вот SSTP - это уже ненормально. Это не наш MSTP, это "чужой" Spanning-tree, который нам и портит жизнь.
Найти злодея проще простого. Первые 6 цифр в поле ENC это заголовок, он всегда одинаковый: 01 00 0C CC CC CD, а вот следующие 6 цифр это уже MAC адрес отправителя, по нему и надо искать мешающее оборудование: 9C 4E 20 B2 2E 98 - в моём случае это оказалась Cisco 3560. После отключения на ней STP все пришло в норму. MSTP забегал, и все стало хорошо.
Несколько команд для проверки конфигурации MSTP на Cisco и HP:
HP:
Я несколько дней убил пытаясь понять, почему у меня ничего не работает! В итоге, в тёмном забытом углу нашлась Cisco 3560, про которую все забыли, и которая работала в режиме PVST... Признаться я даже не предполагал, что BPDU могут вот так пролетать сквозь всю топологию, и портить жизнь. В общем её BPDU пролетали насквозь и сводили с ума Cisco на которых я включал MSTP. Постоянные пересчеты топологии, веерные блокировки портов и т.д. и т.п.
000068: 00:49:18: %SPANTREE-2-PVSTSIM_FAIL: Blocking root port Gi0/8: Inconsistent inferior PVST BPDU received on VLAN 110, claiming root 32878:0015.c6d7.9900
Gi0/7 Mstr BKN*20000 128.7 P2p Bound(PVST) *PVST_Inc
Кстати, на HP есть такая штука, как pvst-filter, возможно ее включение спасло бы меня без поиска всех железок отправляющих неправильные BPDU.
Итак, что же я делал... Включаю на Cisco debug принятых BPDU:
term mon
debug spanning-tree bpdu receive
И вижу вот такую картину:
002836: Jan 5 16:36:57.625: STP: MST0 rx BPDU: config protocol = mstp, packet from GigabitEthernet0/8 , linktype IEEE_SPANNING , enctype 2, encsize 17
002837: Jan 5 16:36:57.625: STP: enc 01 80 C2 00 00 00 00 1B 3F 58 31 EF 00 89 42 42 03
002838: Jan 5 16:36:57.625: STP: Data 000003023C1000001B3FC1A800000000001000001B3FC1A80080110000140002000F00
002839: Jan 5 16:36:57.634: STP: MST0 Gi0/8:0000 03 02 3C 1000001B3FC1A800 00000000 1000001B3FC1A800 8011 0000 1400 0200 0F00
002840: Jan 5 16:36:58.238: STP: MST0 rx BPDU: config protocol = mstp, packet from GigabitEthernet0/8 , linktype SSTP , enctype 3, encsize 22
002841: Jan 5 16:36:58.238: STP: enc 01 00 0C CC CC CD 9C 4E 20 B2 2E 98 00 32 AA AA 03 00 00 0C 01 0B
002842: Jan 5 16:36:58.238: STP: Data 000000000080649C4E20B22E800000000080649C4E20B22E8080180000140002000F00
002843: Jan 5 16:36:58.238: STP: MST0 Gi0/8:0000 00 00 00 80649C4E20B22E80 00000000 80649C4E20B22E80 8018 0000 1400 0200 0F00
А вот SSTP - это уже ненормально. Это не наш MSTP, это "чужой" Spanning-tree, который нам и портит жизнь.
Найти злодея проще простого. Первые 6 цифр в поле ENC это заголовок, он всегда одинаковый: 01 00 0C CC CC CD, а вот следующие 6 цифр это уже MAC адрес отправителя, по нему и надо искать мешающее оборудование: 9C 4E 20 B2 2E 98 - в моём случае это оказалась Cisco 3560. После отключения на ней STP все пришло в норму. MSTP забегал, и все стало хорошо.
Несколько команд для проверки конфигурации MSTP на Cisco и HP:
HP:
sh spanning-tree mst-config
MST Configuration Identifier Information
MST Configuration Identifier Information
MST Configuration Name : H2SO4
MST Configuration Revision : 1
MST Configuration Digest : 0xF1AD53AD5D69827DFCB5C5B5D00F6D88
IST Mapped VLANs :
Instance ID Mapped VLANs
----------- ---------------------------------------------------------
1 1-35,101,111-500,1001-4094
2 36-100,102-110,501-1000
Синим цветом выделена контрольная сумма, она должна совпадать при правильной и одинаковой конфигурации на HP и Cisco. Если она отличается - ищите различия. Пока она отличается, все будет работать через instance 0 и все порты будет Boundary.
Cisco:
sh spanning-tree mst configuration
Name [H2SO4]
Revision 1 Instances configured 3
Instance Vlans mapped
-------- ---------------------------------------------------------------------
0 none
1 1-35,101,111-500,1001-4094
2 36-100,102-110,501-1000
-------------------------------------------------------------------------------
sh spanning-tree mst configuration digest
Name [H2SO4]
Revision 1 Instances configured 3
Digest 0xF1AD53AD5D69827DFCB5C5B5D00F6D88
Pre-std Digest 0x79EA425B9595B8B88B3E715854CC0CC8
В этом случае, не мудрствуя лукаво, MSTP просто для всех instances заблокировал межкоммутаторный линк оставив его на случай аварии, что логично. Ведь этот линк менее быстрый, и больше хопов на пути до root bridge.
Немного статистики с Cisco:
sh spanning-tree mst 1
##### MST1 vlans mapped: 1-35,101,111-500,1001-4094
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Gi0/18 Desg FWD 20000 128.18 P2p
Gi0/20 Desg FWD 200000 128.20 P2p
Gi0/21 Desg FWD 200000 128.21 P2p
Gi0/22 Desg FWD 200000 128.22 P2p
Gi0/23 Desg FWD 200000 128.23 P2p
Gi0/24 Altn BLK 20000 128.24 P2p
Po1 Root FWD 20000 128.36 P2p
sh spanning-tree mst 2
##### MST2 vlans mapped: 36-100,102-110,501-1000
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Gi0/24 Altn BLK 20000 128.24 P2p
Po1 Root FWD 20000 128.36 P2p
Коммутаторы в единую сеть мы собрали, по-этому в следующих заметках поговорим о настройках пользовательских портов, добавлю немного о защите сети от пользователей и петель, а так же зарезервируем доступ в интернет, почтовый релей, и подключение компании к интернету.
- Поговорим про BPDUGuard, BPDUFilter, PortFast и о некоторых особенностях применения этих сервисов на Cisco и HP ProCurve.
- Сделаем кластер из двух серверов на базе FreeBSD+CARP для раздачи интернета пользователям.
- Сделаем кластер из двух Debian/Ubuntu+UCARP для почтового релея, пересылающего почту между интернетом и почтовым сервером или кластером компании.
- Сделаем кластер из двух Cisco+HSRP в которые приходят каналы от провайдеров.