Прежде чем применять настройки - внимательно читаем. От этого зависит работоспособность системы


Проверено на IOS 15.5

прошивка: asr1000rp1-adventerprisek9_noli.03.16.10.S.155-3.S10-ext.bin

Описание работы (как включить)

В config.pl, должно быть указано следующее:

#ISG AAA
$AUTH{cisco_isg} = 'Cisco_isg';
$ACCT{cisco_isg} = 'Cisco_isg';


Добавляем сервер доступа с типом cisco_isg

Заполняем минимум основных данных для работы:

ПолеЗначение
IPУказывается IP адрес самого устройства в вашей сети
НазваниеУникальное название, для отображения в списке
Тип!ОБЯЗАТЕЛЬНО! - cidco_isg
AliveВремя в секундах - время жизни аренды лиза абонента. Рекомендуется от 600 до 10800, Стоит учитывать, что сброс с линии абонента может произойти ТОЛЬКО когда абонент перезапросит продление аренды, а это происходит в период половины времени alive, и в это время абонент не перейдёт в статус "Слишком маленький дкпозит"
Управление - IPIP адрес, по которому будет ходить радиус
POD/CoAПорт для сбрасывания абонента с линии а так-же для передачи доппараметров, указывается такой-же какой указан на самой Cisco
SSHПорт управления Cisco ASR через SSH
TelnetПорт управление Cisco ASR через Telnet
ПользовательОсновной пользователь для входа на Cisco
RADIUS SecretПароль радиуса


 Это минимальные значения, для того, чтоб абонент авторизовался

Выдача IP абоненту

Для выдачи IP адреса абоненту, надо к серверу доступа привязать IP пулы

Описания настройки в вебинтерфейсе

Внимание! Модуль может правильно работать в смешанной сети авторизации ТОЛЬКО при настройке через вебинтерфейс!!!

Переходим в настройки ядра:

Настройка>Системные настройки>Настройки ядра>Авторизация абонентов в сети Интернет

Далее, переходим во вкладку настроек согласно своего типа авторизации или Cisco IPoE или Cisco PPPoE. Если у вас используются ОБЕ схемы - настраивать надо в обеих вкладках!

На скриншоте специально приведены разные название сервисов, чтоб было общее понимание и было легче прочитать пример конфигурации Cisco ASR внизу страницы

Cisco ISG PPPoE

НазваниеОписание
Включить поддержку Cisco ISG

Вкл: используется интеграция с Cisco ISG (ISG-специфичные профили/атрибуты).

Выкл: ISG-ветки авторизатора не активируются.

Для работы обязательно включить!

Параметр: INTERNET_ISG.

Использовать UID для DHCP на ISG

Исторический параметр для старого DHCP-способа авторизации.

Вкл: в старой DHCP-ветке Cisco ISG при поиске online может использоваться UID пользователя из найденной записи.

Является устаревшим, оставлен только для совместимости со старыми схемами работы

Сервисы ISG

Список базовых Cisco ISG сервисов, которые надо добавить в parent reply.

Значения перечисляются через `;`, а модуль превращает их в `Cisco-Account-Info` вида `A`.

Пример: `BLOCK-QOS;INTERNET` -> в ответ уйдут `ABLOCK-QOS` и `AINTERNET`;

Если поле пустое, базовые сервисы не добавляются. Параметр: ISG_SERVICES.



Группа аккаунтинга ISG

Accounting group для абонентов.

Разделение между PPPoE и IPoE делается vendor-specific значениями этого же параметра через `auth_vendor`, без отдельных override-параметров.

Параметр: ISG_ACCOUNTING_GROUP.

Список доступа (ACL) ISG

Базовый access-list для абонентов.

Если значение задано, модуль подставляет его в Cisco ISG reply.

Используется как общий параметр, если конкретный service/profile не задаёт более узкое значение сам.

Параметр: ISG_ACCESS_LIST.

Приоритет traffic-class ISG

Если значение задано, `Cisco_isg` использует его как приоритет `ip:traffic-class` для сервисных ответов.

Если пусто, приоритет вычисляется автоматически по traffic class.

Параметр: ISG_TRAFFIC_PRIORITY.



Сервис негативных абонентов

Имя Cisco ISG сервиса для негативного абонента (`guest=1`).

Именно это имя возвращается в `Cisco-Account-Info` при блокировке/минусовом балансе.

Параметр: ISG_NEGATIVE_SERVICE.

Accounting group негативных абонентов

