Перейти к содержанию

Политика маршрутизации трафика#

Обзор политик маршрутизации трафика#

В обычном процессе маршрутизации только IP-адрес получателя определяет то, каким образом будет передан пакет. При необходимости изменения стандартного процесса маршрутизации используется маршрутизация на основе определённых политик (Policy-Based Routing – PBR). Выборка нужных пакетов осуществляется посредством использования гибких фильтров трафика.

Политики маршрутизации трафика — это механизм, позволяющий изменять маршрут следования пакетов, соответствующих критериям определённого фильтра, согласно указанным таблицам маршрутизации. Например можно задать конкретный шлюз или интерфейс, через который должна происходить доставка пакетов. При этом маршрутизация трафика согласно определённой политике производится только в случае её применения к конкретному интерфейсу.

В настройках Numa Edge политики маршрутизации трафика сгруппированы узлом policy route который служит контейнером для операторов политики. Действующими операторами политики определяются правила обработки пакетов.

Политики маршрутизации трафика применяются первыми после получения данных, перед применением правил МЭ, политик модификации трафика и политик QoS.

Схема-стенда

Схема стенда

Политика маршрутизации трафика представляет собой именованный упорядоченный набор правил маршрутизации. Каждое правило содержит критерий соответствия на основе определённого фильтра. Так как правила политики упорядочены, маршрутизация производится в порядке нумерации правил. То есть при наличии нескольких правил с одним и тем же фильтром в качестве критерия соответствия в рамках одной политики, маршрутизация будет производиться согласно правилу с наименьшим номером.

Примеры настройки политик маршрутизации трафика#

Пример настройки и применения политики маршрутизации трафика при наличии двух каналов связи с различающимися характеристиками#

Numa Edge является шлюзом в локальной сети с двумя каналами связи для доступа к сети Интернет. Провайдер ISP1 имеет канал с большой пропускной способностью, но с большими задержками подключается и доступен через интерфейс Ethernet eth1 с IP-адресом 200.0.113.20. Провайдер ISP2 с малой пропускной способностью, но с малыми задержками, подключается к интерфейсу eth2 c IP-адресом 198.51.100.30. IP-адрес шлюза ISP1 — 200.0.113.55, шлюза ISP2 — 198.51.100.55. Шлюз локальной сети располагается на интерфейсе Ethernet eth0. Пакеты трафика чувствительного к задержкам определяются по установленному значению поля DSCP (lowdelay) и направляется на интерфейс eth2, весь остальной трафик направляется на интерфейс eth1.

Для решения этого примера необходимо выполнить следующие действия:

  • Произвести настройку интерфейсов eth1 и eth2;
  • Создать фильтр трафика с именем "Low_latency" с правилом определения пакетов со значением lowdelay поля DSC;
  • Создать таблицы маршрутизации ISP1_table с указанием статического маршрута 0.0.0.0/0 – 200.0.113.55 и ISP2_table с указанием статического маршрута 0.0.0.0/0 – 198.51.100.55;
  • Создать политику маршрутизации трафика ISP1_ISP2 с указанием фильтра Low_latancy и таблиц маршрутизации ISP1_table и ISP2_table;
  • Применить политику маршрутизации ISP1_ISP2 к интерфейсу eth0.
  • Для выполнения данной настройки необходимо выполнить следующую последовательность команд в режиме настройки:

