Небольшая заметка на тему замечательного инструмента в Cisco IOS — Event Manager’а, и его применения.
Допустим имеется пограничный маршрутизатор NAT_GW. С одной его стороны имеется некая сеть предприятия с двумя серверами SERVER_1 и SERVER_2, расположенными на разных физических площадках. SERVER_1 и SERVER_2 резервируют друг друга. С другой стороны маршрутизатора NAT_GW подключен удаленный клиент REMOTE_PC, который получает определенный сервис от SERVER_1 и SERVER_2 по одному внешнему адресу 10.10.10.1. Маршрутизатор NAT_GW отслеживает доступность SERVER_1 и в зависимости от этого перестраивает свои правила NAT на SERVER_2 и обратно. Клиент REMOTE_PC никаких изменений в сети предприятия не видит.
В данном примере возьмем сервис SSH, который будут представлять SERVER_1 и SERVER_2.
Настройка
Все настройки производятся на NAT_GW.
— Настройка опроса доступности SERVER_1 посредством ICMP
ip sla 10 icmp-echo 192.168.1.10 frequency 5
— Запуск опроса SERVER_1
ip sla schedule 10 life forever start-time now
— Настройка отслеживания состояния опроса SERVER_1
track 10 ip sla 10 reachability delay down 20 up 30
— Настройка действий на состояние доступности SERVER_1 — UP
event manager applet EVENT_NAT_SERVER_1_UP event track 10 state up action 10 cli command "enable" action 20 cli command "clear ip nat translation forced" action 30 cli command "conf t" action 40 cli command "no ip nat inside source static tcp 192.168.2.10 22 10.10.10.1 22 extendable" action 50 cli command "ip nat inside source static tcp 192.168.1.10 22 10.10.10.1 22 extendable" action 60 cli command "exit" action 70 cli command "exit"
— Настройка действий на состояние доступности SERVER_1 — DOWN
event manager applet EVENT_NAT_SERVER_1_DOWN event track 10 state down action 10 cli command "enable" action 20 cli command "clear ip nat translation forced" action 30 cli command "conf t" action 40 cli command "no ip nat inside source static tcp 192.168.1.10 22 10.10.10.1 22 extendable" action 50 cli command "ip nat inside source static tcp 192.168.2.10 22 10.10.10.1 22 extendable" action 60 cli command "exit" action 70 cli command "exit"
Т.е. маршрутизатор NAT_GW будет применять определенные команды при определенных состояниях доступности SERVER_1.