TR-069 en Mikrotik. Probando Freeacs como servidor de configuración automática para RouterOS

Neste artigo, tentarei describir paso a paso o proceso de instalación dun servidor de proba dun gran proxecto freeacs a un estado totalmente funcional, e mostrar técnicas prácticas para traballar con mikrotik: configuración mediante parámetros, execución de scripts, actualización, instalación de módulos adicionais, etc.

O obxectivo do artigo é empurrar aos compañeiros para que se neguen a xestionar os dispositivos de rede usando rastrillos e muletas terribles, en forma de guións escritos por eles mesmos, Dude, Ansible, etc. E, nesta ocasión, provocar fogos artificiais e alegría masiva polo cadrados.

0 A elección

Por que se mencionan freeacs e non genie-acs en mikrotik-wikicomo máis vivo?
Porque hai publicacións españolas sobre genie-acs con mikrotik. Aquí están pdf и video da MAMÁ do ano pasado. Os debuxos animados automáticos en diapositivas son xeniais, pero gustaríame afastarme do concepto de escribir guións, executar guións, executar guións...

1. Instalación de Freeacs

Instalarémolo en Centos7, e dado que os dispositivos transmiten moitos datos e ACS está a traballar activamente coa base de datos, non seremos codiciosos de recursos. Para un traballo cómodo, seleccionaremos 2 núcleos de CPU, 4 GB de RAM e 16 GB de almacenamento rápido ssd raid10. Instalarei freeacs no contedor Proxmox VE lxc e poderás traballar en calquera ferramenta que che resulte conveniente.
Non esqueza configurar a hora correcta na máquina con ACS.

O sistema será de proba, así que non sexamos intelixentes e use o script de instalación amablemente proporcionado, tal e como está.

wget https://raw.githubusercontent.com/freeacs/freeacs/master/scripts/install_centos.sh
chmod +x install_centos.sh
./ install_centos.sh

En canto remate o script, pode acceder inmediatamente á interface web pola ip da máquina, coas credenciais admin/freeacs

TR-069 en Mikrotik. Probando Freeacs como servidor de configuración automática para RouterOS
Aquí tes unha interface minimalista tan agradable, e o xenial e rápido que resultou todo

2. Configuración inicial de Freeacs

A unidade básica de control para ACS é a unidade ou CPE (Customer Premises Equipment). E o máis importante, o que necesitamos para xestionar as unidades é o seu tipo de unidade, é dicir. un modelo de hardware que define un conxunto de parámetros configurables para unha unidade e o seu software. Pero aínda que non sabemos como iniciar un novo tipo de unidade correctamente, o mellor sería preguntarlle á propia unidade sobre isto activando o modo de descubrimento.

Na produción, este modo é absolutamente imposible de usar, pero necesitamos iniciar o motor o antes posible e ver as capacidades do sistema. Todos os axustes básicos almacénanse en /opt/freeacs-*. Por iso, abrimos

 vi /opt/freeacs-tr069/config/application-config.conf 

, atopamos

discovery.mode = false

e cambiar a

discovery.mode = true

Ademais, gustaríanos aumentar os tamaños máximos de ficheiros cos que funcionarán nginx e mysql. Para mysql, engade a liña a /etc/my.cnf

max_allowed_packet=32M

, e para nginx, engádese a /etc/nginx/nginx.conf

client_max_body_size 32m;

á sección http. En caso contrario, poderemos traballar con firmware non superior a 1M.

Reiniciamos e estamos preparados para traballar con dispositivos.

E no papel do dispositivo (CPE) teremos un bebé adicto ao traballo hAP AC lite.

Antes dunha conexión de proba, é recomendable configurar manualmente o CPE coa configuración mínima de traballo para que os parámetros que quere configurar no futuro non estean baleiros. Para un enrutador, pode activar mínimamente un cliente dhcp en ether1, instalar o paquete tr-069client e establecer contrasinais.

3. Conecta Mikrotik

É desexable conectar todas as unidades usando un número de serie válido como inicio de sesión. Entón todo quedará claro para ti nos rexistros. Alguén aconsella usar WAN MAC - non o creas. Alguén usa un par común de inicio de sesión/paso para todos: evitalos.

Abrir o rexistro tr-069 para supervisar as "negociacións"

