ipoe.cfg

Skip to end of metadata
Go to start of metadata
configure terminal

!!! включаем, что subscriber ы должны авторизовываться
subscriber authorization enable

!!! включаем, что можно по радиус реплай передать несколько сервисов в ответ на логи пароль.
subscriber service multiple-accept

!!! выключаем отдельный аккаунтинг подключеных сервисов
!!! нам достаточно только аккаунтинга пользователя
no subscriber service session-accounting

!!! включаем нетфлоу отправку
ip flow-export version 5
ip flow-cache timeout active 20
ip flow-cache timeout inactive 30

ip flow-export source {{to_billing_int}}
ip flow-export destination {{billing_ip}} 9996

!!! создаем радиус группу для авторизации по ip subscriber
no aaa group server radius CRB_AAAGS_IPOE
aaa group server radius CRB_AAAGS_IPOE
 server-private {{billing_ip}} auth-port 1812 acct-port 1813 timeout 3 retransmit 2 key {{radius_secret}}
 ip radius source-interface {{to_billing_int}}
 deadtime 1

!!! тут идет магия, но при других наборах параметров работать не будет
aaa authentication login AAA_LIST_IPOE group CRB_AAAGS_IPOE
aaa authentication ppp AAA_LIST_IPOE group CRB_AAAGS_IPOE
aaa authorization network AAA_LIST_IPOE group CRB_AAAGS_IPOE
!!! эта строчка выглядит не логично, но она Верная
aaa authorization subscriber-service AAA_LIST_IPOE local group CRB_AAAGS_IPOE
!!! и эта строка нужна
aaa authorization subscriber-service default local

!!! включаем accounting для листа AAA_LIST_IPOE
aaa accounting network AAA_LIST_IPOE
 action-type start-stop
  group CRB_AAAGS_IPOE
!
!!! ждать назначения ip адреса
aaa accounting delay-start all

!!! делаем рандом сдвиги, чтоб при ресете не было пиковых одновременных аккаунтингов
aaa accounting jitter maximum 10

!!! период accounting в минутах
aaa accounting update periodic 20

!!! влкючаем обратный радиус для приема coa
no aaa server radius dynamic-author
aaa server radius dynamic-author
 client {{billing_ip}} server-key {{coa_psw}}
 port {{coa_port}}
 auth-type any

!!! общий сессион ID для пользователя и его сервисов
aaa session-id common

!!! разрешаем управлять по радиусу интерфейсами, в теории нужно только для ppp доступа и здесь не нужно
aaa policy interface-config allow-subinterface

!!! создаем полиси контрол для перехвата первого пакета и авторизации абонетов
no policy-map type control CTRL_IPOE
class-map type control match-all CTRL_TIMER_UNAUTH
!!! если пользователь авторизован ранее с ошибкой, то ничего не делаем(return), пока не кончится таймер TIMER_UNAUTH
 match authen-status unauthenticated
 match timer TIMER_UNAUTH

!!! если пользователь авторизован и не закончился таймер TIMER_AUTH, то return
class-map type control match-all CTRL_TIMER_AUTH
 match authen-status authenticated
 match timer TIMER_AUTH

!!! если кончился таймер, то отключаем сервисы
policy-map type control CTRL_IPOE
 class type control always event timed-policy-expiry
  1 service disconnect

!!! если стопнули радиус сессию, то отключаем сервисы
 class type control always event account-logoff
  1 service disconnect

!!! если радиус не отвечает, даем инет со скоростью 512кбит на 10 минут
 class type control always event radius-timeout
  10 set-timer TIMER_UNAUTH 10
  20 service-policy type service name FWPOL_DEFAULT

!!! если это первый пакет, то пробуем авторизоваться
 class type control always event session-start
  10 set-timer TIMER_AUTH 10080
!!! если авторизовались, то будет неявный return
  20 authorize aaa list AAA_LIST_IPOE password servicemode identifier source-ip-address
!!! если reject, то вешаем таймер на 5 минут и перенаправляем на страницу редиректа админом
  30 set-timer TIMER_UNAUTH 5
  40 service-policy type service name FWPOL_BLOCKED_TRUSTED
  50 service-policy type service name FWPOL_BLOCKED_REDIRECT

!!! на все интерфейсы из списка abon_ints вешаем обязательную авторизацию по первому пакету через контрол CTRL_IPOE по ip-address
@@@ for abon_int in abon_ints
 interface {{abon_int}}
 ip flow ingress
 ip flow egress
 ip nat inside
 service-policy type control CTRL_IPOE
 ip subscriber routed
  initiator unclassified ip-address
@@@ endfor

end
exit
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.