Всем привет, решил поднять довольно актуальную тему на предмет коммутатора 3го уровня dl3627. Сам коммутатор достаточно функционален и позволяет многое делать - на пример быть маршрутизатором, отдавать sflow поток в коллектор и ограничивать доступ клиентов. У меня задачи следующие - клиент приходит на коммутатор 2го уровня (dl3010 и dl3026) - после чего попадает в свой индивидуальный вилан и идет на коммутатор 3го уровня (dl3627 или dl3612) в тегированной виде попадая на свой ip интерфейс - онже шлюз. Таким образом - я человеку могу выделять серый ip - былый ip - серую сеть - белую сеть.
Вроди все замечательно и,т,д. Но когда начал ковырять и скуривать это с билингом - наткнулся на несколько проблемм - у этой модели органичение по количеству записей в ACL - а именно: всего 14 профайлов и в них можно засунуть всего по 128 правил. Покапавшись на форуме нашел этот
http://wiki.bgbilling.ru/index.php/%D0%A0%D0%B5%D0%B0%D0%BB%D0%B8%D0%B0%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2%D0%B3%D0%BE_%D1%88%D0%BB%D1%8E%D0%B7%D0%B0_%D0%B4%D0%BB%D1%8F_%D0%BA%D0%BE%D0%BC%D0%BC%D1%83%D1%82%D0%B0%D1%82%D0%BE%D1%80%D0%BE%D0%B2_DES-3526%2C_DES-3550%2C_DES-3828%2C_DES-3852%2C_DGS-3200-10_%D0%B8_%D0%B8%D0%BC_%D0%BF%D0%BE%D0%B4%D0%BE%D0%B1%D0%BD%D1%8B%D1%85
На нем идут привязки по ip и портам, взял его за основу - ни чего особо не менял - поменял только правила открытия и закрытия шлюза - в меру своих знаний пхп ну и кое что подсказали конечн:
String [] openRules = new String [] {
// Разрешаем клиентскому вилану ходить куда угодно
// Соответственно надо выдать клиенту profile_id и access_id - путем обработки перменной ${port} (Спасибо Коше)
sprintf("config access_profile profile_id %s add access_id %s ip vlan %s port 1-22 deny", substr( ("0" . ${port}) , -4 , 2) , substr( ${port} , -2 , 2) , ${port} ) };
String [] closeRules = new String [] {
// Запрещаем клиентскому вилану ходить куда угодно, то есть убираем соответствующую запись из ACL
sprintf("config access_profile profile_id %s delete access_id %s", substr( ("0" . ${port}) , -4 , 2) , substr( ${port} , -2 , 2) ) };
Все остольное не трогал.
Принцип работы следующий - в последнем профайле пишем все разрешенное клиенту и последним правилом соответственно пишем запрет на всех портах куда угодно - конечно моно указать скорость, при добавлении шлюза к договору указываем ip а в граве порт - указываем номер вилан на который приходит клиент (у меня это сделано просто - к примеру если клиент входит в коммутатор 2го уровня по второй порт и приходит на коммутатор 3го уровня в 4й то вилан у него будет 403 и,т,д) при открытии шлюза - его вилан получит разрешение на все записавшись в какой нибудь профайл, при закрытии соответственно строчка из ACL должна убраться
Сам вот скоро буду проверять - но думаю что сразу работать не будет - потому как в изначальном скрипте существуют понятия типа открытый адрес, аплинки и профайлы там зарезервированы под ту схему
Может кто сделает полную версию идеи - то есть вырежет лишнее, думаю будет полезно не только мне)
P.S. Исходя из внутренних ограничений по количеству ACL и ip интерфейсов, а также цены - выгодонее все таки dl3612 а не dl3627