Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Pasos de validación - Router XR

Comprobaciones de configuración

Redes Linux

Configuración física y de subinterfaz

Configuración del controlador PON

Verificaciones

Archivo JSON

Comprobaciones de conectividad

Estado del contenedor

Fecha y hora

Rastrear mensajes

Pasos de validación - Linux VM

Verificaciones

status.sh Script

Netplan

Conectividad IP

Archivo de configuración MongoDB

Ubicaciones del registro de nivel del sistema

Documentación de referencia

Introducción

Este documento describe la validación de la solución Cisco Routed PON (Passive Optical Network) en una máquina virtual (VM) y un router XR.

Prerequisites

Requirements

Cisco recomienda tener conocimientos sobre estos temas.

- Software Cisco IOS® XR

- Linux

- Entorno de máquina virtual

Componentes Utilizados

La información de este documento se basa en las versiones de software y hardware enumeradas:

- Router XR NCS-540-28Z4C-SYS-A

- Software Cisco IOS® XR 24.1.2

- Routed PON Version 24.1.2

- Ubuntu Versión 20.04.06 LTS

La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.

Pasos de validación - Router XR

Comprobaciones de configuración

Redes Linux

Asegúrese de que el VRF (Virtual Routing and Forwarding) utilizado para la conectividad esté reflejado dentro de la configuración de la red linux. Para este ejemplo, se ha configurado VRF Mgmt-intf. Además, asegúrese de que source-hint default-route esté configurado para la interfaz de enlace ascendente correcta. La conectividad en el ejemplo listado utiliza la interfaz MgmtEth0/RP0/CPU0/0.

Ejemplo de configuración:

linux networking

vrf Mgmt-intf

address-family ipv4

default-route software-forwarding

source-hint default-route interface MgmtEth0/RP0/CPU0/0

Configuración física y de subinterfaz

Asegúrese de que la interfaz en la que está insertado el OLT (Terminal de Línea Óptica) Pluggable es correcta y no está apagada en la configuración. Además, confirme que la subinterfaz es dot1q etiquetada con 4090 y que se aplica a la interfaz física asociada.

Ejemplo de configuración:

interface TenGigE0/0/0/0

description PON OLT

!

interface TenGigE0/0/0/0.4090

encapsulation dot1q 4090

Verificación de comando:

RP/0/RP0/CPU0:F340.16.19.N540-1#show ip interface brief

Tue Jul 16 15:08:28.786 UTC

Interface            IP-Address  Status Protocol Vrf-Name

TenGigE0/0/0/0       unassigned  Up     Up       default

TenGigE0/0/0/0.4090  unassigned  Up     Up       default

RP/0/RP0/CPU0:F340.16.19.N540-1#show interface TenGigE0/0/0/0.4090

Wed Jul 17 13:17:07.754 UTC

TenGigE0/0/0/0.4090 is up, line protocol is up

Interface state transitions: 5

Hardware is VLAN sub-interface(s), address is c47e.e0b3.9b04

Internet address is Unknown

MTU 1518 bytes, BW 10000000 Kbit (Max: 10000000 Kbit)

reliability 255/255, txload 0/255, rxload 0/255

Encapsulation 802.1Q Virtual LAN, VLAN Id 4090, loopback not set

Asegúrese de que LLDP esté habilitado en la configuración global.

RP/0/RP0/CPU0:F340.16.19.N540-1#show run | include lldp

Thu Jul 18 20:16:12.073 UTC

lldp

Configuración del controlador PON

Asegúrese de que el RPM xr-pon-ctrl está instalado y es un RPM activo. Si no es así, confirme que NCS540l-iosxr-optional-RPMs-24.2.11.tar existe en el disco duro (en el shell de Linux, la ruta es /misc/disk1/), y se hace referencia correctamente al repo local que contiene los RPM coincidentes con el software.

Nota: Puede encontrar información sobre la instalación y la gestión de RPM en todo el sistema en este enlace: System Setup and Software Installation Guide for Cisco NCS 540 Series Routers, IOS XR Release 24.1.x, 24.2.x

