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 пакетов.

Этапы настройки агента в биллинге 

  1. Создаем RADIUS-агент.
  2. Задаем адрес NAS (адрес DHCP-сервера) и «секрет» указанный в dhcpd.conf (radius-secret).
  3. Добавить подсеть в пул IP-адресов агента RADIUS.
  4. Создаем тариф для этого агента.
  5. Создаем пользователя.
  6. Создаем учетную запись для 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 идентична, за исключение аппаратных настроек.