10.11. Типовые конфигурации

10.11.1. L2-связность

Описание схемы

Основная идея обеспечения высокой доступности с использованием VRRP заключается в том, что у нас есть активный и резервный vADC. Активный узел, vADC-1, обрабатывает весь HTTP-трафик от пользователей к веб-серверам и обратно. Резервный узел, vADC-2, должен начать обработку трафика в случае, если vADC-1 теряет доступность.

VRRP поддерживает доступность основного IP-адреса сервиса, а Weighted Round Robin распределяет нагрузку между веб-серверами 192.168.0.1, 192.168.0.2 и 192.168.0.3. Если VRRP изменяет состояние, vADC-2 становится активным и продолжает передавать трафик на веб-сервисы согласно конфигурации.

На схеме ниже показано, что пользовательские устройства напрямую подключены к vADC через L2-коммутатор. Интерфейсы if0 на vADC и IP-адрес VRRP находятся в одной сети 192.168.0.0/24.

../_images/vADC_L2_light.png ../_images/vADC_L2_dark.png

vADC-1

  1. Задаем название хоста.

hostname vADC-1
  1. Настраиваем сетевой интерфейс if0:

  • Назначаем IP-адрес 192.168.0.251/24

  • Включаем VRRP с использованием IP-адреса 192.168.0.253 и приоритетом 150

interface if0
 ip address 192.168.0.251/24
 vrrp 1 ip 192.168.0.253
 vrrp 1 priority 150
exit
  1. Создаем пул для SNAT (Source NAT) с диапазоном 192.168.0.253, соответствующим IP-адресу VRRP. Это позволяет использовать адрес из локальной сети для NAT, при этом не нарушая корректную обработку ARP-запросов, обеспечивая разрешение MAC-адреса на целевых серверах при взаимодействии с vADC.

nat pool SNAT-Pool
 range 192.168.0.253 192.168.0.253
 pooling arbitrary
 enable
exit
  1. Группа целевых серверов:

  • Создаем Target-группу web-tg0 с алгоритмом балансировки WRR - Weighted Round Robin (взвешенный круговой алгоритм) и привязкой к SNAT-Pool

  • В группу добавляем три веб-сервера с IP-адресами 192.168.0.1, 192.168.0.2 и 192.168.0.3, использующие 80 порт для HTTP-трафика

vlb target-group web-tg0 algorithm wrr nat-pool SNAT-Pool
vlb target-group web-tg0 worker ip 192.168.0.1 port 80 weight 1
vlb target-group web-tg0 worker ip 192.168.0.2 port 80 weight 1
vlb target-group web-tg0 worker ip 192.168.0.3 port 80 weight 1
  1. Сервис балансировки нагрузки:

  • Создаем сервис web-service, использующий группу web-tg0 по-умолчанию для распределения HTTP-трафика

  • Доступ к сервису осуществляется через IP-адрес 192.168.0.253 и 80 порт

vlb service web-service
 default-target-group web-tg0
 access-point type http ip 192.168.0.253/32 port 80
exit

Полная конфигурация

hostname vADC-1
!
interface if0
 ip address 192.168.0.251/24
 vrrp 1 ip 192.168.0.253
 vrrp 1 priority 150
exit
!
nat pool SNAT-Pool
 range 192.168.0.253 192.168.0.253
 pooling arbitrary
 enable
exit
!
vlb target-group web-tg0 algorithm wrr nat-pool SNAT-Pool
vlb target-group web-tg0 worker ip 192.168.0.1 port 80 weight 1
vlb target-group web-tg0 worker ip 192.168.0.2 port 80 weight 1
vlb target-group web-tg0 worker ip 192.168.0.3 port 80 weight 1
!
vlb service web-service
 default-target-group web-tg0
 access-point type http ip 192.168.0.253/32 port 80
exit
!

vADC-2

  1. Задаем название хоста.

hostname vADC-2
  1. Настраиваем сетевой интерфейс if0:

  • Назначаем IP-адрес 192.168.0.252/24

  • Включаем VRRP с использованием IP-адреса 192.168.0.253 и приоритетом 120, что ниже, чем у vADC-1. Это позволяет vADC-1 быть основным узлом VRRP, в то время как vADC-2 выступает в качестве резервного

