forum.bitel.ru
http://forum.bitel.ru/

[Inet 6.1] Управление доступом с помощью ACL по SNMP
http://forum.bitel.ru/viewtopic.php?f=44&t=10361
Страница 1 из 1

Автор:  Bakuyaku [ 02 апр 2015, 16:58 ]
Заголовок сообщения:  [Inet 6.1] Управление доступом с помощью ACL по SNMP

Приветствую.

В связи с преходом на L3-авторизацию в нашей компании сейчас планируется использование управления доступом абонентов с помощью ACL вместо Address_Binding'a. Кто-нибудь сталкивался с управлением ACL по SNMP с помощью bgbilling?

Собственно, сама задача.
Дано: BGBilling v6.1, модуль Inet, ISG L3-авторизация по сочетанию MAC:Port коммутатора (D-Link DES-3028 и DES-3200-2X A|C revision) .

На домовых узлах для абонентов отведены порты 1-24, в данный момент используется address_binding:

Код:
enable address_binding dhcp_snoop
enable address_binding trap_log
config address_binding ip_mac ports 1-24 state enable strict allow_zeroip enable forward_dhcppkt enable
config address_binding ip_mac ports 1-28 mode arp stop_learning_threshold 500 
config address_binding dhcp_snoop max_entry ports 1-23 limit 1
config address_binding dhcp_snoop max_entry ports 24 limit 5
config address_binding ip_mac ports 25-28 state disable allow_zeroip disable forward_dhcppkt enable
config address_binding dhcp_snoop max_entry ports 25-28 limit no_limit


ACL, которым планируем рулить доступ:

Код:
create access_profile profile_id 2 ip source_ip_mask 0.0.0.0
config access_profile profile_id 2 add access_id (PORT) ip source_ip (IP из сессии) port (PORT) permit


Для управления по SNMP используются следующие OID'ы:

Удаляет правило с (PORT) порта

Код:
snmpset -c private -v 2c 10.XX.XX.XX .1.3.6.1.4.1.171.12.9.3.2.1.22.2.(PORT) i 6


Добавляет правило PERMIT для (PORT) порта с IP 192.168.1.11

Код:
snmpset -c private -v 2c 10.XX.XX.XX 1.3.6.1.4.1.171.12.9.3.2.1.4.2.(PORT) a 192.168.1.11 1.3.6.1.4.1.171.12.9.3.2.1.21.2.(PORT) x 0002000000000000 1.3.6.1.4.1.171.12.9.3.2.1.20.2.(PORT) i 2 1.3.6.1.4.1.171.12.9.3.2.1.22.2.(PORT) i 4


Требуется: настроить автоматическое навешивание ACL с помощью биллинга при поднятии сессии посредством SNMP.

Расскажите, кто сталкивался? Какие есть подводные камни? Если кто-то тоже сидит на D-Link DES-32XX или DES-3028, подскажите, как боролись с глюками address_binding'a.

В идеале мы видим это так:
Биллинг получает запрос от абонента (dhcp_relay на домовом коммутаторе)
Биллинг отдаёт параметры сессии абоненту и навешивает ip source_ip ACL на порт коммутатора
Абонент счастлив, мы тоже.

Если кто-то поборол address_binding и заставил его работать без плясок с активаторами сервиса и навешиванием ACL, подскажите, пожалуйста, варианты.

Автор:  snark [ 09 апр 2015, 13:58 ]
Заголовок сообщения:  Re: [Inet 6.1] Управление доступом с помощью ACL по SNMP

Если хочешь спокойно работать, то я бы посоветовал сделать так:
Рисуем ACL примерно такого вида (можно добавить резку нетбиоса и прочего мракософтовского гуано)
Код:
# разрешаем DHCP
# это правило необходимо из-за "profile_id 4" который заблочит ВЕСЬ трафик
# только в DES-3526/3550 DHCP relay работал _до_ ACL
# в новых блинках DHCP relay работает _после_ ACL, поэтому "profile_id 4" зарежет DHCP запросы
create access_profile                                        ip udp src_port_mask 0xffff dst_port_mask 0xffff profile_id 1
config access_profile profile_id 1 add access_id auto_assign ip udp src_port          68 dst_port          67 port 1-24 permit
config access_profile profile_id 1 add access_id auto_assign ip udp src_port          67 dst_port          68 port 1-24 deny


# разрешаем ARP
# это правило, опять же, необходимо из-за "profile_id 4" который заблочит ВЕСЬ трафик
# я, конечно, могу ошибаться и поэтому советую попробовать с ним и без него
create access_profile                                       ethernet ethernet_type profile_id 2       
config access_profile profile_id 2 add access_id 1 ethernet ethernet_type 0x806 port 1-24 permit


# разрешаем конкретный (маска 255.255.255.255) пользовательский IP адреса на конкретном порту
# в данном случае номер порта в качестве номера access_id - это очень удобно! попробуй, еще захочешь ;)
create access_profile                                   ip source_ip_mask 255.255.255.255 profile_id 3
config access_profile profile_id 3 add access_id <port> ip source_ip      <IP адрес абонента> port <port> permit


# запрещаем вообще все
# мультик таки пролезет, т.к. он как бе весч в себе и на ACL ему фиолетово
create access_profile                              ethernet source_mac 00-00-00-00-00-00 profile_id 4
config access_profile profile_id 4 add access_id 1 ethernet source_mac 00-00-00-00-00-00 port 1-24 deny

Затем, используя TelnetServiceActivator просто редактируем ACL используя номер порта в качестве номера access_id
Код:
config access_profile profile_id 3 delete access_id <port>

Все будет работать как часы с меньшим количеством заморочек в виде подбирания OID-ов (блинк любит иногда что-то да поменять), параметров запроса и рисования конфигов под каждую отдельно взятую модель блинка.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/