
Para artículos relacionados compartidos por mí sobre automatización de redes, consulte el catálogo "NetDevOps from Scratch".
En los últimos años, con el desarrollo continuo del campo global de la computación en la nube y el crecimiento continuo de los negocios, la tecnología de red también ha seguido desarrollándose y ha surgido la tecnología SDN. Desde la idea central original de la separación de reenvío y control basada en Openflow, la gente continúa expandiéndose. En la extensión de SDN, la gente actualmente puede llegar a un consenso de que Openflow ya no es una condición necesaria (pero la separación de reenvío y control sí lo es). sigue siendo una condición central), y la programabilidad de la red se ha convertido lentamente en uno de los criterios importantes para medir una arquitectura SDN.
Las operaciones programables de los equipos de red tradicionales generalmente se basan en protocolos CLI y SNMP. Ya sean scripts o software de gestión de red, todos se desarrollan sobre esta base para lograr el amplio rango de programabilidad de la red del que vamos a hablar hoy. capacidades, logrando así la automatización de muchos escenarios. Algunos dispositivos admiten la configuración de algunas interfaces web y la sustitución de la configuración general a través de xml. Estos son muy raros y no se describirán en detalle en este artículo.
CLI
CLI (Interfaz de línea de comando) realiza la interacción persona-computadora a través de la línea de comando. Es una habilidad necesaria para los trabajadores de la red. La gente abre el software SSH o Telnet en el dispositivo todos los días, luego pega una configuración, la guarda y surte efecto. Un día, la gente se cansó de este tipo de repeticiones y utilizó un programa para generar automáticamente scripts de configuración, iniciar sesión en el dispositivo en lotes y emitir configuraciones para que surtieran efecto, logrando la automatización. Este es un método programable en red. Hablemos de las ventajas, que son muy coherentes con el pensamiento, las ideas y los sistemas técnicos existentes de las personas. Pero, en última instancia, este enfoque favorece a las personas por encima de los dispositivos de red. Tiene las siguientes desventajas:
-Existen enormes diferencias en los conjuntos de comandos entre fabricantes. No sólo los fabricantes, sino también las distintas versiones de software de un mismo modelo pueden tener diferencias muy distintas.
-Los desarrolladores deben estar familiarizados con el conjunto de comandos y cómo utilizarlo. Existen riesgos de seguridad a nivel de configuración. Por ejemplo, con un movimiento rápido de la mano, el puerto que quería abrir se convirtió en cerrar el puerto...
-No existen requisitos obligatorios para los protocolos de transmisión (SSH y Telnet) y existen riesgos de seguridad de producción.
-El proceso de análisis y generación de configuraciones es extremadamente complicado. En muchos casos, las reglas regulares escritas sólo pueden acercarse infinitamente a la "verdad", pero no a la "verdad completa".
-No hay transaccionalidad, y una configuración puede tener efecto parcialmente y parte no tener efecto.
-No existe un mecanismo de inspección automatizado y depende completamente de las personas. Por ejemplo, quiero probar si el script generado es correcto. Hay una manera, pero es muy difícil y, a menudo, difícil de implementar fácilmente.
-No tengo idea de modelado de datos.
CLI es siempre una forma de interacción persona-computadora. Puede darle a la red ciertas capacidades de programabilidad a través de programas, pero después de todo, no es un método que sea inherentemente programable en red. Bajo la ola actual de computación en la nube y SDN, no es adecuado para la implementación automatizada a gran escala en la red y su programabilidad es limitada. A los extranjeros les resulta difícil comprender la dificultad del desarrollo.
SNMP
SNMP (SNMP, Protocolo simple de administración de red), este protocolo puede admitir sistemas de administración de red para monitorear si los dispositivos conectados a la red tienen alguna situación que llame la atención de la administración. Consiste en un conjunto de estándares de gestión de red, que incluyen un protocolo de capa de aplicación, un esquema de base de datos y un conjunto de objetos de datos.
Para un contenido de Wikipedia, destacamos la gestión de red, el monitoreo y los objetos de datos. Se utiliza para administrar la red, se puede configurar y recopilar y se utiliza principalmente para monitoreo. Cuenta con modelado de datos para estructurar algunos módulos, características y datos de estado de los equipos de red. Se utiliza principalmente para sistemas de gestión de redes (principalmente monitoreo). Entonces hablemos de sus deficiencias:
-Pobre legibilidad. Prefiere la "máquina" en hombre-máquina. No es legible cuando se usa y los datos del modelado tampoco son legibles. Utiliza un superconjunto de ASN.1.
-La seguridad es limitada. Hay tres versiones: v1, v2c y v3, y la seguridad se mejora secuencialmente. Sin embargo, el más común es v2c, que tiene una seguridad limitada. La versión v3 tiene un diseño muy seguro, pero no es universal. . .
-No existe ningún mecanismo de copia de seguridad, recuperación o reversión. También tenemos show run y otros métodos para hacer una copia de seguridad de la línea de comando, pero snmp. . .
-Muy pocos escriben. Lee mucho, escribe poco y se utiliza principalmente para seguimiento.
-Los datos que se pueden recopilar son limitados y no se puede obtener la configuración de todo el dispositivo. Muchas veces encontramos que podemos usar cli para recopilarlo, pero no podemos usar snmp para recopilarlo.
-Hay un cuello de botella en el rendimiento. El límite superior de datos recopilados es 64 KB y la granularidad de recopilación es demasiado grande. En redes grandes y complejas, puede tardar unos minutos o más. Esto también resalta el punto importante. Nuestros requisitos de granularidad también son muy estrictos. Muchas veces esperamos recolectar tráfico portuario cada pocos segundos. En redes grandes, creo que el software de administración de red tradicional es... Para ampliar una oración más, el método actual es la telemetría (como gRPC), que puede alcanzar un nivel de microsegundos, y algunos requieren una combinación de software y hardware. Aún no es popular, pero en el futuro debe ser tendencia. En cuanto a cuándo sucederá esto en el futuro...
-Desde su nacimiento, SNMP se ha utilizado mucho en el campo de la monitorización de redes para obtener datos para su monitorización. La falta y la complejidad de las capacidades de configuración han llevado a que se utilicen poco en la configuración de la red. Red de sólo lectura programable.
Protocolo Netconf y modelo YANG
De cara a la próxima generación de redes, ¿qué tipo de protocolos de gestión de red necesitamos para realizar mejor la programabilidad de la red y mejorar el nivel de automatización?
El IETF propuso las siguientes ideas en RFC3535 en 2002 (en realidad hay 33. Según la información en línea y el conocimiento del autor, escribí las siguientes ideas):
1. Hay una interfaz programable para la configuración de la red.
2. Se puede utilizar la misma configuración entre fabricantes y modelos.
3. Necesidad de unificar un lenguaje de modelado con buena legibilidad.
4. Funciones completas de verificación y recuperación de errores.
5. Transaccional
Si tienes una idea, simplemente impleméntala. En 2006, el IETF propuso el protocolo Netconf, que resolvió los problemas planteados por RFC3535. La Netconf inicial solo estipuló el marco básico y las operaciones del protocolo, y definió soluciones que tomaron en cuenta algunos problemas de RFC3535. No estipuló un lenguaje de modelado unificado. Por lo tanto, los equipos de algunos de los primeros fabricantes solo admitían algunas operaciones básicas de Netconf y no utilizaban una capa inferior unificada. Lenguaje de modelado de datos.
RFC6020 se lanzó en 2010 y propone el lenguaje de modelado YANG Model y un método para combinarlo con NETCONF. Una definición es un lenguaje de modelado de datos que unifica la lógica de recursos subyacente entre fabricantes, y la otra definición es un conjunto de comandos unificado para las operaciones de cada fabricante sobre datos de configuración y datos de estado. Las instancias de datos creadas por el modelo YANG están envueltas en el protocolo Netconf. Transmission, los dos se combinan entre sí para construir un nuevo conjunto de interfaces programables de red universal para la nueva era basadas en el modelo YANG e impulsadas por el protocolo Netconf.
Después de 2016, el protocolo Netconf se integró estrechamente con el modelo YANG y se hizo popular. Hasta ahora, cuando miramos algunos aspectos del software de arquitectura SDN, hemos escuchado estos dos términos más o menos.
YANG y Netconf, uno es estático y el otro es dinámico, como el yin y el yang. Los dos han creado el mundo programable en red de la próxima era. (Cuando miramos el almacén YANG en github, también encontraremos que su ícono es Tai Chi, y la conexión entre su nombre y "Yang" revela de alguna manera las ideas de diseño del diseñador original).
A continuación, hablaremos brevemente sobre el modelo YANG y el protocolo Netconf. Primero hablemos del lenguaje de modelado de datos YANG para ver cómo describe el gemelo digital de este mundo en red.
Modelo YANG
En el documento RFC6020, el capítulo inicial establece claramente YANG, un lenguaje de modelado de datos para el protocolo de configuración de red. Es la abreviatura de Otro lenguaje de modelado de datos de próxima generación (Yang). Es un lenguaje de modelado utilizado para describir conceptos de red.
Admite la definición de listas, diccionarios e incluso estructuras de datos más complejas, admite restricciones, enumeraciones, importaciones de referencias, gestión de versiones y espacios de nombres. Por motivos de espacio daremos una breve explicación. Para obtener información detallada, puede consultar:
Puede describir este dispositivo de red de forma muy sencilla en un lenguaje estructurado. Por ejemplo, para la definición de puerto:
Como personal profesional de operación y mantenimiento, con un poco de conceptos básicos de red y un poco de programación, puede comprender la definición de puerto con relativa claridad. Es una estructura de lista y puede haber varias. Uno de sus atributos es nombre de interfaz (también una clave). , único, no repetible), así como el atributo de velocidad y el atributo dúplex, ambos son cadenas.
El modelo YANG describe muchos atributos de un dispositivo de red, incluido el estado de configuración y el estado operativo.
De esta manera, YANG Model describe el mundo online utilizando un lenguaje estructurado. Si está interesado, puede leer la publicación del blog de Internet anterior, que tiene una descripción muy detallada.
Se puede convertir muy bien a datos XML y envolverlo en el protocolo Netconf para su transmisión (lo explicaremos más adelante):

