11.17. Типичные конфигурации

L2-связность

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

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

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

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

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

ADC-1

  1. Задать имя хоста.

hostname ADC-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-адресов на целевых серверах при взаимодействии с ADC.

nat pool SNAT-Pool
 range 192.168.0.253 192.168.0.253
 pooling arbitrary
 enable
exit
  1. Target-группа:

  • Создать 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, используя Target-группу 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

ADC-2

  1. Задать имя хоста.

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

  • Назначить IP-адрес 192.168.0.252/24

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

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

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

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

ADC-1

hostname ADC-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
!

ADC-2

hostname ADC-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
!

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

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

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

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

ADC-1

  1. Задать имя хоста.

hostname ADC-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-группа:

  • Создать Target-группу web-tg0 с алгоритмом Weighted Round Robin (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, используя Target-группу 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

ADC-2

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

  1. Задать имя хоста.

hostname ADC-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, чтобы приоритет маршрута от ADC-1 был выше

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

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

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

  1. Правила отслеживания:

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

  • 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 (ADC-1 — VRRP master), то as-path prepend удаляется из route-map SERVICES

  • cli-policy 2: Если track 1 равно FALSE (ADC-1 не VRRP master), то as-path prepend 65002 65002 добавляется в route-map SERVICES, делая объявления маршрутов от ADC-2 более предпочтительными и направляя трафик на него

  • cli-policy 3: Если track 2 равно FALSE (маршрут по умолчанию существует), увеличить приоритет VRRP до 150

  • cli-policy 4: Если track 2 равно TRUE (маршрут по умолчанию отсутствует), уменьшить приоритет VRRP до 1, переводя VRRP в состояние резерва

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
!

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

ADC-1

hostname ADC-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.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
 !
 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
!

ADC-2

hostname ADC-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.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.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
!

L3-связность

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

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

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

ADC-1

  1. Задать имя хоста.

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

  • Добавить статический маршрут для сети 203.0.113.0/24 через Null0 (для BGP-анонса)

  • Добавить статический маршрут для сети 100.64.1.0/24 через Null0 (для BGP-анонса)

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-группа:

  • Создать Target-группу web-tg0 с алгоритмом Weighted Round Robin (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

  • Префикс-лист 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, используя Target-группу 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

ADC-2

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

  1. Задать имя хоста.

hostname ADC-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

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

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

  • Route-map SERVICES использует AS-path prepend 65002, чтобы обеспечить более высокий приоритет маршрута от ADC-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-политики настраиваются на ADC-1:

  1. track 1 отслеживает наличие маршрута к 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 равно FALSE (маршрут до backends существует), то as-path prepend удаляется из route-map SERVICES

  • cli-policy 2: Если track 1 равно TRUE (маршрут до backends отсутствует), то route-map SERVICES обновляется для добавления as-path prepend 65002 65002, что делает объявления маршрутов от ADC-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
!

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

ADC-1

hostname ADC-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
!

ADC-2

hostname ADC-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.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.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
!