La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
Questo documento descrive la convalida della soluzione Cisco Routed PON (Passive Optical Network) su una macchina virtuale (VM) e un router XR.
Cisco raccomanda la conoscenza di questi argomenti.
Le informazioni fornite in questo documento si basano sulle versioni software e hardware elencate:
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.
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
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
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
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"
}
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#
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"
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
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
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
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
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
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 --
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
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
19-Jul-2024 |
Versione iniziale |