tail -f /var/log/freeacs-tr069/tr069-conversation.log

Abre winbox, elemento de menú TR-069.
URL de AC: http://10.110.0.109/tr069/prov (substitúeo pola túa IP)
Nome de usuario: 9249094C26CB (copia de serie do sistema>placa de enrutador)
Contrasinal: 123456 (non é necesario para o descubrimento, pero para ser)
Non cambiamos o intervalo de información periódica. Emitiremos esta configuración a través do noso ACS

A continuación móstranse a configuración para a inicialización remota da conexión, pero non puiden facer que mikrotik traballase con ela dun golpe. Aínda que a solicitude remota funciona fóra da caixa con teléfonos. Haberá que descifralo.

TR-069 en Mikrotik. Probando Freeacs como servidor de configuración automática para RouterOS

Despois de premer o botón Aplicar, os datos intercambiaranse no terminal, e na interface web de Freeacs podes ver o noso router co Tipo de Unidade "hAPclite" creado automaticamente.

TR-069 en Mikrotik. Probando Freeacs como servidor de configuración automática para RouterOS

O router está conectado. Podes consultar o tipo de unidade xerado automaticamente. Abrimos Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite. Que non hai! Ata 928 parámetros (espiei o shell). Moito ou pouco, máis tarde averiguarémolo, pero polo momento só botaremos unha ollada rápida. Iso é o que significa Tipo de unidade. Esta é unha lista de opcións admitidas con claves pero sen valores. Os valores establécense nos seguintes niveis: Perfís e Unidades.

4. Configura Mikrotik

É hora de descargar guía da interface web Esta guía de 2011 é como unha botella de viño bo e envellecido. Abrímolo e deixemos que respire.

E nós mesmos, na interface web, prememos no lapis ao lado da nosa unidade e imos ao modo de configuración da unidade. Parece así:

TR-069 en Mikrotik. Probando Freeacs como servidor de configuración automática para RouterOS

Imos analizar brevemente o que é interesante nesta páxina:

Bloque de configuración da unidade

  • Perfil: este é o perfil dentro do tipo de unidade. A xerarquía é a seguinte: UnitType > Profile > Unit. É dicir, podemos crear, por exemplo, perfís hAPaclite > hotspot и hAPaclite > branch, pero dentro do modelo do dispositivo

Bloque de aprovisionamento con botóns
As suxestións suxiren que todos os botóns do bloque de aprovisionamento poden aplicar instantáneamente a configuración a través de ConnectionRequestURL. Pero, como dixen anteriormente, isto non funciona, polo que despois de premer os botóns, terás que reiniciar o cliente tr-069 en mikrotik para iniciar manualmente a provisión.

  • Freq/Spread: Cantas veces á semana entregar a configuración ± % para reducir a carga no servidor e nas canles de comunicación. Por defecto, custa 7/20, é dicir. todos os días ± 20% e indica como está en segundos. Ata agora, non ten sentido cambiar a frecuencia de entrega, porque. haberá ruído extra nos rexistros e non sempre se espera a aplicación da configuración

Bloque de historial de aprovisionamento (últimas 48 horas)

  • Ao parecer, a historia é como unha historia, pero ao facer clic no título, accedes a unha conveniente ferramenta de busca de base de datos con expresión regular e golosinas.

Bloque de parámetros

O bloque máis grande e importante, onde, de feito, se establecen e len os parámetros desta unidade. Agora vemos só os parámetros máis importantes do sistema, sen os cales ACS non pode funcionar coa unidade. Pero lembramos que os temos en Tipo de Unidade - 928. Vexamos todos os valores e decidamos con que come Mikrotik.

4.1 Lectura dos parámetros

No bloque Aprovisionamento, faga clic no botón Ler todo. O bloque ten unha inscrición vermella. Aparecerá unha columna á dereita Valor CPE (actual).. Cambiouse ProvisioningMode a READALL na configuración do sistema.

TR-069 en Mikrotik. Probando Freeacs como servidor de configuración automática para RouterOS

E... non pasará nada excepto unha mensaxe en System.X_FREEACS-COM.IM.Message Kick failed at....

