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

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

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

В обычном процессе маршрутизации только 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;
  • Cоздать фильтр трафика с именем "Low_latency" с правилом определения пакетов со значением lowdelay поля DSC;
  • Cоздать таблицы маршрутизации 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-адресом 192.168.12.1/24, второй — к интерфейсу Ethernet eth2 c IP-адресом 192.168.13.1/24. IP-адрес шлюза первого провайдера — 192.168.12.2, второго — 192.168.13.3. Оба провайдера маршрутизируют только пакеты с адресами источника из своих сетей. Данное ограничение введено для предупреждения возможности атаки с подменой адреса отправителя (спуфинг). На Numa Edge настроено преобразование сетевого адреса получателя (DNAT) пакетов, полученных на порт номер 80. Также осуществляется преобразование сетевого адреса отправителя пакетов (SNAT), при отправке пакетов из внутренней сети.

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

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

  • Произвести настройку интерфейсов Ethernet eth1 и eth2 с присвоением IP-адресов 192.168.12.10/24 и 192.168.13.10/24.
  • Произвести настройку службы NAT таким образом, чтобы все узлы подсети 192.168.10.0/24 использовали внешние IP-адреса интерфейсов Ethernet eth1 и eth2, при этом доступ к данной подсети извне осуществлялся через порт номер 80.
  • Создать фильтры трафика ISP1_filter и ISP2_filter с правилом определения пакетов с IP-адресов 192.168.12.0/24 и 192.168.13.0/24 соответственно.
  • Создать таблицы маршрутизации ISP1_table с настроенным статическим маршрутом 0.0.0.0/0 — 192.168.12.2 и ISP2_table с настроенным статическим маршрутом 0.0.0.0/0 — 192.168.13.3.
  • Определить политику маршрутизации трафика 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-адреса 192.168.12.10/24 для интерфейса Ethernet eth1:
    [edit]
    admin@edge# set interfaces ethernet eth1 address 192.168.12.10/24
    
  3. Указание IP-адреса 192.168.13.10/24 для интерфейса Ethernet eth2:
    [edit]
    admin@edge# set interfaces ethernet eth2 address 192.168.13.10/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. Адрес 192.168.12.10 используется в качестве адреса отправителя для исходящих сетевых пакетов. Следует учесть, что внешний адрес должен быть одним из адресов, определенных на выходном интерфейсе:
    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 192.168.12.10
    
  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. Адрес 192.168.13.10 используется в качестве адреса отправителя для исходящих сетевых пакетов. Следует учесть, что внешний адрес должен быть одним из адресов, определенных на выходном интерфейсе:
    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 192.168.13.10
    
  10. Создание преобразования сетевого адреса получателя (DNAT):
    [edit]
    admin@edge# set service nat ipv4 rule 30 type destination
    
  11. Применение данного правила к пакетам протокола tcp:
    [edit]
    admin@edge# set service nat ipv4 rule 30 protocol tcp
    
  12. Применение данного правила на интерфейсе eth1 для порта номер 80:
    1
    2
    3
    4
    [edit]
    admin@edge# set service nat ipv4 rule 30 inbound-interface eth1
    [edit]
    admin@edge# set service nat ipv4 rule 30 destination port 80
    
  13. Пересылка трафика на адрес 192.168.10.20:
    [edit]
    admin@edge# set service nat ipv4 rule 30 inside-address address 192.168.10.20
    
  14. Создание преобразования сетевого адреса получателя (DNAT):
    [edit]
    admin@edge# set service nat ipv4 rule 40 type destination
    
  15. Применение данного правила к пакетам протокола tcp:
    [edit]
    admin@edge# set service nat ipv4 rule 40 protocol tcp
    
  16. Применение данного правила на интерфейсе eth2 для порта номер 80:
    1
    2
    3
    4
    [edit]
    admin@edge# set service nat ipv4 rule 40 inbound-interface eth2
    [edit]
    admin@edge# set service nat ipv4 rule 40 destination port 80
    
  17. Пересылка трафика на адрес 192.168.10.20:
    [edit]
    admin@edge# set service nat ipv4 rule 40 inside-address address 192.168.10.20
    
  18. Фиксация изменения:
    [edit]
    admin@edge# commit
    
  19. Вывод настройки NAT:
    admin@edge# show service nat ipv4 rule
       10 {
          outbound-interface eth1
          outside-address {
             address 192.168.12.10
          }
          source {
             address 192.168.10.0/24
          }
          type source
       }
       20 {
          outbound-interface eth2
          outside-address {
             address 192.168.13.10
          }
          source {
             address 192.168.10.0/24
          }
          type source
       }
       30 {
          destination {
             port 80
          }
          inbound-interface eth1
          inside-address {
             address 192.168.10.20
          }
          protocol tcp
          type destination
       }
       40 {
          destination {
             port 80
          }
          inbound-interface eth2
          inside-address {
             address 192.168.10.20
          }
          protocol tcp
          type destination
       }
    
  20. Создание фильтра трафика первого провайдера (ISP1_filter). Указание краткого текстового описания:
    [edit]
    admin@edge# set filter ISP1_filter description "ISP1 traffic filter"
    
  21. Создание правила на трафика первого провайдера:
    [edit]
    admin@edge# set filter ISP1_filter rule 10 source address 192.168.12.0/24
    
  22. Фиксация изменений:
    [edit]
    admin@edge# commit
    
  23. Вывод настроек фильтра:
    1
    2
    3
    4
    5
    6
    7
    8
    [edit]
    admin@edge# show filter ISP1_filter
       description "ISP1 traffic filter"
       rule 10 {
          source {
             address 192.168.12.0/24
          }
       }
    
  24. Создание фильтра трафика второго провайдера (ISP2_filter). Указание краткого текстового описания:
    [edit]
    admin@edge# set filter ISP2_filter description "ISP2 traffic filter"
    
  25. Создание правила на трафика второго провайдера:
    [edit]
    admin@edge# set filter ISP2_filter rule 10 source address 192.168.13.0/24
    
  26. Фиксация изменений:
    [edit]
    admin@edge# commit
    
  27. Вывод настроек фильтра:
    1
    2
    3
    4
    5
    6
    7
    8
    [edit]
    admin@edge# show filter ISP2_filter
       description "ISP2 traffic filter"
       rule 10 {
          source {
             address 192.168.13.0/24
          }
       }
    
  28. Создание таблицы маршрутизации ISP1_table. Указание статического маршрута 0.0.0.0/0 — 192.168.12.10:
    [edit]
    admin@edge# set protocols static table ISP1_table route 0.0.0.0/0 next-hop 192.168.12.2
    
  29. Создание таблицы маршрутизации ISP2_table. Указание статического маршрута 0.0.0.0/0 — 192.168.13.10:
    [edit]
    admin@edge# set protocols static table ISP2_table route 0.0.0.0/0 next-hop 192.168.13.3
    
  30. Фиксация изменений:
    [edit]
    admin@edge# commit
    
  31. Вывод настроек созданных таблиц маршрутизации:
    [edit]
    admin@edge# show protocols static table
       ISP1_table {
          route 0.0.0.0/0 {
             next-hop 192.168.12.2 {
             }
          }
       }
       ISP2_table {
          route 0.0.0.0/0 {
             next-hop 192.168.13.3 {
             }
          }
       }
    
  32. Создание политики маршрутизации трафика ISP1_ISP2. Указание определённого фильтра трафика для правила данной политики маршрутизации трафика:
    [edit]
    admin@edge# set policy route ISP1_ISP2 rule 10 match filter ISP1_filter
    
  33. Указание определённой таблицы маршрутизации для правила данной политики маршрутизации трафика:
    [edit]
    admin@edge# set policy route ISP1_ISP2 rule 10 table ISP1_table
    
  34. Указание определённого фильтра трафика для правила данной политики маршрутизации трафика:
    [edit]
    admin@edge# set policy route ISP1_ISP2 rule 20 match filter ISP2_filter
    
  35. Указание определённой таблицы маршрутизации для правила данной политики маршрутизации трафика:
    [edit]
    admin@edge# set policy route ISP1_ISP2 rule 20 table ISP2_table
    
  36. Создание правила с одновременным указанием таблиц 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
    
  37. Фиксация изменений:
    [edit]
    admin@edge# commit
    
  38. Вывод настроек политики маршрутизации трафика 2xISP:
    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 {
          }
       }
    
  39. Указание применения определённой политики маршрутизации к локальному трафику:
    [edit]
    admin@edge# set system policy route ISP1_ISP2
    
  40. Фиксация изменений:
    [edit]
    admin@edge# commit
    
  41. Вывод настройки политики маршрутизации для локального трафика:
    1
    2
    3
    [edit]
    admin@edge# show system policy
    route ISP1_ISP2
    
  42. Указание применения определённой политики маршрутизации трафика для для входящего трафика на интерфейсе Ethernet eth0:
    [edit]
    admin@edge# set interfaces ethernet eth0 policy in route ISP1_ISP2
    
  43. Фиксация изменений:
    [edit]
    admin@edge# commit
    
  44. Вывод настроек интерфейса 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
          }
       }