iRWX.RU

Personal IT notes.

Cisco: IP SLA + Static NAT + EEM

Небольшая заметка на тему замечательного инструмента в 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.

Конфигурация NAT_GW
!
version 15.2
service timestamps debug datetime msec
service timestamps log datetime msec
!
hostname NAT_GW1
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
no ip icmp rate-limit unreachable
!
!
no ip domain lookup
ip cef
no ipv6 cef
!
!
multilink bundle-name authenticated
!
!
ip tcp synwait-time 5
!
track 10 ip sla 10 reachability
delay down 20 up 30
!
!
interface FastEthernet0/0
ip address 10.18.0.1 255.255.255.0
ip nat inside
speed auto
duplex auto
!
interface FastEthernet0/1
ip address 10.18.1.1 255.255.255.0
ip nat inside
speed auto
duplex auto
!
interface FastEthernet1/0
ip address 10.10.10.1 255.255.255.0
ip nat outside
speed auto
duplex auto
!
interface FastEthernet1/1
no ip address
shutdown
speed auto
duplex auto
!
ip nat inside source static tcp 192.168.1.10 22 10.10.10.1 22 extendable
ip forward-protocol nd
!
!
no ip http server
no ip http secure-server
ip route 192.168.1.0 255.255.255.0 10.18.0.10
ip route 192.168.2.0 255.255.255.0 10.18.1.10
!
ip sla 10
icmp-echo 192.168.1.10
frequency 5
ip sla schedule 10 life forever start-time now
!
control-plane
!
!
line con 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line aux 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line vty 0 4
login
!
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»
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»
!
end

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *