отмена
Отображаются результаты для 
Вместо этого искать 
Вы имели в виду: 
cancel
Объявления
Community Live

TimeBased shaping с использованием EEM и TCL

777
Просмотры
45
Полезный материал
0
Комментарии

Доброго всем времени суток. Хочу представить вам статью, которая расскажет об одном из вариантов шейпирования траффика по временным интервалам (Timebased Shaping) используя инструмент Event Manager и TCL скриптов.

Возможно данный вариант будет немного неудобен, но суть просто рассказать о функционале связки TCL+EEM. Данная связка как конструктор, ее можно усложнять разными интервалами, другими функциями. Или вообще использовать для других целей.

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

статья_2.png

Далее привожу конфигурацию маршрутизатора с коментариями.

!

! Для классификации траффика создаем листы доступа для каждого пользователя.

!

ip access-list extended client1

permit ip any host 10.0.0.1

ip access-list extended client2

permit ip any host 10.0.0.2

ip access-list extended client3

permit ip any host 10.0.0.3

ip access-list extended client4

permit ip any host 10.0.0.4

ip access-list extended client5

permit ip any host 10.0.0.5

!

!  Создаем класс-карты и привазываем к ним наши листы доступа.

!

class-map match-any client1

match access-group name client1

class-map match-any client2

match access-group name client2

class-map match-any client3

match access-group name client3

class-map match-any client4

match access-group name client4

class-map match-any client5

match access-group name client5

!

! Создаем Policy-MAP и указываем в ней раннее созданные Class-MAP. Но не указываем скорости, этот параметр будет добавлятся посредством TCL скриптов.

!

policy-map VLAN60-SHAPE-POLICY

class client1

class client2

class client3

class client4

class client5

!

! Применяем нашу политику шейпирования на интерфейсе смотрящим в VLAN60

!

interface GigabitEthernet0/0.60

encapsulation dot1Q 60

ip address 10.0.0.6 255.255.255.248

service-policy input VLAN60-SHAPE-POLICY

service-policy output VLAN60-SHAPE-POLICY

!

Теперь в текстовом редакторе создадим два файла скрипта. Первый(vlan60_shape_night.tcl) будет запускаться в 18:00 тем самым назначая скорости для периода 18:00-09:00. Второй(vlan60_shape_day.tcl) будет запускаться в 09:00, тем самым указывать скорости для периода 09:00-18:00.

После сохранения измените расширение с *.txt на *.tcl

Ниже содержимое файлов


Файл: vlan60_shape_day.tcl

! ios_config это оператор который выполняет в конфигурационном режиме  указанные в одной строчке комманды разделенные пробелом.

! Новая цепочка команд должна начинаться с новой строки.

ios_config "policy-map VLAN60-SHAPE-POLICY" "class client1" "police 10240000 conform-action transmit  exceed-action drop"

ios_config "policy-map VLAN60-SHAPE-POLICY" "class client2" "police 10240000 conform-action transmit  exceed-action drop"

ios_config "policy-map VLAN60-SHAPE-POLICY" "class client3" "police 10240000 conform-action transmit  exceed-action drop"

ios_config "policy-map VLAN60-SHAPE-POLICY" "class client4" "no drop" "police 2048000 conform-action transmit  exceed-action drop"

ios_config "policy-map VLAN60-SHAPE-POLICY" "class client5" "no drop" "police 2048000 conform-action transmit  exceed-action drop"

puts "OMG it WORKS"

Файл: vlan60_shape_night.tcl

ios_config "policy-map VLAN60-SHAPE-POLICY" "class client1" "police 2048000 conform-action transmit  exceed-action drop"

ios_config "policy-map VLAN60-SHAPE-POLICY" "class client2" "police 2048000 conform-action transmit  exceed-action drop"

ios_config "policy-map VLAN60-SHAPE-POLICY" "class client3" "police 30720000 conform-action transmit  exceed-action drop"

ios_config "policy-map VLAN60-SHAPE-POLICY" "class client4" "no police 2048000" "drop"

ios_config "policy-map VLAN60-SHAPE-POLICY" "class client5" "no police 2048000" "drop"

puts "OMG it WORKS"

Копируем оба файла на Flash или в моем случае disk2

Создаем апплет и планировщик задач(cron):

!

! В моем случае я использую TACACS+, поэтому указываю пользователя, от имени которого будет выполнятся апплет. Можно не вводить данную команду если вы используете локальную базу пользователей.

event manager session cli username "vitaliy"

! Создаем апплет с именем VLAN60_SHAPE_DAY

event manager applet VLAN60_SHAPE_DAY

! Аналагично как в Юникс системах указываем время в которое должен срабатывать данный апплет. ( минуты(00) часы(09) дни(*) месяца(*) года(*))

event timer cron cron-entry "00 09 * * *"

! Т.к. апплет начинает работу в режиме >, мы вводим его в режим #

action 1 cli command "enable"

! Команда выполнения скриптов работает в режиме #. Запускаем ее и указываем точное расположение файла. В моем случае с 7206 это disk2:

action 2 cli command "tclsh disk2:vlan60_shape_day.tcl"

!

Создаем аналогичный апплет только для запуска вечернего скрипта

!

event manager applet VLAN60_SHAPE_NIGHT

event timer cron cron-entry "00 18 * * *"

action 1 cli command "enable"

action 2 cli command "tclsh disk2:vlan60_shape_night.tcl"

!

Очень важно чтобы ваше время на маршрутизаторе было точным. Для етого указываем ему сервер с которого он будет брать точное время.

ntp server A.B.C.D prefer

При поиске несиправностей вам помогут следующие команды:

debug event manage action cli

debug event manager tcl commands


Не забываем оценивать если данная статья вам чем-то помогла

Создать
Выразить признание своим коллегам
Опросы
Какой контент Вы хотели бы чаще видеть в Сообществе?
Content for Community-Ad

Сообщество Cisco

Помощь по сообществу