Пример - Пример настройки и применения политики маршрутизации трафика при наличии двух каналов связи с различающимися характеристиками#

  1. Указание IP-адреса 200.0.113.20/24 в качестве IP-адреса для интерфейса Ethernet eth1:
    [edit]
    admin@edge# set interfaces ethernet eth1 address 200.0.113.20/24
    
  2. Указание IP-адреса 198.51.100.30/24 в качестве IP-адреса для интерфейса Ethernet eth2:
    [edit]
    admin@edge# set interfaces ethernet eth2 address 198.51.100.30/24
    
  3. Создание фильтра трафика с именем Low_latancy. Указание текстового описания:
    [edit]
    admin@edge# set filter Low_latancy description "filter for low latancy"
    
  4. Создание правила на определение пакетов по полю DSCP:
    [edit]
    admin@edge# set filter Low_latancy rule 10 dscp 4
    
  5. Фиксация изменений:
    [edit]
    admin@edge# commit
    
  6. Вывод настроек фильтра трафика Low_latancy:
    1
    2
    3
    4
    5
    6
    [edit]
    admin@edge# show filter Low_latancy
       description "filter for low latancy"
       rule 10 {
          dscp 4
       }
    
  7. Определение таблицы маршрутизации с именем ISP1_table:
    [edit]
    admin@edge# set protocols static table ISP1_table
    
  8. Указание статического маршрута 0.0.0.0/0 — 200.0.113.55 в таблице маршрутизации ISP1_table:
    [edit]
    admin@edge# set protocols static table ISP1_table route 0.0.0.0/0 next-hop 200.0.113.55
    
  9. Фиксация изменений:
    [edit]
    admin@edge# commit
    
  10. Вывод настроек таблицы маршрутизации ISP1_table:
    1
    2
    3
    4
    5
    6
    [edit]
    admin@edge# show protocols static table ISP1_table
       route 0.0.0.0/0 {
          next-hop 200.0.113.55 {
          }
       }
    
  11. Определение таблицы маршрутизации с именем ISP2_table:
    [edit]
    admin@edge# set protocols static table ISP2_table
    
  12. Указание статического маршрута 0.0.0.0/0 — 198.51.100.55 в таблице маршрутизации ISP2_table:
    [edit]
    admin@edge# set protocols static table ISP2_table route 0.0.0.0/0 next-hop 198.51.100.55
    
  13. Фиксация изменений:
    [edit]
    admin@edge# commit
    
  14. Вывод настроек таблицы маршрутизации ISP2_table:
    1
    2
    3
    4
    5
    6
    [edit]
    admin@edge# show protocols static table ISP2_table
       route 0.0.0.0/0 {
          next-hop 198.51.100.55 {
          }
       }
    
  15. Определение политики маршрутизации трафика:
    [edit]
    admin@edge# set policy route ISP1_ISP2
    
  16. Указание определённого фильтра трафика для правила данной политики маршрутизации трафика:
    [edit]
    admin@edge# set policy route ISP1_ISP2 rule 10 match filter Low_latancy
    
  17. Указание определённой таблицы маршрутизации для правила данной политики маршрутизации трафика:
    [edit]
    admin@edge# set policy route ISP1_ISP2 rule 10 table ISP2_table
    
  18. Указание определённой таблицы маршрутизации для правила данной политики маршрутизации трафика:
    [edit]
    admin@edge# set policy route ISP1_ISP2 rule 20 table ISP1_table
    
  19. Фиксация изменений:
    [edit]
    admin@edge# commit
    
  20. Вывод настроек политики маршрутизации трафика E1-satellite:
    [edit]
    admin@edge# show policy route ISP1_ISP2
       rule 10 {
          match {
             filter Low_latancy
          }
          table ISP2_table {
          }
       }
       rule 20 {
          table ISP1_table {
          }
       }
    
  21. Указание применения определённой политики маршрутизации трафика для для входящего трафика на интерфейсе Ethernet eth2:
    [edit]
    admin@edge# set interfaces ethernet eth0 policy in route ISP1_ISP2
    
  22. Фиксация изменений:
    [edit]
    admin@edge# commit
    
  23. Вывод настроек интерфейса Ethernet eth0:
    1
    2
    3
    4
    5
    6
    7
    [edit]
    admin@edge# show interfaces ethernet eth0
       policy {
          in {
             route ISP1_ISP2
          }
       }
    

Пример настройки и применения политики маршрутизации трафика при наличии двух каналов связи для обеспечения одновременного использования их пропускной способности#

Numa Edge является шлюзом в локальной сети с двумя каналами связи для доступа к сети Интернет, как показано на рисунке ниже. Шлюз локальной сети располагается на интерфейсе Ethernet eth0 IP-адресом 192.168.10.254. Локальная сеть обслуживает клиентов с IP-адресами в диапазоне 192.168.10.1 — 192.168.10.200. Первый провайдер подключен к интерфейсу Ethernet eth1 c IP-адресом 203.0.113.1/24, второй — к интерфейсу Ethernet eth2 c IP-адресом 198.51.100.1/24. IP-адрес шлюза первого провайдера — 203.0.113.254, второго — 198.51.100.254. Оба провайдера маршрутизируют только пакеты с адресами источника из своих сетей. Данное ограничение введено для предупреждения возможности атаки с подменой адреса отправителя (спуфинг). На Numa Edge настроено преобразование сетевого адреса отправителя пакетов (SNAT), при отправке пакетов из внутренней сети.

Необходимо создать условия для одновременного использования пропускной способности обоих каналов подключения к интернету, соблюдая требование провайдеров относительно обеспечения симметричной маршрутизации входящих и исходящих пакетов. Кроме того, симметричная маршрутизация также должна обеспечиваться для внутреннего трафика Numa Edge.

Для решения этого примера необходимо выполнить следующие действия:

  • Произвести настройку интерфейсов Ethernet eth1 и eth2 с присвоением IP-адресов 203.0.113.254/24 и 198.51.100.254/24.
  • Произвести настройку службы NAT таким образом, чтобы все узлы подсети 192.168.10.0/24 использовали внешние IP-адреса интерфейсов Ethernet eth1 и eth2.
  • Создать фильтры трафика ISP1_filter и ISP2_filter с правилами определения пакетов до подсетей 203.0.113.0/24 и 198.51.100.0/24.
  • Создать таблицы маршрутизации ISP1_table с настроенным статическим маршрутом 0.0.0.0/0 — 203.0.113.254 и ISP2_table с настроенным статическим маршрутом 0.0.0.0/0 — 198.51.100.254.
  • Определить политику маршрутизации трафика ISP1_ISP2 с указанием фильтров ISP1_filter и ISP2_filter, а также таблиц маршрутизации ISP1_table и ISP2_table.
  • Применить политику маршрутизации ISP1_ISP2 к локальному трафику и к интерфейсу Ethernet eth0.

Схема-стенда2

Пример использования Numa Edge в качестве шлюза локальной сети при наличии подключения к двум провайдерам интернета

Для выполнения данной настройки необходимо выполнить следующую последовательность команд в режиме настройки:

Пример - Пример настройки и применения политики маршрутизации трафика при наличии двух каналов связи для обеспечения одновременного использования их пропускной способности#

  1. Указание IP-адреса 192.168.10.254/24 для интерфейса Ethernet eth0:
    [edit]
    admin@edge# set interfaces ethernet eth0 address 192.168.10.254/24
    
  2. Указание IP-адреса 203.0.113.1/24 для интерфейса Ethernet eth1:
    [edit]
    admin@edge# set interfaces ethernet eth1 address 203.0.113.1/24
    
  3. Указание IP-адреса 198.51.100.1/24 для интерфейса Ethernet eth2:
    [edit]
    admin@edge# set interfaces ethernet eth2 address 198.51.100.1/24
    
  4. Создание правила преобразования сетевого адреса отправителя (SNAT):
    [edit]
    admin@edge# set service nat ipv4 rule 10 type source
    
  5. Применение данного правила к пакетам, которые были отправлены любым узлом сети 192.168.10.0/24:
    [edit]
    admin@edge# set service nat ipv4 rule 10 source address 192.168.10.0/24
    
  6. Отправка трафика через интерфейс eth1. Адрес 203.0.113.1 используется в качестве адреса отправителя для исходящих сетевых пакетов. Следует учесть, что внешний адрес должен быть одним из адресов, определенных на выходном интерфейсе:
    1
    2
    3
    4
    [edit]
    admin@edge# set service nat ipv4 rule 10 outbound-interface eth1
    [edit]
    admin@edge# set service nat ipv4 rule 10 outside-address address 203.0.113.1
    
  7. Создание правила преобразования сетевого адреса отправителя (SNAT):
    [edit]
    admin@edge# set service nat ipv4 rule 20 type source
    
  8. Применение данного правила к пакетам, которые были отправлены любым узлом сети 192.168.10.0/24:
    [edit]
    admin@edge# set service nat ipv4 rule 20 source address 192.168.10.0/24
    
  9. Отправка трафика через интерфейс eth2. Адрес 198.51.100.1 используется в качестве адреса отправителя для исходящих сетевых пакетов. Следует учесть, что внешний адрес должен быть одним из адресов, определенных на выходном интерфейсе:
    1
    2
    3
    4
    [edit]
    admin@edge# set service nat ipv4 rule 20 outbound-interface eth2
    [edit]
    admin@edge# set service nat ipv4 rule 20 outside-address address 198.51.100.1
    
  10. Фиксация изменения:
    [edit]
    admin@edge# commit
    
  11. Вывод настройки NAT:
    admin@edge# show service nat ipv4 rule
       10 {
          outbound-interface eth1
          outside-address {
             address 203.0.113.1
          }
          source {
             address 192.168.10.0/24
          }
          type source
       }
       20 {
          outbound-interface eth2
          outside-address {
             address 198.51.100.1
          }
          source {
             address 192.168.10.0/24
          }
          type source
       }
    
  12. Создание фильтра трафика для подсетей подключенных к маршрутизатору первого провайдера (ISP1_filter). Указание краткого текстового описания:
    [edit]
    admin@edge# set filter ISP1_filter description "ISP1 traffic filter"
    
  13. Создание правила на трафик первого провайдера:
    [edit]
    admin@edge# set filter ISP1_filter rule 10 destination address 203.0.113.0/24
    
  14. Фиксация изменений:
    [edit]
    admin@edge# commit
    
  15. Вывод настроек фильтра:
    1
    2
    3
    4
    5
    6
    7
    8
    [edit]
    admin@edge# show filter ISP1_filter
       description "ISP1 traffic filter"
       rule 10 {
          destination {
             address 203.0.113.0/24
          }
       }
    
  16. Создание фильтра трафика для подсетей подключенных к маршрутизатору второго провайдера (ISP2_filter). Указание краткого текстового описания:
    [edit]
    admin@edge# set filter ISP2_filter description "ISP2 traffic filter"
    
  17. Создание правила на трафик второго провайдера:
    [edit]
    admin@edge# set filter ISP2_filter rule 10 destination address 198.51.100.0/24
    
  18. Фиксация изменений:
    [edit]
    admin@edge# commit
    
  19. Вывод настроек фильтра:
    1
    2
    3
    4
    5
    6
    7
    8
    [edit]
    admin@edge# show filter ISP2_filter
       description "ISP2 traffic filter"
       rule 10 {
          destination {
             address 198.51.100.0/24
          }
       }
    
  20. Создание таблицы маршрутизации ISP1_table. Указание статического маршрута 0.0.0.0/0 — 203.0.113.254:
    [edit]
    admin@edge# set protocols static table ISP1_table route 0.0.0.0/0 next-hop 203.0.113.254
    
  21. Создание таблицы маршрутизации ISP2_table. Указание статического маршрута 0.0.0.0/0 — 198.51.100.254:
    [edit]
    admin@edge# set protocols static table ISP2_table route 0.0.0.0/0 next-hop 198.51.100.254
    
  22. Фиксация изменений:
    [edit]
    admin@edge# commit
    
  23. Вывод настроек созданных таблиц маршрутизации:
    [edit]
    admin@edge# show protocols static table
       ISP1_table {
          route 0.0.0.0/0 {
             next-hop 203.0.113.254 {
             }
          }
       }
       ISP2_table {
          route 0.0.0.0/0 {
             next-hop 198.51.100.254 {
             }
          }
       }
    
  24. Создание политики маршрутизации трафика ISP1_ISP2. Указание определённого фильтра трафика для правила данной политики маршрутизации трафика:
    [edit]
    admin@edge# set policy route ISP1_ISP2 rule 10 match filter ISP1_filter
    
  25. Указание определённой таблицы маршрутизации для правила данной политики маршрутизации трафика:
    [edit]
    admin@edge# set policy route ISP1_ISP2 rule 10 table ISP1_table
    
  26. Указание определённого фильтра трафика для правила данной политики маршрутизации трафика:
    [edit]
    admin@edge# set policy route ISP1_ISP2 rule 20 match filter ISP2_filter
    
  27. Указание определённой таблицы маршрутизации для правила данной политики маршрутизации трафика:
    [edit]
    admin@edge# set policy route ISP1_ISP2 rule 20 table ISP2_table
    
  28. Создание правила с одновременным указанием таблиц ISP1_table и ISP2_table:
    1
    2
    3
    4
    [edit]
    admin@edge# set policy route ISP1_ISP2 rule 30 table ISP1_table
    [edit]
    admin@edge# set policy route ISP1_ISP2 rule 30 table ISP2_table
    
  29. Фиксация изменений:
    [edit]
    admin@edge# commit
    
  30. Вывод настроек политики маршрутизации трафика ISP1_ISP2:
    admin@edge#show policy route ISP1_ISP2
       rule 10 {
          match {
             filter ISP1_filter
          }
          table ISP1_table {
          }
       }
       rule 20 {
          match {
             filter ISP2_filter
          }
          table ISP2_table {
          }
       }
       rule 30 {
          table ISP1_table {
          }
          table ISP2_table {
          }
       }
    
  31. Указание применения определённой политики маршрутизации трафика для для входящего трафика на интерфейсе Ethernet eth0:
    [edit]
    admin@edge# set interfaces ethernet eth0 policy in route ISP1_ISP2
    
  32. Фиксация изменений:
    [edit]
    admin@edge# commit
    
  33. Вывод настроек интерфейса Ethernet eth0:
    1
    2
    3
    4
    5
    6
    7
    8
    [edit]
    admin@edge# show interfaces ethernet eth0
       address 192.168.10.254/24
       policy {
          in {
             route ISP1_ISP2
          }
       }