Reinicie o cliente TR-069 ou reinicie o enrutador e siga actualizando a páxina do navegador ata que obteña os parámetros nas alegres caixas grises da dereita.
Se alguén quere tomar un grolo do antigo experimentado, este modo descríbese no manual como 10.2 Modo de inspección. Encéndese e funciona un pouco diferente, pero a esencia descríbese bastante

TR-069 en Mikrotik. Probando Freeacs como servidor de configuración automática para RouterOS

O modo READALL desactivarase despois de 15 minutos e tentaremos descubrir o que é útil aquí e o que se pode corrixir sobre a marcha mentres esteamos neste modo.

Podes cambiar enderezos IP, activar/desactivar interfaces, regras de cortalumes, que son con comentarios (se non, unha desorde completa), Wi-Fi, etc.

É dicir, aínda non é posible configurar de forma sensata o mikrotik usando só as ferramentas TR-069. Pero podes controlar moi ben. Están dispoñibles estatísticas sobre interfaces e o seu estado, memoria libre, etc.

4.2 Entrega de parámetros

Tentemos agora entregar os parámetros ao router, a través de tr-069, dun xeito "natural". A primeira vítima será Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Atopámolo nos parámetros da unidade All. Como podes ver, non está configurado. Isto significa que calquera unidade pode ter calquera Identidade. Xa abonda de tolerar isto!
Metemos un daw na columna de creación, establecemos o nome Mr.White e pulsamos o botón Actualizar parámetros. Que pasará despois, xa o adiviñaches. Na seguinte sesión de comunicación coa sede, o router deberá cambiar a súa Identidade.

TR-069 en Mikrotik. Probando Freeacs como servidor de configuración automática para RouterOS

Pero isto non é suficiente para nós. Un parámetro como Identity é bo para ter sempre a man cando se busca a unidade correcta. Introducimos o nome do parámetro e colocamos alí as caixas de verificación Mostrar (D) e Buscable (S). A chave do parámetro cámbiase a RWSD (lembra que os nomes e as claves están definidos no nivel máis alto do tipo de unidade)

TR-069 en Mikrotik. Probando Freeacs como servidor de configuración automática para RouterOS

O valor agora non só se mostra na lista de busca xeral, senón que tamén está dispoñible para a busca Support > Search > Advanced form

TR-069 en Mikrotik. Probando Freeacs como servidor de configuración automática para RouterOS

Iniciamos a provisión e miramos a Identidade. Ola Sr White! Agora non poderás cambiar a túa identidade por ti mesmo mentres tr-069client estea en execución

TR-069 en Mikrotik. Probando Freeacs como servidor de configuración automática para RouterOS

4.3 Execución de scripts

Xa que descubrimos que non hai xeito sen eles, cumprimos.

Pero antes de comezar a traballar con ficheiros, necesitamos corrixir a directiva public.url en arquivo /opt/freeacs-tr069/config/application-config.conf
Despois de todo, aínda temos unha configuración de proba instalada cun script. Non te esqueciches?

# --- Public url (used for download f. ex.) ---
public.url = "http://10.110.0.109"
public.url: ${?PUBLIC_URL}

Reinicia o ACS e diríxete directamente a Files & Scripts.

TR-069 en Mikrotik. Probando Freeacs como servidor de configuración automática para RouterOS

Pero o que se está a abrir con nós agora pertence ao Tipo de Unidade, é dicir. globalmente a todos os enrutadores hAP ac lite, xa sexa un enrutador de sucursal, un hotspot ou un capsman. Aínda non necesitamos un nivel tan alto, polo tanto, antes de traballar con scripts e ficheiros, debes crear un perfil. Podes chamalo por ti mesmo, como a "posición" do dispositivo.

Fagamos do noso bebé un servidor de tempo. Posición decente cun paquete de software separado e un pequeno número de parámetros. Imos a Easy Provisioning > Profile > Create Profile e cree un perfil en Tipo de unidade: hAPclite servidor de tempo. Non tiñamos ningún parámetro no perfil predeterminado, polo que non hai nada que copiar Copiar parámetros de: "non copiar..."

TR-069 en Mikrotik. Probando Freeacs como servidor de configuración automática para RouterOS