interface if0
 ip address 192.168.0.252/24
 vrrp 1 ip 192.168.0.253
 vrrp 1 priority 120
exit

Остальная часть конфигурации для vADC-2 идентична vADC-1.

Полная конфигурация

hostname vADC-2
!
interface if0
 ip address 192.168.0.252/24
 vrrp 1 ip 192.168.0.253
 vrrp 1 priority 120
exit
!
nat pool SNAT-Pool
 range 192.168.0.253 192.168.0.253
 pooling arbitrary
 enable
exit
!
vlb target-group web-tg0 algorithm wrr nat-pool SNAT-Pool
vlb target-group web-tg0 worker ip 192.168.0.1 port 80 weight 1
vlb target-group web-tg0 worker ip 192.168.0.2 port 80 weight 1
vlb target-group web-tg0 worker ip 192.168.0.3 port 80 weight 1
!
vlb service web-service
 default-target-group web-tg0
 access-point type http ip 192.168.0.253/32 port 80
exit
!

10.11.2. L2/L3-связность

Описание схемы

Расширенная конфигурация двух виртуальных устройств балансировки нагрузки (vADC-1 и vADC-2), которые настроены для работы в режиме высокой доступности с использованием VRRP и BGP-маршрутизации. Состояние active/standby управляется с помощью track-правил и CLI-политик для контроля состояния и корректировки приоритетов VRRP и BGP. Конфигурация обеспечивает отказоустойчивость и балансировку HTTP-трафика, который поступает на виртуальный IP (VIP) 203.0.113.1.

../_images/vADC_L3-L2_light.png ../_images/vADC_L3-L2_dark.png

vADC-1

  1. Задаем название хоста.

hostname vADC-1
  1. Добавляем маршрут по умолчанию до сети 203.0.113.0/24 в Null0, чтобы обеспечить анонс маршрутов с помощью BGP.

ip route 203.0.113.0/24 Null0
  1. Настраиваем сетевые интерфейсы if0 и if1:

  • Назначаем IP-адрес 192.168.0.1/31 на интерфейс if0

  • Назначаем IP-адрес 192.168.1.251/24 на интерфейс if1 и включаем VRRP с приоритетом 150 и виртуальным IP-адресом 192.168.1.254

interface if0
  ip address 192.168.0.1/31
exit
interface if1
  ip address 192.168.1.251/24
  vrrp 1 ip 192.168.1.254
  vrrp 1 priority 150
exit
  1. Создаем пул для SNAT (Source NAT) с диапазоном 192.168.1.254, что соответствует IP-адресу VRRP.

nat pool SNAT-Pool
 range 192.168.1.254 192.168.1.254
 pooling arbitrary
 enable
exit
  1. Группа целевых серверов:

  • Создаем Target-группу web-tg0 с алгоритмом взвешенного кругового распределения (WRR) и привязкой к SNAT-Pool

  • В группу добавляем три веб-сервера с IP-адресами 192.168.1.1, 192.168.1.2 и 192.168.1.3, использующие 80 порт для HTTP-трафика

vlb target-group web-tg0 algorithm wrr nat-pool SNAT-Pool
vlb target-group web-tg0 worker ip 192.168.1.1 port 80 weight 1
vlb target-group web-tg0 worker ip 192.168.1.2 port 80 weight 1
vlb target-group web-tg0 worker ip 192.168.1.3 port 80 weight 1
  1. BGP-маршрутизация:

  • Настраиваем BGP с автономной системой 65002

  • Настраиваем связи с соседним маршрутизатором 192.168.0.0 с AS 65001

  • Реализуем маршрутизацию статических маршрутов с фильтрацией по списку префиксов и управлением маршрутами через route-map SERVICES

router bgp 65002
 bgp log-neighbor-changes
 neighbor 192.168.0.0 remote-as 65001
 neighbor 192.168.0.0 bfd
 !
 address-family ipv4 unicast
  redistribute static
  neighbor 192.168.0.0 soft-reconfiguration inbound
  neighbor 192.168.0.0 prefix-list DEFAULT in
  neighbor 192.168.0.0 route-map SERVICES out
 exit-address-family
  1. Списки префиксов и route-map:

  • Список SERVICES разрешает анонс сети 203.0.113.0/24

  • Список DEFAULT разрешает маршрут по умолчанию 0.0.0.0/0

  • Route-map SERVICES управляет исходящими маршрутами, фильтруя их по списку SERVICES