Accounting group для service-reply негативного абонента (`guest=1`).

По умолчанию можно держать отдельным от неизвестных абонентов.

Параметр: ISG_NEGATIVE_REDIRECT_ACCOUNTING_GROUP.

Redirect list негативных абонентов

Номер redirect list для негативного абонента (`guest=1`).

Используется в AV-Pair `ip:l4redirect=...`, если для негативных абонентов нужна отдельная redirect-маршрутизация на Cisco.

Параметр: ISG_NEGATIVE_REDIRECT_LIST.

Redirect group негативных абонентов

Имя redirect group для негативного абонента (`guest=1`).

Используется вместе с `ISG_NEGATIVE_REDIRECT_LIST`.

Параметр: ISG_NEGATIVE_REDIRECT_GROUP.

ACL негативных абонентов

ACL/access-group для негативного абонента (`guest=1`).

Используется в сервисном ответе как allow-list для разрешённого трафика и может работать как вместе с negative redirect, так и отдельно. Параметр: ISG_NEGATIVE_ACCESS_LIST.

Приоритет негативных абонентов

Приоритет `ip:traffic-class` для негативного абонента (`guest=1`).

Параметр: ISG_NEGATIVE_PRIORITY.



Сервис неизвестных абонентов

Имя Cisco ISG сервиса для неизвестных абонентов (`guest=2`).

Именно это имя попадает в `Cisco-Account-Info` и затем должно обслуживаться самим биллингом.

Параметр: ISG_GUEST_SERVICE.

Accounting group неизвестных абонентов

Accounting group для service-reply неизвестного абонента (`guest=2`).

Используется в ответе вторичного Cisco ISG service lookup.

Параметр: ISG_GUEST_REDIRECT_ACCOUNTING_GROUP.

Redirect list неизвестных абонентов

Номер redirect list для неизвестного абонента (`guest=2`).

Используется в AV-Pair `ip:l4redirect=...`.

Параметр: ISG_GUEST_REDIRECT_LIST.

Redirect group неизвестных абонентов

Имя redirect group для неизвестного абонента (`guest=2`).

Используется вместе с redirect list.

Параметр: ISG_GUEST_REDIRECT_GROUP.

ACL неизвестных абонентов

ACL/access-group для неизвестного абонента (`guest=2`).

Разрешает только нужный ограниченный трафик в service-reply.

Параметр: ISG_GUEST_REDIRECT_ACCESS_LIST.

Приоритет неизвестных абонентов

Приоритет `traffic-class` для неизвестного абонента (`guest=2`).

Добавляется к guest ACL в сервисном ответе Cisco ISG, если значение задано.

Параметр: ISG_GUEST_PRIORITY.



Cisco ISG IPoE

НазваниеОписание
Включить поддержку Cisco ISG

Вкл: используется интеграция с Cisco ISG (ISG-специфичные профили/атрибуты).

Выкл: ISG-ветки авторизатора не активируются.

Для работы обязательно включить! 

Параметр: INTERNET_ISG.

Использовать UID для DHCP на ISG

Исторический параметр для старого DHCP-способа авторизации.

Вкл: в старой DHCP-ветке Cisco ISG при поиске online может использоваться UID пользователя из найденной записи.

Является устаревшим, оставлен только для совместимости со старыми схемами работы

Включить CoA для Cisco ISG IPoE

Вкл: на IPoE accounting-событиях разрешается отправка CoA для parent-сессии Cisco ISG.

Выкл: CoA-ветка полностью пропускается.

Из-за особенностей аккаунтинга - является обязательным для IPoE!!!!

Параметр: ISG_IPOE_COA_ENABLED.

Сервисы ISG

Список базовых Cisco ISG сервисов, которые надо добавить в parent reply.

Значения перечисляются через `;`, а модуль превращает их в `Cisco-Account-Info` вида `A`.

Пример: `BLOCK-QOS;INTERNET` -> в ответ уйдут `ABLOCK-QOS` и `AINTERNET`;

для IPoE эти же сервисы дополнительно попадают в `subscriber:service-name`.

Если поле пустое, базовые сервисы не добавляются. Параметр: ISG_SERVICES.



Группа аккаунтинга ISG

Accounting group для абонентов.

Разделение между PPPoE и IPoE делается vendor-specific значениями этого же параметра через `auth_vendor`, без отдельных override-параметров.

Параметр: ISG_ACCOUNTING_GROUP.

Список доступа (ACL) ISG