Aínda non hai parámetros aquí, pero será posible configurar os que máis tarde queremos ver nos nosos servidores de tempo moldeados desde hAPclite. Por exemplo, os enderezos xerais dos servidores NTP.
Imos á configuración da unidade e movémola ao perfil do servidor de tempo

Por fin imos a Files & Scripts, fai guións e aquí estamos esperando bollos incriblemente cómodos.

Para executar un script nunha unidade, temos que seleccionar Tipo: TR069_SCRIPT а nome и nome obxectivo debe ter extensión .alter
Ao mesmo tempo, para os scripts, a diferenza do software, pode cargar un ficheiro rematado ou simplemente escribilo/editalo no campo Contido. Imos tentar escribir alí mesmo.

E para que poidas ver inmediatamente o resultado: engade o router vlan a ether1

/interface vlan
add interface=ether1 name=vlan1 vlan-id=1

TR-069 en Mikrotik. Probando Freeacs como servidor de configuración automática para RouterOS

Conducimos, presionamos Cargar e feito. O noso guión vlan1.alter esperando nas ás.

Ben, imos? Non. Tamén necesitamos engadir un grupo para o noso perfil. Os grupos non están incluídos na xerarquía de equipos, pero son necesarios para buscar unidades en UnitType ou Profile e son necesarios para a execución do script a través de Advanced Provisioning. Normalmente, os grupos están asociados a localizacións e teñen unha estrutura aniñada. Imos facer un grupo de Rusia.

TR-069 en Mikrotik. Probando Freeacs como servidor de configuración automática para RouterOS

Imaxina que acabamos de reducir a nosa busca de "Todos os servidores de hora do mundo en hAPaclite" a "Todos os servidores de tempo ruso en hAPaclite". Aínda hai unha enorme capa de todo o interesante cos grupos, pero non temos tempo. Imos entrar nos guións.

Advanced Provisioning > Job > Create Job

TR-069 en Mikrotik. Probando Freeacs como servidor de configuración automática para RouterOS

Xa que estamos no modo Avanzado, despois de todo, aquí podes especificar unha morea de condicións diferentes para o inicio da tarefa, comportamento de erro, repeticións e tempo de espera. Recomendo ler todo isto nos manuais ou comentalo máis tarde cando o implemente na produción. Polo momento, imos establecer n1 en Deter regras para que a tarefa se deteña en canto se complete na nosa 1a unidade.

Enchemos o necesario, e só queda lanzar!

TR-069 en Mikrotik. Probando Freeacs como servidor de configuración automática para RouterOS

Preme INICIO e agarda. Agora o contador de dispositivos mortos polo script pouco depurado funcionará rapidamente! Por suposto que non. Tales tarefas entréganse durante moito tempo, e esta é a súa diferenza con scripts, Ansible, etc. As propias unidades solicitan tarefas nunha programación ou tal e como aparecen na rede, ACS fai un seguimento de que unidades xa recibiron tarefas, e como remataron, e escribe isto nos parámetros da unidade. Hai 1 unidade no noso grupo, e se houbese 1001, o administrador comezaría esta tarefa e iría a pescar

Veña. Reinicie xa o router ou reinicie o cliente TR-069. Todo debería ir ben e Mr.White terá un novo vlan. E a nosa tarefa de regra de parada pasará ao estado EN PAUSA. É dicir, aínda se pode reiniciar ou cambiar. Se preme FINALIZAR, a tarefa eliminarase no arquivo

4.4 Actualización do software

Este é un punto moi importante, xa que o firmware Mikrotik é modular, pero engadir módulos non cambia a versión global do firmware do dispositivo. O noso ACS é normal e non está afeito a isto.
Agora farémolo ao estilo de rápido e sucio e empurraremos o módulo NTP no firmware xeral de inmediato, pero en canto se actualice a versión no dispositivo, non poderemos engadir outro módulo da mesma forma. .
Na produción, é mellor non usar tal truco e instalar módulos que son opcionais para Tipo de unidade só con scripts.

Polo tanto, o primeiro que temos que facer é preparar paquetes de software das versións e arquitecturas requiridas, e poñelos nalgún servidor web dispoñible. Para a proba, calquera que poida chegar ao noso Mr.White irá, e para a produción, é mellor construír un espello de actualización automática do software necesario, que non dá medo poñer na web.
Importante! Non esquezas incluír sempre o paquete tr-069client nas actualizacións.

