вторник, 6 июня 2017 г.

Настройка Cisco 4331 для сценария NAT Box to Box HA


Задача:

Получить отказоустойчивую систему (на уровне самих маршрутизаторов с резервированием состояний NAT-cессий) на основе маршрутизаторов Cisco 4331, поскольку в данных маршрутизаторах сейчас установлена IOS XE 15.5, то старый механизм
отказоустойчивости на основе Stateful NAT + VRRP/HSRP не поддерживается,
поскольку с IOS 15.0M не поддерживается Stateful NAT (End of Support c 31/01/2014). 
Сisco заменила данный механизм другим, который называется на текущий момент NAT Box-to-Box High-Availability который появился с IOS 15.3(2)T or later.

Необходимо обеспечить сценарий, в котором Router1 (Маршрутизатор 1) был бы активным маршрутизатором в Redundancy Group (в которую входят как все NAT Outside, так и все NAT Inside интерфейсы), а Router 2 (Маршрутизатор 2) был бы резервным маршрутизатором в той же RG (относительно NAT Inside/Outside - все аналогично маршрутизатору 1)

Примерная схема включения выглядит следующим образом:

pic1.jpg


В схеме видно, что маршрутизаторы для синхронизации состояния отказоустойчивой группы (Redundancy Group = RG) используют интерфейсы Control/ Data/AR. 
Вообще строго говоря, Cisco рекомендует использовать физические интерфейсы для этой цели, но у меня заработали все и на виртуальных VLAN SVI (рекомендую все таки воспользоваться рекомандациями Cisco и использовать физические интерфейсы для этой цели, более того имеет смысл для резервирования вообще использовать EtherChannel между маршрутизаторами для этих целей).

Реализация решения задачи:

Настройка основного механизма Redundancy:

Маршрутизатор 1:
redundancy
 mode none
 application redundancy
  group 1
   name RG1
   preempt
   priority 105
   control Vlan999 protocol 1
   data Vlan999

Маршрутизатор 2:
redundancy
 mode none
 application redundancy
  group 1
   name RG1
   preempt
   control Vlan999 protocol 1
   data Vlan999


Настройки маршрутизаторов в части настройки Redundancy в принципе аналогичны, оба маршрутизатора входят в одну Application Group (RG1), однако для маршрутизатора 1 установлен приоритет в RG1 (105), в отличии от приоритета по умолчанию (100) для маршрутизатора 2, для синхронизации состояния RG между маршрутизаторами необходимо выбрать рабочие интерфейсы, в данном случае для Control/Data использован VLAN ID 999 (должен существовать на маршрутизаторах, должен иметь IP-адрес на SVI этого VLAN, должен быть в up, маршрутизаторы должны иметь IP-связность внутри сети данного VLAN)

Настройка интерфейсов:

Маршрутизатор 1:

interface GigabitEthernet0/0/0
 description ** Link to ISP A **
 vrf forwarding ISP1
 ip address 1.1.1.1 255.255.255.0
 ip nat outside
 negotiation auto
 redundancy rii 100
 redundancy group 1 ip 1.1.1.3 exclusive decrement 100
 ip virtual-reassembly
!
interface GigabitEthernet0/0/1
 description ** Link to ISP B **
 vrf forwarding ISP2
 ip address 2.2.2.1 255.255.255.0
 ip nat outside
 negotiation auto
 redundancy rii 101
 redundancy group 1 ip 2.2.2.3 exclusive decrement 100
 ip virtual-reassembly

!

interface Vlan100
 description DMZ VLAN #1
 ip address 172.30.100.2 255.255.255.0
 ip nat inside
 redundancy rii 200
 redundancy group 1 ip 172.30.100.1 exclusive decrement 100
 ip virtual-reassembly
!
interface Vlan120
 description DMZ VLAN #2
 ip address 172.30.120.2 255.255.255.0
 ip nat inside
 redundancy rii 201
 redundancy group 1 ip 172.30.120.1 exclusive decrement 100
 ip virtual-reassembly
!
interface Vlan192
 description Internal LAN
 ip address 192.168.0.252 255.255.255.0
 ip nat inside
 redundancy rii 300
 redundancy group 1 ip 192.168.0.254 exclusive decrement 100
 ip virtual-reassembly
!
interface Vlan999
 description InterChassis HA Control/Data VLAN
 ip address 172.31.254.1 255.255.255.252
!


Маршрутизатор 2:

interface GigabitEthernet0/0/0
 description ** Link to ISP A **
 vrf forwarding ISP1
 ip address 1.1.1.2 255.255.255.0
 ip nat outside
 negotiation auto
 redundancy rii 100
 redundancy group 1 ip 1.1.1.3 exclusive decrement 100
 ip virtual-reassembly
!
interface GigabitEthernet0/0/1
 description ** Link to ISP B **
 vrf forwarding ISP2
 ip address 2.2.2.2 255.255.255.0
 ip nat outside
 negotiation auto
 redundancy rii 101
 redundancy group 1 ip 2.2.2.3 exclusive decrement 100
 ip virtual-reassembly

!

interface Vlan100
 description DMZ VLAN #1
 ip address 172.30.100.3 255.255.255.0
 ip nat inside
 redundancy rii 200
 redundancy group 1 ip 172.30.100.1 exclusive decrement 100
 ip virtual-reassembly
!
interface Vlan120
 description DMZ VLAN #2
 ip address 172.30.120.3 255.255.255.0
 ip nat inside
 redundancy rii 201
 redundancy group 1 ip 172.30.120.1 exclusive decrement 100
 ip virtual-reassembly
!
interface Vlan192
 description Internal LAN
 ip address 192.168.0.253 255.255.255.0
 ip nat inside
 redundancy rii 300
 redundancy group 1 ip 192.168.0.254 exclusive decrement 100
 ip virtual-reassembly
!
interface Vlan999
 description InterChassis HA Control/Data VLAN
 ip address 172.31.254.2 255.255.255.252
!


Данные настройки назначаются уникальный идентификатор интерфейса в RG, подвязывают интерфейс к RG, назначают виртуальный IP (VIP) на RG, устанавливают декремент для решения надо ли делать Failover или нет при голосовании. Также показаны настройки для VLAN ID 999 который используется для сихронизации состоянии отказоустойчивой группы (RG).

Контроль за состоянием RG для целей отладки и проверки работоспособности:

Маршрутизатор 1:

cisco4331-01#sh redundancy application group 1
Group ID:1
Group Name:RG1

Administrative State: No Shutdown
Aggregate operational state : Up
My Role: ACTIVE
Peer Role: STANDBY
Peer Presence: Yes
Peer Comm: Yes
Peer Progression Started: Yes

RF Domain: btob-one
         RF state: ACTIVE

         Peer RF state: STANDBY HOT


cisco4331-01#sh redundancy application control-interface group 1
The control interface for rg[1] is Vlan999
Interface is Control interface associated with the following protocols: 1
BFD Enabled
Interface Neighbors:
Peer: 172.31.254.2 Standby RGs: 1 BFD handle: 0

cisco4331-01#sh redundancy application data-interface group 1
 The data interface for rg[1] is Vlan999


cisco4331-01#sh redundancy application protocol group 1

RG Protocol RG 1
------------------
        Role: Active
        Negotiation: Enabled
        Priority: 105
        Protocol state: Active
        Ctrl Intf(s) state: Up
        Active Peer: Local
        Standby Peer: address 172.31.254.2, priority 100, intf Vl999
        Log counters:
                role change to active: 1
                role change to standby: 1
                disable events: rg down state 0, rg shut 0
                ctrl intf events: up 1, down 1, admin_down 0
                reload events: local request 0, peer request 0

RG Media Context for RG 1
--------------------------
        Ctx State: Active
        Protocol ID: 1
        Media type: Default
        Control Interface: Vlan999
        Current Hello timer: 3000
        Configured Hello timer: 3000, Hold timer: 10000
        Peer Hello timer: 3000, Peer Hold timer: 10000
        Stats:
                Pkts 927, Bytes 57474, HA Seq 0, Seq Number 927, Pkt Loss 0
                Authentication not configured
                Authentication Failure: 0
                Reload Peer: TX 0, RX 0
                Resign: TX 0, RX 1
        Standby Peer: Present. Hold Timer: 10000
                Pkts 913, Bytes 31042, HA Seq 0, Seq Number 3046, Pkt Loss 0



Маршрутизатор 2:

cisco4331-02#sh redundancy application group 1
Group ID:1
Group Name:RG1

Administrative State: No Shutdown
Aggregate operational state : Up
My Role: STANDBY
Peer Role: ACTIVE
Peer Presence: Yes
Peer Comm: Yes
Peer Progression Started: Yes

RF Domain: btob-one
         RF state: STANDBY HOT
         Peer RF state: ACTIVE


