UMGUM.COM (лучше) 

Cisco + IP SLA ( Cisco IOS IP Service Level Agreements - соглашения о методиках определения уровня обслуживания. )

17 октября 2010  (обновлено 31 января 2015)

OS: Cisco IOS 12.4/15.1, Cisco PIX/ASA IOS 6/7/8.

"Cisco IOS IP Service Level Agreements". Упрощённо - "Cisco SLA".

Традиционно аббревиатура (Cisco) SLA раскрывается как "Service Level Agreements", что я понимаю и перевожу как: "Соглашения о методиках определения уровня обслуживания". Насколько я понимаю, технология SLA выросла из технология RTR ("Round Trip Reporter"), набора агентов, информирующий о задержках трафика в сети; следы технологии RTR остаются в наборе команд SLA в виде аргументов в виде "rtr". В зависимости от версии IOS команды по конфигурированию SLA различаются, что говорит о непрерывном развитии таковой, но общий подход неизменен.

"Cisco SLA" даёт возможность клиентам контролировать гарантии пропускной способности провайдера в эксплуатации критичных к задержкам данных приложений. "Cisco SLA" была разработана для повышения уровня мониторинга IP-инфраструктуры. "Cisco SLA" использует активный метод контроля, генерируя трафик непрерывным и предсказуемым способом, позволяя таким образом измерить производительность и качество сети. Принцип действия технологии достаточно прост - маршрутизатор на одной стороне канала генерирует трафик с заданными параметрами, а маршрутизатор на второй стороне канала выступает в роли ответчика. На данный момент технология поддерживает множество тестов, таких как: "DHCP Operation", "DLSW Operation", "DNS Query Operation", "Echo Operation", "Perform frame relay operation", "FTP Operation", "HTTP Operation", "Jitter Operation", "Path Discovered Echo Operation", "Path Discovered Jitter Operation", "SLM Operation", "TCP Connect Operation", "UDP Echo Operation", "Voice Over IP measurement".

В общем, технология отличная, возможности впечатляющие и описание их тянет на отдельную книгу, а я понимаю, что разогнался и забыл о том, что собирался выложить не более, чем шпаргалку для своих сотрудников о том, как в нашей простейшей приватной сети осуществлять переключение каналов между основным и резервным.


Для этого мы воспользуемся простейшим и первейшим тестом из набора методов, а именно: "Echo Operation". Тест прост и эффективен в сетях с утилизацией не более 80% и качественным магистральным оборудованием, которое не допускает беспричинной потери пакетов. В случае, если на канале "нормальна" потеря ICMP пакетов, следует применить тест "Jitter Operation", который реагирует не на потерю серии пакетов, а на изменение качества их доставки. Правда, в случае применения теста "Jitter Operation" придётся настраивать "ответчика" (который будет отвечать на запросы инициатора теста) на удалённой стороне, в отличии от "Echo Operation", который такового не требует.

Предположим, мы имеем два канала передачи данных между двумя сегментами сети. Один из каналов основной, надёжный, но низко-скоростной, а второй не особо надёжный, но имеющий гораздо лучшие показатели в плане скорости передачи данных. Так вот, по мере возможности будем использовать второй канал, при "падении" которого следует отрабатывать переход к первому каналу:

Адресация первого канала:  10.10.1.1 - 10.10.1.2;
Адресация второго канала:  10.10.2.1 - 10.10.2.2.

И так, для маршрутизатора Cisco код выглядит следующим образом:

!* Базовая конфигурация интерфейса, смотрящего в первый канал передачи данных
interface FastEthernet0/0
  !* Используем адрес из опорной сети провайдера
  ip address 10.10.1.1 255.255.255.0
  no shutdown
  no ip route-cache
exit
!* Базовая конфигурация интерфейса, смотрящего во второй канал передачи данных
interface FastEthernet0/1
  !* Используем адрес из опорной сети провайдера
  ip address 10.10.2.1 255.255.255.0
  no shutdown
  no ip route-cache
exit

!* Инициируем SLA монитор под произвольным порядковым номером - идентификатором (таких "мониторов" может быть много)
ip sla 1
  !* Инициируем тест по заданному направлению от соответствующего сетевого интерфейса
  icmp-echo 10.10.2.2 source-interface FastEthernet0/1
   !* Периодичность запуска теста (в секундах)
   frequency 5
   !* Время ожидания ответа до признания его утерянным (в миллисекундах)
   timeout 5000