Ejemplo:

RP/0/RP0/CPU0:F340.16.19.N540-2#show install active summary | include xr-pon

Tue Jul 16 14:59:16.082 UTC

xr-pon-ctlr 24.1.2v1.0.0-1

install

repository local-repo

url file:///harddisk:/optional-RPMs-2412

Asegúrese de que PON-Controller esté configurado con el archivo, la ruta de acceso del archivo y el VRF asociados correctamente.

Ejemplo:

pon-ctlr

cfg-file harddisk:/PonCntlInit.json vrf Mgmt-intf

Verificaciones

Archivo JSON

Nota: El ejemplo del archivo PonCntlInit.json se incluye con la instalación del software Routed PON Manager en la máquina virtual.

Nota: Con una sola instalación de VM de PON Manager, la IP de MongoDB y la IP de VM son iguales.

Nota: El ejemplo que aparece en la lista NO utiliza TLS. Si utiliza TLS, asegúrese de que el nombre de usuario y la contraseña estén configurados correctamente para su instalación.

Asegúrese de que la IP de MongoDB esté configurada en la sección host: para coincidir con lo que conecta el controlador PON. Además, confirme que el puerto configurado coincida con el del archivo mongod.conf en la máquina virtual.

Ejemplo:

{

"CNTL": {

"Auth": false,

"CFG Version": "R4.0.0",

"DHCPv4": true, <- DHCP set to true for CPE devices, Default is false.

"DHCPv6": true, <- DHCP set to true for CPE devices, Default is false.

"PPPoE": false,

"UMT interface": "tibitvirt",

"Maximum CPEs Allowed": 0,

"Maximum CPE Time": 0

},

"DEBUG": {},

"JSON": {

"databaseDir": "/opt/tibit/poncntl/database/",

"defaultDir": "/opt/tibit/poncntl/database/"

},

"Local Copy": {

"CNTL-STATE": false,

"OLT-STATE": false,

"ONU-STATE": false

},

"Logging": {

"Directory": "/var/log/tibit",

"FileCount": 3,

"FileSize": 10240000,

"Tracebacks": false,

"Timestamp": false,

"Facility" : "user"

},

"MongoDB": {

"auth_db": "tibit_users",

"auth_enable": false,

"ca_cert_path": "/etc/cisco/ca.pem",

"compression": false,

"write_concern": "default",

"host": "10.122.140.232", <- MongoDB IP

"name": "tibit_pon_controller",

"password": "", <- Left Empty - Not using TLS

"port": "27017", <- MongoDB TCP Port

"tls_enable": false, <- Set to False to leave TLS disabled

"username": "", <- Left Empty - Not using TLS

"dns_srv": false,

"db_uri": "",

"replica_set_enable": false,

"validate_cfg": true

},

"databaseType": "MongoDB",

"interface": "veth_pon_glb"

}

Comprobaciones de conectividad

Desde el router XR, haga ping al administrador de PON enrutado de alojamiento MongoDB/VM. Si utiliza un VRF, el origen se obtiene del VRF.

Ejemplo:

RP/0/RP0/CPU0:F340.16.19.N540-1#ping vrf Mgmt-intf 10.122.140.232

Tue Jul 16 15:09:52.780 UTC

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.122.140.232 timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/3 ms

RP/0/RP0/CPU0:F340.16.19.N540-1#

Estado del contenedor

El controlador PON se ejecuta en un contenedor de acoplamiento en el router XR. Verifique el estado del contenedor iniciando sesión en el shell de linux en el router XR, luego ejecute el comando docker ps. Muestra el contenedor activo y activo actualmente, si lo hay.

Ejemplo:

RP/0/RP0/CPU0:F340.16.19.N540-1#run

Tue Jul 16 15:14:26.059 UTC

[node0_RP0_CPU0:~]$docker ps

CONTAINER ID   IMAGE                   COMMAND                CREATED    STATUS PORTS   NAMES

2e700f202ee3   tibit-poncntl.xr:R4.0.0 "/usr/bin/supervisor…" 3 days ago Up     3 days  pon_ctlr

Si el contenedor de acoplamiento NO se está ejecutando, compruebe el contenido y la estructura de archivos del archivo JSON. Compruebe los registros del contenedor de acoplamiento para ver si hay errores activos. El ejemplo de registro muestra un registro ONU con el controlador. Esto también imprime cualquier error de nivel de acoplador con respecto al contenedor y OLT. Además, se puede obtener orientación al ejecutar un simple show logging para verificar si hay mensajes de error.

Nota: El uso de —follow muestra el contenido de registro más reciente en docker.

Ejemplo:

[node0_RP0_CPU0:~]$docker logs pon_ctlr

2024-07-16 15:05:11.630 PonCntl System Status

{

"e0:9b:27:36:aa:76": {

"OLT State": "Primary",

"ONU Active Count": 1,

"ONUs": {

"CIGG2410503f": "Registered"

Fecha y hora

Asegúrese de que la fecha y la hora del router XR y de la máquina virtual que aloja el administrador de PON enrutado coincidan. Si es posible, utilice los mismos servidores NTP para una precisión óptima.

Precaución: el hecho de que el NTP no esté sincronizado entre la máquina virtual y el router XR afecta directamente a la visibilidad de OLT en el administrador de PON enrutados.

Ejemplo:

RP/0/RP0/CPU0:F340.16.19.N540-1#show clock

Tue Jul 16 15:25:03.781 UTC

15:25:03.827 UTC Tue Jul 16 2024

Ejemplo de configuración:

ntp

server vrf Mgmt-intf 172.18.108.14 source MgmtEth0/RP0/CPU0/0

server vrf Mgmt-intf 172.18.108.15 prefer source MgmtEth0/RP0/CPU0/0

Rastrear mensajes

El proceso PON genera registros adicionales a través de ltrace. Verifique estos registros para ver si hay errores relacionados con este proceso.

Ejemplo:

RP/0/RP0/CPU0:F340.16.19.N540-1#show pon-ctlr ltrace all reverse location all

Wed Jul 17 13:25:43.747 UTC

670 wrapping entries (4224 possible, 896 allocated, 0 filtered, 670 total)

Jul 10 19:17:55.066 pon_ctlr/event 0/RP0/CPU0 t6986 pon_ctlr_config_sysdb.c:117:Successfully connected to sysdb

Jul 10 19:17:55.039 pon_ctlr/event 0/RP0/CPU0 t6986 pon_ctlr_main.c:372:Succeessfully registered with install manager

Jul 10 19:17:55.006 pon_ctlr/event 0/RP0/CPU0 t7082 pon_ctlr_utls.c:353:IP LINK: ip link delete veth_pon_xrns

Pasos de validación - Linux VM

Verificaciones

status.sh Script

Dentro del directorio de instalación de Routed PON Manager, hay una secuencia de comandos de shell (status.sh) para mostrar el estado actual de cada proceso asociado. Ejecute este script con privilegios elevados para verificar que cada uno de los servicios listados está activo y en ejecución. En caso de que uno de los servicios no se esté ejecutando, compruebe primero la secuencia de comandos de instalación que se ejecutó al realizar la instalación y asegúrese de que se han establecido los argumentos adecuados en la guía de instalación.

Nota: La Guía de Instalación de Cisco Routed PON Manager se puede encontrar en este enlace: Guía de Instalación de Cisco Routed PON Manager

mongod.service

apache2.service

netconf.service

netopeer2-server.service

Ejemplo:

rpon@rpon-mgr:~/PON_MANAGER_SIGNED_CCO/R4.0.0-Cisco-UB2004-sign/R4.0.0-Cisco-UB2004$ sudo ./status.sh

[sudo] password for rpon:

MCMS Component Versions:

PON Manager: R4.0.0

PON NETCONF: R4.0.0

PON Controller: Not Installed

● mongod.service - MongoDB Database Server

Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)

Active: active (running) since Thu 2024-06-27 08:46:25 EDT; 2 weeks 5 days ago

Main PID: 52484 (mongod)

Memory: 1.5G

CGroup: /system.slice/mongod.service

└─52484 /usr/bin/mongod --config /etc/mongod.conf

● apache2.service - The Apache HTTP Server

Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)

Active: active (running) since Fri 2024-07-12 06:33:30 EDT; 4 days ago

Process: 103015 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)