Базовый access-list для абонентов.

Если значение задано, модуль подставляет его в Cisco ISG reply.

Используется как общий параметр, если конкретный service/profile не задаёт более узкое значение сам.

Параметр: ISG_ACCESS_LIST.

Приоритет traffic-class ISG

Если значение задано, система использует его как приоритет `ip:traffic-class` для сервисных ответов.

Если пусто, приоритет вычисляется автоматически по traffic class.

Параметр: ISG_TRAFFIC_PRIORITY.



Сервис негативных абонентов

Имя Cisco ISG сервиса для негативного абонента (`guest=1`).

Именно это имя возвращается в `Cisco-Account-Info` при блокировке/минусовом балансе.

Параметр: ISG_NEGATIVE_SERVICE.

Accounting group негативных абонентов

Accounting group для service-reply негативного абонента (`guest=1`).

По умолчанию можно держать отдельным от неизвестных абонентов.

Параметр: ISG_NEGATIVE_REDIRECT_ACCOUNTING_GROUP.

Redirect list негативных абонентов

Номер redirect list для негативного абонента (`guest=1`).

Используется в AV-Pair `ip:l4redirect=...`, если для негативных абонентов нужна отдельная redirect-маршрутизация на Cisco.

Параметр: ISG_NEGATIVE_REDIRECT_LIST.

Redirect group негативных абонентов

Имя redirect group для негативного абонента (`guest=1`).

Используется вместе с `ISG_NEGATIVE_REDIRECT_LIST`.

Параметр: ISG_NEGATIVE_REDIRECT_GROUP.

ACL негативных абонентов

ACL/access-group для негативного абонента (`guest=1`).

Используется в сервисном ответе как allow-list для разрешённого трафика и может работать как вместе с negative redirect, так и отдельно. Параметр: ISG_NEGATIVE_ACCESS_LIST.

Приоритет негативных абонентов

Приоритет `ip:traffic-class` для негативного абонента (`guest=1`).

Параметр: ISG_NEGATIVE_PRIORITY.



Сервис неизвестных абонентов

Имя Cisco ISG сервиса для неизвестных абонентов (`guest=2`).

Именно это имя попадает в `Cisco-Account-Info` и затем должно обслуживаться самим биллингом.

Параметр: ISG_GUEST_SERVICE.

Accounting group неизвестных абонентов

Accounting group для service-reply неизвестного абонента (`guest=2`).

Используется в ответе вторичного Cisco ISG service lookup.

Параметр: ISG_GUEST_REDIRECT_ACCOUNTING_GROUP.

Redirect list неизвестных абонентов

Номер redirect list для неизвестного абонента (`guest=2`).

Используется в AV-Pair `ip:l4redirect=...`.

Параметр: ISG_GUEST_REDIRECT_LIST.

Redirect group неизвестных абонентов

Имя redirect group для неизвестного абонента (`guest=2`).

Используется вместе с redirect list.

Параметр: ISG_GUEST_REDIRECT_GROUP.

ACL неизвестных абонентов

ACL/access-group для неизвестного абонента (`guest=2`).

Разрешает только нужный ограниченный трафик в service-reply.

Параметр: ISG_GUEST_REDIRECT_ACCESS_LIST.

Приоритет неизвестных абонентов

Приоритет `traffic-class` для неизвестного абонента (`guest=2`).

Добавляется к guest ACL в сервисном ответе Cisco ISG, если значение задано.

Параметр: ISG_GUEST_PRIORITY.



Пример конфигурации Cisco ASR 1002

В примере показана конфигурация смешанного типа авторизации IPoE и PPPoE одновременно


version 15.5
service timestamps debug datetime msec
service timestamps log datetime msec
no platform punt-keepalive disable-kernel-core
!
! Имя NAS, которое будет видно в RADIUS-запросах как NAS-Identifier.
hostname ASR1002
!
boot-start-marker
boot system bootflash:/asr1000rp1-adventerprisek9_noli.03.16.10.S.155-3.S10-ext.bin
boot-end-marker
!
!
! VRF для управления, RADIUS и Dynamic-Author.
! Management IP / CoA в АСР Казна-39 должны смотреть именно сюда.
vrf definition Mgmt-intf
 !
 address-family ipv4
 exit-address-family
 !
 address-family ipv6
 exit-address-family