Como se viu, a lonxitude do camiño ata os paquetes é moi importante! Cando intento usar algo así http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk, mikrotik caeu nunha conexión cíclica co recurso, enviando rexistros de TRANSFERCOMPLETE repetidos a tr-069. E desperdiciei algunhas células nerviosas intentando descubrir o que estaba mal. Polo tanto, mentres o poñemos na raíz, ata aclaración

Polo tanto, deberíamos ter tres ficheiros npk dispoñibles a través de http. Eu o teño así

http://192.168.0.241/routeros-mipsbe-6.45.6.npk
http://192.168.0.241/routeros/stable/mipsbe/ntp-6.45.6-mipsbe.npk
http://192.168.0.241/routeros/stable/mipsbe/tr069-client-6.45.6-mipsbe.npk

Agora hai que formatear isto nun ficheiro xml con FileType = "1 imaxe de actualización de firmware", que enviaremos a Mikrotik. Deixa que o nome sexa ros.xml

Facemos segundo as instrucións de mikrotik-wiki:

<upgrade version="1" type="links">
    <config />
    <links>
        <link>
            <url>http://192.168.0.241/routeros-mipsbe-6.45.6.npk</url>
        </link>
        <link>
            <url>http://192.168.0.241/ntp-6.45.6-mipsbe.npk</url>
        </link>
        <link>
            <url>http://192.168.0.241/tr069-client-6.45.6-mipsbe.npk</url>
        </link>
    </links>
</upgrade>

É evidente unha falta Username/Password para acceder ao servidor de descargas. Podes tentar introducilo como no parágrafo A.3.2.8 do protocolo tr-069:

<link>
<url>http://192.168.0.237/routeros/stable/mipsbe/ntp-6.45.6-mipsbe.npk</url>
<Username>user</Username>
<Password>pass</Password>
</link>

Ou pregunta directamente aos responsables de Mikrotik, así como sobre a lonxitude máxima do camiño ata * .npk

Imos ao coñecido Files & Scripts, e cree alí un ficheiro de SOFTWARE con nome:ros.xml, Nome de destino:ros.xml e Versión:6.45.6
Atención! A versión debe especificarse aquí exactamente no formato no que se mostra no dispositivo e se pasa no parámetro System.X_FREEACS-COM.Device.SoftwareVersion.

Seleccionamos o noso ficheiro xm para cargalo e xa está.

TR-069 en Mikrotik. Probando Freeacs como servidor de configuración automática para RouterOS

Agora temos moitas formas de actualizar o dispositivo. A través do Asistente do menú principal, a través de Aprovisionamento avanzado e tarefas co tipo SOFTWARE, ou simplemente vai á configuración da unidade e fai clic en Actualizar. Imos escoller o xeito máis sinxelo, se non, o artigo está inchado.

TR-069 en Mikrotik. Probando Freeacs como servidor de configuración automática para RouterOS

Prememos o botón, iniciamos a provisión e xa está. O programa de probas completouse. Agora podemos facer máis con mikrotik.

5. Conclusión

Cando comecei a escribir, quería primeiro describir a conexión dun teléfono IP e usar o seu exemplo para explicar o xenial que pode ser cando tr-069 funciona facilmente e sen esforzo. Pero despois, a medida que avanzaba e profundizaba nos materiais, pensei que para aqueles que conectasen o Mikrotik, ningún teléfono daría medo para o autoestudo.

En principio, Freeacs, que probamos, xa se pode usar en produción, pero para iso cómpre configurar a seguridade, SSL, cómpre configurar microtics para a configuración automática despois do reinicio, cómpre depurar a adición correcta de Tipo de unidade, desmontar o traballo de servizos web e shell de fusión, e moito máis. Proba, inventa e escribe unha secuela!

A todos, grazas pola vosa atención! Estarei encantado de correccións e comentarios!

Lista de materiais utilizados e ligazóns útiles:

Un fío do foro que atopei cando comecei a buscar sobre o tema
TR-069 Modificación 6 do protocolo de xestión da WAN CPE
wiki freeacs
Os parámetros tr-069 en Mikrotik e a súa correspondencia cos comandos do terminal

Fonte: www.habr.com