Al mismo tiempo, para nivelar las diferencias entre proveedores, Openconfig, liderado por Google, ha estandarizado el modelo de datos. En el sitio web oficial, vemos el lema "Gestión de red basada en modelos, independiente del proveedor y diseñada por usuarios", que está diseñada por usuarios y es multiplataforma. Programación de red basada en modelos y común de proveedores (traducámoslo de esta manera primero). En pocas palabras, se trata de hacer que el modelado entre varios fabricantes sea el mismo, de modo que cuando configure ciertos datos, no tenga que revisar el modelo yang privado de cada fabricante uno por uno. Pero Internet siempre tiene protocolos privados, y diferentes fabricantes siempre crearán nuevos y mejores protocolos privados para "mejor experiencia de usuario" y "mejor estrategia comercial" (este es realmente el pecado original de los fabricantes de redes). La imagen muestra algunas de las implementaciones del modelo openconfig yang más utilizadas.


A juzgar por la imagen, creo que hay muchos y las configuraciones comúnmente utilizadas son relativamente completas. Pero en la práctica depende de si el fabricante también admite estos modelos yang. Básicamente, se admiten algunos dispositivos de versión superior de un determinado tema. Todavía no he mirado más de cerca los domésticos.
Las redes no pueden ser exactamente iguales. Para un ingeniero que se dedica al desarrollo de operación y mantenimiento de redes, ¡es una bendición poder lograr el mismo objetivo!
openconfig se puede encontrar en https://github.com/openconfig/public/tree/master/release/models
Puede encontrar modelos de yang privados en varios sitios web oficiales.
protocolo netconf
Después de hablar del modelo yang, hablemos del protocolo Netconf. El modelo yang define la descripción digital del mundo de la red y Netconf define la adquisición (obtención) y ajuste (config) de datos.
Netconf encapsula los datos del mundo descrito por el modelo yang para realizar la gestión del mundo de la red.

