Ericsson SmartEdge & LanBilling, Dynamic CLIPS, Q-n-Q, multicast.
Рис.1 Ericsson SmartEdge 100/600 в операторской сети.
Описание и пример интеграции биллинга Lanbilling с BRAS Ericsson SmartEdge 100/600 приведено в первой части статьи — «Интеграция Lanbilling с BRAS Ericsson SmartEdge 600/100, static CLIPS», для Dynamic CLIPS мы добавим некоторый функционал, как то RSE, терминация Q-n-Q, добавим RADIUS-атрибуты, и DHCP-сервер.
Список атрибутов, которые будут использоваться для RADIUS Access-Accept:
Attribute ‘Session-Timeout’, value: «8640»
Attribute ‘Service-Type’, value: «5»
Attribute ‘Framed-IP-Address’, value: «1.2.3.249»
Attribute ‘Framed-IP-Netmask’, value: «255.255.255.255»
‘Class’, value: «00000773»
VSA 190 ‘Service-Name’, vendor 2352, value: «InetBand»
VSA 191 ‘Service-Options’, vendor 2352, value: «1"
VSA 192 ‘Service-Parameter’, vendor 2352, value:» InRate=1024 InBurst=8333 OutRate=1024 OutBurst=8333 InterimTime=90"
VSA ‘DHCP-Router-Address’, vendor DHCP, value: «1.2.3.1»
VSA ‘DHCP-Domain-Name-Server’, vendor DHCP, value: «8.8.8.8»
VSA 3 ‘DHCP-Max-Leases’, vendor 2352, value: «1»
VSA 104 ‘IP-Interface-Name’, vendor 2352, value: «CLIENTS» //необязателен
VSA 4 ‘Context-Name’, vendor 2352, value: «local»
VSA 87 ‘Qos_Policing’, vendor 2352, value: «POLICING»
VSA 88 ‘Qos_Metering’, vendor 2352, value: «METERING»
Авторизацию абонентов можно производить по User-name/Password (username=MAC-address), либо по Option 82, второе предпочтительнее.
Будем использовать внешний DHCP-сервер ISC c патчем dhcp2radius. Установка подробно описана на официальном сайте.
Пример настройки:
/etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
use-dhcp2radius true;
radius-servers 192.168.1.32;
radius-send-opts-to-srv 35;
radius-secret supersecret;
radius-password rpass;
Как оно работает.Получив запрос, содержащий DHCP VSA, RADIUS агент пытается найти абонента, инициировавшего запрос. В описанной конфигурации RADIUS Access-Request будет содержать:
- MAC-адрес (атрибут User-Name),
- произвольный пароль (атрибут Password),
- идентификатор DHCP сервера (атрибут NAS-Port),
- признак DHCP запроса (DHCP-Message-Type),
- запрашиваемый адрес (DHCP-Requested-IP-Address)
- опция 82 (DHCP-Relay-Agent-Information).
При этом идентификация учетной записи возможна либо по MAC адресу (транспортному адресу учетной записи), либо по содержимому опции 82 (поиск в хранилище Inventory).
В первом случае достаточно, чтобы для каждой учетной записи было заполнено поле «транспортный адрес», содержащее MAC сетевой карты абонента в HEX представлении. Если учетной записи присвоены несколько IP адресов (назначать подсеть в данном случае нельзя), то при добавлении MAC адреса необходимо привязать его к конкретному IP.
Во втором случае анализируется содержание опции 82 DHCP. Этой возможностью удастся воспользоваться лишь в том случае, если коммутатор, к порту которого подключен абонент, реализует функции DHCP Relay Agent (вставка/подмена опции 82 в DHCP запросы абонентов). Атрибут DHCP-Relay-Agent-Information содержит идентификатор устройства — Agent-Remote-Id и идентификатор порта устройства, на котором был получен DHCP запрос, — Circuit-Id. В качестве Agent-Remote-Id, в зависимости от настроек коммутатора, могут выступать MAC адрес устройства доступа, IP адрес для управления (management ip), IP адрес на соответствующем VLAN и пр. Внашем проекте это коммутаторы SNR-S2940/S2950/S2960. Их конфигурация и подключение описаны в предыдущей статье этого проекта Коммутаторы SNR-S2900 на доступе.
Конкретный вид этого параметра не важен, так как поиск устройства в БД Inventory осуществляется по его HEX представлению (содержимое Agent-Remote-Id сравнивается с одноименной опцией устройства в Inventory). Если устройство найдено и к его порту с номером Circuit-Id привязана учетная запись, то IP адрес из настроек этой учетной записи будет помещен в ответный пакет.
Если абонент найден по одному из перечисленных критериев, учетная запись не заблокирована и ей назначен IP адрес, то RADIUS формирует ответный Access Accept пакет, в котором указываются выданный IP, маска сети (маска сегмента, из которого выделен адрес), время аренды адреса и другие атрибуты. DHCP-Router-Address (адрес шлюза), DHCP-Domain-Name-Server (DNS серверы) и другие «полезные» DHCP опции не передаются автоматически. Необходимо создать соответствующие атрибуты с одним из предлагаемых вариантов привязки (учетная запись, группа, агент и т.д.). С полным словарем атрибутов, поддерживаемым сервером DHCP, можно ознакомиться здесь (http://netpatch.ru/projects/dhcp2radius/dictionary.dhcp).
Если хоть одно из необходимых условий, перечисленных в предыдущем абзаце, не выполнено, агент формирует в ответ пакет Access Reject.
Access Request пакеты, содержащие DHCP запрос, не приводят к созданию новой RADIUS сессии, так как не предполагают последующего поступления Accounting пакетов.
Этапы настройки агента в биллинге
- Создаем RADIUS-агент.
- Задаем адрес NAS (адрес DHCP-сервера) и «секрет» указанный в dhcpd.conf (radius-secret).
- Добавить подсеть в пул IP-адресов агента RADIUS.
- Создаем тариф для этого агента.
- Создаем пользователя.
- Создаем учетную запись для RADIUS-агента:
- В качестве поля «Логин» — MAC-адрес устройства без разделителей (например, 00254bd63986);
- В качестве пароля — значение radius-password из файла dhcpd.conf;
- Добавляем IP-адрес к учетной записи;
- Добавляем к учетной записи транспортный адрес без разделителей и привязываем его к добавленному в предыдущем пункте IP-адресу;
- Сохраняем учетную запись.
7. Добавляем атрибуты, устанавливающие шлюз по умолчанию и DNS-сервер для DHCP-клиентов:
8. (Свойства — RADIUS-атрибуты)
- Добавить атрибут;
- Выбираем NAS (можно назначить разные шлюзы и DNS для каждого коммутатора) либо оставляем для всех;
- RADIUS-Code: Access-accept;
- Атрибут: DHCP-Gateway-IP-Address / DHCP-Gateway-IP-Address;
- Привязка — агент.
9. Запускаем сетевой агент RADIUS.10. Подключаем сетевое устройство к системе, которое получает по DHCP IP-адрес, назначенный учетной записи в АСР LANBilling.
Конфигурация BRAS Ericsson SmartEdge 100
Терминация абонентов IPoE over L2
Building configuration…
Current configuration:
!
! Configuration last changed by user ‘root’ at Wed Jul 18 10:12:58 2012
!
no service multiple-contexts //используем один контекст
!
!
software license
subscriber active 8000 encrypted 1 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
!
!
dpi traffic-management protocol http escape-conversion
!
!
context local
!
no ip domain-lookup
!
interface CLIENTS multibind //интерфейсы для терминации абонентов
description interface for clients
ip address 1.2.3.1/24
dhcp proxy 65535
!
interface CLIENTS2 multibind
ip address 1.2.4.1/24
dhcp proxy 65535
!
interface CLIENTS3 multibind
ip address 1.2.5.1/24
dhcp proxy 65535
!
!
interface PORT01
description Uplink
ip address 2.1.4.70/30
!
interface PORT03 //линк на SNR-S3750G, L3 with OSPF,
description ospf_peer //для последующей терминации CLIPS over L3 и для
ip address 192.168.0.1/30 //управления
!
interface mgt
ip address 10.10.100.100/24
!
interface multik //интерфейс смотрящий на головную станцию
ip address 192.168.131.200/24 //получение мультикаста
igmp query-solicitation
pim sparse-mode passive
logging console
logging syslog 192.168.1.32 facility local7 //логирование из контекста local на удаленный
! //сервер
interface multik_c //интерфейс для multicast vlan
igmp query-solicitation
pim sparse-mode passive
!
router ospf 1 //пример настройки OSPF
fast-convergence
router-id 192.168.0.1
originate-default always
log-neighbor-up-down
graceful-restart
area 0.0.0.0
interface L3
network-type point-to-point
neighbor 192.168.0.254
redistribute connected
redistribute static
redistribute subscriber
!
policy access-list QOS-IN
seq 50 permit ip any any class Internet //трафик в класс Internet
!
policy access-list QOS-OUT //ACL для разметки по классам, весь
seq 50 permit ip any any class Internet //трафик в класс Internet
!
!
enable encrypted 1 $1$……..$6supersecret
enable authentication local
!
aaa authentication administrator local //локальная авторизация консоли
aaa authentication subscriber radius //RADIUS авторизация абонентов
aaa accounting subscriber radius //RADIUS аккаунтинг абонетов
aaa update subscriber 10 //периодичность Interim-пакетов
radius accounting server 192.168.1.32 encrypted-key ****************
!
administrator root encrypted 1 $1$……..$5zc********************.1
privilege max 15
no timeout session idle //отключаем завершение сессии по таймауту
!
radius server 192.168.1.32 encrypted-key ****************************** coa-server
radius max-retries 5
radius timeout 30
radius attribute username encaps clips strip-mac-delimiter //убираем разделитель в
! //мак-адресе, dhcp-сервер так отправляет
subscriber default //настройка профиля абонента по
ip source-validation //умолчанию
qos policy policing POLICING
qos policy metering METERING
dhcp max-addrs 1
!
ip route 0.0.0.0/0 2.1.4.69 //маршрут по умолчанию
!
radius service profile InetBand //RSE для управления сессиями
parameter value InRate //абонентов
parameter value InBurst
parameter value OutRate
parameter value OutBurst
parameter value InterimTime
parameter list Dir «in out»
accounting out qos Internet
accounting in qos Internet
seq 10 foreach Dir
seq 20 attribute Dynamic-Policy-Filter «ip $Dir forward class Internet qos»
exit
seq 30 attribute Dynamic-Qos-Parameter «police-class-rate Internet rate-absolute $InRate»
seq 40 attribute Dynamic-Qos-Parameter «police-class-burst Internet $InBurst»
seq 50 attribute Dynamic-Qos-Parameter «meter-class-rate Internet rate-absolute $OutRate»
seq 60 attribute Dynamic-Qos-Parameter «meter-class-burst Internet $OutBurst»
seq 70 attribute Service-Interim-Accounting $InterimTime
!
service ssh server
!
dhcp relay server retries 3 timeout 2 //прописываем куда проксировать
dhcp relay server 192.168.1.32 //dhcp-запросы, option 82 не перезапивать
!
! ** End Context **
logging tdm console
logging timestamp millisecond //отображать миллисекунды
logging active
logging standby short
logging cct-valid //показывать debug-сообщения только
! //o существующих circuits
!
qos policy METERING metering radius-guided //qos для ограничения скорости
ip access-group QOS-IN local //сессии абонентов
class Internet
rate 1024 burst 1500
rate-calculation exclude layer-2-overhead
!
qos policy POLICING policing radius-guided
ip access-group QOS-OUT local
class Internet
rate 1024 burst 1500
rate-calculation exclude layer-2-overhead
!
!
snmp server enhance ifmib //включаем SNMP, подключаем
traps ifmib encaps //дополнительные MIB для
traps ifmib ip //мониторинга интерфейсов и
traps nemib non-exclusive //абонентов
traps ssemib
cache-counter-query
snmp view monitor internet included
snmp view monitor interfaces included
snmp view monitor bgp included
snmp view monitor ifMIB included
snmp community rocomm all-contexts view monitor
snmp target STAT 192.168.1.32 address-context local security-name rocomm view monitor inform
!
!
port ethernet 1/1
! XCRP management port on slot 1
shutdown
bind interface mgt local
!
card carrier 2
mic 1 ge-2-port
mic 2 ge-2-port
!
port ethernet 2/1 //порт на Uplink
no shutdown
medium-type copper
bind interface PORT01 local
!
port ethernet 2/2 //порт в сторону головной станции
no shutdown
medium-type copper
bind interface multik local
!
port ethernet 2/3 //порт в сторону клиентов
no shutdown
encapsulation dot1q
service clips dhcp context local //вешаем CLIPS на порт
dot1q pvc 100
bind interface PORT03 local
dot1q pvc 101 encapsulation 1qtunnel //обозначаем qnq-туннель
dot1q pvc explicit 101:100 through 4000 //»разворачиваем» туннель
service clips dhcp context local //вешаем CLIPS на vlan`ы из туннеля
dot1q pvc 4090
bind interface multik_c local
!
port ethernet 2/4
shutdown
!
!
no service console-break
!
service crash-dump-dram
!
no service auto-system-recovery
!
!
end
Итого, мы настроили базовый функционал на Ericsson SmartEdge 100, Dynamic CLIPS, терминация L2 и L2 over QnQ-туннель, мониторинг SNMP и сигнализацию trap, логирование на удаленный syslog-сервер, трянсляцию мультикаста в выделенный вилан (MVR), интегрировали с LanBilling`oм. Настройка Ericsson SmartEdge 600 идентична, за исключение аппаратных настроек.