Связаться с менеджером

Главная > Статьи > Автонастройка url-адреса ACS сервера TR-069 для Wi-Fi роутера через DHCP. Магия кнопки SMART.

Автонастройка url-адреса ACS сервера TR-069 для Wi-Fi роутера через DHCP. Магия кнопки SMART.

Автонастройка url-адреса ACS сервера TR-069 для Wi-Fi роутера через DHCP. Магия кнопки SMART.

Согласно TR-069 задать url-адрес ACS-сервера можно тремя способами:

  1. Заранее прописать в софте на заводе.

  2. Сконфигурировать маршрутизатор локально через LAN

  3. Раздать адрес сервера автоконфигурации вместе с IP-адресом через DHCP-сервер.

Последний способ нас и интересует, так как позволяет ускорить и автоматизировать развёртывание роутеров на базе Wive-NG-HQ.

По умолчанию на CPE демон cwmp отключен. По нажатию кнопки SMART операционная система запускает его. Если перед этим роутер вместе с сетевыми реквизитами получил по DHCP и url-адрес ACS, то cwmp демон подхватывает его и подключается.

Как это работает.

Автонастройка url-адреса ACS сервера TR-069 для Wi-Fi роутера через DHCP. Магия кнопки SMART.

Согласно стандарта TR-069 CPE отправляет обычный запрос DHCP, но в атрибуте Vendor Class Identifier (DHCP option 60 subopt 3561) со строкой “dslforum.org” (string). На это DHCP-сервер может ответить DHCP ACK с атрибутом Vendor Specific Information (DHCP option 43) содержащим CWMP информацию.

Option 43 позволяет DHCP серверу отправлять vendor specific параметры клиенту. В ответе они кодируются в форме код_опции/длина_значения/значение.

RFC 2132 определяет, что серверы DHCP должны возвращать зависящую от поставщика информацию (vendor specific) в виде параметра 43 DHCP. RFC

позволяет поставщикам определять инкапсулировавшие определяемые поставщиком коды подпараметра между 0 и 255.

Все вложенные параметры включены в DHCP ACK в качестве блоков “тип-длина-значение” (TLV, type-length-value) и являются частью параметра 43 DHCP. Определение атрибутов опции и их формата определяется производителем оборудования или в нашем случае стандартом TR-069.

CWMP определяет опцию 43 следующим образом.

Когда серверы DHCP сконфигурированы на предоставление IP-адресов для беспроводных ЛВС в качестве опции 43 DHCP для оборудования с поддержкой cwmp, структура TLV вложенного параметра выглядит следующим образом:

Тип 1 (Option code 1) служит для передачи URL-адреса сервера автоконфигурирования;

Тип 2 (Option code 2) служит для передачи ProvosioningCode

Длина (Length) — число символов ASCII в поле значения.

Значение (Value) — ненулевая завершенная строка ASCII.

DHCPd

Я использую isc-dhcp сервер, поэтому настройки будут для него.

Типичный способ передачи опций это использование параметра option vendor-encapsulated-options.

Например для url http://acs.me.com эта опция будет выглядеть так:

option vendor-encapsulated-options 01:11:68:74:74:70:3A:2F:2F:61:63:73:2E:6D:65:2E:63:6F:6D;

01 – Тип 1 в hex.

11 – Длина url 17 знаков в hex.

“всё остальное” – url в hex.

Достаточно просто и тривиально.

Но было лень перекодировать, поэтому используем функциональность “option-space” isc-dhcpd сервера. Пусть сам закодирует как ему нужно:

option space tr069;
option tr069.acs-server code 1 = text;
option tr069.provisioning-code code 2 = text;

subnet 10.40.0.0 netmask 255.255.255.0 {
     option routers 10.40.0.1;
     range 10.40.0.50 10.40.0.254;
     option domain-name-servers 77.88.8.2, 77.88.8.3;
     vendor-option-space tr069;
     option tr069.acs-server "http://10.40.0.40:7547";
#       option tr069.provisioning.code "";
# solution from Tenda&Co surprises
#     append dhcp-parameter-request-list 43;
}

Применяем конфиг и можно проверять.

Для чистоты эксперимента роутер сброшен до настроек по умолчанию и удалён из ACS. Нажимаем на кнопку SMART на роутере с заводскими настройками и он появляется во вкладке “Devices” GenieACS сервера. Далее можно либо в ручную либо автоматически его настраивать.

Заметки.

Не все беспроводные маршрутизаторы работают по стандарту, даже если “реализован” или “заявлен” TR-069. Особенно это относится к программному коду азиатских коллег. Роутер может не отправлять запрос на опцию 43 в DHCP REQUEST и соответственно останется без управления.

Лекарство – принудительная отправка cwmp артибутов option 43 в OFFER/ACK:

# solution from Tenda&Co surprises
     append dhcp-parameter-request-list 43;

При желании можно привязать выдачу атрибутов к конкретному оборудованию по vendor-class-identifier:

 
class "Wive-NG-HQ" {
      match if option vendor-class-identifier = "Wive-NG-HQ";
      option vendor-class-identifier "Wive-NG-HQ";
      vendor-option-space tr069;
      option tr069.acs-server "http://10.40.0.40:7547";
 }
class "SNR-CPE" {
      match if option vendor-class-identifier = "SNR-CPE";
      option vendor-class-identifier "SNR-CPE";
      vendor-option-space tr069;
      option tr069.acs-server "http://10.40.0.40:7547"; 
      append dhcp-parameter-request-list 43;
 }

Или такой вариант первоначального конфига:

subnet 10.40.0.0 netmask 255.255.255.0 {
        option domain-name "local";
        option routers 10.40.0.1;
        range 10.40.0.50 10.40.0.254;
        option domain-name-servers 77.88.8.2, 77.88.8.3;
        # Wive-NG-HQ
        if ( option vendor-class-identifier = "Wive-NG-HQ" ) {
                vendor-option-space tr069;
                option tr069.acs-server "http://10.40.0.40:7547";
        }
        # SNR-CPE, TEnda etc
        elsif ( substring (option vendor-class-identifier, 0, 3) = "SNR" or substring (option vendor-class-identifier, 0, 5) = "Tenda" ) {
                vendor-option-space tr069;
                option tr069.acs-server "http://10.40.0.40:7547";        
                append dhcp-parameter-request-list 43;
        }
        # all other're going to the sandbox. aliens!
        else {
                option routers 10.40.0.2;
                option domain-name-servers 10.40.0.2;
        }

        ...
}

Значения vendor-class-identifier можно посмотреть через tcpdump (option 60).

В GenieACS в версии 1.2.1 изменился формат взаимодействия с устройствами что к падениям клиента cwmp. Данная проблема исправлена в Wive-NG-HQ версии 2.9.1.

0 комментариев
Что бы оставить комментарий вам необходимо авторизоваться