Tradicionalmente, SNMP ha tenido un gran éxito para monitorear redes empresariales, pero tiene limitaciones: codificación inconsistente entre versiones, filtrado y opciones de recuperación de datos limitado, etc. La telemetría basada en modelos aborda muchas de las deficiencias y capacidades de supervisión y proporciona una interfaz adicional en la que la telemetría ahora está disponible.
1. ¿Qué es MDT o Model Driven Telemetry?
Es un nuevo enfoque para el monitoreo de la red en el que los datos se transmiten desde los dispositivos de la red de forma continua mediante un modelo push y proporciona acceso casi en tiempo real a las estadísticas operativas. Los equipos pueden suscribirse a elementos de datos específicos que necesitan, mediante el uso de modelos de datos YANG.
El mismo utiliza la estructura Open Programmable Interface.
2. Ok… ¿Qué es YANG?
YANG es un lenguaje de modelado de datos. Se utiliza para describir cómo se supone que deben verse los datos. YANG no es XML o JSON, YANG es un lenguaje propio y solo describe modelos de datos. Para instancias individuales de los datos, se puede utilizar JSON o XML.
Veamos un ejemplo con SNMP. En este protocolo se utiliza OID para llevar un orden, pero es muy difícil de recordarlo. En cambio, con la estructura Yang, es más fácil de leer.
3. YANG – Encoding
Como modelo estructurado, el mismo puede añadirse bajo el protocolo NETCONF, RESTCONF o gRPC, pero debe estar codificado según cada protocolo. Aquí un ejemplo de donde iría el modelo YANG en el protocolo NETCONF:
Por ejemplo para codificación, NETCONF utiliza XML; RESTconf utiliza JSON o XML y gRPC utiliza GPB (XML/JSON)
Nota: El protocolo de Google, gRPC no es un estándard, pero tienes grandes ventajas con respecto a los otros códigos, ya que utiliza la ventaja de JSON y XML. Por esta razón ha sido adoptado como método de envío de datos. Quizás en otro post veamos los detalles de cada uno y con algunos ejemplos prácticos.
4. Variedades de modelos YANG, pero es mejor un estándar (OpenConfig)
OpenConfig es un grupo de trabajo informal de operadores de red que comparten el objetivo de mover nuestras redes hacia una infraestructura más dinámica y programable.
“El enfoque inicial de OpenConfig es compilar un conjunto coherente de modelos de datos independientes del proveedor (escritos en YANG) basados en las necesidades operativas reales de los casos de uso y los requisitos de múltiples operadores de red en un modelo YANG.
Beneficios de OpenConfig:
- Utilízalo siempre que esté disponible
- Utiliza el nativo si no hay un modelo abierto aún.
5. “Push Not Pull”
El concepto de telemetría es que la información sea enviada y no solicitada. Es un concepto similar de API y Webhook (más detalles Aquí), pero en estos términos le conocen como subscripción y publicación. Solo recibes la info que te subscribes o que quieras publicar.
6. Telemetría – Arquitectura de transmisión
- Se basa en envío de data continuo con actualizaciones incrementales.
- Basado en subscripción
- Observa el estado de la red a través de lapsos de tiempos
- La data sigue un modelo en común
7. Ventajas de Telemetría sobre SNMP
- Transmisión de datos en función de una frecuencia específica o de un cambio de estado.
- Los datos se envían tan pronto como están disponibles, lo que reduce la necesidad de almacenar en búfer.
- No hay grandes solicitudes (a diferencia del sondeo SNMP)
- Se envían datos de manera incremental . Ejemplo: Solo datos que han cambiado
- Los usuarios emiten solicitudes de suscripción a través de RPC para datos de interés
- Datos en un formato común bien estructurado (Basado en YANG).
7. ¿Como configurar MDT en un equipo Cisco?
Bueno, son solo 3 pasos:
- Definir un destino u objetivo (el equipo que quiere leer la data)
- Definir un “Sensor Groups” y un “Sensor Paths”
- Definir una subscripción (“sensor groups” a enviar en el destino con una cierta frecuencia)
Plantilla de configuración según modelo:
telemetry ietf subscription 123 encoding encode-kvgpb filter xpath /interfaces/interface/state/counters stream yang-push update-policy periodic 1000 receiver ip address 10.49.234.12 57000 protocol grpc-tcp end
telemetry destination-group 100 ip address 10.49.234.12 port 57000 protocol gRPC encoding GPB sensor-group 100 path sys/intf/phys-[eth1/1] depth 0 subscription 100 dst-grp 100 snsr-grp 100 sample-interval 10000
telemetry model-driven destination-group example address-family ipv4 10.49.234.13 port 57000 encoding self-describing-gpb protocol grpc no-tls sensor-group example sensor-path openconfig-interfaces:interfaces/interface/state subscription example sensor-group-id example sample-interval 10000 destination-id example grpc port 57777 no-tls
8. Ejemplos – Aplicación TIG
Un uso de telemetría es utilizarlo en combinación con un TIG (Telegraf, InfluDB, Grafana), que se refiere a los tres componentes de software de código abierto que permiten recibir, almacenar y visualizar los datos de telemetría.* Puedes probar esta característica en los labs de Cisco Devnet Aquí.
*: En un próximo post podremos ver a detalle sobre cada una de estas aplicaciones si hay demanda sobre ellas.
Conclusión
Aún SNMP es utilizado ampliamente ya que no todos los vendors utilizan este nuevo modelo, pero es una adaptación que se está requiriendo cuando ahora hay una cantidad desmesurable a medir.
¿Dudas, opinión o sugerencias? Déjame tus comentarios.
Si te interesa alguno de nuestros servicios o leer todos nuestros posts, puedes localizarlos por esta red social o en nuestro portal SYNCORP. Gracias por la lectura.
Referencias:
LACNIC:
https://www.lacnic.net/innovaportal/file/4016/1/lacnog_telemetry_v2.pdf
IETF:
https://datatracker.ietf.org/meeting/96/materials/slides-96-rtgwg-7
Cisco Live:
https://www.ciscolive.com/c/dam/r/ciscolive/emea/docs/2019/pdf/BRKNMS-3537.pdf
https://www.ciscolive.com/c/dam/r/ciscolive/apjc/docs/2017/pdf/BRKSDN-2119.pdf
https://www.ciscolive.com/c/dam/r/ciscolive/emea/docs/2019/pdf/DEVWKS-1381.pdf
Blog Cisco:
https://blogs.cisco.com/sp/openconfig-on-cisco-platforms
https://blogs.cisco.com/developer/model-driven-telemetry-sandbox
https://developer.cisco.com/docs/ios-xe/#!streaming-telemetry-quick-start-guide/streaming-telemetry
