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

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

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

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

Схема:

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

Решение:

  • При нормальной работе более специфичные маршруты /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

Решение:

Создадим 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