Поиск по этому блогу

воскресенье, 14 ноября 2010 г.

Automatic generation policy-map Part 1

Предыстория

Исторически так сложилось, что в нашей сети на старых узлах доступа, которые остались еще с одной из первых компаний-провайдеров Нижнего Новгорода, скорость у клиентов резалась на портах доступа. (Обычно это был Dlink DES-3028). Беда в том, что 3028 как то глючно режет скорость аплода, плюс ко всему это не автоматизировано. Когда клиент меняет тариф, продажники пишут письмо, админы правят скорость на порту. Эта цепь могла в любой момент прерваться по разным причинам (все мы люди….).  В один прекрасный момент ко мне подошел мой начальник со словами, ну что, Тимур….при слове perl все уже ассоциируется с тобой, я сразу почувствовал что он задумал что-то плохое))). Короче я понял, что мне придется участвовать в разработке сервиса, который будет автоматизировано менять скорость доступа к СПД у абонентов.
Было решено, что скорость теперь будем резать на оборудовании Cisco, т.к. в любой момент может прийти инженер из ремонта, и заменить порт доступа абонента по различным причинам(например он выгорел), ничего не сказав нам, следовательно привязка к порту была бы неверной, и скорость обновлялась бы на выгоревшем порту. Да и в любой момент времени сверху могут спустить, что на уровне доступа теперь не Dlink а например ZTE, а агрегацию и ядро сети вряд ли будут менять на китайское оборудование.




Поехали
Что мы имеем:
·        Каждый такой узел имеет свою выделенную для него подсеть, клиентам адреса выделяются из нее.
·        Будем использовать perl, gmake.
·        Файлы для обработки будут формироваться отдельно, нашим биллингом.
·        Policy-map можно применять как на L2, так и на L3 интерфейсе.(Это нужно учитывать при генерации конфигурации)
·        Будем генерить конфиг, потом загружать его на Киску по snmp.


Так как используем Gmake, опишем зависимости

[SC-000003.data] – этот файл генерится для каждой услуги. SpeeedConf – имя policy-map, 10240000 – скорость, и IP которые привязаны к услуге. Название файла – SC-ID_услуги_клиента.data 
SpeeedConf,10240000,172.22.227.253,172.22.227.240/29

На основе вержнего файла генерится IP access lists, class-map
[SC-000003.class-map] from [SC-000003.data]
no ip acess list extended SC-000003
ip acess list extended SC-000003
 permit ip host 172.22.227.253
 permit ip 172.22.227.240 0.0.0.7

no class map match-any SC-000003
class map match-any SC-000003
  match access-group name SC-000003

[SpeedConf.depend]
SpeedConf.policy-map:SC-000003.data


Тут генерится вся policy-map
[SpeedConf.policy-map] from [SC-000003.data]
interface Vlan28
   no service-policy input SpeedConf
   no service-policy output SpeedConf

no policy-map SpeedConf

no ip acess list extended SC-000003
ip acess list extended SC-000003
 permit ip host 172.22.227.243
 permit ip 172.22.227.240 0.0.0.7

no class map match-any SC-000003
class map match-any SC-000003
  match access-group name SC-000003

policy-map SpeedConf
 class SC-000003
    police 10 mbps 2 mbyte conform-action transmit exceed-action drop

interface Vlan28
   service-policy input SpeedConf
   service-policy output SpeedConf

 
[iap-1.shapers.depend]
iap-1.shapers:SpeedConf.policy-map

Тут речь идет уже о конкретном устройстве. Ведь на одном устройсве может термитироваться и ограничиваться любое количество сетей. Это уже конечный конфиг для устройства.
[iap-1.shapers] from [SpeedConf.policy-map]

interface Vlan28
   no service-policy input SpeedConf
   no service-policy output SpeedConf

no policy-map SpeedConf

no ip acess list extended SC-000003
ip acess list extended SC-000003
 permit ip host 172.22.227.243
 permit ip 172.22.227.240 0.0.0.7

no class map match-any SC-000003
class map match-any SC-000003
  match access-group name SC-000003

policy-map SpeedConf
 class SC-000003
    police 10 mbps 2 mbyte conform-action transmit exceed-action drop

interface Vlan28
   service-policy input SpeedConf
   service-policy output SpeedConf





Пока все. В следующей статье буду описывать реализацию более подробно.








1 комментарий:

  1. Если кому интересен данный материал. Пишите сюда либо на мыло мне.

    ОтветитьУдалить