Создание и настройка filter-map policy

Создание filter-map policy производится при помощи команды конфигурационного режима filter-map policy ipv4 <NAME>, где NAME — имя создаваемой сущности.

ecorouter(config)#filter-map policy ipv4 ?
 FILTER_MAP_POLICY_IPV4 Filter map name

После создания filter-map policy автоматически производится переход в контекстный режим редактирования её параметров.

ecorouter(config)#filter-map policy ipv4 FMPname
ecorouter(config-filter-map-policy-ipv4)#

Для настройки filter-map policy требуется выполнить следующие действия (в результате внутри filter-map policy будет создано одно правило): 4. Первая строка. Ввести команду filter-map policy ipv4 <FILTER_MAP_NAME> [<SEQUENCE_NUMBER>], где FILTER_MAP_NAME — имя списка доступа, SEQUENCE_NUMBER — порядковый номер правила в списке доступа. Подробнее параметры описаны в таблице ниже. 5. Вторая строка. Указать правило, на соответствие которому будут проверяться пакеты, следующего вида: match <PROTOCOL> <SRC_ADDRESS> [<PORT_CONDITION>] <DST_ADDRESS>[<PORT_CONDITION>] [dscp <DSCPVALUE>] [<FLAG>]. Подробнее параметры описаны в таблицах ниже. 6. Третья строка. Указать действие, которое будет применяться к пакетам, удовлетворяющим условиям правила, следующего вида set <ACTION>. Подробнее параметры описаны в таблице ниже.

Список доступа может содержать несколько правил. Для добавления правила в существующий список доступа следует повторить шаги, описанные выше. В качестве FILTER_MAP_NAME следует указывать имя списка доступа, куда правило должно быть добавлено. Правило должно иметь уникальный номер SEQUENCE в рамках одной filter-map policy.

Таблица — Общие параметры команды filter-map policy