!
aaa new-model
!
!
! RADIUS-группа настраивается напрямую на Cisco ISG и в настройках модуля не указывается.
! Разделение логики для разных типов подключения выполняется по параметру auth_vendor из таблицы config в АСР Казна-39:
! - cisco_isg_ipoe
! - cisco_isg_pppoe
aaa group server radius ISG-RADIUS
 server-private 100.100.0.5 auth-port 1812 acct-port 1813 key Gfhjkm888
 ip vrf forwarding Mgmt-intf
 ip radius source-interface GigabitEthernet0
!
! AAA-сопоставление для разных типов сессий:
! - ISG-AUTH-1 используется IPoE
! - PPPoE используется PPP-сессиями
! - subscriber-service нужен для сервисных запросов service-name/account-info
! Если перепутать эти списки или их имена, Cisco будет стучаться в RADIUS,
! но система не сможет корректно отдать parent/service профиль под нужный тип доступа.
aaa authentication login default local
aaa authentication ppp default group ISG-RADIUS
aaa authentication ppp PPPoE group ISG-RADIUS
aaa authorization network default local 
aaa authorization network ISG-AUTH-1 group ISG-RADIUS 
aaa authorization network PPPoE group ISG-RADIUS 
aaa authorization subscriber-service default group ISG-RADIUS local 
! delay-start нужен, чтобы accounting стартовал после реального поднятия сессии,
! а не слишком рано. Иначе АСР Казна-39 может получить "сырой" старт без нужных данных.
aaa accounting delay-start all
! periodic 1 нужен для частых Interim-Update.
! Это важно для IPoE, потому что система может продлевать живую сессию через CoA
! и поддерживать актуальное состояние internet_online.
aaa accounting update periodic 1
! Ниже перечислены accounting-списки, которые Cisco должна уметь отправлять в RADIUS.
! Их имена должны совпадать с тем, что система отдает в accounting-list/service reply.
aaa accounting network default start-stop group ISG-RADIUS
aaa accounting network PPPoE start-stop group ISG-RADIUS
aaa accounting network IPOE_NEG_REDIRECT_ACCT start-stop group ISG-RADIUS
aaa accounting network PPPOE_NEG_REDIRECT_ACCT start-stop group ISG-RADIUS
aaa accounting network IPOE_REDIRECT_LIST start-stop group ISG-RADIUS
aaa accounting network PPPOE_REDIRECT_LIST start-stop group ISG-RADIUS
aaa accounting network IPoE start-stop group ISG-RADIUS
!
!
!
!
!
! Узел Dynamic-Author для IPoE CoA из системы.
! Используется для продления уже активной IPoE-сессии без её разрыва.
! Если в АСР Казна-39 включен ISG_IPOE_COA_ENABLED, модуль на Interim-Update
! может отправить сюда CoA с новыми timeout/lease.
aaa server radius dynamic-author
 client 100.100.0.5 vrf Mgmt-intf server-key Gfhjkm888
 auth-type any
 ignore session-key
!
! Общий session-id удобен для сопоставления auth/accounting/CoA.
aaa session-id common
aaa policy interface-config allow-subinterface
clock timezone UTC 2 0
!
!


! Эти две команды критичны для IPoE через option82.
! `policy keep` говорит Cisco не выкидывать relay information из DHCP-пакета.
! `trust-all` разрешает принимать и передавать option82 дальше в логику авторизации.
! Без них система часто не увидит circuit-id / remote-id, а значит:
! - не сможет корректно сопоставить абонента по линии
! - не сработает поиск IPoE клиента по option82
! - авторизация может не подняться вообще или подниматься нестабильно
ip dhcp relay information policy keep
ip dhcp relay information trust-all
!
! Родительский шаблон IPoE-сессии.
! Сюда система передает:
! - accounting-list из ISG_ACCOUNTING_GROUP
! - service-name для тарифа / гостя / негатива
! - lease/gateway/DNS из ippools или кастомных rad_pairs
! Это не "пул адресов для клиентов" в привычном смысле, а шаблон DHCP authorization,
! через который Cisco запускает IPoE subscriber session и получает RADIUS-параметры.
ip dhcp pool ISG-IPOE
 dns-server 77.88.8.8 77.88.8.1 
! Эти локальные DNS/NTP/router значения - запасной уровень.
! Если сичтема присылает per-user значения из RADIUS, они будут важнее.
 option 42 ip 89.109.251.21 80.242.83.227 
! Имя accounting-списка должно совпадать с тем, что модуль использует для обычного IPoE.
 default-router 192.168.255.1 