cisco4331-02#sh redundancy application control-interface group 1
The control interface for rg[1] is Vlan999
Interface is Control interface associated with the following protocols: 1
BFD Enabled
Interface Neighbors:
Peer: 172.31.254.1 Active RGs: 1 BFD handle: 0


cisco4331-02#sh redundancy application data-interface group 1
 The data interface for rg[1] is Vlan999


cisco4331-02#sh redundancy application protocol group 1

RG Protocol RG 1
------------------
        Role: Standby
        Negotiation: Enabled
        Priority: 100
        Protocol state: Standby-hot
        Ctrl Intf(s) state: Up
        Active Peer: address 172.31.254.1, priority 105, intf Vl999
        Standby Peer: Local
        Log counters:
                role change to active: 3
                role change to standby: 3
                disable events: rg down state 1, rg shut 0
                ctrl intf events: up 2, down 1, admin_down 0
                reload events: local request 0, peer request 0

RG Media Context for RG 1
--------------------------
        Ctx State: Standby
        Protocol ID: 1
        Media type: Default
        Control Interface: Vlan999
        Current Hello timer: 3000
        Configured Hello timer: 3000, Hold timer: 10000
        Peer Hello timer: 3000, Peer Hold timer: 10000
        Stats:
                Pkts 3138, Bytes 194556, HA Seq 0, Seq Number 3138, Pkt Loss 0
                Authentication not configured
                Authentication Failure: 0
                Reload Peer: TX 0, RX 0
                Resign: TX 2, RX 0
        Active Peer: Present. Hold Timer: 10000
                Pkts 1004, Bytes 34136, HA Seq 0, Seq Number 1019, Pkt Loss 0


Попробуем протестировать Failover Virtual IP для RG1 (для примера будет использоваться Virtual IP 1.1.1.3 - общий внешний адрес на одном из NAT Outside интерфейсах):

до перезагрузки маршрутизатора 1:

cisco4331-01#sh redundancy application group 1
Group ID:1
Group Name:RG1

Administrative State: No Shutdown
Aggregate operational state : Up
My Role: ACTIVE
Peer Role: STANDBY
Peer Presence: Yes
Peer Comm: Yes
Peer Progression Started: Yes

RF Domain: btob-one
         RF state: ACTIVE
         Peer RF state: STANDBY HOT


cisco4331-02#sh redundancy application group 1
Group ID:1
Group Name:RG1

Administrative State: No Shutdown
Aggregate operational state : Up
My Role: STANDBY
Peer Role: ACTIVE
Peer Presence: Yes
Peer Comm: Yes
Peer Progression Started: Yes

RF Domain: btob-one
         RF state: STANDBY HOT
         Peer RF state: ACTIVE


перезагружаем Маршрутизатор 1:

cisco4331-01#reload
Proceed with reload? [confirm]y

cisco4331-02#sh redundancy application group 1
Group ID:1
Group Name:RG1

Administrative State: No Shutdown
Aggregate operational state : Up
My Role: ACTIVE
Peer Role: UNKNOWN
Peer Presence: No
Peer Comm: No
Peer Progression Started: No

RF Domain: btob-one
         RF state: ACTIVE
         Peer RF state: DISABLED

на маршрутизаторе 2 в это время фиксируются следующие события в логе

*Jun  6 15:54:13.919: %RG_MEDIA-3-TIMEREXPIRED: RG id 1 Hello Timer Expired.
*Jun  6 15:54:13.919: %RG_PROTOCOL-5-ROLECHANGE: RG id 1 role change from Standby to Active

и соответственно Маршрутизатор 2 перехватывает Virtual IP 1.1.1.3

