Модифицированный скриптовый шлюз для DES-3526 и подобных
Материал из BiTel WiKi
Данный скрипт написан на основе скрипта Реалиазация_скриптовго_шлюза_для_коммутаторов_DES-3526,_DES-3550,_DES-3828,_DES-3852,_DGS-3200-10_и_им_подобных.
Содержание |
Задача
При разработке данного скрита решались следующие задачи:
1)уменьшение объема скрипта за счет унификации кода, выполняемого при разных командах (открытие, закрытие, удаление);
2)разделение кода скрипта и правил для коммутатора;
3)возможность добавления нескольких ip-адресов на один порт.
Недостатки и недоделки
1) правила для коммутатора вводятся все-таки в текст скрипта, а не в конфигурацию шлюза
2) нельзя прописать один порт для разных договоров
3) все манипуляции с IP-адресами договора надо проводить при состоянии его шлюза в положении удален (иначе некоторые записи в коммутаторе останутся до его перезагрузки)
4) подключение к свитчу занимает 5 секунд (наверное это уже проблема в в биллинге - возможно он лезет к DNS)
5) скрипт не проверяет текущее состояние коммутатора, а каждый раз загружает в него нужные команды
6) в боевом режиме оно еще не проверялось
7) не проверялось работа с ipn_dhcp (option82) - предполагается что при одном адресе на порт клиент будет автоматически получать IP, а при нескольких адресах (а это не является массовой услугой) прописывать адреса вручную
Предварительная настройка коммутатора
# этим правилом мы будем разрешать arp_reply c адресом абонента # это правила нужно тк абоненты (или вирусы на их компах) частенько присваивают себе адрес шлюза create access_profile packet_content_mask offset_0-15 0x0 0x0 0x0 0x0 offset_16-31 0xFFFF0000 0x0 0xFFFF0000 0x0 offset_32-47 0xFFFFFFFF 0x0 0x0 0x0 profile_id 20 #блокировка dhcp ответов и разрешение dhcp запросов (они могут отправляться не с адреса пользователя) create access_profile ip udp dst_port_mask 0xFFFF profile_id 30 config access_profile profile_id 30 add access_id 1 ip udp dst_port 68 port 1 deny ... config access_profile profile_id 30 add access_id 24 ip udp dst_port 68 port 24 deny config access_profile profile_id 30 add access_id 101 ip udp dst_port 67 port 1 permit ... config access_profile profile_id 30 add access_id 124 ip udp dst_port 67 port 24 permit #правило для разрешения доступа пользователя к сети create access_profile ip source_ip_mask 255.255.255.255 profile_id 40 #правило для разрешения доступа пользователя к статистике create access_profile ip source_ip_mask 255.255.255.255 destination_ip_mask 255.255.255.0 profile_id 50 #разрешение arp-запросов #блокируем всю остальную активность пользователя create access_profile ethernet source_mac 00-00-00-00-00-00 profile_id 200 config access_profile profile_id 200 add access_id 1 ethernet source_mac 00-00-00-00-00-00 port 1 deny config access_profile profile_id 200 add access_id 24 ethernet source_mac 00-00-00-00-00-00 port 24 deny
коммутатор будет работать с профилями с номерами 20, 40, 50 при открытии шлюза добавляются правила 20, 40 и удаляется правило 50 при закрытии шлюза добавляются правила 20, 50 и удаляется правило 40 при удалении шлюза удаляются правила 20, 40, 50