BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 06 июл 2025, 04:43

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Скриптовы шлюз DL-3627
СообщениеДобавлено: 27 авг 2009, 05:34 
Не в сети

Зарегистрирован: 09 июн 2009, 05:35
Сообщения: 19
Карма: 0
Всем привет, решил поднять довольно актуальную тему на предмет коммутатора 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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скриптовы шлюз DL-3627
СообщениеДобавлено: 02 сен 2009, 04:39 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
root@sephiroth писал(а):
решил поднять довольно актуальную тему на предмет коммутатора 3го уровня dl3627.
...
у этой модели органичение по количеству записей в ACL - а именно: всего 14 профайлов и в них можно засунуть всего по 128 правил.

DGS-3612 и DGS-3627 имеют:
даташит писал(а):
Списки управления доступом (ACL)
- До 8 профилей
- До 1792 правил, каждое правило может применяться для своего собственного диапазона портов

чего при _правильном_ построении правил для агрегатора более чем достаточно ;)

root@sephiroth писал(а):
Исходя из внутренних ограничений по количеству ACL и ip интерфейсов, а также цены - выгодонее все таки dl3612 а не dl3627

никаких различий, кроме кол-ва портов между ними нет! как 3612 так и 3627 имеют:
даташит писал(а):
Функции 3 уровня
- Количество IP-интерфейсов: 255
- Количество IP-интерфейсов на VLAN (до 255)

т.е. никаких "внутренних ограничений"(с) нет, да и с чего бы им быть если чип внутри обоих одинаковый, разница только в кол-ве портов

при большом кол-ве оптических магистралей дешевле всего их аггрегировать с помощью DGS-3100-24TG и гнать трафик либо на 3612/27 либо еще куда ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скриптовы шлюз DL-3627
СообщениеДобавлено: 03 сен 2009, 07:56 
Не в сети

Зарегистрирован: 09 июн 2009, 05:35
Сообщения: 19
Карма: 0
"create access_profile profile_id <value 1-14> " - профайлов 14 - наверное от прошивки зависит, 3012 выгоднее чем 3027 тем - что на 3027 24 порта и столькоже ресурсов сколько и на 12ть, при воей задуманой схеме - этого маловато - ведь для каждого клиента прихоящего на агригатник - должен быть свой ip интерфейс + влан с которым он приходит - который в свою очередь является для него шлюзом до чего угодно - даже до соседа - таким образом моно обсчитывать даже внетренний трафик - и тому - кому реально не нужна сеть - а только инет - внутренний трафик моно тарифицировать - да и вообще гибкость возрастает на несколько порядков) - а вот представьте - что на каждый из портов приходяит по 20 или больше виланов - уже надо минимум 480 ip интерфейсов - при таком раскладе проще 3012 2 штуки - еще и дешевле выйдет)

Но я не об этом - так сказать его недостатки и достоинства можно долго обсасывать - мне реально нужно переделать скрипт приведенный в начале темы, таким образом чтобы правила запретов касались виланов. Сейчас опишу подробно задуманный алгоритм - если кому не трудно - переделайте под него скрипток - чтобы моно было уже полноценно пробовать и в дальнейшем использовать.
Для начала делаем 14 acl таблицу:
create access_profile profile_id 14 ip source_ip_mask 0.0.0.0 destination_ip_mask 255.255.255.255
Добавляем правила в 14ю таблицу и первыми строчками разрешаем статистику и главную страницу компании и днс на ограниченной скорости 5 мегабит
config access_profile profile_id 14 add access_id 1 ip source_ip 0.0.0.0 destination_ip 91.189.239.67 port 1-22 permit rx_rate 80
config access_profile profile_id 14 add access_id 2 ip source_ip 0.0.0.0 destination_ip 192.168.100.13 port 1-22 permit rx_rate 80
Последним правилом 14го профайла запрещаем все остольное
config access_profile profile_id 14 add access_id 128 ip source_ip 0.0.0.0 port 1-22 deny
Далее создаем на каждый порт разрешающие профайлы, я это вижу таким образом - что номер пройфайла есть номер порта:
create access_profile profile_id 1 ip vlan - то есть профайл у нас для тех виланов которые приходят на первый порт они имеют название примерно в следующем формате (по крайней мере у меня) vl101 - означает что клиент приходит в 1 порт своего коммутатор-ацессника и в первый порт агрегатника - vl102 - 2й порт своего ацессника и тоже в 1й порт агрегатника, думаю далее понятно как
Чтобы клиенту который имеет vl101 открыть полноценный доступ к сети и инету надо реализовать следующее правило:
config access_profile profile_id 1 add access_id 1 ip vlan vl101 port 1-22 permit
Чтобы закрыть - строчку надо убрать из профайла.
Так как в договоре пишется порт и ip-адрес- предлагаю в номер порта писать вилан - который и будет передаваться переменной - к примеру 101 и чтобы при применении паравил из этого вилан вычислялся его профайл и номер правила - то есть к примеру vl101 это будет 1 профайл первая строчка, vl1118 - 11 профайл 18я строчка и,т,д,

думаю вполне можно сделать что нибудь под это дело - самому очень надо - но перл не знаю(
Ручками эксперементировал - работает!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 03 сен 2009, 20:43 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
root@sephiroth писал(а):
"create access_profile profile_id <value 1-14> " - профайлов 14 - наверное от прошивки зависит

может быть ...

root@sephiroth писал(а):
мне реально нужно переделать скрипт приведенный в начале темы, таким образом чтобы правила запретов касались виланов. Сейчас опишу подробно задуманный алгоритм - если кому не трудно - переделайте под него скрипток - чтобы моно было уже полноценно пробовать и в дальнейшем использовать.

без обид, но я не думаю что тут найдется много желающих писать для кого-то скрипты ... Вам лучше в бител отбратится - они 100% напишут

root@sephiroth писал(а):
перл не знаю(

в БГБ скрипты на на яве, а точнее на биншелле


впрочем разговор не об этом, т.к. меня больше интересовала именно вот эта часть:
root@sephiroth писал(а):
Для начала делаем 14 acl таблицу:
create access_profile profile_id 14 ip source_ip_mask 0.0.0.0 destination_ip_mask 255.255.255.255
Добавляем правила в 14ю таблицу и первыми строчками разрешаем статистику и главную страницу компании и днс на ограниченной скорости 5 мегабит
config access_profile profile_id 14 add access_id 1 ip source_ip 0.0.0.0 destination_ip 91.189.239.67 port 1-22 permit rx_rate 80
config access_profile profile_id 14 add access_id 2 ip source_ip 0.0.0.0 destination_ip 192.168.100.13 port 1-22 permit rx_rate 80
Последним правилом 14го профайла запрещаем все остольное
config access_profile profile_id 14 add access_id 128 ip source_ip 0.0.0.0 port 1-22 deny
Далее создаем на каждый порт разрешающие профайлы, я это вижу таким образом - что номер пройфайла есть номер порта:
create access_profile profile_id 1 ip vlan - то есть профайл у нас для тех виланов которые приходят на первый порт они имеют название примерно в следующем формате (по крайней мере у меня) vl101 - означает что клиент приходит в 1 порт своего коммутатор-ацессника и в первый порт агрегатника - vl102 - 2й порт своего ацессника и тоже в 1й порт агрегатника, думаю далее понятно как
Чтобы клиенту который имеет vl101 открыть полноценный доступ к сети и инету надо реализовать следующее правило:
config access_profile profile_id 1 add access_id 1 ip vlan vl101 port 1-22 permit
Чтобы закрыть - строчку надо убрать из профайла.

давайте исходить из 2-х постулатов:
1. ACL работают в порядке их возрастания, т.е. правило 1 сработает раньше правила 2
2. Вы _обязаны_ всегда, в режиме 24/7/365 предоставлять доступ к статистике
исходя из этого рисовать правила думаю стоит так:
(пишу изходя из того что подозреваю отсутствие ACL на доступе)

Код:
# разрешаем (чтоб самому себе доступ не закрыть) VLAN в котором железо и преоретизируем его трафик (чтобы вы свое железо на доступе _всегда_ "увидели")
delete access_profile profile_id 1
create access_profile profile_id 1                           ip vlan
config access_profile profile_id 1 add access_id auto_assign ip vlan default port 1-22 permit priority 7 replace_priority replace_dscp 63

# если нетбиос Вам не нужен - пригодятся следующие 2 правила

# "левый" TCP траффик
delete access_profile profile_id 2
create access_profile profile_id 2                           ip tcp dst_port_mask 0xffff
config access_profile profile_id 2 add access_id auto_assign ip tcp dst_port         135 port 1-22 deny
config access_profile profile_id 2 add access_id auto_assign ip tcp dst_port         137 port 1-22 deny
config access_profile profile_id 2 add access_id auto_assign ip tcp dst_port         138 port 1-22 deny
config access_profile profile_id 2 add access_id auto_assign ip tcp dst_port         139 port 1-22 deny
config access_profile profile_id 2 add access_id auto_assign ip tcp dst_port         445 port 1-22 deny
config access_profile profile_id 2 add access_id auto_assign ip tcp dst_port        2869 port 1-22 deny

# "левый" UDP траффик
delete access_profile profile_id 3
create access_profile profile_id 3                           ip udp dst_port_mask 0xffff
config access_profile profile_id 3 add access_id auto_assign ip udp dst_port         135 port 1-22 deny
config access_profile profile_id 3 add access_id auto_assign ip udp dst_port         137 port 1-22 deny
config access_profile profile_id 3 add access_id auto_assign ip udp dst_port         138 port 1-22 deny
config access_profile profile_id 3 add access_id auto_assign ip udp dst_port         139 port 1-22 deny
config access_profile profile_id 3 add access_id auto_assign ip udp dst_port         445 port 1-22 deny
config access_profile profile_id 3 add access_id auto_assign ip udp dst_port        1900 port 1-22 deny

# статистика, страница компании, днс (без ограничения скорости OFC)
create access_profile profile_id 4                           ip source_ip_mask 0.0.0.0 destination_ip_mask 255.255.255.255
config access_profile profile_id 4 add access_id auto_assign ip      source_ip 0.0.0.0 destination_ip       91.189.239.67 port 1-22 permit
config access_profile profile_id 4 add access_id auto_assign ip      source_ip 0.0.0.0 destination_ip      192.168.100.13 port 1-22 permit


# тут рисуем профили для юзеров ...
# разрешаем IP адреса с учетом VLAN
create access_profile profile_id 5                       ip vlan            source_ip_mask 255.255.255.255
config access_profile profile_id 5 add access_id <номер> ip vlan <имя VLAN> source_ip тут.IP.адрес.клиента port <номер порта> permit

# либо без учета
create access_profile profile_id 5                       ip source_ip_mask 255.255.255.255
config access_profile profile_id 5 add access_id <номер> ip source_ip тут.IP.адрес.клиента port <номер порта> permit

# либо только на VLAN, но тогда если на доступе ACL нет можно юзать любые IP
create access_profile profile_id 5                       ethernet vlan
config access_profile profile_id 5 add access_id <номер> ethernet vlan <имя VLAN> port <номер порта> permit


# тут можно впихнуть еще каки нить правила, но на юзеров они уже действовать не будут!
# если хотите что-то запретить - делайте это выше по списку


# запрещаем все остальное (то как делали Вы в 14-м профиле было не правильно)
delete access_profile profile_id 14
create access_profile profile_id 14                           ip source_ip_mask 0.0.0.0
config access_profile profile_id 14 add access_id auto_assign ip source_ip      0.0.0.0 port 1-22 deny


вот как то так ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 03 сен 2009, 20:43 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
обратитесь в тех .поддержку , сделаем вам скрипт


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 03 сен 2009, 20:52 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
stark писал(а):
обратитесь в тех .поддержку , сделаем вам скрипт

угу ... и я об том жеж ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 сен 2009, 06:15 
Не в сети

Зарегистрирован: 09 июн 2009, 05:35
Сообщения: 19
Карма: 0
stark писал(а):
обратитесь в тех .поддержку , сделаем вам скрипт


Это наверное платно?!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 сен 2009, 18:37 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
root@sephiroth писал(а):
stark писал(а):
обратитесь в тех .поддержку , сделаем вам скрипт


Это наверное платно?!


да


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.054s | 31 Queries | GZIP : On ]