Фильтрация и HTTP перенаправление EcoRouter Documentation / BRAS / Фильтрация и HTTP перенаправление
- Создание и настройка filter-map policy
- Задание адреса для перенаправления
- Пример настроек для обработки трафика в абонентской сессии
Для фильтрации трафика в рамках абонентской сессии (subscriber-service) применяются политики subscriber-policy. Для одной сессии может быть назначено до 10 таких политик. Трафик последовательно будет обрабатываться в соответствии с каждой политикой в соответствии с ее порядковым номером.
Создание subscriber-policy производится в конфигурационном режиме при помощи команды subscriber-policy <NAME>, где <NAME> - имя создаваемой сущности.
ecorouter(config)#subscriber-policy ?
SUBSCRIBER_POLICY Subscriber policy name
После создания subscriber-policy автоматически производится переход в контекстный режим редактирования ее параметров.
ecorouter(config)#subscriber-policy subspolname
ecorouter(config-sub-policy)#
Параметры subscriber-policy приведены в таблице ниже.
Параметр | Описание |
---|---|
<BANDWIDTH> | Ширина полосы пропускания в Мбит/сек от 1 до 200 |
<DESCRIPTION> | Текстовое описание политики |
Каждой политике subscriber-policy пользователь может назначить 2 разных правила обработки (filter-map policy): одно для входящего (in) и одно для исходящего (out) трафика. Если filter-map policy не назначен на направление, то трафик соответствующего вида политикой не обрабатывается и не претерпевает никаких изменений. Внимание: без задания filter-map policy с ограничениями и привязки его к тому же направлению для subscriber-policy трафик до заданной полосы пропускания ограничиваться не будет!
Назначение для политики subscriber-policy на выбранное направление трафика (in или out) нужной filter-map policy производится в контекстном режиме редактирования параметров subscriber-policy при помощи команды set filter-map {in | out} <NAME>, где <NAME> - имя filter-map policy.
Пример настройки subscriber-policy (в данном примере предполагается, что filter-map policy с именем FMPname уже создана и настроена; создание и настройка filter-map policy описаны ниже).
ecorouter(config)#subscriber-policy subspolname
ecorouter(config-sub-policy)#description Testsubscrpolicy
ecorouter(config-sub-policy)#bandwidth in 200
ecorouter(config-sub-policy)#set filter-map in FMPname
Создание и настройка 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 будет создано одно правило):
- Первая строка. Ввести команду filter-map policy ipv4 <FILTER_MAP_NAME> [<SEQUENCE_NUMBER>], где <FILTER_MAP_NAME> - имя списка доступа, <SEQUENCE_NUMBER> - порядковый номер правила в списке доступа. Подробнее параметры описаны в таблице ниже.
- Вторая строка. Указать правило, на соответствие которому будут проверяться пакеты, следующего вида: match <PROTOCOL> <SRC_ADDRESS> [<PORT_CONDITION>] <DST_ADDRESS>[<PORT_CONDITION>] [dscp <DSCPVALUE>] [<FLAG>]. Подробнее параметры описаны в таблицах ниже.
- Третья строка. Указать действие, которое будет применяться к пакетам, удовлетворяющим условиям правила, следующего вида 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) или одно из следующих обозначений:
|
SRC_ADDRESS | IP-адрес источника, задается в одном из следующих форматов:
|
DST_ADDRESS | IP-адрес назначения, задается в одном из следующих форматов:
|
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>].
Дополнительные параметры при указании udp описаны в таблице ниже.
Параметр | Описание |
---|---|
PORT_CONDITION | Условие для значения порта. Может быть указано одно из следующих значений: {{eq | gt | lt} {tftp | bootp | <0-65535>} | range <0-65535> <0-65535>} |
Значения PORT_CONDITION | |
eq | Номер порта равен |
gt | Номер порта больше, чем |
lt | Номер порта меньше, чем |
tftp | UDP(69) |
bootp | UDP(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>].
Дополнительные параметры при указании 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
Можно перечислить несколько флагов через пробел. При этом правило сработает, если в пакете будут установлены все перечисленные флаги. Например, правило not-rst syn ack сработает, если пакет содержит флаги SYN и ACK, но не содержит RST |
Значения PORT_CONDITION | |
eq | Номер порта равен |
gt | Номер порта больше, чем |
lt | Номер порта меньше, чем |
ftp | TCP(21) |
ssh | TCP(22) |
telnet | TCP(23) |
www | TCP(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