Los datos de Yang se encapsulan en xml y luego se administran a través del protocolo Netconf. Es un protocolo con una gran idea en capas, que describe algunos detalles del protocolo de manera jerárquica. Miremos la imagen de arriba.
-Transmisión: Netconf se transmite mediante el protocolo SSH, está orientado a la conexión y tiene garantías de seguridad.
-Mensaje: realice una llamada remota al dispositivo de red a través de RPC, el administrador de red emite una solicitud de rpc y el dispositivo de red reanuda la respuesta de rpc.
-Operación: Esta es el alma de Netconf. Admite get (datos de configuración y ejecución), get-config (obtener datos de configuración, y un dispositivo puede tener múltiples datos de configuración, uno en ejecución, uno de inicio, múltiples candidatos candidatos), edit -config (configurar parámetros del dispositivo de red, admite adición, eliminación y modificación), eliminar-config, copiar-config (copiar la configuración al destino, el destino puede ser ftp, archivo o configuración en ejecución, etc.), bloquear\desbloquear (bloquear la configuración para evitar conflictos de configuración o fallas causadas por operaciones multiproceso), etc.
-Datos: los datos son datos yang envueltos en xml. Al igual que el puerto que describimos anteriormente, los datos estructurados son fáciles de programar. Se utiliza para describir los datos que se configurarán, eliminarán u obtendrán.
Estas son las cuatro capas de Netconf. El extremo de control y el dispositivo de red se comunican a través de Netconf, a través del protocolo ssh tradicional, utilizando el subsistema Netconf, y el puerto predeterminado es 830. Como se muestra a continuación:

