четверг, 12 июня 2014 г.

IP SLA


Дано: 
HOST1 имитирует внутреннюю сеть
HOST2 имитирует интернет хост
R1 имитирует пограничный маршрутизатор с двумя линками на провайдера ( F0/1 и F1/0 )
R2 - R4 имитирут интернет

Задача: Обеспечить хождение трафика по дефолту через ISP1. В случае падения линка или пропадания сервиса переключится на ISP2. Всё это должно происходить автоматически без ручной перенастройки.




Конфигурация:

Настройка EIGRP, поднятие хостов и айпишников  тут не приводится

1) Настроим NAT на ISP1 и ISP2 

Создаём ACL
R1(config)#ip access-list extended RouteNAT
R1(config-ext-nacl)#permit ip 10.0.1.0 0.0.0.255 any
R1(config-ext-nacl)#exit

Прописываем два route-map на ISP1 и ISP2 
R1(config)#route-map isp1 permit 10
R1(config-route-map)#match ip address RouteNAT
R1(config-route-map)#match interface f0/1
R1(config-route-map)#exit


R1(config)#route-map isp2 permit 20
R1(config-route-map)#match ip address RouteNAT
R1(config-route-map)#match interface f1/0
R1(config-route-map)#exit

Назначаем inside и outside интерфейсы
R1(config)#int fa 0/0
R1(config-if)#ip nat inside

R1(config)#int fa 1/0
R1(config-if)#ip nat outside
 
R1(config)#int fa 0/1
R1(config-if)#ip nat outside

И, наконец, создаём правила NAT ( в данном случае PAT )

R1(config)#ip nat inside source route-map isp1 interface f0/1 overload
R1(config)#ip nat inside source route-map isp2 interface f1/0 overload


 -----------------------------------------------------------------------------------

2) Для мониторинга контрольный ресурс для необходимо смаршрутизировать через ISP1

Задаём ip route
R1(config)#ip route 200.200.200.2 255.255.255.255 213.22.2.1

Вписываем ACL

R1(config)#access-list 101 permit icmp any host 200.200.200.1 echo

Делаем route-map

R1(config)#route-map echo permit 10
R1(config-route-map)#match ip address 101
R1(config-route-map)#set interface f0/1

И применяем route-map

R1(config)#ip local policy route-map echo

-----------------------------------------------------------------------------------

3) Приступим к настройке SLA


Создаём процесс-монитор  IP SLA с номером 77

R1(config)# ip sla monitor 77

Указываем, что нужно пинговать с помощью icmp -- хост 200.200.200.2 из source адреса 213.22.2.2

R1(config-sla-monitor)# type echo protocol ipIcmpEcho 200.200.200.2 source-ipaddr 213.22.2.2

Задаём таймаут в 1 секунду, частоту пингов в 5 секунд и фейл в 3 попытки
R1(config-sla-monitor-echo)# timeout 1000
R1(config-sla-monitor-echo)# threshold 3
R1(config-sla-monitor-echo)# frequency 5
 
Cтартуем процесс на вечное повторение с начальным временем now
R1(config)# ip sla monitor schedule 77 life forever start-time now

И настраиваем процесс ( track с номером 77 ) слежения за IP SLA ( за 77-м монитором )
R1(config)#track 77 rtr 77 reachability

Notes: С изменением IOS синтаксис может быть более изменённым и более упрощённым
ip sla 77
icmp-echo 200.200.200.2 source-ip
213.22.2.2 
timeout 1000
threshold 3
frequency 5

ip sla schedule 77 life forever start-time now

-----------------------------------------------------------------------------------

4) Прописываем маршрутизацию
ip route 0.0.0.0 0.0.0.0 213.22.2.1 track 77
ip route 0.0.0.0 0.0.0.0 213.22.1.1 254

 -----------------------------------------------------------------------------------

5) Тестирование ( или что там такое за сценой )

а) Штатный режим работы. Пинги проходят каждые 5 секунд как в аптеке :)
Заметим что есть ответный REPLY -- это важно!

Маршрутизация выглядит так