exit
!* Определяем параметры "планировщика" "монитора" на непрерывную работу с немедленным запуском задачи
ip sla schedule 1 life forever start-time now
!* Привязываем результат отработки теста "монитора" в некому "трекеру", состояние которого напрямую влияет на выбор статического маршрута в дальнейшем (здесь "101" - идентификатор "трека", а "1" - идентификатор "монитора" для исходных данных)
track 101 rtr 1 reachability
exit

!* Описываем маршрут по умолчанию, через "медленный" надёжный канал (метрика "253" - экстремальна, можно обойтись и существенно меньшими значениями)
ip route 0.0.0.0 0.0.0.0 10.10.1.2 253

!* Описываем маршрут через "быстрый" ненадёжный канал, буде тот в рабочем состоянии
ip route 0.0.0.0 0.0.0.0 10.10.2.2 track 101

После запуска "монитора" просмотреть его состояние можно с помощью набора команд "show track":

# show track brief

Track   Object      Parameter        Value Last Change
101     rtr    1    reachability     Down  20:59:03
102     rtr    2    reachability     Up    20:58:43
103     rtr    3    reachability     Down  20:58:45
104     rtr    4    reachability     Up    15:13:52
105     rtr    5    reachability     Up    20:58:13
....

После того, как маршрут окажется задействованным в соответствии с состоянием "трека", его можно увидеть в специально таблице:

# show ip route track-table

ip route 192.168.2.0 255.255.255.0 10.10.2.2 track 101 state is [down]
ip route 192.168.3.0 255.255.255.0 10.10.3.2 track 102 state is [up]
ip route 192.168.4.0 255.255.255.0 10.10.4.2 track 103 state is [down]
ip route 192.168.5.0 255.255.255.0 10.10.5.2 track 104 state is [up]
ip route 192.168.6.0 255.255.255.0 10.10.6.2 track 105 state is [up]
....

Для сетевого экрана Cisco ASA или PIX код выглядит следующим образом:

!* Базовая конфигурация интерфейса, смотрящего в первый канал передачи данных
interface Ethernet0/0
  nameif outside0
  !* Используем адрес из опорной сети провайдера
  ip address 10.10.1.1 255.255.255.0
  no shutdown
exit
!* Базовая конфигурация интерфейса, смотрящего во второй канал передачи данных
interface Ethernet0/1
  nameif outside1
  !* Используем адрес из опорной сети провайдера
  ip address 10.10.2.1 255.255.255.0
  no shutdown
exit

!* Отключаем опцию "verify reverse-path" для интерфейсов каналов передачи данных (затруднюсь в полной мере объяснить здесь, зачем, но иначе "SLA Monitor" не отрабатывает в случае проблем маршрутизации пакетов на стороне провайдера, например, а не просто физического "падения" линка)
no ip verify reverse-path interface outside0
no ip verify reverse-path interface outside1

!* Инициируем SLA монитор под произвольным порядковым номером - идентификатором (таких "мониторов" может быть много)
sla monitor 1
  !* Инициируем тест по заданному направлению от соответствующего сетевого интерфейса
  type echo protocol ipIcmpEcho 10.10.2.2 interface outside1
  !* Периодичность запуска теста (в секундах)
  frequency 5
  !* Количество отправляемых пакетов в рамках одного теста
  num-packets 10
  !* Время ожидания ответа до признания его утерянным (в миллисекундах)
  timeout 5000
exit
!* Определяем параметры "планировщика" "монитора" на непрерывную работу с немедленным запуском задачи
sla monitor schedule 1 life forever start-time now
!* Привязываем результат отработки теста "монитора" в некому "трекеру", состояние которого напрямую влияет на выбор статического маршрута в дальнейшем (здесь "101" - идентификатор "трека", а "1" - идентификатор "монитора" для исходных данных)
track 101 rtr 1 reachability

!* Описываем маршрут по умолчанию, через "медленный" надёжный канал (метрика "253" - экстремальна, можно обойтись и существенно меньшими значениями)
route outside0 0.0.0.0 0.0.0.0 10.10.1.2 253

!* Описываем маршрут через "быстрый" ненадёжный канал, буде тот в рабочем состоянии
route outside1 0.0.0.0 0.0.0.0 10.10.2.2 track 101


Заметки и комментарии к публикации:


Оставьте свой комментарий ( выразите мнение относительно публикации, поделитесь дополнительными сведениями или укажите на ошибку )