ip prefix-list SERVICES seq 5 permit 203.0.113.0/24
ip prefix-list DEFAULT seq 5 permit 0.0.0.0/0
route-map SERVICES permit 10
 match ip address prefix-list SERVICES
  1. Сервис балансировки нагрузки:

  • Создаем сервис web-service, использующий группу web-tg0 по-умолчанию для распределения HTTP-трафика

  • Доступ к сервису осуществляется через IP-адрес 203.0.113.1/32 и 80 порт

vlb service web-service
  default-target-group web-tg0
  access-point type http ip 203.0.113.1/32 port 80
exit

vADC-2

Конфигурация vADC-2 аналогична vADC-1 за исключением следующих изменений:

  1. Задаем название хоста.

hostname vADC-2
  1. Настраиваем сетевые интерфейсы if0 и if1:

  • Назначаем IP-адрес 192.168.0.3/31 на интерфейс if0

  • Назначаем IP-адрес 192.168.1.252/24 на интерфейс if1 и включаем VRRP с приоритетом 120

interface if0
 ip address 192.168.0.3/31
exit
!
interface if1
 ip address 192.168.1.252/24
 vrrp 1 ip 192.168.1.254
 vrrp 1 priority 120
exit
  1. Для NAT-пула используем фиксированный IP 192.168.1.254, который соответствует VRRP адресу.

nat pool SNAT-Pool
 range 192.168.1.254 192.168.1.254
 pooling arbitrary
 enable
exit
  1. BGP-маршрутизация:

  • Указываем соседа 192.168.0.2 (AS 65001) для взаимодействия с BGP

  • Добавляем AS-path prepend в route-map SERVICES, чтобы приоритет маршрутов от vADC-1 был выше

route-map SERVICES permit 10
 match ip address prefix-list SERVICES
 set as-path prepend 65002

Трекеры и Политики CLI

Track-правила и CLI-политики настраиваются на vADC-1:

  1. Правила track:

  • track 1: Отслеживает VRRP на интерфейсе if1, чтобы контролировать состояние мастера

  • track 2: Отслеживает наличие маршрута по-умолчанию

track 1 vrrp 1 interface if1 ip state master
track 2 ip route 0.0.0.0/0 ecmp-number less-equal 0
  1. CLI-политики:

  • cli-policy 1: Если результат track 1 соответствует TRUE, то в параметрах route-map SERVICES удаляется as-path prepend

  • cli-policy 2: Если результат track 1 соответствует FALSE, то в параметры route-map SERVICES добавляется as-path prepend 65002 65002. Таким образом анонс маршрутов от vADC-2 становятся более приоритетными и трафик переходит на него

  • cli-policy 3: Если результат track 2 соответствует FALSE, то повышается приоритет VRRP до 150

  • cli-policy 4: Если результат track 2 соответствует TRUE, то понижается приоритет VRRP до 1 тем самым переводя VRRP в состояние standby.

rtm cli-policy 1
 event track 1 state positive
 action 1 cli configure terminal
 action 2 cli route-map SERVICES permit 10
 action 3 cli no set as-path prepend
!
rtm cli-policy 2
 event track 1 state negative
 action 1 cli configure terminal
 action 2 cli route-map SERVICES permit 10
 action 3 cli set as-path prepend 65002 65002
!
rtm cli-policy 3
 event track 2 state negative
 action 1 cli configure terminal
 action 2 cli interface if1
 action 3 cli vrrp 1 priority 150
!
rtm cli-policy 4
 event track 2 state positive
 action 1 cli configure terminal
 action 2 cli interface if1
 action 3 cli vrrp 1 priority 1
!

Полная конфигурация

vADC-1

hostname vADC-1
!
ip route 203.0.113.0/24 Null0
!
interface if0
 ip address 192.168.0.1/31
exit
!
interface if1
 ip address 192.168.1.251/24
 vrrp 1 ip 192.168.1.254
 vrrp 1 priority 150
exit
!
nat pool SNAT-Pool
 range 192.168.1.254 192.168.0.253
 pooling arbitrary
 enable
exit
!
vlb target-group web-tg0 algorithm wrr nat-pool SNAT-Pool
vlb target-group web-tg0 worker ip 192.168.1.1 port 80 weight 1
vlb target-group web-tg0 worker ip 192.168.1.2 port 80 weight 1
vlb target-group web-tg0 worker ip 192.168.1.3 port 80 weight 1
!
router bgp 65002
 bgp log-neighbor-changes
 neighbor 192.168.0.0 remote-as 65001
 neighbor 192.168.0.0 bfd
 !
 address-family ipv4 unicast
  redistribute static
  neighbor 192.168.0.0 soft-reconfiguration inbound
  neighbor 192.168.0.0 prefix-list DEFAULT in
  neighbor 192.168.0.0 route-map SERVICES out
 exit-address-family
!
ip prefix-list SERVICES seq 5 permit 203.0.113.0/24
ip prefix-list DEFAULT seq 5 permit 0.0.0.0/0
!
route-map SERVICES permit 10
 match ip address prefix-list SERVICES
!
vlb service web-service
 default-target-group web-tg0
 access-point type http ip 203.0.113.1/32 port 80
exit
!
track 1 vrrp 1 interface if1 ip state master
track 2 ip route 0.0.0.0/0 ecmp-number less-equal 0
!
rtm cli-policy 1
 event track 1 state positive
 action 1 cli configure terminal
 action 2 cli route-map SERVICES permit 10
 action 3 cli no set as-path prepend
!
rtm cli-policy 2
 event track 1 state negative
 action 1 cli configure terminal
 action 2 cli route-map SERVICES permit 10
 action 3 cli set as-path prepend 65002 65002
!
rtm cli-policy 3
 event track 2 state negative
 action 1 cli configure terminal
 action 2 cli interface if1
 action 3 cli vrrp 1 priority 150
!
rtm cli-policy 4
 event track 2 state positive
 action 1 cli configure terminal
 action 2 cli interface if1
 action 3 cli vrrp 1 priority 1
!

vADC-2

hostname vADC-2
!
ip route 203.0.113.0/24 Null0
!
interface if0
 ip address 192.168.0.3/31
exit
!
interface if1
 ip address 192.168.1.252/24
 vrrp 1 ip 192.168.1.254
 vrrp 1 priority 120
exit
!
nat pool SNAT-Pool
 range 192.168.1.254 192.168.1.254
 pooling arbitrary
 enable
exit
!
vlb target-group web-tg0 algorithm wrr nat-pool SNAT-Pool
vlb target-group web-tg0 worker ip 192.168.1.1 port 80 weight 1
vlb target-group web-tg0 worker ip 192.168.2.2 port 80 weight 1
vlb target-group web-tg0 worker ip 192.168.3.3 port 80 weight 1
!
router bgp 65002
 bgp log-neighbor-changes
 neighbor 192.168.0.2 remote-as 65001
 neighbor 192.168.0.2 bfd
 !
 address-family ipv4 unicast
  redistribute static
  neighbor 192.168.0.2 soft-reconfiguration inbound
  neighbor 192.168.0.2 prefix-list DEFAULT in
  neighbor 192.168.0.2 route-map SERVICES out
 exit-address-family
!
ip prefix-list SERVICES seq 5 permit 203.0.113.0/24
ip prefix-list DEFAULT seq 5 permit 0.0.0.0/0
!
route-map SERVICES permit 10
 match ip address prefix-list SERVICES
 set as-path prepend 65002
!
vlb service web-service
 default-target-group web-tg0
 access-point type http ip 203.0.113.1/32 port 80
exit
!

10.11.3. L3-связность

Описание схемы

Расширенная конфигурация двух виртуальных устройств балансировки нагрузки (vADC-1 и vADC-2), которые настроены для работы в режиме высокой доступности с использованием только BGP-маршрутизации. Состояние active/standby управляется с помощью track-правил и CLI-политик. Конфигурация обеспечивает отказоустойчивость и балансировку HTTP-трафика, который поступает на виртуальный IP (VIP) 203.0.113.1.