Main PID: 96525 (apache2)

Tasks: 123 (limit: 9403)

Memory: 27.0M

CGroup: /system.slice/apache2.service

├─ 96525 /usr/sbin/apache2 -k start

├─103029 /usr/sbin/apache2 -k start

├─103030 /usr/sbin/apache2 -k start

└─103031 /usr/sbin/apache2 -k start

● tibit-netconf.service - Tibit Communications, Inc. NetCONF Server

Loaded: loaded (/lib/systemd/system/tibit-netconf.service; enabled; vendor preset: enabled)

Active: active (running) since Thu 2024-06-27 08:47:44 EDT; 2 weeks 5 days ago

Main PID: 60768 (tibit-netconf)

Tasks: 17 (limit: 9403)

Memory: 60.7M

CGroup: /system.slice/tibit-netconf.service

├─60768 /opt/tibit/netconf/bin/tibit-netconf

└─60786 /opt/tibit/netconf/bin/tibit-netconf

● tibit-netopeer2-server.service - Tibit Communications, Inc. Netopeer2 Server

Loaded: loaded (/lib/systemd/system/tibit-netopeer2-server.service; enabled; vendor preset: enabled)

Active: active (running) since Thu 2024-06-27 08:47:44 EDT; 2 weeks 5 days ago

Main PID: 60772 (netopeer2-serve)

Tasks: 7 (limit: 9403)

Memory: 6.0M

CGroup: /system.slice/tibit-netopeer2-server.service

└─60772 /opt/tibit/netconf/bin/netopeer2-server -v 1 -t 55

Netplan

Valide el Netplan y asegúrese de que la información de IP sea válida, que el nombre de la interfaz de red de VM sea correcto, que se cree y asigne el ID de VLAN 4090 y que esté utilizando una estructura de árbol YAML de Netplan válida.

Nota: El archivo YAML de netplan se encuentra en /etc/netplan/.

Ejemplo:

rpon@rpon-mgr:~/PON_MANAGER_SIGNED_CCO/R4.0.0-Cisco-UB2004-sign/R4.0.0-Cisco-UB2004$ cat /etc/netplan/01-network-manager-all.yaml

network:

version: 2

Renderer: Network Manager

ethernets:

ens192: <- VM Network Adapter

dhcp4: no <- No DHCP as the IP is set statically

dhcp6: no

addresses: [10.122.140.232/28] <- IP of the VM Network adapter

gateway4: 10.122.140.225 <- GW of the IP Network

nameservers:

addresses: [172.18.108.43,172.18.108.34] <- Network DNS

vlans:

vlan.4090:

id: 4090

link: ens192 <- VM Network adapter

dhcp4: no

dhcp6: no

Verifique la configuración IP de la VM y que el adaptador de red configurado coincida con lo que se enumera en el archivo YAML de netplan.

Nota: El uso de sudo netplan —debug apply es útil cuando se prueba el netplan antes de la aplicación.

Ejemplo:

rpon@rpon-mgr:~$ ifconfig

ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 10.122.140.232 netmask 255.255.255.240 broadcast 10.122.140.239

inet6 fe80::df4d:8d4d:4836:82aa prefixlen 64 scopeid 0x20<link>

ether 00:50:56:84:3f:8f txqueuelen 1000 (Ethernet)

RX packets 68933231 bytes 21671670389 (21.6 GB)