Esta figura demuestra la interacción usando ssh sin formato, pero de hecho implementamos este proceso a través de la programación. Más adelante les demostraré el método de implementación de la programación.
Netconf configura dispositivos de red. El proceso de interacción es aproximadamente el siguiente:

Esta imagen es tan baja que también puedes ver que la dibujé yo... Mi comprensión de Netconf es la misma que la anterior. Creo que hay muchas imágenes en Internet que no son correctas y muchos comportamientos del agente del servidor no son correctos. Esto es lo que siento intuitivamente cuando inicio sesión en el dispositivo y, por supuesto, coincide uno a uno con la documentación oficial.
Podemos ver algunos ejemplos de Netconf:
Hola, crea un enlace.

Vimos varias palabras clave, versión de Netconf, modelo YANG compatible, identificación de sesión. Al mismo tiempo, hola indica en qué espacio de nombres estamos operando. En este caso, es la versión correspondiente de Netconf.
Obtener configuración

Un parámetro de get-cofig es el origen, que es de donde se obtienen los datos de configuración (en ejecución, inicio u otros). Otro parámetro es el filtro, es decir, qué datos se obtienen del modelo de datos descrito por qué modelo yang. Esto corresponde a la capacidad enviada originalmente por el dispositivo de red. Si tiene éxito, se devolverán los datos de configuración correspondientes.
Obtener configuración o datos de ejecución

Similar a get-config, pero lo que se obtiene es ejecutar la configuración (comprensión personal) o ejecutar datos. Se puede especificar el filtro.
Copiar configuración

La operación de copia tiene dos parámetros, origen y destino. La respuesta exitosa es con la etiqueta ok.
Editar configuración

Al editar la configuración, especifique el elemento de datos que se editará, el espacio de nombres de la capacidad y la etiqueta correspondiente. Por ejemplo, esto es para configurar dhcp, que se describe en el modelo yang http://tail-f.com/ns/example/dhcp.
Cerrar la sesión con gracia

Es este tipo de mensaje el que se transmite de un lado a otro en ssh. Simplemente extraemos parte del mensaje para facilitar la comprensión de todos.
Luego simplemente agregue algún contenido como referencia.
-Netconf se basa en la sesión y cada éxito tendrá una identificación de sesión.
-Cada solicitud tiene una identificación de mensaje, siempre que gradualmente se haga más grande.
-La configuración de datos se puede bloquear, excluir y operar mediante bloqueo.
-Netconf es transaccional y las operaciones se implementan todas o ninguna. Al mismo tiempo, según la documentación oficial del sitio web, esta transaccionalidad es para la configuración de N dispositivos de red, es decir, el polimorfismo de configuración única puede admitir la transaccionalidad. Pero aún no lo he hecho...
-Netconf admite suscripción. En términos de rendimiento del dispositivo, el orden de magnitud es de aproximadamente 5 sesiones. Puedo suscribirme a un determinado elemento de datos y el dispositivo me notificará cuando cambie.
-Capacidad, así lo entiendo yo. El dispositivo de red envía la versión de Netconf y el modelo YANG, y el terminal de control envía la versión de Netconf. Sólo cuando la versión de Netconf coincida con las dos podremos continuar. Este es mi sentimiento intuitivo. Cualquier consejo es bienvenido.
-Las operaciones como obtener edición especificarán los datos que se cambiarán, que se pueden filtrar mediante el filtro.
-copy-config admite copiar un conjunto completo de configuraciones de un lugar a otro. El lugar puede ser un archivo FTP, configuraciones en ejecución, de inicio y candidatas en el dispositivo.
-Netconf también admite la verificación de la configuración mediante la operación de validación.
Este artículo todavía espera popularizar la ciencia y no entraré en detalles. Puede leer los protocolos relevantes de RFC, que en realidad no son muy largos.
En la práctica, basándonos en algún software de código abierto, como el ncclient de Python, podemos configurar fácilmente dispositivos de red de forma automática y lograr la programabilidad de la red. Esta es la misión de Netconf y YANG Model.
El personal de red lee las definiciones del modelo YANG bien formateadas y utiliza lenguajes de programación relevantes para realizar operaciones programables en dispositivos de red en función de las operaciones definidas por Netconf. De esta manera se abre el camino hacia la programabilidad de la red.
Ampliemos e imaginemos que el modelo YANG ha definido la estructura de datos del dispositivo de red. Podemos operarlo a través de Netconf. ¿Se puede operar también mediante otros protocolos?
La respuesta es sí. De hecho, muchos otros protocolos se han derivado de Netconf, como RESTConf. Como se muestra abajo,