R1#sh ip ro
 
     200.200.200.0/32 is subnetted, 1 subnets
S       200.200.200.2 [1/0] via 213.22.2.1

     213.22.1.0/30 is subnetted, 1 subnets
C       213.22.1.0 is directly connected, FastEthernet1/0
     213.22.2.0/30 is subnetted, 1 subnets
C       213.22.2.0 is directly connected, FastEthernet0/1
     10.0.0.0/24 is subnetted, 1 subnets
C       10.0.1.0 is directly connected, FastEthernet0/0
S*   0.0.0.0/0 [1/0] via 213.22.2.1
Выделены: статический маршрут для пинга и дефолт gateway на 213.22.2.1 поскольку track достижим


б) Кладём линк R2 F0/1 ( либо R1 F0/1 не имеет никакого значения, SLA всё равно отработает)
В данной ситуации смотрим именно падение линка на R2 F0/1 и, как следствие, потерю маршрута до пингуемого хоста.


Видим на порту R1 F0/1, появился ответ, destination host unreachable




Маршрутизация стала такой


R1#sh ip ro
     200.200.200.0/32 is subnetted, 1 subnets
S       200.200.200.2 [1/0] via 213.22.2.1
     213.22.1.0/30 is subnetted, 1 subnets
C       213.22.1.0 is directly connected, FastEthernet1/0
     213.22.2.0/30 is subnetted, 1 subnets
C       213.22.2.0 is directly connected, FastEthernet0/1
     10.0.0.0/24 is subnetted, 1 subnets
C       10.0.1.0 is directly connected, FastEthernet0/0
S*   0.0.0.0/0 [254/0] via 213.22.1.1
6) Конечный конфиг роутера

R1(config)#do sh run
...
!
!
ip sla monitor 77
 type echo protocol ipIcmpEcho 200.200.200.2 source-ipaddr 213.22.2.2
 timeout 1000
 threshold 5
 frequency 5
ip sla monitor schedule 77 life forever start-time now
!
track 77 rtr 77 reachability
!
interface FastEthernet0/0
 ip address 10.0.1.254 255.255.255.0
 ip nat inside
 ip virtual-reassembly
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 213.22.2.2 255.255.255.252
 ip nat outside
 ip virtual-reassembly
 duplex auto
 speed auto
!
interface FastEthernet1/0
 ip address 213.22.1.2 255.255.255.252
 ip nat outside
 ip virtual-reassembly
 duplex auto
 speed auto
!
!
ip local policy route-map echo
!
ip route 0.0.0.0 0.0.0.0 213.22.2.1 track 77
ip route 0.0.0.0 0.0.0.0 213.22.1.1 254
ip route 200.200.200.2 255.255.255.255 213.22.2.1
!
!
ip nat inside source route-map isp1 interface FastEthernet0/1 overload
ip nat inside source route-map isp2 interface FastEthernet1/0 overload
!
!
ip access-list extended RouteNAT
 permit ip 10.0.1.0 0.0.0.255 any
access-list 101 permit icmp any host 200.200.200.1 echo
!
route-map echo permit 10
 match ip address 101
 set interface FastEthernet0/1
!
route-map isp2 permit 20
 match ip address RouteNAT
 match interface FastEthernet1/0
!
route-map isp1 permit 10
 match ip address RouteNAT
 match interface FastEthernet0/1
!
...
!
end

R1(config)#

7) Заметки

Если используется схема с двумя треками нужно использовать комбинацию reachabilty и state
CoreRouter(config)#track 1 rtr 10 state
CoreRouter(config-track)# delay down 20 up 20 
CoreRouter(config-track)#track 2 rtr 20 reachability 
CoreRouter(config-track)# delay down 20 up 20 
CoreRouter(config-track)#exit
--------------------
 
Если сообщение в логах появляться не будут, включить
debug track

-------------------

track 55 rtr 55 reachability
delay down 20 up 40

 Через 20 сек. после потери пингов track будет в состоянии down и через 40 сек. после появления пингов в состоянии up.

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

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