Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Fasi di convalida - Router XR

Controlli della configurazione

Linux Networking

Configurazione fisica e interfaccia secondaria

Configurazione controller PON

Verifica

File JSON

Controlli connettività

Stato contenitore

Data e ora

Messaggi di traccia

Fasi di convalida - VM Linux

Verifica

script status.sh

NetPlan

Connettività IP

File di configurazione MongoDB

Posizioni log a livello di sistema

Documentazione di riferimento

Introduzione

Questo documento descrive la convalida della soluzione Cisco Routed PON (Passive Optical Network) su una macchina virtuale (VM) e un router XR.

Prerequisiti

Requisiti

Cisco raccomanda la conoscenza di questi argomenti.

- Software Cisco IOS® XR

- Linux

- Ambiente macchina virtuale

Componenti usati

Le informazioni fornite in questo documento si basano sulle versioni software e hardware elencate:

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

- Software Cisco IOS® XR 24.1.2

- Routed PON versione 24.1.2

- Ubuntu versione 20.04.06 LTS

Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.

Fasi di convalida - Router XR

Controlli della configurazione

Linux Networking

Verificare che il VRF (Virtual Routing and Forwarding) utilizzato per la connettività sia riflesso nella configurazione di rete Linux. Per questo esempio, è stato configurato VRF Mgmt-intf. Inoltre, verificare che la route predefinita dell'hint di origine sia impostata per l'interfaccia uplink corretta. Nell'esempio riportato, la connettività utilizza l'interfaccia MgmtEth0/RP0/CPU0/0.

Esempio di configurazione:

linux networking

vrf Mgmt-intf

address-family ipv4

default-route software-forwarding

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

Configurazione fisica e interfaccia secondaria

Verificare che l'interfaccia in cui è inserito il connettore OLT (Optical Line Terminal) sia corretta e che non sia stata chiusa durante la configurazione. Inoltre, verificare che l'interfaccia secondaria sia contrassegnata con 4090 dal punto1q e che venga applicata all'interfaccia fisica associata.

Esempio di configurazione:

interface TenGigE0/0/0/0

description PON OLT

!

interface TenGigE0/0/0/0.4090

encapsulation dot1q 4090

Verifica 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

Verificare che LLDP sia abilitato nella configurazione globale.

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

Thu Jul 18 20:16:12.073 UTC

lldp

Configurazione controller PON

Verificare che l'RPM xr-pon-ctrl sia installato e attivo. In caso contrario, verificare che il file NCS540l-iosxr-optional-RPMs-24.2.11.tar sia presente sul disco rigido (nella shell Linux il percorso è /misc/disk1/) e che il repository locale contenente il software corrispondente agli RPM sia referenziato correttamente.

Nota: per informazioni sull'installazione e la gestione dei moduli RPM a livello di sistema, visitare questo link: System Setup and Software Installation Guide for Cisco NCS 540 Router, IOS XR release 24.1.x, 24.2.x

Esempio:

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

Verificare che il controller PON sia configurato con il file, il percorso e il VRF associati correttamente.

Esempio:

pon-ctlr

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

Verifica

File JSON

Nota: l'esempio di file PonCntlInit.json è incluso nell'installazione del software Routed PON Manager sulla VM.

Nota: con una singola installazione VM di PON Manager, l'IP di MongoDB e l'IP della VM si trovano uno nella stessa posizione.

Nota: nell'esempio riportato NON viene utilizzato TLS. Se si utilizza TLS, verificare che il nome utente e la password siano impostati correttamente per l'installazione.

Verificare che l'indirizzo IP del database Mongo sia impostato nella sezione host: in modo che corrisponda a quello a cui si connette il controller PON. Inoltre, verificare che la porta configurata corrisponda a quella del file mongood.conf nella VM.

Esempio:

{

"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"

}

Controlli connettività

Dal router XR, eseguire il ping tra MongoDB e VM Hosting Routed PON Manager. Se si utilizza un VRF, eseguire l'origine dal VRF.

Esempio:

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#

Stato contenitore

Il controller PON viene eseguito su un contenitore docker sul router XR. Controllare lo stato del contenitore accedendo alla shell linux nel router XR, quindi eseguire il comando docker ps. In questo modo viene visualizzato il contenitore attivo e attivo se presente.

Esempio:

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

Se il contenitore del docker NON è in esecuzione, controllare il contenuto e la struttura del file JSON. Verificare nei log del contenitore del docker la presenza di eventuali errori attivi. L'esempio di registro mostra una registrazione ONU con il controller. Vengono inoltre stampati gli eventuali errori a livello di docker relativi al contenitore e all'OLT. È inoltre possibile ottenere indicazioni eseguendo una semplice registrazione show per controllare la presenza di messaggi di errore.

Nota: l'uso di —follow visualizza il contenuto del log più recente all'interno del docker.

Esempio:

[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"

Data e ora

Verificare che la data e l'ora sul router XR e la macchina virtuale che ospita Routed PON Manager corrispondano. Se possibile, utilizzare gli stessi server NTP per una precisione ottimale.

Attenzione: l'NTP non sincronizzato tra la macchina virtuale e il router XR influisce direttamente sulla visibilità OLT in Routed PON Manager.

Esempio:

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

Esempio di configurazione:

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

Messaggi di traccia

Il processo PON genera un'ulteriore registrazione tramite ltrace. Verificare nei registri la presenza di eventuali errori correlati al processo.

Esempio:

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

Fasi di convalida - VM Linux

Verifica

script status.sh

All'interno della directory di installazione di Routed PON Manager, è presente uno script shell (status.sh) per visualizzare lo stato corrente di ciascun processo associato. Eseguire questo script con privilegi elevati per verificare che ognuno dei servizi elencati sia attivo e in esecuzione. Se uno dei servizi non è in esecuzione, controllare innanzitutto lo script di installazione eseguito durante l'esecuzione dell'installazione e verificare che siano stati impostati gli argomenti appropriati nella guida all'installazione.

Nota: la Guida all'installazione di Cisco Routed PON Manager è disponibile in questo link: Guida all'installazione di Cisco Routed PON Manager

servizio.mondio

apache2.service

netconf.service

netopener2-server.service

Esempio:

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

Convalidare Netplan e verificare che le informazioni IP siano valide, che il nome dell'interfaccia di rete della VM sia corretto, che venga creato e assegnato l'ID VLAN 4090 e che utilizzi una struttura ad albero Netplan YAML valida.

Nota: il file YAML netplan si trova in /etc/netplan/.

Esempio:

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

Verificare la configurazione IP della macchina virtuale e che la scheda di rete configurata corrisponda a quanto elencato nel file YAML netplan.

Nota: Uso di sudo netplan —debug apply è utile quando si esegue il test del netplan prima dell'applicazione.

Esempio:

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

Connettività IP

Verificare la connettività IP al router XR che ospita il controller PON tramite ping.

Esempio:

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

Verificare che la porta TCP 27017 di MongoDB sia aperta. Se si utilizza una porta non standard per MongoDB, verificare che sia aperta/in ascolto tramite netstat -tunl.

Nota: la porta TCP standard di MongoDB è 27017.

Nota: il file di configurazione elencato nel passaggio 4 imposta anche la configurazione della porta TCP per MongoDB da utilizzare.

Esempio:

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

File di configurazione MongoDB

Verificare che il file mongood.conf sia accurato e che l'indirizzo IP corretto sia elencato in bindIP:.

Nota: il file di configurazione di MongoDB si trova in /etc/mongod.conf

Esempio:

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 --

Posizioni log a livello di sistema

I registri a livello di sistema per ogni servizio sono gestiti all'interno di Linux. Questi log sono memorizzati nella directory /var/log, in particolare in queste strutture ad albero.

Log di MongoDB: /var/log/mongod/mongod.log

Registri Apache: /var/log/apache2/<nomefile>.log

Syslog macchina virtuale: /var/log/syslog

Documentazione di riferimento

- Pagina di supporto e download di Cisco

- Pagina Soluzione Cisco Routed PON

- Guida all'installazione di Cisco Routed PON

- Guida all'installazione di Cisco Routed PON

- Note sulla release per Cisco Routed PON, Cisco IOS XR release 24.1.1 e 24.1.2