Neste artigo, tentarei describir paso a paso o proceso de instalación dun servidor de proba dun gran proxecto
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
Porque hai publicacións españolas sobre genie-acs con mikrotik. Aquí están
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
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
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.
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.
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
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í:
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íshAPaclite > 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.
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
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.
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)
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
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
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
.
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..."
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
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.
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
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!
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
<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á.
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.
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:
Fonte: www.habr.com