Настройка L2 filter-map
Ещё один вид списка доступа в EcoRouterOS — это filter-map ethernet, который позволяет фильтровать фреймы по значениям полей в L2-заголовке.
По структуре правил filter-map ethernet отличается тем, что в правилах указываются MAC-адреса источника и назначения, инверсные маски (wildcard) MAC-адресов и значения поля ethertype (опционально).
filter-map ethernet создаётся в конфигурационном режиме. Для одного действия может существовать несколько правил.
Синтаксис создания filter-map ethernet, добавления правил и действий в filter-map ethernet требует указать следующие параметры:
- имя и sequence самого filter-map ethernet —
filter-map ethernet <FILTER_MAP_ETHERNET_LIST> [<SEQUENCE_NUMBER>]
; - правило —
match {<SOURCE_MAC> <SRC_WILDCARD> | any | host <SOURCE_MAC>} {<DESTINATION_MAC> <DST_WILDCARD> | any | host <DESTINATION_MAC>} [<ETHERTYPE>]
; - действие —
set <ACTION>
.
Таблица — Параметры filter-map ethernet
Параметр | Описание |
---|---|
FILTER_MAP_ETHERNET_LIST | Имя списка фильтрации, может принимать любое значение |
SEQUENCE_NUMBER | Номер приоритета выполнения, допустимые значения 0–65535. Если значение не задано, то параметр для созданного filter-map ethernet автоматически получит последующее свободное значение с шагом 10 |
SOURCE_MAC | MAC-адрес источника, задаётся в одном из трёх форматов: - XX-XX-XX-XX-XX-XX, - XX:XX:XX:XX:XX:XX, - XXXX.XXXX.XXXX. Если под правило должны попадать все адреса, значение параметра должно быть any. Если под правило должен подпадать единственный адрес, в значении параметра указывается host <MAC-адрес>. |
SRC_WILDCARD | Инверсная маска источника, задаётся в одном из трёх форматов: - XX-XX-XX-XX-XX-XX, - XX:XX:XX:XX:XX:XX, - XXXX.XXXX.XXXX. |
DESTINATION_MAC | MAC-адрес назначения, задаётся в одном из трёх форматов: - XX-XX-XX-XX-XX-XX, - XX:XX:XX:XX:XX:XX, - XXXX.XXXX.XXXX. Если под правило должны попадать все адреса, значение параметра должно быть any. Если под правило должен подпадать единственный адрес, в значении параметра указывается host <MAC-адрес>. |
DST_WILDCARD | Инверсная маска назначения, задаётся в одном из трёх форматов: - XX-XX-XX-XX-XX-XX, - XX:XX:XX:XX:XX:XX, - XXXX.XXXX.XXXX. |
ETHERTYPE | Значение поля ethertype. Может быть указано шестнадцатеричное значение поля в диапазоне (0x600 — 0xffff) или одно из следующих обозначений: - 802dot1x — IEEE 802.1X Ethertype - 0x888E, - ip4 — IPv4 Ethertype - 0x0800, - ip6 — IPv6 Ethertype - 0x86dd, - l2-is-is — L2 IS-IS Ethertype - 0x22F4, - lldp — LLDP Ethertype - 0x88CC, - mpls — MPLS Ethertype - 0x8847, - pppoe-discovery — PPPoE Discovery Ethertype - 0x8863, - pppoe-session — PPPoE Session Ethertype - 0x8864, - qinq — QinQ Ethertype - 0x88A8, - vlan — VLAN Ethertype - 0x8100. |
set <ACTION> | |
set accept | Разрешить |
set discard | Запретить без отправки ICMP-уведомления |
set reject | Запретить с отправкой ICMP-уведомления |
set class-map <NAME> | Пакетам, попавшим под действие правила, присваивается указанный класс трафика class-map. Класс должен быть заранее создан (подробнее см. QoS) |
set port <NAME> | Пакеты, попавшие под действие правила, перенаправляются в указанный порт. NAME — имя порта (обозначения портов подробнее описаны в разделе Сервисные интерфейсы) |
set port <NAME> push <TAG> | Пакеты, попавшие под действие правила, перенаправляются в указанный порт с добавлением VLAN-тега. Где NAME — имя порта, TAG — номер VLAN |
set port <NAME> pop <NUMBER> | Пакеты, попавшие под действие правила, перенаправляются в указанный порт со снятием VLAN-тегов. Где NAME — имя порта, NUMBER — количество тегов, которое необходимо снять |
В конце любого filter-map ethernet в неявном виде встроено запрещающее правило any any reject .
После того как filter-map ethernet создан, наполнен правилами, и для них указано действие, его можно назначить для сервисного интерфейса с указанием направления. Под направлением в данном случае подразумевается момент, когда пакеты, проходящие через интерфейс, будут обработаны списком доступа: для filter-map ethernet возможно только направление in (при “входе” в интерфейс). На одном интерфейсе может быть применено несколько filter-map ethernet.
Для назначения filter-map ethernet на сервисный интерфейс используется команда контекстного режима настройки сервисного интерфейса set filter-map in < FILTER_MAP_ETHERNET_LIST > [<SEQUENCE>]
.
Пример настройки filter-map ethernet
Задача: запретить arp-запросы от клиента с адресом 0000.0000.000c.
ecorouter(config)#filter-map ethernet primer 10
ecorouter(filter-map-ethernet)#match host 0000.0000.000c any 0x806
ecorouter(filter-map-ethernet)#set discard
ecorouter(filter-map-ethernet)#ex
ecorouter(config)#filter-map ethernet primer 15
ecorouter(filter-map-ethernet)#match 0000.0000.0010 ffff.ffff.ff00 any
ecorouter(filter-map-ethernet)#set port ge0
ecorouter(filter-map-ethernet)#ex
ecorouter(config)#filter-map ethernet primer 20
ecorouter(filter-map-ethernet)#match any any
ecorouter(filter-map-ethernet)#set accept
ecorouter(filter-map-ethernet)#ex
0x806 — значение ethertype, соответствующее протоколу arp. Filter-map ethernet primer 20 разрешает весь остальной трафик, без этого правила по умолчанию сработало бы правило any any discard .
ecorouter(config)#port te0
ecorouter(config-port)#service-instance 1
ecorouter(config-service-instance)#set filter-map in primer 10
ecorouter(config-service-instance)#set filter-map in primer 15
ecorouter(config-service-instance)#set filter-map in primer 20