RX errors 0 dropped 129 overruns 0 frame 0

TX packets 36820200 bytes 71545432788 (71.5 GB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

-- snipped for brevity --

vlan.4090: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet6 fe80::250:56ff:fe84:3f8f prefixlen 64 scopeid 0x20<link>

ether 00:50:56:84:3f:8f txqueuelen 1000 (Ethernet)

RX packets 0 bytes 0 (0.0 B)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 1044 bytes 140547 (140.5 KB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Conectividad IP

Verifique la conectividad IP con el router XR que aloja el controlador PON a través del ping.

Ejemplo:

rpon@rpon-mgr:~/PON_MANAGER_SIGNED_CCO/R4.0.0-Cisco-UB2004-sign/R4.0.0-Cisco-UB2004$ ping 10.122.140.226

PING 10.122.140.226 (10.122.140.226) 56(84) bytes of data.

64 bytes from 10.122.140.226: icmp_seq=1 ttl=255 time=1.01 ms

64 bytes from 10.122.140.226: icmp_seq=2 ttl=255 time=1.03 ms

64 bytes from 10.122.140.226: icmp_seq=3 ttl=255 time=1.13 ms

^C

--- 10.122.140.226 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2002ms

rtt min/avg/max/mdev = 1.009/1.054/1.128/0.052 ms

Verifique que el puerto TCP 27017 de MongoDB esté abierto. Si está utilizando un puerto no estándar para MongoDB, verifique que esté abierto/escuchando vía netstat -tunl.

Nota: El puerto TCP MongoDB estándar es 27017.

Nota: El archivo de configuración enumerado en el paso 4 también establece la configuración del puerto TCP que utilizará MongoDB.

Ejemplo:

rpon@rpon-mgr:~/PON_MANAGER_SIGNED_CCO/R4.0.0-Cisco-UB2004-sign/R4.0.0-Cisco-UB2004$ netstat -tunl

Active Internet connections (only servers)

Proto Recv-Q Send-Q  Local Address        Foreign Address State

tcp   0      0       127.0.0.53:53        0.0.0.0:*       LISTEN

tcp   0      0       127.0.0.1:27017      0.0.0.0:*       LISTEN

tcp   0      0       10.122.140.232:27017 0.0.0.0:*       LISTEN

Archivo de configuración MongoDB

Verifique que el archivo mongod.conf sea preciso y que tenga la IP correcta enumerada en bindIP:.

Nota: El archivo de configuración de MongoDB se encuentra en /etc/mongod.conf

Ejemplo:

rpon@rpon-mgr:~/PON_MANAGER_SIGNED_CCO/R4.0.0-Cisco-UB2004-sign/R4.0.0-Cisco-UB2004$ cat /etc/mongod.conf

# mongod.conf

storage:

dbPath: /var/lib/mongodb

journal:

enabled: true

systemLog:

destination: file

logAppend: true

path: /var/log/mongodb/mongod.log

logRotate: reopen

# network interfaces

net:

port: 27017

bindIp: 127.0.0.1,10.122.140.232

processManagement:

pidFilePath: /var/run/mongodb/mongod.pid

timeZoneInfo: /usr/share/zoneinfo

replication:

replSetName: "rs0"

-- snipped for brevity --

Ubicaciones del registro de nivel del sistema

Los registros de nivel de sistema para cada servicio se administran dentro de linux. Estos registros se almacenan en el directorio /var/log, específicamente debajo de estos árboles.

Registros de MongoDB: /var/log/mongod/mongod.log

Registros de Apache: /var/log/apache2/<filename>.log

Syslog de máquina virtual: /var/log/syslog

Documentación de referencia

- Página de soporte y descargas de Cisco

- Página de la solución Cisco Routed PON

- Guía de Instalación de Cisco Routed PON

- Guía de implementación de Cisco Routed PON

- Notas de la versión para Cisco Routed PON, Cisco IOS XR Release 24.1.1 y 24.1.2