../_images/vADC_L3_light.png ../_images/vADC_L3_dark.png

vADC-1

  1. Задаем название хоста.

hostname vADC-1
  1. Статическая маршрутизация:

  • Добавляем маршрут по умолчанию до сети 203.0.113.0/24, выделенной для сервисов

  • Добавляем маршрут по умолчанию до сети 100.64.1.0/24, выделенной для SNAT-пула

ip route 203.0.113.0/24 Null0
ip route 100.64.1.0/24 Null0
  1. Настраиваем сетевые интерфейсы if0 и if1:

  • Назначаем IP-адрес 192.168.0.1/31 на интерфейс if0

  • Назначаем IP-адрес 192.168.0.5/31 на интерфейс if1

interface if0
 ip address 192.168.0.1/31
exit
!
interface if1
 ip address 192.168.0.5/31
exit
!
  1. Создаем NAT-пул с именем SNAT-Pool с диапазоном 100.64.1.0 - 100.64.1.254.

nat pool SNAT-Pool
 range 100.64.1.0 100.64.1.254
 pooling arbitrary
 enable
exit
  1. Группа целевых серверов:

  • Создаем Target-группу web-tg0 с алгоритмом взвешенного кругового распределения (WRR) и привязкой к SNAT-Pool

  • В группу добавляем три веб-сервера с IP-адресами 192.168.1.1, 192.168.1.2 и 192.168.1.3, использующие 80 порт для HTTP-трафика

vlb target-group web-tg0 algorithm wrr nat-pool SNAT-Pool
vlb target-group web-tg0 worker ip 192.168.1.1 port 80 weight 1
vlb target-group web-tg0 worker ip 192.168.1.2 port 80 weight 1
vlb target-group web-tg0 worker ip 192.168.1.3 port 80 weight 1
  1. BGP-маршрутизация:

  • Настраиваем BGP с автономной системой 65002

  • Настраиваем связи соседей 192.168.0.0 с AS 65001 и 192.168.0.4 с AS 65003. Для обоих включаем BFD и soft-reconfiguration inbound

  • Настраиваем анонс и прием маршрутов с фильтрацией по списку префиксов и управлением маршрутами через route-map

router bgp 65002
 bgp log-neighbor-changes
 neighbor 192.168.0.0 remote-as 65001
 neighbor 192.168.0.0 bfd
 neighbor 192.168.0.4 remote-as 65003
 neighbor 192.168.0.4 bfd
 !
 address-family ipv4 unicast
  redistribute static
  neighbor 192.168.0.0 soft-reconfiguration inbound
  neighbor 192.168.0.0 prefix-list DEFAULT in
  neighbor 192.168.0.0 route-map SERVICES out
  neighbor 192.168.0.4 soft-reconfiguration inbound
  neighbor 192.168.0.4 prefix-list BACKENDS in
  neighbor 192.168.0.4 prefix-list SNAT_POOLS out
 exit-address-family
  1. Списки префиксов и route-map:

  • Список DEFAULT разрешает прием маршрута по умолчанию 0.0.0.0/0

  • Список SERVICES разрешает анонс подсети 203.0.113.0/24

  • Prefix-list BACKENDS разрешает прием маршрута до целевых серверов 192.168.1.0/24

  • Список SNAT_POOLS разрешает анонс SNAT пула 100.64.1.0/24

  • Route-map SERVICES управляет исходящими маршрутами, фильтруя их по списку SERVICES

ip prefix-list DEFAULT seq 5 permit 0.0.0.0/0
ip prefix-list SERVICES seq 5 permit 203.0.113.0/24
ip prefix-list BACKENDS seq 5 permit 192.168.1.0/24
ip prefix-list SNAT_POOLS seq 5 permit 100.64.1.0/24
!
route-map SERVICES permit 10
 match ip address prefix-list SERVICES
!
  1. Сервис балансировки нагрузки:

  • Создаем сервис web-service, использующий группу web-tg0 по-умолчанию для распределения HTTP-трафика

  • Доступ к сервису осуществляется через IP-адрес 203.0.113.1/32 и 80 порт

vlb service web-service
  default-target-group web-tg0
  access-point type http ip 203.0.113.1/32 port 80
exit

vADC-2

Конфигурация vADC-2 аналогична vADC-1 за исключением следующих изменений:

  1. Задаем название хоста.

hostname vADC-2
  1. Настраиваем сетевые интерфейсы if0 и if1:

  • Назначаем IP-адрес 192.168.0.3/31 на интерфейс if0

  • Назначаем IP-адрес 192.168.0.7/31 на интерфейс if1

interface if0
 ip address 192.168.0.3/31
exit
!
interface if1
 ip address 192.168.0.7/31
exit
  1. Создаем NAT-пул с именем SNAT-Pool с диапазоном 100.64.2.0 - 100.64.2.254.

nat pool SNAT-Pool
 range 100.64.2.0 100.64.2.254
 pooling arbitrary
 enable
exit
  1. BGP-маршрутизация:

  • Настраиваем BGP с автономной системой 65002

  • Настраиваем связи соседей 192.168.0.2 с AS 65001 и 192.168.0.6 с AS 65003. Для обоих включаем BFD и soft-reconfiguration inbound

  • Настраиваем анонс и прием маршрутов с фильтрацией по списку префиксов и управлением маршрутами через route-map

router bgp 65002
 bgp log-neighbor-changes
 neighbor 192.168.0.2 remote-as 65001
 neighbor 192.168.0.2 bfd
 neighbor 192.168.0.6 remote-as 65003
 neighbor 192.168.0.6 bfd
 !
 address-family ipv4 unicast
  redistribute static
  neighbor 192.168.0.2 soft-reconfiguration inbound
  neighbor 192.168.0.2 prefix-list DEFAULT in
  neighbor 192.168.0.2 route-map SERVICES out
  neighbor 192.168.0.6 soft-reconfiguration inbound
  neighbor 192.168.0.6 prefix-list BACKENDS in
  neighbor 192.168.0.6 prefix-list SNAT_POOLS out
 exit-address-family
  1. Списки префиксов и route-map:

  • Список DEFAULT разрешает прием маршрута по умолчанию 0.0.0.0/0

  • Список SERVICES разрешает анонс подсети 203.0.113.0/24

  • Prefix-list BACKENDS разрешает прием маршрута до целевых серверов 192.168.1.0/24

  • Список SNAT_POOLS разрешает анонс NAT пула 100.64.2.0/24

  • Route-map SERVICES используется с AS-path prepend 65002, чтобы приоритет маршрутов от vADC-1 был выше

ip prefix-list DEFAULT seq 5 permit 0.0.0.0/0
ip prefix-list SERVICES seq 5 permit 203.0.113.0/24
ip prefix-list BACKENDS seq 5 permit 192.168.1.0/24
ip prefix-list SNAT_POOLS seq 5 permit 100.64.2.0/24
!
route-map SERVICES permit 10
 match ip address prefix-list SERVICES
 set as-path prepend 65002
!

Трекеры и Политики CLI

Track-правила и CLI-политики настраиваются на vADC-1:

  1. track1 проверяет наличие маршрута к 192.168.1.0/24.

track 1 ip route 192.168.1.0/24 ecmp-number less-equal 0
  1. CLI-политики:

  • cli-policy 1: Если результат track 1 соответствует TRUE, в параметрах route-map SERVICES удаляется as-path prepend

  • cli-policy 2: Если результат track 1 соответствует FALSE, в параметры route-map SERVICES добавляется as-path prepend 65002 65002 таким образом анонс маршрутов от vADC-2 становятся более приоритетными и трафик переходит на него.

rtm cli-policy 1
 event track 1 state negative
 action 1 cli configure terminal
 action 2 cli route-map SERVICES permit 10
 action 3 cli no set as-path prepend
!
rtm cli-policy 2
 event track 1 state positive
 action 1 cli configure terminal
 action 2 cli route-map SERVICES permit 10
 action 3 cli set as-path prepend 65002 65002
!

Полная конфигурация

vADC-1

hostname vADC-1
!
ip route 203.0.113.0/24 Null0
ip route 100.64.1.0/24 Null0
!
interface if0
 ip address 192.168.0.1/31
exit
!
interface if1
 ip address 192.168.0.5/31