При перехвате будет потеряно небольшое количество пакетов (у меня вышло примерно 4-5 ICMP-пакетов при непрерывном тестировании Virtual IP во время Failover, если тестировать при помощи Ping при настройках таймеров Failover по умолчанию.

После перезагрузки Маршрутизатора 1 в его логе появляются следующие записи:

*Jun  6 16:16:27.223: %RG_PROTOCOL-5-ROLECHANGE: RG id 1 role change from Init to Standby
*Jun  6 16:16:36.586: %RG_PROTOCOL-5-ROLECHANGE: RG id 1 role change from Standby to Active
*Jun  6 16:16:46.665: %RG_VP-6-BULK_SYNC_DONE: RG group 1 BULK SYNC to standby complete.
*Jun  6 16:16:46.666: %RG_VP-6-STANDBY_READY: RG group 1 Standby router is in SSO state

А у Маршрутизатора 2 в логах появляется следующая информация:

*Jun  6 16:17:31.004: %RG_PROTOCOL-5-ROLECHANGE: RG id 1 role change from Active to Init
*Jun  6 16:17:41.004: %RG_PROTOCOL-5-ROLECHANGE: RG id 1 role change from Init to Standby



То есть цикл смены ролей при перезагрузки Маршрутизатор 1 - следующий Init > Standby > Active, а для Маршрутизатора 2 Active > Init > Standby,  при этом Маршрутизатор 1 забирает себе обратно Virtual IP, поскольку на нем настроен Preempt и он имеет приоритет RG1 выше чем Маршрутизатор 2:

cisco4331-01#sh redundancy application group 1
Group ID:1
Group Name:RG1

Administrative State: No Shutdown
Aggregate operational state : Up
My Role: ACTIVE
Peer Role: STANDBY
Peer Presence: Yes
Peer Comm: Yes
Peer Progression Started: Yes

RF Domain: btob-one
         RF state: ACTIVE
         Peer RF state: STANDBY HOT


Поскольку у нас настроен декремент 100, на интерфейсах входящих в RG1, то можно проверить Failover например по условию - падает интерфейс, входящий в RG1, для
примера возьмем активный маршрутизатор в RG1 - Маршрутизатор 1 и уроним у него один из интерфейсов из RG (для примера gigibitethernet 0/0/0):

до отключения интерфейса gi 0/0/0:

cisco4331-01#sh redundancy application group 1
Group ID:1
Group Name:RG1

Administrative State: No Shutdown
Aggregate operational state : Up
My Role: ACTIVE
Peer Role: STANDBY
Peer Presence: Yes
Peer Comm: Yes
Peer Progression Started: Yes

RF Domain: btob-one
         RF state: ACTIVE
         Peer RF state: STANDBY HOT


cisco4331-02#sh redundancy application group 1
Group ID:1
Group Name:RG1

Administrative State: No Shutdown
Aggregate operational state : Up
My Role: STANDBY
Peer Role: ACTIVE
Peer Presence: Yes
Peer Comm: Yes
Peer Progression Started: Yes

RF Domain: btob-one
         RF state: STANDBY HOT
         Peer RF state: ACTIVE


Кладем интерфейс gi/0/0/0 на Маршрутизаторе 1:

cisco4331-01(config)#interface gigabitEthernet 0/0/0
cisco4331-01(config-if)#shut
cisco4331-01(config-if)#exit
cisco4331-01(config)#exit

Cмотрим, что произошло:

Маршрутизатор 1:

cisco4331-01#sh redundancy application group 1
Group ID:1
Group Name:RG1

Administrative State: No Shutdown
Aggregate operational state : Up
My Role: STANDBY
Peer Role: ACTIVE
Peer Presence: Yes
Peer Comm: Yes
Peer Progression Started: Yes

RF Domain: btob-one
         RF state: STANDBY HOT
         Peer RF state: ACTIVE


*Jun  7 09:59:38.517: %RG_PROTOCOL-5-ROLECHANGE: RG id 1 role change from Active to Init
*Jun  7 09:59:38.707: %LINK-5-CHANGED: Interface GigabitEthernet0/0/0, changed state to administratively down
*Jun  7 09:59:39.707: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0/0, changed state to down
*Jun  7 09:59:48.518: %RG_PROTOCOL-5-ROLECHANGE: RG id 1 role change from Init to Standby



Маршрутизатор 2:

cisco4331-02#sh redundancy application group 1
Group ID:1
Group Name:RG1

Administrative State: No Shutdown
Aggregate operational state : Up
My Role: ACTIVE
Peer Role: STANDBY
Peer Presence: Yes
Peer Comm: Yes
Peer Progression Started: Yes

RF Domain: btob-one
         RF state: ACTIVE
         Peer RF state: STANDBY HOT


*Jun  7 10:00:30.796: %RG_PROTOCOL-5-ROLECHANGE: RG id 1 role change from Standby to Active
*Jun  7 10:00:40.871: %RG_VP-6-BULK_SYNC_DONE: RG group 1 BULK SYNC to standby complete.
*Jun  7 10:00:40.872: %RG_VP-6-STANDBY_READY: RG group 1 Standby router is in SSO state


Т.е текущая конфигурация делает Failover на Hot Standby соседа при падении любого из Traffic Interfaces входящих в RG1, также при падении маршрутизатора целиком.




Комментариев нет:

Отправить комментарий