Проблема управления входящим трафиком

Основная сложность заключается в том, что вы не можете напрямую контролировать, как провайдеры выбирают пути для доставки трафика в вашу сеть. Они используют свои собственные политики маршрутизации, основанные на таких факторах, как:

  • Метрики протоколов внутренней маршрутизации (IGP);
  • Атрибуты BGP (например, AS_PATH, Local Preference, Weight и т.д.);

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

Методы балансировки входящих маршрутов eBGP

  •  Использование различных префиксов
    • Если ваша сеть имеет в собственности достаточно большую подсетей публичных IP-адресов, вы можете разбить её на отдельные префиксы и анонсировать каждый префикс через разные каналы связи. Таким образом, операторы связи будут направлять трафик для разных префиксов через разные каналы.
  • Управление AS_PATH с помощью AS Prepend

    • AS_PATH - это атрибут BGP, содержащий список всех автономных систем (AS), через которые проходит маршрут. Чем длиннее AS_PATH, тем менее предпочтительным считается путь.

    • Вы можете добавить свою AS несколько раз в AS_PATH (AS Prepend), чтобы сделать определенный путь менее привлекательным для операторов связи.

  • Community-атрибуты
    • В статье, сommunity-атрибуты рассматривать не будем т.к использование community-атрибутов может быть сложным, поскольку их интерпретация зависит от конкретного оператора связи, и они не регламентированы стандартами RFC. Поэтому многие операторы связи либо не поддерживают community-атрибуты, либо интерпретируют их по-своему.

Схема:

  • Локальная AS: 64500
  • Удаленная AS: 64505
  • Анонсируемый префикс : 192.168.0.0/20

Конфигурация маршрутизатора со стороны AS64500
hostname AS64500

syslog console
  virtual-serial
exit

route-map permit
  rule 10
  exit
exit

router bgp log-neighbor-changes

router bgp 64500
  neighbor 198.51.100.1
    remote-as 64502
    address-family ipv4 unicast
      route-map permit out
      enable
    exit
    enable
  exit
  neighbor 203.0.113.1
    remote-as 64501
    address-family ipv4 unicast
      route-map permit out
      enable
    exit
    enable
  exit
  address-family ipv4 unicast
    network 192.168.0.0/20
  exit
  enable
exit

interface gigabitethernet 1/0/1
  ip firewall disable
  ip address 198.51.100.2/30
exit
interface gigabitethernet 1/0/2
  ip firewall disable
  ip address 203.0.113.2/30
exit

ip route 192.168.0.0/20 blackhole

Использование различных префиксов

Задача: Необходимо организовать балансировку входящего трафика между двумя операторами связи с обеспечением отказоустойчивости.

Проблема: Без каких-либо настроек  весь трафик с удалённой AS проходит только через ISP2 (64502), так как этот маршрут короче.

AS64505# show bgp ipv4 unicast 
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
              * - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete

     Network              Next Hop             Metric  LocPrf      Weight Path        
*> u 192.168.0.0/20       198.51.100.101       --      100         0      64504 64502 64500 i

Решение:

  • Анонсируется префикс 192.168.0.0/20, который может быть разделён на две подсети: 192.168.0.0/21 и 192.168.8.0/21. Подсеть 192.168.0.0/21 планируется анонсировать через оператора AS64502, а подсеть 192.168.8.0/21 - через оператора AS64501. Такое распределение позволит организовать балансировку входящего трафика между двумя операторами.
  • Для обеспечения отказоустойчивости также предусматривается анонсирование агрегированного префикса 192.168.0.0/20 через обоих операторов. В случае недоступности одного из каналов связи трафик к адресному пространству будет автоматически направляться через оставшегося оператора, обеспечивая непрерывную доступность сети.
  • При нормальной работе более специфичные маршруты /21 будут приоритетны.
  • Агрегат /20 сработает как резерв при падении одного из аплинков.

Создаём два route-map и применяем их к двум BGP-соседствам:

route-map OUT-TO-AS64502
  rule 10
    match ip address 192.168.0.0/21
  exit
  rule 20
    match ip address 192.168.0.0/20
  exit
exit
route-map OUT-TO-AS64501
  rule 10
    match ip address 192.168.8.0/21
  exit
  rule 20
    match ip address 192.168.0.0/20
  exit
