alexaaa Posted January 28, 2011 Posted January 28, 2011 Видел в интернете статью, там на коммутатор Сisco настроены acl, суть этих acl в том что когда у абонента отрицательный баланс, то коммутатор перекидывает абонента в другую подсеть, и у абонента нет доступа к ресурсам сети, но статью эту потерял и найти пока смог, может кто подскажет насчёт этого решения Вставить ник Quote
terrible Posted January 28, 2011 Posted January 28, 2011 (edited) это специальный коммутатор-телепат, циско над ним долго работала, но наконец-то сделали. Коммутатор-телепат уже на будущее знает какой абонент подключен к какому порту и когда точно его нужно выключить. Всё просто :) Даже крупные операторы связи уже вовсю используют такие решения: Edited January 28, 2011 by terrible Вставить ник Quote
Lynx10 Posted January 28, 2011 Posted January 28, 2011 Видел в интернете статью, там на коммутатор Сisco настроены acl, суть этих acl в том что когда у абонента отрицательный баланс, то коммутатор перекидывает абонента в другую подсеть, и у абонента нет доступа к ресурсам сети, но статью эту потерял и найти пока смог, может кто подскажет насчёт этого решения guest vlan ? Вставить ник Quote
kazakru Posted January 28, 2011 Posted January 28, 2011 у меня при постановке в паузу клиента отрабатывает ACL на доступе и клиент может общаться только с сервером... там впринципе свой чат, сайт и тп.. но зато никакой локалки и инета. Вставить ник Quote
Ivan_83 Posted January 28, 2011 Posted January 28, 2011 Коммутатор-телепат уже на будущее знает какой абонент подключен к какому порту и когда точно его нужно выключить. Да врёте вы всё, на картинке все провода подписаны! %) Вставить ник Quote
ingress Posted January 28, 2011 Posted January 28, 2011 Коммутатор-телепат уже на будущее знает какой абонент подключен к какому порту и когда точно его нужно выключить.Да врёте вы всё, на картинке все провода подписаны! %) а это коммутатор сам подписал, когда вы спали :) Вставить ник Quote
GFORGX Posted January 28, 2011 Posted January 28, 2011 (edited) Недавно создавал топик на данную тему, если кому надо - набыдлокоженное на коленке, для UTM5 RFW, правда, но, думаю, переписать можно под что угодно. Да, для D-Link. #!/usr/bin/python # -*- coding: utf-8 -*- import os import sys import MySQLdb cfg_db_user = 'XXX' cfg_db_pass = 'XXX' cfg_vci_db_name = 'virtual_circuit_data' cfg_utm_db_name = 'XXX' cfg_db_host = 'XXX' cfg_snmp_community = 'XXX' # Connect to MySQL database to fetch user's virtual circuit information vci_db = MySQLdb.connect(cfg_db_host, cfg_db_user, cfg_db_pass, db=cfg_vci_db_name).cursor() utm_db = MySQLdb.connect(cfg_db_host, cfg_db_user, cfg_db_pass, db=cfg_utm_db_name).cursor() utm_db.execute('SELECT ip_group_id FROM ip_groups WHERE ip = inet_aton("%s") AND is_deleted = 0;' % sys.argv[4]) ip_group_id = int(utm_db.fetchone()[0]) utm_db.execute('SELECT id FROM iptraffic_service_links WHERE ip_group_id = %i and is_deleted = 0;' % ip_group_id) id = int(utm_db.fetchone()[0]) utm_db.execute('SELECT user_id FROM service_links WHERE id = %i and is_deleted = 0;' % id) user_id = int(utm_db.fetchone()[0]) utm_db.execute('SELECT login FROM users WHERE id = %i and is_deleted = 0;' % user_id) login = utm_db.fetchone()[0] try: vci_db.execute('SELECT vc_circuit_building, vc_circuit_number, vc_circuit_id FROM vc_circuit_id WHERE vc_circuit_username = "%s";' % login) vc_circuit_building, vc_circuit_number, vc_circuit_id = vci_db.fetchone() os.system("echo %s/%s:%s: done >> /tmp/log" % (vc_circuit_building, vc_circuit_number, vc_circuit_id)) except: sys.exit(0) vci_db.execute('SELECT vc_remote_id FROM vc_remote_id WHERE vc_remote_building = "%s" AND vc_remote_number = "%s";' % (vc_circuit_building, vc_circuit_number)) vc_remote_id = vci_db.fetchone()[0] vci_db.execute('SELECT vc_circuit_username FROM vc_circuit_id WHERE vc_circuit_building = "%s" AND vc_circuit_number = "%s" AND vc_circuit_id = "%s";' % (vc_circuit_building, vc_circuit_number, vc_circuit_id)) if len(vci_db.fetchall()) > 1: os.system("echo %s/%s:%s: port is a hub! >> /tmp/log" % (vc_circuit_building, vc_circuit_number, vc_circuit_id)) sys.exit(0) # Get proper Internet VLAN ID using SNMP through VLAN name internet_vid = int(os.popen('snmpwalk -v2c -c %s %s 1.3.6.1.2.1.17.7.1.4.3.1 | grep INTERNET_0 | cut -d " " -f1 | cut -d "." -f9' % (cfg_snmp_community, vc_remote_id)).read()) if sys.argv[2] == '1': vlan_id = internet_vid else: vlan_id = 4000 # Update PVID os.system('snmpset -v2c -c %s %s 1.3.6.1.2.1.17.7.1.4.5.1.1.%i u %i' % (cfg_snmp_community, vc_remote_id, vc_circuit_id, vlan_id)) # Update port description os.system('snmpset -v2c -c %s %s 1.3.6.1.2.1.31.1.1.1.18.%i s %s' % (cfg_snmp_community, vc_remote_id, vc_circuit_id, login)) # Save settings to NVRAM os.system('snmpset -v2c -c %s %s 1.3.6.1.4.1.171.12.1.2.6.0 i 3' % (cfg_snmp_community, vc_remote_id)) Да, не буду даже отрицать, что костыль :) Edited January 28, 2011 by GFORGX Вставить ник Quote
alexaaa Posted January 28, 2011 Author Posted January 28, 2011 (edited) Ничего смешного, это реально, в магнитогорске у провайдера реализовано, коммутатор работает по радиусу с билингом, при отрицательном балансе абонент перемещается в другую подсеть, там dhcp присваивает другой ip адрес ему, и ему ничего недоступно кроме личного кабинета, а при положительном, получает ip из рабочей сети и доступ к ресурсам, скореe всего guest vlan и acl эти правила организуют, статья есть полная найти бы её там описано создание vpn сервера и настройка cisco коммутатора, вообщем полезная штука, хотя организовать и на d-link можно тоже. Edited January 28, 2011 by alexaaa Вставить ник Quote
Deac Posted January 28, 2011 Posted January 28, 2011 Ключевое слово "БИЛЛИНГ", т.е. не коммутатор принимает решение, а биллинг решает что абонент в минусе и переводит его в hold. У уж как это сделать, на коммутаторе или просто переместить его IP из таблицы в таблицу - не принципиально. Вставить ник Quote
alexaaa Posted January 29, 2011 Author Posted January 29, 2011 Биллинг отключает только интернет, а локальная сеть доступна, да и полностью отключить абонента от коммутатора приходиться физически, а если неотключать, то абонент локальной сетью пользуется, тут и конфликт адреса и замыкание на порту может быть. Вставить ник Quote
Lynx10 Posted January 29, 2011 Posted January 29, 2011 (edited) Ничего смешного, это реально, в магнитогорске у провайдера реализовано, коммутатор работает по радиусу с билингом, при отрицательном балансе абонент перемещается в другую подсеть, там dhcp присваивает другой ip адрес ему, и ему ничего недоступно кроме личного кабинета, а при положительном, получает ip из рабочей сети и доступ к ресурсам, скореe всего guest vlan и acl эти правила организуют, статья есть полная найти бы её там описано создание vpn сервера и настройка cisco коммутатора, вообщем полезная штука, хотя организовать и на d-link можно тоже. в лучшем случае в отдельный влан переводят (как вариант 802.1х + гвест влан или WAC (web auth) + гвест влан)- а скорее просто выдают адрес из другой подсети при негативном балансе и тд ! которая к локальным ресурсам доступ имеет а к миру - нет - и коммутатор тут тогда можна сказать ни причём! как вариант последней схемы - адрес могут выдавать тот же но на шейпере не пропускать в мир! Edited January 29, 2011 by Lynx10 Вставить ник Quote
Deac Posted January 29, 2011 Posted January 29, 2011 Биллинг отключает только интернет, а локальная сеть доступна, да и полностью отключить абонента от коммутатора приходиться физически, а если неотключать, то абонент локальной сетью пользуется, тут и конфликт адреса и замыкание на порту может быть. Это свидетельствует только о неграмотной настройке биллинга. Физически отключать абонента точно не нужно, достаточно погасить его порт. З.Ы. Вот если свитчи неуправляемые на доступе, тогда ССЗБ. Вставить ник Quote
Ilya Evseev Posted January 29, 2011 Posted January 29, 2011 У нас сделано так (пока в тестовом виде). Есть асимметричный vlan для заблокированных клиентов. В этом vlan'е есть сервер, который имеет такой же IP, как шлюз клиента. Все запросы на 53 порт он перенаправляет на себя и возвращает свой IP. Все запросы на 80 порт он тоже перенаправляет на себя и выдаёт страницу "Дай денег". Костыль к биллингу переносит заблокированных клиентов в этот vlan, разблокированных возвращает в vlan, которому клиент принадлежит согласно хранящемуся в биллинге списку подсетей. Вставить ник Quote
st_re Posted January 29, 2011 Posted January 29, 2011 В этом vlan'е есть сервер, который имеет такой же IP, как шлюз клиента.1. Все запросы на 53 порт он перенаправляет на себя и возвращает свой IP. 2. Все запросы на 80 порт он тоже перенаправляет на себя и выдаёт страницу "Дай денег". При наличии второго, зачем первое ? Вставить ник Quote
Skylaer Posted January 29, 2011 Posted January 29, 2011 Потому что ДНС тоже недоступен небойсь :)) У нас проще - клиенту без денег выдается IP вида 192.168.х.х dhcp snooping не позволяет его сменить :) Все запросы с 192.168 редиректятся на сервер биллинга. Но включен НАТ для некоторых серверов - платежные системы в основном. Ну и кредит на сутки раз в месяц доступен бесплатно. Абонентка списывается ежедневно. Вставить ник Quote
Ilya Evseev Posted January 29, 2011 Posted January 29, 2011 При наличии второго, зачем первое ?DNS в блок-vlan'e нужен в любом случае,т.к. заблокированные клиенты в ответ на DNS-запросы должны получать какие-то ответы, потому что иначе они вместо страницы "дай денег" получат страницу "DNS-сервер недоступен". Можно было бы настроить на DNS блок-сервера полноценный форвардинг и возвращать настоящие IP, но проще оказалось настроить вещь в себе, которая на все запросы возвращает IP самого блок-сервера. Вставить ник Quote
s.lobanov Posted January 29, 2011 Posted January 29, 2011 Можно было бы настроить на DNS блок-сервера полноценный форвардинг и возвращать настоящие IP,но проще оказалось настроить вещь в себе, которая на все запросы возвращает IP самого блок-сервера. А ещё бывают супер-пупер модные фаерволы, которые игнорируют TTL dns-записи и могут хранить ответ в своём кеше хоть неделю. Лучше всё-таки отдавать ставить dns, который будет отдавать настоящие IP, но трафик направлять на фейковый сервер, который будет переадресовывать все http-адресы, прикидываясь всеми IP адресами сразу. Единственный потенциальный минус такого решения - dns-тунели, но в принципе таких абонентов можно вычислять и что-нибудь предпринимать в их отношении. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.