ПараметрОписание
DIRECTIONНаправление трафика, in — входящий трафик, out — исходящий трафик
FILTER_MAP_NAMEИмя списка фильтрации, может принимать любое значение
SEQUENCE_NUMBERНомер приоритета выполнения, допустимые значения от 0 до 65535. Если значение не задано, то параметр для созданного filter-map ethernet автоматически получит последующее свободное значение с шагом 10
PROTOCOLЗначение поля protocol. Может быть указано значение поля в диапазоне от 0 до 255 или одно из следующих обозначений:
- ipinip;
- icmp;
- gre;
- igmp;
- pim;
- rsvp;
- ospf;
- vrrp;
- ipcomp;
- any (любой протокол);
- udp (внимание, для данного протокола доступны дополнительные параметры PORT_CONDITION);
- tcp (внимание, для данного протокола доступны дополнительные параметры PORT_CONDITION и FLAG)
SRC_ADDRESSIP-адрес источника, задается в одном из следующих форматов:
- A.B.C.D/M (IP-адрес с маской),
- A.B.C.D K.L.M.N (IP-адрес с инверсной маской),
- host A.B.C.D (если под правило должен подпадать единственный адрес),
- any (если под правило должны попадать все адреса)
DST_ADDRESSIP-адрес назначения, задаётся в одном из следующих форматов:
- A.B.C.D/M (IP-адрес с маской),
- A.B.C.D K.L.M.N (IP-адрес с инверсной маской),
- host A.B.C.D (если под правило должен подпадать единственный адрес),
- any (если под правило должны подпадать все адреса)
DSCPVALUEЗначение DSCP (Differentiated Services Code Point) для проверки пакета, целое число от 0 до 63
set <ACTION>
set acceptРазрешить. Если в subsriber-policy, где используется данная filter-map policy, задана полоса пропускания (параметр bandidwth), то для этого типа трафика будет применено ограничение скорости до указанных в bandwidth значений
set discardЗапретить без отправки ICMP-уведомления
set nexthop <A.B.C.D>Указать IP-адрес next hop. Пакеты, попавшие под действие правила, отсылаются на адрес next-hop c учётом существующих маршрутов в RIB
set redirect <REDIRECTNAME>Перенаправить HTTP GET на указанный REDIRECTNAME, где REDIRECTNAME — имя заранее заданного URL (адрес для перенаправления должен начинаться с http://). Пример настройки перенаправления приведён ниже.
set rejectЗапретить с отправкой ICMP-уведомления
set vrf <VRF_NAME> [<A.B.C.D>]Для пакетов, попавших под действие правила, будет использоваться таблица маршрутизации vrf, где VRF_NAME — имя необходимого vrf. Для данного vrf можно при необходимости указать IP-адрес next hop

При указании протокола udp вторая строка команды создания filter-map policy будет иметь следующий вид: match udp <SRC_ADDRESS> [<PORT_CONDITION>] <DST_ADDRESS> [<PORT_CONDITION>] [dscp <DSCPVALUE>]**.

Таблица — Дополнительные параметры команды filter-map policy при указании udp

ПараметрОписание
PORT_CONDITIONУсловие для значения порта. Может быть указано одно из следующих значений:
{{eq | gt | lt} {tftp | bootp | <0-65535>} | range <0-65535> <0-65535>}
Значения PORT_CONDITION
eqНомер порта равен
gtНомер порта больше, чем
ltНомер порта меньше, чем
tftpUDP(69)
bootpUDP(67)
<0-65535>Точный номер порта, любое значение из указанного диапазона
range <0-65535> <0-65535>Номер порта входит в диапазон

При указании протокола tcp вторая строка команды создания filter-map policy будет иметь следующий вид: match tcp <SRC_ADDRESS> [<PORT_CONDITION>] <DST_ADDRESS> [<PORT_CONDITION>] [dscp <DSCPVALUE>] [<FLAG>].

Таблица — Дополнительные параметры команды filter-map policy при указании tcp

ПараметрОписание
PORT_CONDITIONУсловие для значения порта. Может быть указано одно из следующих значений: {{eq | gt | lt} {ftp | ssh | telnet | www | <0-65535>} | range <0-65535> <0-65535>}
FLAGЗначения флага, по которым может производиться обработка пакетов. Может быть указано одно из следующих значений (префикс not — означает, что указанный флаг не установлен): ack | not-ack | fin | not-fin | psh | not-psh | rst | not-rst | syn | not-syn | urg | not-urg
- ack — установлен флаг ACK (номер подтверждения),
- fin — установлен флаг FIN (завершение соединения),
- psh — установлен флаг PSH (инструктирует получателя протолкнуть данные, накопившиеся в приёмном буфере, в приложение пользователя),
- rst — установлен флаг RST (оборвать соединение, очистить буфер),
- syn — установлен флаг SYN (синхронизация номеров последовательности),
- urg — установлен флаг URG (указатель важности),
- not-ack — не установлен флаг ACK,
- not-fin — не установлен флаг FIN,
- not-psh — не установлен флаг PSH,
- not-rst — не установлен флаг RST,
- not-syn — не установлен флаг SYN,
- not-urg — не установлен флаг URG.

Можно перечислить несколько флагов через пробел. При этом правило сработает, если в пакете будут установлены все перечисленные флаги. Например, правило not-rst syn ack сработает, если пакет содержит флаги SYN и ACK, но не содержит RST
Значения PORT_CONDITION
eqНомер порта равен
gtНомер порта больше, чем
ltНомер порта меньше, чем
ftpTCP(21)
sshTCP(22)
telnetTCP(23)
wwwTCP(HTTP-80)
<0-65535>Точный номер порта, любое значение из указанного диапазона
range <0-65535> <0-65535>Номер порта входит в диапазон

Задание адреса для перенаправления

ecorouter(config)#redirect-url SITEREDIRECT
ecorouter(config-redirect-url)#url http://forredirect.org

Пример настроек для обработки трафика в абонентской сессии

В данном примере настроен статический IPoE.

В результате выполнения приведённых ниже настроек на вход (применяется filter-map policy NAME1) будет отбрасываться весь icmp-трафик, udp-трафик будет ограничен до 20 Мбит/сек, tcp-трафик будет пропускаться без изменений.

Трафик на выход (применяется filter-map policy NAME2) будет ограничен до 5 Мбит/сек, tcp-трафик порта 80 будет перенаправлен на адрес http://forredirect.org.

!
filter-map policy ipv4 NAME1 10
 match icmp any any
 set discard
filter-map policy ipv4 NAME1 20
 match udp any any
 set accept
filter-map policy ipv4 NAME2 10
 match tcp any any eq 80
 set redirect SITEREDIRECT
filter-map policy ipv4 NAME2 20
 match any any any
 set accept
!
subscriber-policy NAME
 bandwith in 20
 set filter-map in NAME1 10
 bandwith out 5
 set filter-map out NAME2 10
!
subscriber-service NAME
 set policy NAME
!
ip prefix-list NAME seq 5 permit 10.10.10.100/32 eq 32
!
subscriber-map NAME 10
 match static prefix-list NAME
 set service NAME
!
interface ipoe.1
 ip mtu 1500
 ip address 10.10.10.1/24