Добрый день, хотел бы понять как все это работает, ну и само собой рассказать, что накопал
Начнем с того, что собрал тестовый стенд на обычной винде 7
1. Установил GNS3
2. Там добавил одну cisco 7200 и одно Облако, облако привязал к интерфейсу сетевой карточки, а cisco привязал Гигабитным интерфейсом к облаку
3. Установил BGBilling (Сервер + Радиус + Модуль DialUp)
Настройки биллинга
Конфигурация модуля DialUp
Код:
...
#разрешение пользователям без определенной группы REALM ов использовать группу default
realmgr.default=default
#атрибуты, передаваемые в AUTH_ACCEPT пакете при авторизации по реалму default
#в данном случае это интервал между отправкой Update пакетов, в секундах, протокол PPP, и тип сервиса, см: RFC2865
realm.default=Acct-Interim-Interval=60;Session-Timeout=86400
#если установлено в 1 - принудительная передача Service-Type=2;Framed-Protocol=1 (рекомендуется передача этих атрибутов иными способами, см. выше realm.default)
add.service.type.and.framed.protocol=0
...
#--------------------------------------------------------#
# Ограничение скорости
#--------------------------------------------------------#
attrset.1.title=shape128_1
attrset.1.attributes=cisco-avpair=ip:sub-qos-policy-out=FLAT-128K;cisco-avpair=ip:sub-qos-policy-in=OUT
attrset.2.title=isg1024serv
attrset.2.attributes=Cisco-Service-Info=NInternet-Acct
attrset.3.title=isg1024speed
attrset.3.attributes=Cisco-Service-Info=QU;;1024000;;512000;;D;;1024000;;512000
attrset.4.title=isg512speed
attrset.4.attributes=Cisco-Service-Info=QU;;512000;;256000;;D;;512000;;256000
attrset.5.title=isg256speed
attrset.5.attributes=Cisco-Service-Info=QU;;256000;;128000;;D;;256000;;128000;Cisco-Service-Info=NInternet-Acct;Cisco-SSG-Account-Info=AInternet-Acct;Cisco-SSG-Account-Info=NInternet-Acct
attrset.6.title=isgfrombg
attrset.6.attributes=Cisco-Service-Info=NServiceISG;Cisco-SSG-Account-Info=AServiceISG;Cisco-SSG-Account-Info=NServiceISG
attrset.7.title=isgfromcicso
attrset.7.attributes=Cisco-Service-Info=NInternet-Acct;Cisco-SSG-Account-Info=AInternet-Acct;Cisco-SSG-Account-Info=NInternet-Acct;Cisco-Service-Info=QU;;256000;;128000;;D;;256000;;128000
#Атрибуты радиуса доступные в списке атрибутов в редактировании логина
radius.attributes=Service-Type;Framed-Protocol;Framed-IP-Address;Framed-IP-Netmask;Framed-Routing;Filter-Id;Framed-MTU;Framed-Compression;Login-IP-Host;Login-Service;Login-TCP-Port;Old-Password;Reply-Message;Callback-Number;Callback-Id;Expiration;Framed-Route;Framed-IPX-Network;State;Class;Session-Timeout;Idle-Timeout;Termination-Action;NAS-Identifier;Proxy-State;Framed-Pool;Cisco-Service-Info;cisco-avpair;cisco-SSG-Service-Info;Cisco-SSG-Account-Info;Acct-Status-Type
...
########################################################################
### ISG & POD & COA
nas.inspector.class=ru.bitel.bgbilling.kernel.network.radius.inspectors.PodNasConnectionInspector
#секрет для подписи пакетов (если не указан - берется секрет NASа)
nas.inspector.radius.secret=sesisg
#какие атрибуты добавлять в PoD/CoA запрос из сессии, если пустой параметр - высылаются все атрибуты
nas.inspector.radius.attributes=User-Name;Framed-IP-Address;Acct-Session-Id
#nas.inspector.coa.send.all.attributes=1
#nas.inspector.class=bitel.billing.server.processor.ISGNasConnectionInspector
#nas.inspector.pod.fixed.attributes=Cisco-AVPair=subscriber:command=account-logoff
nas.inspector.coa.timeout=5
##количество попыток отправить пакет CoA
nas.inspector.coa.retries=1
##количество потоков отправки CoA пакетов
nas.inspector.coa.threads=1
#на какой хост слать (если не указан - берется IP адреса NASа)
#nas.inspector.radius.host=
#на какой порт слать PoD/CoA запросы
nas.inspector.radius.port=1700
Настройки NASa (тут ничего для именно ISG нет!!!)
Код:
#принудительный разрыв соединений на границе месяца
month.break=1
#интервал между посылками на проверку либо сброс соедиенения
nas.inspector.sleep_time=60
#максимальное число попыток сброса соединения
nas.inspector.kill.max_messages=1
drop.sleep.timeout=3600
# NAS
netflow.receive.from=192.168.11.10
nas.port_time.default.*=16
nas.port_time.default.*=4
nas.port_traffic.default.*=1:COLLECTOR
Создал один тариф
Добавил мультиуслугу, привязал к ней все услуги (так для тестов)
и добавил три Тарифные опции
Код:
1 Тарифная опция Увеличение скорости 1024
- Набор радиус атрибутов: isg1024speed (перекрыть остальные)
- Зона: 1 (Действие с соединением: Послать CoA)
- Цена: 0 за 1 MB
2 Тарифная опция Увеличение скорости 256
- Набор радиус атрибутов: isg256speed (перекрыть остальные)
- Зона: 2 (Действие с соединением: Послать CoA)
- Цена: 0 за 1 MB
3 Тарифная опция
- Набор радиус атрибутов: isgfromcisco (перекрыть остальные)
- Зона: default (Действие с соединением: Послать CoA)
- Цена: 0 за 1 MB
Тарифные опции создал со следующими параметрами
Код:
Активация: с Текущего момента (0 часов)
Деактивация: Моментально
Реактивация: Разрешена
Теперь конфиг cisco
1. Включить AAA в режиме глобального конфигурирования с помощью команды aaa new-model
2. Создать группу радиус-сервера AAA-RADIUS-SERVERS с паролем ciscoisg
Код:
aaa new-model
!
!
aaa group server radius AAA-RADIUS-SERVERS
server-private 192.168.11.9 auth-port 1812 acct-port 1813 key ciscoisg
3. Сконфигурировать аутентификацию используя команду aaa authentication .
- для входа по PPPoE используем aaa authentication ppp
4. Сконфигурировать авторизацию используя команду aaa authorization
- для авторизации сессий PPPoE используем aaa authorization network
- для авторизаций сервисов используем aaa authorization subscriber-service (пока у меня не работает)
5. Сконфигурировать учет используя команду aaa accounting (хотя думаю все работают по net-flow и используют коллектор)
много интересного про aaa тут
http://telenetwork.narod.ru/Doc/Cisco/Notes/aaacontr.htmlКод:
aaa authentication login PPPoE group AAA-RADIUS-SERVERS
aaa authentication ppp PPPoE group AAA-RADIUS-SERVERS
aaa authorization network PPPoE group AAA-RADIUS-SERVERS
aaa authorization subscriber-service default local group AAA-RADIUS-SERVERS
aaa accounting update periodic 20
aaa accounting network PPPoE start-stop group AAA-RADIUS-SERVERS
6. Устанавливаем режим поддержки PoD и CoA
более подробно тут
http://www.cisco.com/en/US/docs/ios/isg/configuration/guide/en_isg_ext_plcy_svrs.html#wp1061726в общих словах - это настройка cisco в качестве AAA сервера, клиентом будет радиус с адресом 192.168.11.9 и ключом sesisg
Код:
aaa server radius dynamic-author
client 192.168.11.9 server-key sesisg
auth-type any
ignore session-key
!
7. Пока не знаю чем конкретно отличаются aaa session-id common от aaa session-id unique
но отличия по документам cisco
Цитата:
- Чтобы указать, будет ли использоваться один и тот же Идентификатор сессии для каждой проверки подлинности, авторизации и учета (AAA) в рамках вызова или ли же различные session ID.
- common - Гарантирует, что вся информация (идентификация) сессии, которая рассылается для данного вызова, будет идентична. Поведение по умолчанию.
- unique - Гарантирует, что только соответствующие access-requests и accounting-requests будут поддерживать общий идентификатор сеанса.
Код:
aaa session-id common
8. Позволяем пользователям авторизоваться
Код:
subscriber authorization enable
9. Создаем списки доступа Internet-in, Internet-out, Local-in, Local-out
10. По спискам доступа создаем class-map для трафика Internet, Local
11. По class-map создаем policy-map type service Local-Acct, Internet-Acct для учета трафика (собственно это и есть наши сервисы!!!)
Код:
class-map type traffic match-any Internet
match access-group output name Internet-out
match access-group input name Internet-in
!
class-map type traffic match-any Local
match access-group output name Local-out
match access-group input name Local-in
!
policy-map type service Local-Acct
class type traffic Local
accounting aaa list PPPoE
!
class type traffic default in-out
drop
!
!
policy-map type service Internet-Acct
class type traffic Internet
accounting aaa list PPPoE
!
class type traffic default in-out
drop
!
!
!
!
ip access-list extended Internet-in
deny ip any 62.148.230.0 0.0.0.255
permit ip any any
ip access-list extended Internet-out
deny ip 62.148.230.0 0.0.0.255 any
permit ip any any
ip access-list extended Local-in
permit ip any 62.148.230.0 0.0.0.255
ip access-list extended Local-out
permit ip any 62.148.230.0 0.0.0.255
12. Создаем для управления пользователями policy-map type control, которые применяются на интерфейсы маршрутизатора
- проводим аутентификацию пользователей 10 authenticate aaa list PPPoE, когда сессия стартует
class type control always event session-start
Код:
policy-map type control ISG3
class type control always event session-start
10 authenticate aaa list PPPoE
!
!
!
Если есть желание то про классы, полиси можно почитать тут
http://alexandr.sysoev.ru/node/141#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D0.BF.D0.BE.D1.80.D1.8F.D0.B4.D0.BA.D0.B0_.D0.BF.D1.80.D0.BE.D1.81.D0.BC.D0.BE.D1.82.D1.80.D0.B0_.D0.B8.D1.81.D1.82.D0.BE.D1.87.D0.BD.D0.B8.D0.BA.D0.BE.D0.B2_.D1.81.D0.B5.D1.80.D0.B2.D0.B8.D1.81.D0.BE.D0.B2_-_.D0.BB.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B8.D0.BB.D0.B8_downloaded13. Включаем поддержку PPPoE на роутере и привязываем ее к к виртуальном интерфейсу virtual-template 1
Код:
bba-group pppoe global
virtual-template 1
sessions max limit 8000
!
14. Настраиваем наш гигабитный интерфейс
- Привязываем к bba-group - pppoe enable group global
- Говорим что это интерфейс с пользователями ip subscriber interface
Если, сделать так
Код:
ip subscriber routed
initiator unclassified ip-address
То
Цитата:
ip subscriber routed означает что пользователи не подключены непосредсвенно к интерфейсу (т.е. их МАК-адреса использовать нельзя). initiator unclassified ip-address означает что сессия инициируется при появлении пакета с src- или dst-ip который не может быть отнесен ни к одной из существующих сессий.
Код:
interface GigabitEthernet1/0
ip address 192.168.11.10 255.255.255.0
negotiation auto
pppoe enable group global
ip subscriber interface
!
15. Создаем наш виртуальный интерфейс
- В качестве шлюза будет сам гигабитный интерфейс ip unnumbered GigabitEthernet1/0
- Аутентификация будет проходит по ppp authentication chap pap ms-chap PPPoE
- Авторизация ppp authorization PPPoE
- Вешаем наш service-policy - service-policy type control ISG3
Код:
interface Virtual-Template1
description "PPPoE"
ip unnumbered GigabitEthernet1/0
no ip redirects
no ip proxy-arp
ip flow ingress
no logging event link-status
no peer default ip address
keepalive 5
ppp mtu adaptive
ppp disconnect-cause keepalive lost-carrier
ppp authentication chap pap ms-chap PPPoE
ppp authorization PPPoE
ppp accounting PPPoE
service-policy type control ISG3
!
16. Прописываем свойства для обмена с радиус-сервером
- 44 Acct-Session-Id attribute
- 6 Service-Type attribute
- 8 Framed IP address attribute
- 32 NAS-Identifier attribute
- 55 Event-Timestamp attribute
- 25 Class attribute
- 31 Calling Station ID
- nas-port NAS-Port attribute configuration
- radius-server vsa send accounting и authentication позволять использовать VSA (vendor specific attribut)
Код:
radius-server attribute 44 include-in-access-req
radius-server attribute 6 on-for-login-auth
radius-server attribute 8 include-in-access-req
radius-server attribute 32 include-in-access-req
radius-server attribute 32 include-in-accounting-req
radius-server attribute 55 include-in-acct-req
radius-server attribute 55 access-request include
radius-server attribute 25 access-request include
radius-server attribute nas-port format e UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
radius-server attribute 31 mac format unformatted
radius-server retransmit 5
radius-server timeout 30
radius-server deadtime 1
radius-server vsa send accounting
radius-server vsa send authentication
17. Говорим, что наш гигабитник (его IP) и будет исходным интерфейсом для обмена с радиусом
Код:
ip radius source-interface GigabitEthernet1/0
Вот примерно и все, что касается настройки