Особенности настройки коммутаторов ExtremeXOS

от автора

Данная статья призвана сократить количество времени, необходимое для понимания принципов работы с ExtremeXOS (XOS). Когда я начинал знакомство с XOS, мне очень не хватало такой статьи на Хабре.

Ниже я расскажу о конфигурации Экстримов и о проблемах, с которыми я сталкивался. Надеюсь, поможет сетевым инженерам, которые только начинают работать с XOS. Вне зависимости от модели коммутатора, – синтаксис CLI абсолютно одинаковый.

КДПВ
Стенд коммутаторов Extreme

К делу

Для виртуализации оборудования я использую Eve-Ng и образ Virtual ExtremeOS (XOS). Можно также использовать GNS3.

Как же выглядит настройка коммутаторов В XOS нет необходимости переключения режимов работы, все команды вводятся из обычного режима, отмеченного #, в случае админского аккаунта; и > в случае пользователя.
Для начала хотелось бы обозначить «основные» принципы команд в EOS. Всё строится на трех командах и их антонимов: create, configure, enable (delete, unconfigure, disable соответственно). То есть: создаем, настраиваем, активируем. Выглядит логично.

create vlan 10 configure vlan 10 ipaddress 192.168.1.1/24

Также следует понимать, что большинство конфигураций настраивается на VLAN. То есть в XOS почти все привязано к VLAN’ам. Даже назначение VLAN на порт происходит в настройке VLAN, то есть порт вешается на vlan.
Особое внимание хочется уделить виртуальным маршрутизаторам (VR), которые есть по умолчанию в коммутаторе. Есть VR-Default, которому принадлежат все порты, и VR-mgmt, которому принадлежит mgmt. порт. В XOS для всех команд, которые куда-то отправляют трафик (ping, ssh, telnet, download, etc.) необходимо указывать VR.

ping vr "VR-Default" 192.168.1.1

Обновление коммутаторов XOS

В XOS есть два раздела (partition) под ОС: primary и secondary. Функционально они ничем не различаются, только названиями. Устанавливать обновления можно только в неактивный на данный момент раздел. Для этого можно использовать аргумент inactive. После обновления требуется перезагрузка, и коммутатор загрузится с другого (только что обновленного) раздела. Это оставляет возможность быстрого отката, в случае проблем, просто выбрав другой раздел при загрузке (тот, где осталась старая ОС). Также замечу, что все образы с патчами представляют собой полноценный образ, то есть не надо ставить мажорную версию, а потом несколько минорных. При загрузке используется tftp:

download image 192.168.1.1 summitX-21.1.4.4-patch1-3.xos vr "VR-Default" inactive

Узнать, какой сейчас раздел используется, можно при помощи:

show system … Image Selected:   primary                  Image Booted:     secondary                Primary ver:      22.3.1.4 Secondary ver:    21.1.1.4   

Стекирование коммутаторов

Для стекирования коммутаторов XOS необходимо включить поддержку стекирования и перезагрузить коммутатор:

enable stacking-support reboot

Очень удобно, что в стек можно объединять коммутаторы разных моделей, при этом мастером будет коммутатор, с наибольшей производительностью. Например, это может быть необходимо для стека 10G коммутаторов на 16 портов для серверов, к которым добавляется 48-портовый 1G коммутатор, в который включаются mgmt.-интерфейсы.
Для стекирования коммутаторы должны иметь одинаковую версию ОС. Стекирование производится через определенные Ethernet порты, для каждой модели разные, которые можно найти в документации. В случае, если вы соберете коммутаторы по схеме портов 1 в 2, 2 в 1, то коммутаторы Extreme можно будет собрать в стек по упрощенной процедуре easy-stack, которая сама привяжет мак-адреса к номеру слота и другие настройки. При этом первым станет коммутатор, на котором вы примените enable stacking, остальным будут присвоены номера по цепочке. Это довольно удобный способ, позволяющий сэкономить много времени. После стекирования порты будут иметь вид SLOT:PORT (1:1, 2:35).