exit

router bgp log-neighbor-changes

router bgp 64500
  neighbor 198.51.100.1
    remote-as 64502
    address-family ipv4 unicast
      route-map OUT-TO-AS64502 out
      enable
    exit
    enable
  exit
  neighbor 203.0.113.1
    remote-as 64501
    address-family ipv4 unicast
      route-map OUT-TO-AS64501 out
      enable
    exit
    enable
  exit
  address-family ipv4 unicast
    network 192.168.8.0/21
    network 192.168.0.0/20
    network 192.168.0.0/21
  exit
  enable
exit

ip route 192.168.0.0/21 blackhole
ip route 192.168.8.0/21 blackhole

Проверяем таблицу маршрутизации BGP на удалённом ресурсе после применения политик и видим, что путь к сети 192.168.8.0/21 идет через первого оператора, а к 192.168.0.0/21  через второго.

AS64505# show bgp ipv4 unicast 
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
              * - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete

     Network              Next Hop             Metric  LocPrf      Weight Path        
*> u 192.168.0.0/20       198.51.100.101       --      100         0      64504 64502 64500 i
*> u 192.168.0.0/21       198.51.100.101       --      100         0      64504 64502 64500 i
*> u 192.168.8.0/21       198.51.100.101       --      100         0      64504 64503 64501 64500 i

Управление AS_PATH с помощью AS Prepend

Задача: Обеспечить прохождение входящего трафика через первого оператора связи. Второй оператор должен использоваться только как резервный канал с автоматическим переключением при отказе основного.

Проблема: Без каких-либо настроек  весь трафик с удалённой AS проходит только через ISP2 (64502), так как этот маршрут короче.

AS64505# show bgp ipv4 unicast 
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
              * - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete

     Network              Next Hop             Metric  LocPrf      Weight Path        
*> u 192.168.0.0/20       198.51.100.101       --      100         0      64504 64502 64500 i

Решение:

  • В рассматриваемой схеме префикс анонсируется через двух операторов. Для первого оператора анонс передается без изменений, а для резервного оператора к атрибуту AS_PATH добавляется несколько дополнительных экземпляров номера автономной системы. Поскольку большинство BGP-маршрутизаторов при прочих равных условиях предпочитают маршрут с более коротким AS_PATH, входящий трафик будет направляться через первого оператора.

Создадим route-map с использованием AS-Path Prepending и применим её к соседству со вторым провайдером:

route-map add_prepand
  rule 10
    action set as-path prepend 64500,64500
  exit
exit

router bgp log-neighbor-changes

router bgp 64500
  neighbor 198.51.100.1
    remote-as 64502
    address-family ipv4 unicast
      route-map add_prepand out
      enable
    exit
    enable
  exit
  neighbor 203.0.113.1
    remote-as 64501
    address-family ipv4 unicast
      route-map permit out
      enable
    exit
    enable
  exit
  address-family ipv4 unicast
    network 192.168.0.0/20
  exit
  enable
exit

В таблице маршрутизации BGP на маршрутизаторе локальной AS видно, что для маршрутов, анонсируемых второму оператору, применён AS-Path Prepending, вследствие чего длина атрибута AS_PATH увеличилась:

AS64500# show bgp ipv4 unicast neighbor 198.51.100.1 advertise-routes 
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
              * - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete

     Network              Next Hop             Metric  LocPrf      Weight Path        
*> u 192.168.0.0/20       198.51.100.2         --      --          --     64500 64500 64500 i

BORDER-AS64500# show bgp ipv4 unicast neighbor 203.0.113.1  advertise-routes 
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
              * - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete

     Network              Next Hop             Metric  LocPrf      Weight Path        
*> u 192.168.0.0/20       203.0.113.2          --      --          --     64500 i

После применения политики в таблице маршрутизации BGP на удалённом маршрутизаторе видно, что маршрут к анонсируемой сети выбирается через первого оператора:

AS64505# show bgp ipv4 unicast 
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
              * - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete

     Network              Next Hop             Metric  LocPrf      Weight Path        
*> u 192.168.0.0/20       198.51.100.101       --      100         0      64504 64503 64501 64500 i


  • Нет меток