Hide_comments |
---|
Scroll Ignore | ||||||
---|---|---|---|---|---|---|
Содержание
|
Описание
Команда "switch "предназначена для управления коммутатором (MAC Switch).
Синтаксис:
Code Block | ||||
---|---|---|---|---|
| ||||
________ LIST commands __________________________________ switch list LISTNAME [{iface | mac | numrange | match}] {add | del} [VALUE ...] dump [name] [WILDCARD] rename NEWNAME file FILENAME [flush|remove] ________ GROUP commands _________________________________ы switch group ID {add | del} IFNAME[:{TAG|0}] ... switch group ID {repeater|trunk|uncoupled} {on|off} switch group ID {(up|down)stream} {SCID|0} switch group ID [x]vlan {TAG|LIST|0} [[no]bidir] switch group ID nvlan {[on]|off} switch group ID info INFO_STRING switch group ID setid NEWID switch group ID stp { off | on | dump } switch group ID stp [vlan TAG] switch group ID stp priority [PRIO] #(default: 57344, step: 4096) switch group ID stp forwarddelay [DELAY] #(default: 15 sec) switch group ID stp maxage [TIME] #(default: 20 sec) switch group ID stp port IFNAME priority [PRIO] #(default: 128, step 16) switch group ID stp port IFNAME cost [COST] #(default: 200000(RSTP), 65535(STP)) switch group ID igmp { off | on } switch group ID igmp static-add MCAST IF_NAME [MAC] switch group ID igmp static-del MCAST IF_NAME [MAC] switch group ID igmp dump [detail] [name] switch group ID igmp lmqt Value switch group ID igmp gmi Value switch group ID igmp router-port { off | on } switch group ID igmp flood-reports { off | on } switch group ID igmp zero-query-permit { off | on } switch group ID igmp srcip IP switch group ID igmp join-limit [IF_NAME] N [include $ACL] [except $ACL] switch group ID igmp querier [vlan N] {start|stop|clear} switch group ID igmp querier [[no]election] [source IP] [mcast X[,Y,...]] switch group ID igmp querier interval Value switch group ID flood-unicast { off | on } switch group ID inband { off | on } switch group ID order N switch group ID [ setpri|addpri PRIO ] [ qmch CHAN ] {deny | permit | showrules | showblack} switch group ID dump [interface] [WILDCARD] [dbdelete MACADDRESS] {start [discard]| stop | remove | statistics} switch group ID {in-trunk} [{ID|0}] ________ INTERFACE commands _____________________________ switch interface IFNAME mac-limit N ________ RULES commands _________________________________ switch {group ID | interface IFNAME} rule NUMBER [set NEWNUMBER] [not] [src LIST] [dst LIST] [vlan LIST] [iface LIST] [proto LIST] [match LIST] [ setpri|addpri PRIO ] [qmch CHAN] [ deny | permit ] [ remove ] _______ CONTROL commands _______________________________ switch resynchronize switch trace { off | on | verbose | filter "pcap expr"} switch stptrace { off | on } switch stpblock { off | on } switch {dump [WILDCARD]|MACADDRESS} switch igmp[-snooping] dump [name] [detail] switch {start|stop|restart|destroy|dead-interval DEAD_INTERVAL} switch statistics [(clear|help|ID)] switch maxsources (MAXSOURCES|0) # default 5000 |
Warning | ||
---|---|---|
| ||
Начиная с версии "MINT1.22.0" режим работы коммутатора частично несовместим с предыдущими версиями. Если в сети есть устройства, работающие в режиме коммутатора, то необходимо обновление программного обеспечения на всех узлах сети. Совместимость на уровне протоколов MINT и маршрутизации сохраняется. Также сохраняется возможность обновления прошивки "Over The Air". |
Шаблоны поиска
Шаблоны поиска "WILDCARD" используются в качестве аргументов в различных командах для формирования поисковых запросов, позволяющих описывать определенные группы сущностей. В качестве шаблонов могут быть использованы следующие символы:
- * - звездочка обозначает наличие в данном месте любого символа или набора символов. Набор может быть и пустым;
- ~ - знак тильды обозначает наличие на данном месте любого одного символа.
Примеры
Данный шаблон поиска включает в себя имена rf5.0, rf5.1, и т.д.
| |||||||
Следующий пример показывает способ применения шаблона для вывода информации о сетевых интерфейсах eth0 и eth1. Применение шаблона eth~ сообщает команде switch, что данные должны быть выведены только для интерфейсов, у которых имя начинается с eth и в конце содержит один любой символ.
|
Управление списками значений
Синтаксис:
Code Block | ||||
---|---|---|---|---|
| ||||
switch list LISTNAME [{iface | mac | numrange | match}] {add | del} [VALUE ...] dump [name] [WILDCARD] rename NEWNAME file FILENAME [flush|remove] |
Списки значений используются в качестве набора допустимых значений для условий (rule).
Параметры
Параметр | Описание | |||||||
---|---|---|---|---|---|---|---|---|
LISTNAME | Имя списка значений. Каждый список должен иметь уникальное имя, которое может состоять из произвольного сочетания букв и цифр, но не должно начинаться с цифры. Имя списка нечувствительно к регистру. | |||||||
[{iface | mac | numrange | match}] | Каждый список должен быть отнесен к одному из типов:
| |||||||
{add | del} [VALUE ...] | Аргументы "add" и "del" предназначены для добавления и удаления значения VALUE в указанный список. | |||||||
dump [name] [WILDCARD] | Вывод содержимого списка LISTNAME. Если указан аргумент WILDCARD, то команда распечатает только те значения, которые удовлетворяют шаблону поиска. | |||||||
rename NEWNAME | Переименование списка в NEWNAME. | |||||||
file FILENAME | Для списков допускается указание источника значений, который представляет собой текстовый файл, построчно хранящий набор значений. Файл может быть расположен на FTP-сервере, к которому у настраиваемого устройства есть сетевой доступ. Загрузка значений в список из источника происходит автоматически при старте коммутатора, при изменении имени источника или при выполнении команды:
В указанном примере файл "macgroup1.txt" может содержать следующие строки:
| |||||||
[flush|remove] |
|
Примеры
Создание списка типа "iface" с именем "my_iface", в который добавлены имена сетевых интерфейсов eth0 и rf5.0.
| |||||||
Создание списка диапазонов значений с именем "vlans", в который добавлены: значение 10, диапазон значений от 20 до 30 и значение 40.
| |||||||
Создание списка типа "match", в который добавлен фильтр, под действие которого будут попадать сетевые пакеты любых протоколов, источником или получателем которых являются IP-адреса из сети 195.38.45.64/26.
| |||||||
В данном примере также создается список-выражение типа "match", но в этом случае действие фильтра распространяется только на IP-пакеты, принадлежащие сети 195.38.45.64/26.
| |||||||
Для списков допускается указание источника значений, который представляет собой текстовый файл, построчно хранящий набор значений. Файл может быть расположен на FTP-сервере, к которому у настраиваемого устройства есть сетевой доступ. Загрузка значений в список из источника происходит автоматически при старте коммутатора, при изменении имени источника или при выполнении команды "switch synchronize". В указанном примере файл "macgroup1.txt" может содержать следующие строки:
|
Управление группами
Синтаксис:
Code Block | ||||
---|---|---|---|---|
| ||||
switch group ID {add | del} IFNAME[:{TAG|0}] ... switch group ID {repeater|trunk|uncoupled} {on|off} switch group ID {(up|down)stream} {SCID|0} switch group ID [x]vlan {TAG|LIST|0} [[no]bidir] switch group ID nvlan {[on]|off} switch group ID info INFO_STRING switch group ID setid NEWID switch group ID stp { off | on | dump } switch group ID stp [vlan TAG] switch group ID stp priority [PRIO] #(default: 57344, step: 4096) switch group ID stp forwarddelay [DELAY] #(default: 15 sec) switch group ID stp maxage [TIME] #(default: 20 sec) switch group ID stp port IFNAME priority [PRIO] #(default: 128, step 16) switch group ID stp port IFNAME cost [COST] #(default: 200000(RSTP), 65535(STP)) switch group ID igmp { off | on } switch group ID igmp static-add MCAST IF_NAME [MAC] switch group ID igmp static-del MCAST IF_NAME [MAC] switch group ID igmp dump [detail] [name] switch group ID igmp lmqt Value switch group ID igmp gmi Value switch group ID igmp router-port { off | on } switch group ID igmp flood-reports { off | on } switch group ID igmp zero-query-permit { off | on } switch group ID igmp srcip IP switch group ID igmp join-limit [IF_NAME] N [include $ACL] [except $ACL] switch group ID igmp querier [vlan N] {start|stop|clear} switch group ID igmp querier [[no]election] [source IP] [mcast X[,Y,...]] switch group ID igmp querier interval Value switch group ID flood-unicast { off | on } switch group ID inband { off | on } switch group ID order N switch group ID [ setpri|addpri PRIO ] [ qmch CHAN ] {deny | permit | showrules | showblack} switch group ID dump [interface] [WILDCARD] [dbdelete MACADDRESS] {start [discard]| stop | remove | statistics} switch group ID {in-trunk} [{ID|0}] |
Параметры
Center | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Примеры
В указанном примере все пакеты, коммутируемые группой 3 будут маркироваться vlan 10 при отправке через интерфейс rf5.0 и будут растэгироваться при отправке через интерфейс eth0.
| |||||||||||||||||||||
Например, если группа 100 на клиентском устройстве входит в состав транковой группы 5 (группа 100 образовалась в результате конвертации VLAN ID 100 в номер группы 100), то в конфигурации коммутатора клиентского устройства следует указать команду: "switch group 100 in-trunk 5" | |||||||||||||||||||||
Группа 10 будет обрабатывать пакеты с метками VLAN 100, 200, 300, а также немаркированные пакеты, такие пакеты будут отправляться в сеть MINT с собственным номером группы, (в данном случае - 10), маркированные - с номерами групп, совпадающими с меткой VLAN.
| |||||||||||||||||||||
| |||||||||||||||||||||
| |||||||||||||||||||||
В данном примере создается группа коммутации «group 1». На ней включается поддержка стандартного "stp" протокола и устанавливается "stp" приоритет коммутатора равный 36864.
| |||||||||||||||||||||
В процессе распределения пакетов данных по группам коммутации группы просматриваются в порядке появления их в конфигурации. Выбирается первая группа, правилам которой удовлетворяет пакет, на этом просмотр заканчивается. Данная команда позволяет изменить порядок следования групп. Она указывает, в каком порядке определенная группа будет просматриваться при распределении.
| |||||||||||||||||||||
|
Команды управления интерфейсом
Команда используется для ограничения количества MAC-адресов, доступных через указанный сетевой интерфейс. При превышении указанного лимита, новые MAC-адреса не будут вноситься в таблицу обучения коммутатора, и весь трафик с этих адресов будет блокирован.
Синтаксис:
Code Block | ||||
---|---|---|---|---|
| ||||
switch interface IFNAME mac-limit N |
Команды управления правилами коммутации
Правила коммутации применяются для:
- Определение подходящей коммутационной группы при приеме пакета через интерфейсы eth*. Пакет, принятый через такой интерфейс, будет коммутироваться только такой группой, коммутационным правилам которой удовлетворяет данный пакет.
- Когда пакет прошел отбор коммутационной группой и группа принимает решение о необходимости отправки данного пакета через выбранный интерфейс. Через этот интерфейс пакет будет отправлен только если он удовлетворяет коммутационным правилам данного интерфейса.
Правила коммутации представляют собой перечень правил (rules) и решение по умолчанию (deny/permit). Каждое правило состоит из порядкового номера, условия и решения (deny/permit). При просмотре списка определяется, удовлетворяет ли пакет условию текущего правила. Если удовлетворяет, то в отношении данного пакета принимается решение этого правила. Иначе продолжается просмотр списка правил далее. Порядок просмотра правил производится в соответствии с их порядковыми номерами, по возрастанию. Если пакет не удовлетворяет условию ни одного из правил, то принимается решение по умолчанию данной группы или интерфейса. Решение по умолчанию "deny" означает, что такой пакет не удовлетворяет данным правилам коммутации.
Условие правил состоит из одного или более элементов, сопоставляемым со следующими параметрами пакета:
- интерфейс через который осуществляется отправка пакета (iface);
- MAC-адрес источника пакета (src);
- MAC-адрес получателя (dst);
- метка VLAN (vlan);
- номер протокола уровня Ethernet (proto).
В каждом элементе условия указывается имя списка допустимых значений соответствующего параметра пакета. Кроме того, в условии может присутствовать выражение, записанное на языке фильтров PCAP (tcpdump). Это выражение рассматривается как псевдо-параметр пакета и называется "match". Таким образом, пакет признается удовлетворяющим условию, если все его параметры принадлежат соответствующим спискам допустимых значений параметра, а весь пакет в целом удовлетворяет выражению "match". Если в условии отсутствует элемент для какого-либо параметра пакета, то данный параметр пакета, вне зависимости от своего значения, считается удовлетворяющим такому условию. Если же список допустимых значений, указанный в элементе условия оказался пустым, то никакое значение соответствующего параметра не может удовлетворить условию, даже если данный параметр отсутствует в пакете (например, vlan tag).
Синтаксис:
Code Block | ||||
---|---|---|---|---|
| ||||
switch {group ID | interface IFNAME} rule NUMBER [set NEWNUMBER] [not] [src LIST] [dst LIST] [vlan LIST] [iface LIST] [proto LIST] [match LIST] [ setpri|addpri PRIO ] [qmch CHAN] [ deny | permit ] [ remove ] |
Параметры
Параметр | Описание |
---|---|
ID и IFNAME | Номер группы или интерфейса. |
NUMBER | Порядковый номер правила |
set NEWNUMBER | Команда изменения номера правила на NEWNUMBER |
remove | Команда удаления правила данного правила. |
src, dst, vlan, iface, proto, match | команды установки списка допустимых значений для соответствующего параметра пакета. Для того, чтобы отменить действие списка допустимых значений для соответствующего параметра пакета в данном правиле, необходимо указать имя несуществующего списка допустимых значений. |
deny | permit | Команда установки соответствующего решения данного правила |
setpri|addpri PRIO | Данная команда возможностью устанавливать/повышать приоритет пакетов принятых конкретным правилом классификации. Параметр "setpri" явно изменяет приоритет на указанный в команде. При использовании значения -1, у пакета сбрасывается его приоритет. Параметр "addpri" изменит приоритет только в том случае, если вновь устанавливаемый приоритет выше, чем уже имеющийся у пакета (чем меньше число, тем выше приоритет). То есть с помощью параметра addpri приоритет можно только повысить. |
{deny | permit } | Для установки решения по умолчанию для коммутационных правил применяется команда: |
Примеры
В указанном примере можно наблюдать следующее: создаются три группы коммутации.
|
Команды управления
Синтаксис:
Code Block | ||||
---|---|---|---|---|
| ||||
switch resynchronize switch trace { off | on | verbose | filter "pcap expr"} switch stptrace { off | on } switch stpblock { off | on } switch {dump [WILDCARD]|MACADDRESS} switch igmp[-snooping] dump [name] [detail] switch {start|stop|restart|destroy|dead-interval DEAD_INTERVAL} switch statistics [(clear|help|ID)] switch maxsources (MAXSOURCES|0) # default 5000 |
Описание команд
Параметр | Описание |
---|---|
switch resynchronize | Производит принудительную перезагрузку содержимого списка допустимых значений, источником данных которых был указан file. |
switch trace { off | on | verbose | filter "pcap expr"} | Включает/выключает запись в системный log диагностической информации.
|
switch stptrace { off | on } | Данная команда с помощью параметров "off / on" выключает или включает вывод служебной информации STP, такой как изменение состояния портов, изменение связей, в системный журнал (sys log). По умолчанию выключено. |
switch stpblock { off | on } | «Stpblock on» предотвращает сквозную коммутацию STP фреймов, если поддержка STP на устройстве отключена. Чтобы разрешит сквозную коммутацию STP фреймов используется команда «stpblock off». База данных МАС адресов коммутатора (БДК) – это таблица маршрутизации MAC уровня, содержащая информацию о способе доставки пакета до адресата назначения (dst). Каждая коммутационная группа имеет независимую БДК. Записи в таблице образуются автоматически на основании адресата источника пакета, принятого одним из интерфейсов коммутационной группы. Кроме того БДК всегда содержит записи соответствующие MAC адресам интерфейсов коммутационной группы. Эти записи называются локальными. Каждая запись, кроме локальной, имеет «время жизни». |
switch dead-interval <DEAD_INTERVAL_IN_SECONDS> | «Время жизни» записи. В случае, если ни один из интерфейсов за указанный интервал времени не принял ни одного пакета с адресата источника соответствующего данной записи БДК, то данная запись удаляется из базы данных. По умолчанию равно пяти минутам. |
switch {start | stop | restart} | Для запуска/остановки/перезагрузки всего коммутатора следует применять команду: |
switch {destroy} | Для удаления конфигурации коммутатора используется команда: |
switch statistics [(clear|help|ID)] | Следующая команда отображает статистику работы коммутатора. Показывается информация по отправленным, отброшенным и flood-пакетам, а также по записям таблицы MAC-адресов коммутатора (DB Records). Статистика по "unicast", "broadcast" и "flood" пакетам ведется отдельно. Опция “clear” позволяет обнулить статистику, а опция “help” показывает пояснения названий причин отбрасывания пакетов, которые используются в выводе статистики. Если в команде указан идентификатор коммутационной группы, статистика будет отображена для этой группы, с разделением по всем входящим в нее VLAN. |
switch maxsources (MAXSOURCES|0) | Для ограничения таблицы MAC-адресов коммутатора используется следующая команда Количество записей по умолчанию равно 5000. При использовании значения “0”, устанавливается минимально допустимое значение равное 500. |
Например, указанные ниже команды позволяют проследить в системном журнале процесс обработки коммутатором пакетов, предназначаемых для MAC 00:11:22:33:44:55 (в первом случае) и подсети 1.2.3.0/24 (во втором случае)
Code Block | ||||
---|---|---|---|---|
| ||||
sw trace filter "ether host 00:11:22:33:44:55" sw trace filter "net 1.2.3.0/24" |
Пример конфигурации
Здесь созданы три коммутационные группы. Группой 5 коммутируются пакеты c VLAN тэгами 10, 20-30 и 40. Группой 15 коммутируются пакеты с любым VLAN тэгом, кроме коммутируемых группой 5. Группой 25 коммутируются любые пакеты без VLAN тэга. Кроме того, группой 25 будут передаваться межкоммутаторный трафик.
Code Block | ||||
---|---|---|---|---|
| ||||
switch list VGROUP numrange add 10 20-30 40 switch list ALL_VLAN numrange add 0-4095 switch group 5 add eth0 rf5.0 switch group 5 rule 10 vlan VGROUP permit switch group 5 deny switch group 5 start switch group 15 add eth0 rf5.0 switch group 15 rule 10 vlan VGROUP deny switch group 15 rule 11 vlan ALL_VLAN permit switch group 15 deny switch group 15 start switch group 25 add eth0 rf5.0 switch group 25 rule 10 vlan ALL_VLAN deny switch group 25 permit switch group 25 start switch start |