X440G2-48p-10G4.1 # show stacking Stack Topology is a Ring This node is not in an Active Topology Node MAC Address    Slot  Stack State  Role     Flags ------------------  ----  -----------  -------  --- *00:04:96:xx:xx:xx  -     Disabled     Master   ---  00:04:96:xx:xx:xx  -     Disabled     Master   ---  00:04:96:xx:xx:xx  -     Disabled     Master   ---  00:04:96:xx:xx:xx  -     Disabled     Master   ---  00:04:96:xx:xx:xx  -     Disabled     Master   --- * - Indicates this node Flags:  (C) Candidate for this active topology, (A) Active Node     (O) node may be in Other active topology X440G2-48p-10G4.2 # enable stacking You have not yet configured all required stacking parameters. Would you like to perform an easy setup for stacking operation? (y/N) Yes  Executing "configure stacking easy-setup" command... For every node in the 5-node stack, this command will: - enable stacking - configure a stack MAC address - choose and configure a slot number (this node will be assigned to slot 1) - configure redundancy to minimal (slot 1 will be the master node) - configure the stacking protocol to enhanced Upon completion, the stack will automatically be rebooted into the new configuration. Warning: If stacking is already configured, this command will alter that configuration. Do you wish to proceed? (y/N) Yes  Stacking configuration is complete.  Rebooting...

Обновление стека заключается в том, что обновляется master, а дальше он сам по очереди разливает новую версию на остальные слоты. Перезагрузка необходима.

Лицензирование

Каждый коммутатор идет с предустановленной лицензией (edge, advanced edge, core, и т.д.). Каждая лицензия имеет свой набор функций, которые могут быть активированы на коммутаторе, например, количество портов, которые могут быть использованы в OSPF. Также есть лицензии на отдельные feature. Подробнее можно прочитать здесь.
Одна из самых частых лицензий – лицензия на feature: Dual-10GB-Uplink. Данная лицензия на edge коммутаторе-1G позволяет использовать 2x 10GbE порта. Например, на X440-G2-48p.
Лицензии доступны в личном кабинете на сайте Extreme, после чего активируются (без перезагрузки) и проверяются командой.

enable license XXXX-XXXX show licenses

В случае, если в стеке коммутаторов используются разные лицензии, будет использована наименьшая.

Настройка

Небольшое отступление: Чтобы посмотреть результаты команд, которые будут ниже, а также любую другую информацию, в большинстве случаев можно использовать show, заменяя create и configure. Например, show vlan.
Hint: При использовании show ports – XOS построит обновляемую раз в несколько секунд таблицу, которая позволяет в реальном времени отслеживать состояние интерфейсов. Для того, чтобы получить вывод без обновления, необходимо использовать “show ports no-refresh”.
Первое, что приходит в голову, что нужно бы настроить это hostname. Казалось бы, должно быть как-то так:

configure hostname Ex_sw_1

Но не все так просто, на самом деле делается это так:

configure snmp sysName Ex-sw-1

Создаем VLAN:

create vlan My_Vlan_Five tag 5

Или так, причем именно так будет отображено в конфиге:

create vlan My_Vlan10 configure vlan My_Vlan10 tag 10

Учитывая практический опыт и реалии вывода команд и настройки XOS, я создал для себя правило: в названии vlan в конце дописывать его тег, что облегчает восприятие и настройку:

create vlan users-10 tag 10

В XOS нет как таковых trunk и access портов. Вместо этого используются понятия: тегированный и нетегированный трафик на интерфейсе с привязкой к vlan. Может быть один нетегированный и много тегированных vlan. Порты нумеруются цифрами (или slot:port в стеке), все очень просто.

configure vlan My_Vlan-5 add ports 1 tagged configure vlan My_Vlan1 add ports 1 untagged

Соответственно, весь трафик без тега, приходящий на интерфейс будет тегироваться как “My_Vlan1”.
При этом vlan можно задавать как через <Name>, так и через <tag>, причем в любых комбинациях (используя vlan_list, то есть числовой по тегам). Без указания атрибута в конце используется <untagged>:

сonfigure vlan 1,5-10,15-20 add ports 1-8, 48 tagged configure vlan web-110 add ports 5 сonfigure vlan 20 add ports 30-40,45 untagged