exit
!
nat pool SNAT-Pool
 range 100.64.1.0 100.64.1.254
 pooling arbitrary
 enable
exit
!
vlb target-group web-tg0 algorithm wrr nat-pool SNAT-Pool
vlb target-group web-tg0 worker ip 192.168.1.1 port 80 weight 1
vlb target-group web-tg0 worker ip 192.168.1.2 port 80 weight 1
vlb target-group web-tg0 worker ip 192.168.1.3 port 80 weight 1
!
router bgp 65002
 bgp log-neighbor-changes
 neighbor 192.168.0.0 remote-as 65001
 neighbor 192.168.0.0 bfd
 neighbor 192.168.0.4 remote-as 65003
 neighbor 192.168.0.4 bfd
 !
 address-family ipv4 unicast
  redistribute static
  neighbor 192.168.0.0 soft-reconfiguration inbound
  neighbor 192.168.0.0 prefix-list DEFAULT in
  neighbor 192.168.0.0 route-map SERVICES out
  neighbor 192.168.0.4 soft-reconfiguration inbound
  neighbor 192.168.0.4 prefix-list BACKENDS in
  neighbor 192.168.0.4 prefix-list SNAT_POOLS out
 exit-address-family
!
ip prefix-list DEFAULT seq 5 permit 0.0.0.0/0
ip prefix-list SERVICES seq 5 permit 203.0.113.0/24
ip prefix-list BACKENDS seq 5 permit 192.168.1.0/24
ip prefix-list SNAT_POOLS seq 5 permit 100.64.1.0/24
!
route-map SERVICES permit 10
 match ip address prefix-list SERVICES
!
vlb service web-service
 default-target-group web-tg0
 access-point type http ip 203.0.113.1/32 port 80
exit
!
track 1 ip route 192.168.1.0/24 ecmp-number less-equal 0
!
rtm cli-policy 1
 event track 1 state negative
 action 1 cli configure terminal
 action 2 cli route-map SERVICES permit 10
 action 3 cli no set as-path prepend
!
rtm cli-policy 2
 event track 1 state positive
 action 1 cli configure terminal
 action 2 cli route-map SERVICES permit 10
 action 3 cli set as-path prepend 65002 65002
!

vADC-2

hostname vADC-2
!
ip route 203.0.113.0/24 Null0
ip route 100.64.2.0/24 Null0
!
interface if0
 ip address 192.168.0.3/31
exit
!
interface if1
 ip address 192.168.0.7/31
exit
!
nat pool SNAT-Pool
 range 100.64.2.0 100.64.2.254
 pooling arbitrary
 enable
exit
!
vlb target-group web-tg0 algorithm wrr nat-pool SNAT-Pool
vlb target-group web-tg0 worker ip 192.168.1.1 port 80 weight 1
vlb target-group web-tg0 worker ip 192.168.2.2 port 80 weight 1
vlb target-group web-tg0 worker ip 192.168.3.3 port 80 weight 1
!
router bgp 65002
 bgp log-neighbor-changes
 neighbor 192.168.0.2 remote-as 65001
 neighbor 192.168.0.2 bfd
 neighbor 192.168.0.6 remote-as 65003
 neighbor 192.168.0.6 bfd
 !
 address-family ipv4 unicast
  redistribute static
  neighbor 192.168.0.2 soft-reconfiguration inbound
  neighbor 192.168.0.2 prefix-list DEFAULT in
  neighbor 192.168.0.2 route-map SERVICES out
  neighbor 192.168.0.6 soft-reconfiguration inbound
  neighbor 192.168.0.6 prefix-list BACKENDS in
  neighbor 192.168.0.6 prefix-list SNAT_POOLS out
 exit-address-family
!
ip prefix-list DEFAULT seq 5 permit 0.0.0.0/0
ip prefix-list SERVICES seq 5 permit 203.0.113.0/24
ip prefix-list BACKENDS seq 5 permit 192.168.1.0/24
ip prefix-list SNAT_POOLS seq 5 permit 100.64.2.0/24
!
route-map SERVICES permit 10
 match ip address prefix-list SERVICES
 set as-path prepend 65002
!
vlb service web-service
 default-target-group web-tg0
 access-point type http ip 203.0.113.1/32 port 80
exit
!