Содержание |
Команда "switch" предназначена для управления коммутатором (MAC Switch).
Начиная с версии "MINT 1.22.0" режим работы коммутатора частично несовместим с предыдущими версиями. Если в сети есть устройства, работающие в режиме коммутатора, необходимо обновление программного обеспечения на всех узлах сети. Совместимость на уровне протоколов MINT и маршрутизации сохраняется. Также сохраняется возможность обновления ПО "Over The Air". |
Синтаксис:
MAC Switch V2.06 Usage: ________ 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|unpaired} {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 dhcp-snooping { off | on } #(default: off) switch group ID dhcp-snooping [no]trust IFNAME #(default: notrust) switch group ID dhcp-snooping [no]verify-mac #(default: verify) switch group ID dhcp-snooping option-82 [no]insert #(default: insert) switch group ID dhcp-snooping option-82 format { string ASCII-string | hex HEX-string | mac } #(default: mac) switch group ID dhcp-snooping option-82 untrusted-policy { drop | keep | replace } #(default: drop) switch group ID flood-unicast { off | on } switch group ID inband { off | on } switch group ID order N switch group ID set NEWNUMBER switch group ID [setpri|addpri PRIO] [qmch CHAN] switch group ID {deny | permit} switch group ID dump [interface] [WILDCARD] [dbdelete MACADDRESS] {start [discard]| stop | remove | stat | showrules | showblack} switch group ID {in-trunk} [{ID|0}] ________ INTERFACE commands _____________________________ switch interface IFNAME mac-limit N ________ RULES commands _________________________________ switch {group ID | interface IFNAME} rule NUMBER [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 stpmint { off | on } switch {dump [WILDCARD]|MACADDRESS} switch igmp[-snooping] dump [name] [detail] switch {start|stop|restart|destroy|dead-interval DEAD_INTERVAL[300]} switch stat[istics] [(clear|help|ID)] switch maxsources (MAXSOURCES|0) # default 5000 |
Шаблоны поиска "WILDCARD" используются в качестве аргументов в различных командах для формирования поисковых запросов, позволяющих описывать определенные группы сущностей. В качестве шаблонов могут быть использованы следующие символы:
Правила коммутации используются для определения коммутационной группы, в которую будут направлены пакеты, принятые, через интерфейсы "eth*". Коммутация сетевого пакета будет осуществляться группой, правилам коммутации которой удовлетворяет данный пакет. Соответствующая группа коммутация принимает решение о необходимости пересылки пакета через указанный сетевой интерфейс.
Правила коммутации представляют собой перечень правил (rules) и решение по умолчанию (deny/permit). Каждое правило состоит из порядкового номера, условия и решения (deny/permit). При просмотре списка определяется, удовлетворяет ли пакет условию каждого правила. Если удовлетворяет, то в отношении данного пакета принимается решение этого правила. Иначе просмотр списка правил будет продолжен. Порядок просмотра правил производится в соответствии с их порядковыми номерами, по возрастанию. Если пакет не удовлетворяет условию ни одного из правил, то принимается решение по умолчанию данной группы или интерфейса.
Каждое условие включает в себя один или более элементов, сопоставляемых со следующими параметрами пакета:
В каждом элементе условия указывается имя списка допустимых значений соответствующего параметра пакета. Кроме того, в условии может присутствовать выражение, записанное на языке фильтров PCAP (tcpdump). Это выражение рассматривается как псевдо-параметр пакета и называется "match". Таким образом, пакет признается удовлетворяющим условию, если все его параметры принадлежат соответствующим спискам допустимых значений параметра, а весь пакет в целом удовлетворяет выражению "match". Если в условии отсутствует элемент для какого-либо параметра пакета, то данный параметр пакета, вне зависимости от своего значения, считается удовлетворяющим такому условию.
|
Следующий пример показывает способ применения шаблона для вывода информации о сетевых интерфейсах "eth0" и "eth1". Применение шаблона "eth~" сообщает команде "switch", что данные должны быть выведены только для интерфейсов, у которых имя начинается с eth и в конце содержит один любой символ. "Cost" – стоимость (метрика) маршрута. "UsCNT" – счётчик указывающий сколько раз использовалась эта запись, т.е. сколько пакетов было отправлено на этот MAC-адрес.
| |||
Создадим список типа "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".
| |||
В качестве источника значений укажем текстовый файл.
В указанном примере файл "macgroup1.txt" может содержать следующие строки:
| |||
К узлам 1,2,3,4,5 и 6 подключены цифровые видеокамеры, которые транслируют изображение с помощью пакетов multicast, и все эти потоки нужно передать на сервер оптимальным способом, не подвергая сеть дополнительной нагрузке, создаваемой широковещательным трафиком. Весь нисходящий трафик(от сервера к камерам), если таковой имеется, передаётся в группе 1000, в которой находятся все узлы сети. Однако восходящие потоки от каждой камеры передаются непосредственно к ближайшему коммутатору своей группы. Особенностью такого решения является возможность установки нескольких коммутаторов с одинаковым номером группы. Для устранения проблемы широковещательного шторма, который мог бы возникнуть из-за того, что коммутаторы включены в разные порты одного проводного коммутатора, в MINT введено ограничение – транковые (передающие оба типа трафика) и "downstream" коммутаторы никогда не используют друг друга для передачи трафика. Кроме того, наличие параметра “upstream” гарантирует, что оконечные узлы будут выбирать для отправки пакетов только один коммутатор, а именно – кратчайший путь к ближайшему коммутатору. | |||
Группа коммутации 100 на клиентском устройстве входит в состав транковой группы 5, в конфигурации коммутатора клиентского устройства следует дать команду:
| |||
Выведем информацию о текущем состоянии STP при помощи команды "switch group ID stp dump".
| |||
В указанном примере все пакеты, коммутируемые группой 3 будут маркироваться VLAN 10 при отправке через интерфейс "rf5.0" и метки будут сниматься при отправке через интерфейс "eth0".
| |||
Включим на устройстве транковую группу, которая будет обеспечивать передачу нескольких потоков VLAN по разным направлениям.
На клиентских устройствах следует использовать опцию "in-trunk" для явного указания, в состав какой транковой группы входит данная группа.
| |||
Группа 10 будет обрабатывать пакеты с метками VLAN 100, 200, 300, а также немаркированные пакеты, такие пакеты будут отправляться в сеть MINT с собственным номером группы, (в данном случае - 10), маркированные - с номерами групп, совпадающими с меткой VLAN.
Группа 20 обрабатывает только маркированные пакеты из списка MYNET и передаёт их, преобразовывая значение метки VLAN, в соответствующий номер группы (и наоборот).
Группа 30 обрабатывает только маркированные пакеты из списка MYNET и передаёт их с сохранением номера группы.
| |||
В данном примере создается группа коммутации "1". Для неё включается поддержка стандартного STP протокола и устанавливается STP приоритет коммутатора, равный 36864.
| |||
В указанном примере создаются три группы коммутации.
| |||
Включим запись в системном журнале для отображения процесса обработки пакетов коммутатором, предназначаемых для MAC-адреса "00:11:22:33:44:55" и подсети "1.2.3.0/24".
| |||
Пример конфигурации, в которой создаются три коммутационные группы. Группой 5 коммутируются пакеты c VLAN метками 10, 20-30 и 40. Группой 15 коммутируются пакеты с любой меткой VLAN, кроме коммутируемых группой 5. Группой 25 коммутируются любые пакеты без метки VLAN. Кроме того, группой 25 будут передаваться межкоммутаторный трафик.
|