Так как большинство коммутаторов серии SummitX это L3 коммутаторы, то вот так настраиваются SVI:

configure vlan 125 ipaddress 192.168.125.1/24

После этого необходимо применить данную команду, иначе vlan останется немаршрутизируемым:

enable ipforwarding vlan 125 enable ipforwarding vlan 10-50,60 

Чтобы посмотреть, какие vlan есть на интерфейсе, можно использовать команду:

show ports 2 vlan

Для просмотра и сохранения конфигурации используются следующие команды и имеются primary и secondary конфигурационные файлы:

save  save secondary show configuration

Агрегация каналов

Один из неудобных моментов, которые я встретил, — это агрегация каналов. (port-channel). Общая суть выглядит так: вы назначаете мастер-порт и к нему до семи вторичных интерфейсов. Далее все настройки производятся лишь на конкретном мастер-порте, нет никаких логических интерфейсов вида po1. Минус же в том, что если Вы хотите изменить мастер порт, то необходимо руками переносить все настройки на другой порт, так как при удалении агрегированного канала весь конфиг на нём слетает. Решение этого неудобства есть в этой статье, однако все равно получается не идеально. В XOS агрегация называется sharing.
Для включения такого порта необходимо применить команду вида:

enable sharing [MASTER_PORT] grouping [PORT_LIST] [lacp] enable sharing 1 grouping 1-2 lacp

На версии ниже чем 22.X необходимо дописывать алгоритм «балансировки»:

enable sharing 1 grouping 1-2 algorithm address-based L2 lacp

Защита от петель второго уровня OSI

На коммтутаторах Summit-X до-мажорной версии 22.2 по умолчанию был отключен протокол защиты от петель второго уровня. (STP и другие). На момент написания статьи, рекомендованный вендором софт — это 21.1.5.2.

ELRP

В одном из своих проектов я использовал проприетарный протокол ELRP, который предназначен для обнаружения и предотвращения петель. В ходе тестов он показал хорошие результаты (скорость отключения порта при петле и др.). Данный протокол отправляет мультикастом PDU, и если отправитель его снова получает, то значит есть петля.
Интервал отвечает за частоту рассылки PDU, в данном случае — 2 секунды. В случае петли порт будет заблокирован на 180 секунд, после чего будет снова послана PDU. Варианты оповещения: log, trap, log-and-trap. В случае trap, соответственно, посылается snmp trap.
Настраивается данный протокол per-vlan, также, как и большинство конфигураций в XOS.

enable elrp-client configure elrp-client periodic Buh-123 ports all interval 2 log disable-port ingress duration 180 

Чтобы протокол ELRP не блокировал аплинки коммутаторов доступа или критично-важные соединения, используется команда исключения портов из блокировки.

configure elrp-client disable-port exclude 35 configure elrp-client disable-port exclude 1:1

STP

STP настраивается чуть мудренее, но в целом особых проблем не возникает. В XOS данный протокол именуется “stpd”, во всех командах для настройки STP, используется именно он. Можно его сделать per-vlan, используя разные STP-домены. “domain-id” и “vlan-id” должны совпадать. Порты в STP можно добавлять либо вручную, либо используя vlan auto-bind. Как только к vlan’у добавляется порт, то этот порт автоматически добавляется в STP. Такая вот логика. Настройка режима: dot1d STP, dot1w – RSTP:

configure stpd "s0" priority 4096 configure stpd s0 mode dot1w enable stpd s0 enable stpd "s0" auto-bind "VLAN_0005"

VRRP

VRRP — это один из видов FHRP, аналог HSRP в Cisco. Для каждой сети(vlan’а) необходимо использовать vrid, который может быть от 1 до 255. Приятно порадовала возможность маршрутизации трафика с backup-vrrp-L3-коммутатора с использованием опции fabric-routing. По умолчанию приоритет равен 100. У кого из коммутаторов приоритет выше, тот становится «Master».

create vrrp vlan test1 vrid 125 configure vrrp vlan test1 vrid 125 priority 50 configure vrrp vlan test1 vrid 125 fabric-routing on enable vrrp vlan test1 vrid 125

