Logo

EcoRouter

EcoNAT

EcoQOE

EcoBypass

English

  • Release Notes
  • Фильтрация и HTTP перенаправление EcoRouter Documentation / BRAS / Фильтрация и HTTP перенаправление

    Для фильтрации трафика в рамках абонентской сессии (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 будет создано одно правило):

    1. Первая строка. Ввести команду filter-map policy ipv4 <FILTER_MAP_NAME> [<SEQUENCE_NUMBER>], где <FILTER_MAP_NAME> - имя списка доступа, <SEQUENCE_NUMBER> - порядковый номер правила в списке доступа. Подробнее параметры описаны в таблице ниже.
    2. Вторая строка. Указать правило, на соответствие которому будут проверяться пакеты, следующего вида: match <PROTOCOL> <SRC_ADDRESS> [<PORT_CONDITION>] <DST_ADDRESS>[<PORT_CONDITION>] [dscp <DSCPVALUE>] [<FLAG>]. Подробнее параметры описаны в таблицах ниже.
    3. Третья строка. Указать действие, которое будет применяться к пакетам, удовлетворяющим условиям правила, следующего вида 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_ADDRESS

    IP-адрес источника, задается в одном из следующих форматов:

    • A.B.C.D/M (IP-адрес с маской),
    • A.B.C.D K.L.M.N (IP-адрес с инверсной маской),
    • host A.B.C.D (если под правило должен подпадать единственный адрес),
    • any (если под правило должны попадать все адреса)
    DST_ADDRESS

    IP-адрес назначения, задается в одном из следующих форматов:

    • 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>].

    Дополнительные параметры при указании 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>].

    Дополнительные параметры при указании 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