! Этим списком Cisco отправляет IPoE parent-authorize запрос в RADIUS.
   accounting IPoE
! Этим методом Cisco запускает IPoE parent-authorize в RADIUS по списку ISG-AUTH-1.
 authorization method ISG-AUTH-1
! shared-password должен совпадать с паролем, который ожидает система в auth flow.
 authorization shared-password cisco
! `%c` = использовать MAC клиента как логин для IPoE parent-запроса.
! Это основа текущей схемы для DHCP access.
 authorization username %c
!
!
! Глобальные параметры subscriber service:
! multiple-accept нужен для parent + service-профилей,
! session-accounting и interim используются Cisco ISG для SSG/ISG.
! Если убрать multiple-accept, Cisco может принимать только parent-профиль
! и не поднимать отдельные service profile для тарифа/редиректа.
subscriber policy format_option82_for_cats
subscriber service multiple-accept
subscriber service session-accounting
subscriber service accounting interim-interval 30
subscriber templating
subscriber authorization enable
subscriber accounting accuracy 1000
subscriber accounting ssg
subscriber accounting send-encoded-name
!
! Глобальные ISG-настройки поведения абонента для IPoE и PPPoE.
multilink bundle-name authenticated
vpdn enable
!!
!
spanning-tree extend system-id
!
redundancy
 mode none
! Цель редиректа для PPPoE guest=2.
! Соответствует параметру ISG_GUEST_REDIRECT_GROUP в АСР Казна-39.
! Это не ACL, а именно группа redirect-серверов, куда Cisco отправит HTTP/HTTPS.
redirect server-group PPPOE_AUTHOR_LIST1
 server ip 100.100.0.5 port 443
!
! Цель негативного редиректа для IPoE guest=1.
! Соответствует параметру ISG_NEGATIVE_REDIRECT_GROUP в АСР Казна-39.
redirect server-group IPOE_NEG_REDIRECT_GROUP
 server ip 100.100.0.5 port 443
!
! Цель негативного редиректа для PPPoE guest=1.
redirect server-group PPPOE_NEG_REDIRECT_GROUP
 server ip 100.100.0.5 port 443
!
! Цель редиректа для IPoE guest=2.
redirect server-group IPOE_AUTHOR_LIST1
 server ip 100.100.0.5 port 443
!
!
class-map type control match-any IPOE-IP
 match protocol ip 
!
! Этот class-map означает: правило относится к IP-подписчику.
! Если не будет match protocol ip, policy-map ниже не запустит subscriber authorize для IPoE.
! Сервисный профиль IPoE guest=2 из параметра ISG_GUEST_SERVICE.
policy-map type service IPOE_SERVICE_406_L4R
 ip access-group 199 in
 ip access-group 199 out
!
! Сервисный профиль PPPoE guest=2 из параметра ISG_GUEST_SERVICE.
policy-map type service PPPOE_SERVICE_406_L4R
 ip access-group 198 in
 ip access-group 198 out
!         
! Сервисный профиль IPoE guest=1 из параметра ISG_NEGATIVE_SERVICE.
policy-map type service IPOE_BILLING_ACCESS
 ip access-group 195 in
 ip access-group 195 out
!
! Сервисный профиль PPPoE guest=1 из параметра ISG_NEGATIVE_SERVICE.
policy-map type service PPPOE_BILLING_ACCESS
 ip access-group 194 in
 ip access-group 194 out
!
! Политика управления IPoE-абонентом.
! Должна совпадать с authorize aaa list для DHCP-сессий.
! Это главный "вход" Cisco в нашу схему IPoE: при старте/рестарте сессии
! Cisco вызывает RADIUS-авторизацию по MAC-адресу.
policy-map type control ISG-CUSTOMERS-POLICY
 class type control IPOE-IP event session-start
  10 authorize aaa list ISG-AUTH-1 identifier mac-address 
 !
 class type control IPOE-IP event session-restart
  10 authorize aaa list ISG-AUTH-1 identifier mac-address 
 !


! PPPoE глобальная группа доступа.
! Здесь задаются общие лимиты и virtual-template для PPPoE сессий.
! Если virtual-template здесь не совпадет с реальным шаблоном PPPoE, абонент не поднимется.
bba-group pppoe global
 virtual-template 1
 sessions max limit 10000
 sessions per-mac limit 1
 sessions per-vlan limit 2000
 sessions auto cleanup
 pado delay 0
!
! Именованная PPPoE-группа, на которую ссылается access-интерфейс.
bba-group pppoe PPPoE
 virtual-template 1
 sessions per-mac limit 2
 sessions per-vlan limit 1000
 sessions auto cleanup
!
!
!
! Loopback1/2 служат служебными адресами маршрутизатора.
! Loopback2 используется как unnumbered для PPPoE Virtual-Template.
interface Loopback1
 ip address 10.255.255.1 255.255.255.255
!
interface Loopback2
 description core: nat-subnet-193
 ip address 10.255.255.2 255.255.255.255
 no ip redirects
!
interface GigabitEthernet0/0/0
 no ip address
 negotiation auto
!
! Клиентский VLAN для IPoE.
! Именно здесь поднимаются DHCP subscriber sessions и вешается
! policy-map type control ISG-CUSTOMERS-POLICY.
! `ip subscriber l2-connected` и `initiator dhcp` говорят Cisco, что абонента надо
! создавать как IPoE subscriber именно из DHCP трафика на этом интерфейсе.
interface GigabitEthernet0/0/0.111
 encapsulation dot1Q 111
 ip dhcp relay information trusted
 ip address 192.168.1.1 255.255.255.0 secondary
 ip address 192.168.100.1 255.255.255.0 secondary
 ip address 192.168.200.1 255.255.255.0 secondary
 ip address 192.168.0.1 255.255.255.0 secondary
 ip address 192.168.255.1 255.255.255.0
 service-policy type control ISG-CUSTOMERS-POLICY
 ip subscriber l2-connected
  initiator dhcp
!
! Клиентский VLAN для PPPoE.
! Родительская PPP-сессия использует AAA list PPPoE и service-name/account-info
! для активации тарифных / гостевых / негативных сервисов.
! Без `pppoe enable group PPPoE` на интерфейсе PPPoE discovery здесь не начнется вообще.
interface GigabitEthernet0/0/0.112
 encapsulation dot1Q 112
 pppoe enable group PPPoE
!
! Служебный management-интерфейс для VRF Mgmt-intf.
interface GigabitEthernet0/0/1
 no ip address
 shutdown
 negotiation auto
!
interface GigabitEthernet0/0/2
 no ip address
 shutdown
 negotiation auto
!
interface GigabitEthernet0/0/3
 description FUTURE_WAN_NAT
 no ip address
 shutdown
 negotiation auto
!
! Физический management-интерфейс для RADIUS/CoA.
interface GigabitEthernet0
 vrf forwarding Mgmt-intf
 ip address dhcp
 negotiation auto
!
interface Virtual-Template1
 mtu 1492
 ip unnumbered Loopback2
 no ip proxy-arp
 ip nat inside
 ip access-group PPPOE-ACL in
 ip tcp adjust-mss 1452
 no peer default ip address
 keepalive 5 7
 ppp disconnect-cause keepalive lost-carrier
 ppp authentication chap pap PPPoE
 ppp authorization PPPoE
 ppp accounting PPPoE

! DNS по умолчанию для PPP.
! Реальный приоритет в модуле такой:
! 1) кастомные rad_pairs / avpairs
! 2) DNS из ippools для IPoE
! 3) fallback DNS из NAS / Virtual-Template, если в reply DNS нет
! То есть эти адреса клиент увидит только если RADIUS не прислал более точные DNS.
 ppp ipcp dns 77.88.8.1 77.88.8.8

! address required / unique не дают поднять PPP-сессию без адреса и защищают
! от повторной выдачи одного и того же IP нескольким PPPoE-клиентам.
 ppp ipcp address required
 ppp ipcp address unique
!         
! Локальный пул тут служебный и не заменяет выдачу адреса из АСР Казна-39.
ip local pool default 192.168.0.2 192.168.0.253
ip forward-protocol nd
!
no ip http server
no ip http secure-server
ip tftp source-interface GigabitEthernet0
!


! Redirect ACL-списки:
! - ISG_NEGATIVE_REDIRECT_LIST
! - ISG_GUEST_REDIRECT_LIST
! Именно эти ACL определяют, что клиенту при редиректе разрешено:
! обычно только DNS + HTTP/HTTPS до портала/биллинга, остальное режется.
ip access-list extended IPOE_NEG_REDIRECT_LIST
 permit tcp any any eq www
 permit tcp any any eq 443
 deny   ip any any
ip access-list extended PPPOE_NEG_REDIRECT_LIST
 permit tcp any any eq www
 permit tcp any any eq 443
 deny   ip any any
!

! ACL 135/136 - дополнительные HTTP/HTTPS ACL.
! Используются как служебные allow-списки и могут участвовать в обычных policy-map.
ip radius source-interface GigabitEthernet0 
access-list 135 permit tcp any any eq www
access-list 135 permit tcp any any eq 443
access-list 135 deny   ip any any
access-list 136 permit tcp any any eq www
access-list 136 permit tcp any any eq 443
access-list 136 deny   ip any any
access-list 194 permit udp any any eq domain
access-list 194 permit udp any eq domain any
access-list 194 permit tcp any host 100.100.0.5 eq www
access-list 194 permit tcp any host 100.100.0.5 eq 443
access-list 194 permit tcp any host 178.130.128.27 eq www
access-list 194 permit tcp any host 178.130.128.27 eq 443
access-list 194 permit tcp any host 84.252.149.198 eq www
access-list 194 permit tcp any host 84.252.149.198 eq 443
access-list 194 deny   ip any any

! ACL 195 = access-list для негативного IPoE-сервиса.
! Используется профилем IPOE_BILLING_ACCESS и соответствует
! ISG_NEGATIVE_ACCESS_LIST / ISG_BILLING_ACCESS_LIST в зависимости от логики модуля.
access-list 195 permit udp any any eq domain
access-list 195 permit udp any eq domain any
access-list 195 permit tcp any host 100.100.0.5 eq www
access-list 195 permit tcp any host 100.100.0.5 eq 443
access-list 195 permit tcp any host 178.130.128.27 eq www
access-list 195 permit tcp any host 178.130.128.27 eq 443
access-list 195 permit tcp any host 84.252.149.198 eq www
access-list 195 permit tcp any host 84.252.149.198 eq 443
access-list 195 deny   ip any any

! ACL 196/197 = обычные allow-списки абонента для тарифной speed-policy.
! Соответствуют ISG_ACCESS_LIST / ISG_BILLING_ACCESS_LIST в АСР Казна-39.
access-list 196 permit ip any any
access-list 197 permit ip any any

! ACL 198/199 = ACL гостевых redirect-сервисов для PPPoE/IPoE.
! Это access-list для сервисных policy-map IPOE_SERVICE_406_L4R / PPPOE_SERVICE_406_L4R.
access-list 198 permit udp any any eq domain
access-list 198 permit udp any eq domain any
access-list 198 permit tcp any host 100.100.0.5 eq www
access-list 198 permit tcp any host 100.100.0.5 eq 443
access-list 198 deny   ip any any
access-list 199 permit udp any any eq domain
access-list 199 permit udp any eq domain any
access-list 199 permit tcp any host 100.100.0.5 eq www
access-list 199 permit tcp any host 100.100.0.5 eq 443
access-list 199 deny   ip any any
!
!
!
radius-server attribute 44 include-in-access-req all
radius-server attribute 44 extend-with-addr
radius-server attribute 8 include-in-access-req
radius-server attribute 32 include-in-access-req format %h
radius-server attribute nas-port format e UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
radius-server attribute 61 extended
radius-server attribute 31 mac format two-byte delimiter dot 
radius-server attribute nas-port-id include circuit-id plus remote-id  separator #


! Эти атрибуты важны для логики поиска в биллинге:
! - MAC в Cisco dotted-формате
! - circuit-id / remote-id для сопоставления IPoE option82
! - PPP framed protocol по умолчанию для PPPoE
! Если убрать эти команды, RADIUS-запросы станут беднее по идентификаторам,
! и модуль хуже будет понимать, какого именно абонента авторизовать.

radius-server authorization default Framed-Protocol ppp
radius-server vsa send cisco-nas-port
!

end



Дополнительная информация

При введении в эксплуатацию, просим учитывать некоторые нюансы указанной прошивки!

Диагностика DHCP DNS для Cisco ISG / ASR1002
Дата: 2026-06-26

Исходные данные
- Устройство: Cisco ASR1002
- Текущий релиз из `ASR.txt`:
  - `version 15.5`
  - `boot system bootflash:/asr1000rp1-adventerprisek9_noli.03.16.10.S.155-3.S10-ext.bin`
- Схема: IPoE через ISG / DHCPv4 subscriber
- Клиент для проверки: MikroTik, интерфейс `ether7`

Что было проверено
1. Был принудительно очищен только целевой абонент на ASR:
   - `clear subscriber session uid 131`
   - `clear ip dhcp binding 192.168.0.9`
2. После этого был переподнят только DHCP-клиент `ether7`.
3. Одновременно были сняты:
   - свежий `Access-Accept` в `radiusd -X`
   - новый subscriber profile на ASR
   - сырой DHCP обмен клиента в файл `dhcp-ether7.cap`

Что доказано по AAA / RADIUS
В свежем `Access-Accept` ASR получил корректные атрибуты:
- `Framed-IP-Address = 192.168.0.81`
- `Framed-IP-Netmask = 255.255.255.0`
- `Cisco-AVPair += "ip:default-ipv4-gateway=192.168.0.1"`
- `Cisco-AVPair += "ip:primary-dns=1.1.1.1"`
- `Cisco-AVPair += "ip:secondary-dns=8.8.8.8"`

Что доказано по subscriber profile на ASR
Свежая сессия `UID 133` в `show subscriber session uid 133 detail internal`
содержит эти же параметры в `Downloaded User profile`:
- `default-ipv4-gateway 192.168.0.1`
- `primary-dns 1.1.1.1`
- `secondary-dns 8.8.8.8`
- `addr 192.168.0.81`
- `netmask 255.255.255.0`

Это означает:
- биллинг отдал DNS правильно;
- RADIUS передал DNS правильно;
- ASR принял DNS в subscriber profile правильно.

Что показал сырой DHCP ACK
Локальный файл захвата:
- `dhcp-ether7.cap`

Разбор `tcpdump -vvv -n -r dhcp-ether7.cap port 67 or port 68` показал, что в
DHCP Offer и DHCP ACK от ASR присутствуют такие опции:
- `Server-ID (54) = 192.168.255.1`
- `Default-Gateway (3) = 192.168.0.1`
- `Classless-Static-Route (121) = malformed`, tcpdump показывает
  `default:192.192.168.0`
- `Lease-Time (51) = 120`
- `RN (58) = 60`
- `RB (59) = 105`
- `Subnet-Mask (1) = 255.255.255.0`
- `NTP (42) = 89.109.251.21, 80.242.83.227`
- второй `Default-Gateway (3) = 192.168.255.1`

Критически важно:
- в сыром DHCP ACK отсутствует `Domain-Name-Server (6)`;
- то есть DNS не просто "не применился на клиенте", а вообще не был вложен ASR в DHCP ACK;
- при этом gateway вложен дважды;
- option 121 выглядит поврежденной / некорректной.

Что это означает по сути
На текущем релизе ASR проблема находится не в модуле и не в формате RADIUS reply.
Проблема находится в DHCP/ISG логике самой ASR:
- шлюз клиенту отдать получается, это проверено capture и клиентом;
- DNS попадает в subscriber profile;
- но не переносится в DHCP ACK клиенту;
- кроме того, есть признаки некорректной сборки и других DHCP-опций
  (дублирование option 3 и битый option 121).

Вероятная причина
Для современных веток Cisco документирует feature `DHCP RADIUS Proxy for ISG`,
где прямо показаны:
- `Cisco-AVPair += "ip:default-ipv4-gateway=..."`
- `Cisco-AVPair += "ip:primary-dns=..."`
- `Cisco-AVPair += "ip:secondary-dns=..."`

Ссылка на документ:
- https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/isg/configuration/xe-16-10/isg-xe-16-10-book/isg-dhcp-radius-proxy.html

В этом документе feature начинается с:
- `Cisco IOS XE Gibraltar 16.10.1`

Текущая ASR работает на существенно более старом релизе:
- `03.16.10.S / 15.5(3)S10 ext`

Рабочий вывод
На текущем релизе удалось строго доказать следующее:
1. DNS в RADIUS reply есть.
2. DNS в Cisco subscriber profile есть.
3. Шлюз в DHCP ACK от ASR есть, то есть базовая передача gateway клиенту работает.
4. DNS в DHCP ACK от ASR нет.
5. Значит, текущая проблема находится на стороне реализации DHCP/ISG в этом релизе ASR именно для DNS и части DHCP-опций, а не для всей per-user выдачи параметров целиком.

Практический вывод
Если нужна именно честная выдача DNS клиенту по DHCP из RADIUS per-user параметров,
то наиболее вероятный рабочий путь:
- обновление ASR до ветки, где `DHCP RADIUS Proxy for ISG` официально поддержан;
- либо отказ от per-user DNS через эту ASR и выдача DNS другим механизмом.