MLAG

Про то, что это такое и зачем, очень хорошо рассказано здесь: это, по сути, аналог Cisco VPC. ISC – соединение между коммутаторами mlag-пары.

В моем случае обычно использовалась такая схема:

Необходимо создать соседа(peer), для того чтобы можно было относить конкретные порты с mlag к конкретному соседу, так как Extreme поддерживает возможность использования нескольких соседей. Для ISC нужен vlan, используемый только для ISC и имеющий IP адрес. Соответственно, peer для X670-1 у нас будет X670-2, а mlag порты будут x440. Для функционирования необходимо создать канал аггрегации, причем на x670 для одного порта в сторону x440, и агреггированный канал в сторону X670-2, в котором будут ВСЕ Vlan’ы, участвующие в mlag.
На x670:

Enable sharing 1 grouping 1 lacp create mlag peer "mlag1"  configure mlag peer "mlag1" ipaddress 10.255.255.2 vr VR-Default  enable mlag port 1 peer "mlag1" id 1

На х440-stack:

enable sharing 1:51 grouping 1:51,2:51 lacp

MLAG+VRRP

Во время тестирования коммтуаторов на стенде была найдена проблема, что VRRP забирает Master-роль до того, как поднимутся все остальные интерфейсы (ISC поднимается первым) и протоколы, что приводило к даунтайму сети порядка минуты.
Данная проблема решилась следующими командами, однако они доступны только с “EXOS 21.1.3.7-patch1-4” и “EXOS 22.3”:

configure mlag ports reload-delay 60 enable mlag port reload-delay

Маршрутизация

Статичные маршруты задаются следующим образом, тут проблем быть не должно. Можно маску задавать в любом варианте.

configure iproute add 10.0.66.0 255.255.255.0 172.16.1.1 configure iproute add 10.0.0.1/32 10.255.255.255 configure iproute add default 172.16.0.1

OSPF

Для маршрутизации, в моей практике, использовался OSPF с одной зоной. Для обеспечения работоспособности необходимо задать router-id, а также добавить каждый vlan, который необходимо анонсировать (по аналогии в Cisco: network).

configure ospf routerid 192.168.1.1 enable ospf configure ospf add vlan routing-5 area 0.0.0.0  configure ospf add vlan Voip-32 area 0.0.0.0 passive

Остальные мелочи

DHCP Relay

Настраивается следующим образом:

configure bootprelay add 192.168.12.5 vr VR-Default enable bootprelay ipv4 vlan servers-500

При создании нового vlan необходимо добавлять его вручную в список vlan с DHCP Relay.

SSH + ACL для SSH

Ssh включается следующим образом:

enable ssh2

Для ограничения доступа к ssh необходимо создать отдельный файл политики вида NAME.pol и повесить его на SSH.

vi ssh.pol

Политика:

Entry AllowTheseSubnets { if match any { source-address 192.168.0.0 /16; source-address 10.255.255.34 /32; } Then { permit; } }

Команда для применения политики:

enable ssh2 access-profile ssh.pol

Description + display-string

Для удобства настройки и последующей эксплуатации можно задавать «имя» и «описание» интерфейса.

сonfigure port 1 description “this is port number one”

Описание интерфейса будет выводится только в командах вида:

show ports description

Имя интерфейса заменит практически везде его номер в выводе команд. Имя не должно содержать пробела и ограничено длинной в 20 символов.

сonfigure port 1 display-string UserPort EXOS-VM.8 # sh port vlan          Untagged   Port     /Tagged   VLAN Name(s) -------- --------  ------------------------------------------------------------ UserPort Untagged  Default 2        Untagged  Default 3        Untagged  Default

Заключение

XOS также позволяет автоматизировать многие действия и подстраивать систему под свои нужды, так как нативно поддерживает Python и встроенный механизм создания и запуска скриптов, используя команды командной строки(CLI-Scripting).

Я открыт для пожеланий по улучшению статьи и исправлению неточностей/ошибок, а также вопросов.

UPD: LLDP для IP-телефонов настраивается с использованием команд из данного комментария.


ссылка на оригинал статьи https://habr.com/post/419965/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *