При тестировании одной биллинговой системы (какой - не скажу - не хочу рекламировать откровенно недоделанный продукт) долго не могли определить - кто виноват в запуске дублирующихся сессий ISG - биллинг или Cisco. Вот и возникла идея создать некую "дурилку" - радиус-сервер, отдающий фиксированные ответы, выглядящие с точки зрения ISG как правильные. Создавалось это чудовище за полчаса из свежеустановленного freeradius-1.1.3 (платформа - CentOS 5.6).
Для начала добавляем нашу циску и локалхост (для упрощения тестирования) в /etc/raddb/clients.conf:
client 10.1.60.4 {
secret = mysecr
shortname = tstnas
nastype = cisco
}
client 127.0.0.1 {
secret = mysecr
shortname = localhost
nastype = other
}
А сами ответы помещаем в /etc/raddb/users:
# сперва - пользователи
usr1145 Password == "d038bec6", Service-Type == Framed-User
Session-Timeout = 86400,
Framed-Protocol = PPP,
Framed-IP-Address = 10.1.70.101,
Framed-IP-Netmask = 255.255.255.255,
Acct-Interim-Interval = 300,
Cisco-AVPair = "accounting-list=BILL",
Filter-Id = "Consum.out",
Cisco-Account-Info = "ALOCAL",
Cisco-Account-Info += "NLOCAL",
Cisco-Account-Info += "AWORLDIN",
Cisco-Account-Info += "NWORLDIN",
Cisco-Account-Info += "AWORLDOUT",
Cisco-Account-Info += "NWORLDOUT"
usr1146 Password == "f577acec", Service-Type == Framed-User
Session-Timeout = 86400,
Framed-Protocol = PPP,
Framed-IP-Address = 10.1.70.102,
Framed-IP-Netmask = 255.255.255.255,
Acct-Interim-Interval = 300,
Cisco-AVPair = "accounting-list=BILL",
Filter-Id = "Consum.out",
Cisco-Account-Info = "ALOCAL",
Cisco-Account-Info += "NLOCAL",
Cisco-Account-Info += "AWORLDIN",
Cisco-Account-Info += "NWORLDIN",
Cisco-Account-Info += "AWORLDOUT",
Cisco-Account-Info += "NWORLDOUT"
# потом - реавторизация препейд-сервиса
usr1145 Password == "cisco", Service-Type == Framed-User, Cisco-Service-Info == "NWORLDIN"
Cisco-Control-Info = "QV1234567895",
Idle-Timeout = 90
usr1146 Password == "cisco", Service-Type == Framed-User, Cisco-Service-Info == "NWORLDIN"
Cisco-Control-Info = "QV1234567896",
Idle-Timeout = 90
# и наконец - сами сервисы
WORLDIN Password == "cisco", Service-Type == Dialout-Framed-User
Cisco-AVPair = "ip:traffic-class=output access-group name world-out priority 40",
Cisco-AVPair += "ip:traffic-class=in default drop",
Cisco-AVPair += "ip:traffic-class=out default drop",
Cisco-Service-Info = "IALL-INET-IN",
Cisco-Service-Info += "MC",
Cisco-Service-Info += "TP",
Cisco-AVPair += "prepaid-config=BILL",
Acct-Interim-Interval = 300
WORLDOUT Password == "cisco", Service-Type == Dialout-Framed-User
Cisco-AVPair = "ip:traffic-class=input access-group name world-in priority 30",
Cisco-AVPair += "accounting-list=BILL",
Cisco-AVPair += "ip:traffic-class=in default drop",
Cisco-AVPair += "ip:traffic-class=out default drop",
Cisco-Service-Info = "IALL-INET-OUT",
Cisco-Service-Info += "MC",
Cisco-Service-Info += "TP",
Acct-Interim-Interval = 1800
LOCAL Password == "cisco", Service-Type == Dialout-Framed-User
Cisco-AVPair = "ip:traffic-class=input access-group name local-in priority 20",
Cisco-AVPair += "ip:traffic-class=output access-group name local-out priority 20",
Cisco-AVPair += "accounting-list=BILL",
Cisco-AVPair += "ip:traffic-class=in default drop",
Cisco-AVPair += "ip:traffic-class=out default drop",
Cisco-Service-Info = "ILOCAL-NET",
Cisco-Service-Info += "MC",
Cisco-Service-Info += "TP",
Acct-Interim-Interval = 1800
И теперь можно, запустив на нашем импровизированном радиус-сервере:
cos56# tcpdump -i eth0 -n -vvvv -s 1204 port 1812 or port 1813
или на циске:
c7200# terminal monitor
c7200# debug radius auth
c7200# debug radius acc
(а еще лучше - для полноты картины - и то, и другое) наблюдать за поднимающимися сессиями. Думаю, тот, кто дочитал до этого места, не нуждается в рассказе о том, как запускать pppd (8).
1 комментарий:
А можно глянуть на настройки ISG под эту "дурилку"?
Отправить комментарий