El modelo YANG (público y nativo) define la estructura de datos, encima de la cual se encuentran los nuevos protocolos de administración de red, Netconf, RESTCon, gRPC, etc. De esta manera, podemos operar dispositivos de red a través de RESTConf basado en HTTP RESTful API, también podemos operar la red dispositivos a través de Netconf basado en SSH, o podemos operar dispositivos de red a través de gRPC basado en HTTP2.0. Todos se basan en YANG con una buena estructura de datos. Modele, escriba los datos correspondientes y encapsúlelos en xml o json para programar dispositivos de red. Este es el futuro de la programabilidad de la red. Para ser precisos, es un programa basado en modelos, programabilidad de red basada en modelos. Los ingenieros de redes se centran gradualmente en los parámetros del dispositivo en lugar del conjunto de comandos y configuran los parámetros de la red leyendo el modelo de datos correspondiente.
Al final escribo, ¿por qué debería abrir esta cuenta pública? Estudié informática y tecnología cuando estaba en la escuela. Después de ingresar al lugar de trabajo, me dediqué a trabajos de operación y mantenimiento de redes. Pensándolo bien, la razón por la que me dividieron en equipos puede ser porque era un estudiante de posgrado en el Network Technology Research Institute (manual divertido). Desde el principio estuve involucrado en las operaciones de la red. En la etapa posterior de operación y mantenimiento, se utilizaron herramientas para simplificar el trabajo y mejorar la eficiencia basadas en CLI. Posteriormente, las herramientas se desarrollaron gradualmente hasta convertirse en aplicaciones web estructuradas por BS. Estuvieron constantemente expuestos a nuevas tecnologías y continuaron enriqueciendo nuevas funciones.
Afortunadamente, se pusieron al día con el desarrollo de la tecnología de código abierto y SDN, y gradualmente hice la transición al trabajo de NetDevOps y usé mis habilidades de programación para mejorar las capacidades de operación y mantenimiento del equipo. También disfruté escribiendo esta línea de código. A medida que avanza la escritura, se descubre gradualmente que NetDevOps debería ser una habilidad que todo ingeniero de redes debería tener en el futuro (todos echan leña al fuego), para que puedan lograr tanto una planificación de alto nivel como una implementación rápida. Mirando hacia atrás en cierta información en Internet, para ser honesto, hay muy poca en China y la atmósfera interna no es muy fuerte. Muchos software domésticos se basan en la antigua CLI y snmp, y todos todavía usan herramientas de texto y herramientas SSH para trabajar. Así que espero que yoPuedo enseñar a otros a pescar, compartir mi experiencia (pozos) y habilidades con más ingenieros de operación y mantenimiento de redes.y hacer lo mejor que pueda. Xiao Chu dijo que se puede aprender algo para reducir la carga de trabajo y, al centrarse en el futuro lejano, la operación y el mantenimiento de la red doméstica realmente pueden evolucionar hacia la automatización.
En el futuro, grabaré algunos videos y escribiré algunos artículos. Se siente realmente agotador escribir un documento. Le invitamos a suscribirse, recopilar, hacer clic en Me gusta y mirar.
Apéndice: Operaciones comunes de Netconf

Diseño de solución DWDM OTN y cotización de costos, por favor enlace conmigo, Taylor Huang















































