The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Динамическое управление маршрутизатором CISCO (cisco acl snmp)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: cisco, acl, snmp,  (найти похожие документы)
From: Владислав Пинженин <http://www.lanbilling.ru>; Date: Mon, 16 May 2003 13:01:37 +0000 (UTC) Subject: Динамическое управление маршрутизатором CISCO Оригинал: http://www.lanbilling.ru/acl_solution.html Динамическое управление маршрутизатором CISCO Systems Решение, описанное в данной статье, позволяет в режиме реального времени управлять доступом клиентов (фильтровать трафик абонентов) через маршрутизатор CISCO Systems. Подобная задача возникает, например, при необходимости отключать или подключать абонентов к услуге в зависимости от какого-либо условия без прерывания доступа всех остальных абонентов. Например, в зависимости от состояния лицевого счета абонента. Применительно к LANBilling, поставленная задача запуском внешних исполняемых процедур может решаться только частично. А именно, LANBilling запускает на исполнение внешние исполняемые файлы (скрипты) при наступлении важных событий в системе с точки зрения управления доступом (блокировка/разблокировка абонента, создание/удаление группы), однако, для решения поставленной задачи только лишь применением скриптов обойтись нельзя. Поставленная задача подразумевает управление маршрутизатором удаленно. Есть несколько способов управления маршрутизатором удаленно - RSH, SNMP. Первый способ позволяет передавать на маршрутизатор команду, однако, не позволяет исполнить на маршрутизаторе последовательность команд, например, попытка исполнить последовательность conf t ; int E0/0 потерпит неудачу. RSH удобно использовать для просмотра информации о маршрутизаторе. Для управления маршрутизатором мы выбрали второй способ по причине того, что в методе, описанном в этой статье, используется загрузка последовательности команд (а именно, активной конфигурации с TFTP сервера) чего средствами RSH сделать невозможно, ввиду того, что даже команда загрузки конфигурации через TFTP потребует дополнительного ввода с консоли. Для того, что бы иметь возможность управлять маршрутизатором удаленно необходимо в первую очередь провести соответствующую настройку маршрутизатора, а именно, дать маршрутизатору понять с какого IP адреса и с каким паролем (community string) им будут управлять уполномоченные лица. Проще всего показать необходимые настройки в виде команд подлежащих исполнению в режиме конфигурации с терминала: snmp-server community password RW Где password пароль, который будет применяться при конфигурировании. Для того, что бы ограничить доступ по SNMP к маршрутизатору, мы применяем соответствующий extended access list. Для обновления конфигурации маршрутизатора используется файл, содержащий активную конфигурацию маршрутизатора. Данный файл должен находиться в корневой директории уже настроенного TFTP сервера (мы используем tftpd, входящий в комплект поставки Linux). Файл, о котором идет речь, редактируется посредством исполняемых файлов системы контроля доступа, причем не на прямую, а с помощью редактора ACL - LANBilling Cisco Access Control List Editor, служебной утилиты, входящей в комплект поставки LANBilling, предназначенной для вставки и удаления необходимых записей в соответствующий лист доступа по сигналу скрипта (исполнительного механизма) системы контроля. Файлы, необходимые для загрузки листов доступа на маршрутизатор CISCO, называются: vg.on.rsh и vg.off.rsh. Содержимое файлов показано ниже: vg.on.rsh: #!/bin/sh # # $1 - ip # $2 - mask # $3 - allow addr /usr/local/billing/LBacledit 1 $1 $2 $3 > /usr/local/billing/LBacledit.log exit 0 vg.off.rsh: #!/bin/sh # # $1 - ip # $2 - mask # $3 - allow addr /usr/local/billing/LBacledit 0 $1 $2 $3 > /usr/local/billing/LBacledit.log exit 0 Также как и в других файлах vg.on/off LANBilling передает скриптам несколько (3) параметров - адрес клиента (IP или сегмент), маску, в соответствии с которой указан адрес клиента и IP адрес ресурса, на котором функционирует клиентский интерфейс системы LANBilling, на который в случае отключения клиента от услуги желательно оставить возможность доступа для получения клиентом информации о состоянии своего лицевого счета. LBacledit воспринимает несколько параметров командной строки, описание которых приведено в подсказке при запуске редактора. LANBilling v.1.7 access control list editor for Cisco routers. ER3, 23.04.2003 usage: LBacledit [-h] mode ip netmask allowaddress where: mode = 0 (lock ip), 1 (unlock ip) ip = user ip address netmask = user network mask allowaddress = billing user interface ip address to which access will not be blocked Основным параметром редактора является первый, указывающий режим редактирования - либо предоставление доступа (значение 1) либо отключение доступа (значение 0). LBacledit требует предварительной настройки маршрутизатора, чтобы утилита смогла распознать тот лист доступа, в который необходимо вставлять записи управляющие доступом абонентов. В первую очередь необходимо указать, что номер листа доступа должен быть 101 (это жестко указанное условие в дальнейших обновлениях будет конфигурируемым параметром). Этот лист доступа должен быть назначен на внутренний интерфейс маршрутизатора следующей командой в режиме конфигурации с терминала привелегированного режима: ip access-group 101 in Помимо этого требуется создать заготовку листа доступа содержащего как минимум две команды. Первая, разрешающая доступ для тех сетей, услуга которым предоставляется безусловно, вторая блокирующая весь остальной трафик. Пример подобной заготовки листа доступа приведен ниже. Обратите внимание на директиву no access-list 101 в начале листа доступа, она необходима для корректной загрузки списка из файла активной конфигурации. no access-list 101 access-list 101 permit ip host 192.168.2.3 any access-list 101 permit ip host 192.168.2.11 any access-list 101 permit ip 192.168.1.0 0.0.0.7 any access-list 101 deny ip any any Последним неконфигурируемым параметром LBacledit является местоположение и путь к файлу текущей конфигурации, который в данной версии должен быть /tftproot/active-config, в будущих обновлениях этот и несколько дополнительных параметров будут загружаться из командной строки или отдельного файла конфигурации. Логика работы LBacledit такова, что все необходимые инструкции для управления доступом, вставляются (или удаляется) в файл активной конфигурации выше, чем последняя директива, блокирующая доступ через интерфейс. При вставлении или удалении инструкций в файл активной конфигурации редактор листов доступа преобразует адреса и маски, переданные ему в качестве параметров, в формат используемый маршрутизатором. Например маска 255.255.255.248 будет преобразована в 0.0.0.7, а в лист доступа будет добавлена или удалена инструкция регулирующая доступ для целого сетевого сегмента, описанного адресом и соответствующей маской. LBacledit добавляет/удаляет не одну директиву в список доступа а две. Вторая директива описывает IP адрес ресурса, на который абоненту необходимо оставить доступ при его отключении от услуги. Эта директива необходимо, что бы абонент мог просматривать содержимое своего лицевого счета даже при заблокированном состоянии. Предполагается, что web интерфейс работает на 80 (http) порту. При запуске скриптов vg.on.rsh и vg.off.rsh, файл с активной конфигурацией, который должен находится в корневой директории уже настроенного TFTP сервера изменяется и подлежит загрузке на маршрутизатор. Есть два подхода к загрузке конфигурации на маршрутизатор - немедленно после изменения и через периодические интервалы времени с помощью crond. Мы предпочитаем использовать второй подход в связи с тем, что при достаточном количестве абонентов при первом подходе, загрузка активной конфигурации на маршрутизатор может стать очень частым событием, что не может положительно сказаться на стабильности работы маршрутизатора. Директива из /etc/crontab выглядит следующим образом: */5 * * * * root /usr/local/billing/put_config Где put_config - shell исполняемый файл, содержащий SNMP директиву, описанную чуть ниже. Для того чтобы дать команду маршрутизатору загрузить файл с конфигурацией с определенного TFTP сервера мы применяем следующую SNMP команду: snmpset -t 60 -c password А.А.А.А .1.3.6.1.4.1.9.2.1.53.В.В.В.В s active-config Где password - community string для управляемого маршрутизатора, находящегося по адресу A.A.A.A, а В.В.В.В адрес TFTP сервера, на котором располагается файл активной конфигурации маршрутизатора active-config. Команда snmpset входит в комплект поставки свободно распространяемого пакета UCD-SNMP, дистрибутив которого, как правило, имеется в поставке Unix. Утилита, описанная в данной статье, LBacledit может быть безвозмездно загружена с нашего сервера в разделе Поддержка -> Загрузка файлов -> Некоммерческие версии. (с) Сетевые решения, 2003 Владислав Пинженин

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру