Inhalt

Einleitung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Validierungsschritte - XR-Router

Konfigurationsprüfungen

Linux-Netzwerke

Konfiguration der physischen und Subschnittstelle

Konfiguration des PON-Controllers

Überprüfungen

JSON-Datei

Konnektivitätsprüfungen

Containerstatus

Datum und Uhrzeit

Nachverfolgungsmeldungen

Validierungsschritte - Linux VM

Überprüfungen

status.sh Skript

NetPlan

IP-Verbindungen

MongoDB-Konfigurationsdatei

Protokollspeicherorte auf Systemebene

Referenzdokumentation

Einleitung

In diesem Dokument wird die Validierung der Cisco Routed PON (Passive Optical Network)-Lösung auf einem virtuellen System (VM) und einem XR-Router beschrieben.

Voraussetzungen

Anforderungen

Cisco empfiehlt zu diesen Themen umfassendes Fachwissen.

- Cisco IOS® XR-Software

- Linux

- Umgebung für virtuelle Systeme

Verwendete Komponenten

Die Informationen in diesem Dokument basieren auf den aufgeführten Software- und Hardwareversionen:

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

- Cisco IOS® XR Software 24.1.2

- Gerouteter PON Version 24.1.2

- Ubuntu-Version 20.04.06 LTS

Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.

Validierungsschritte - XR-Router

Konfigurationsprüfungen

Linux-Netzwerke

Stellen Sie sicher, dass die für die Verbindung verwendete VRF (Virtual Routing and Forwarding) in der Linux-Netzwerkkonfiguration wiedergegeben wird. Für dieses Beispiel wurde "VRF Mgmt-intf" konfiguriert. Stellen Sie außerdem sicher, dass die Standardroute für den Quellhinweis für die richtige Uplink-Schnittstelle festgelegt ist. Für die Verbindung im aufgeführten Beispiel wird die Schnittstelle MgmtEth0/RP0/CPU0/0 verwendet.

Konfigurationsbeispiel:

linux networking

vrf Mgmt-intf

address-family ipv4

default-route software-forwarding

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

Konfiguration der physischen und Subschnittstelle

Stellen Sie sicher, dass die Schnittstelle, in die das OLT (Optical Line Terminal) Pluggable eingesetzt ist, korrekt ist und nicht in der Konfiguration heruntergefahren wird. Vergewissern Sie sich außerdem, dass die Subschnittstelle mit 4090 dot1q markiert und auf die zugehörige physische Schnittstelle angewendet ist.

Konfigurationsbeispiel:

interface TenGigE0/0/0/0

description PON OLT

!

interface TenGigE0/0/0/0.4090

encapsulation dot1q 4090

Befehlsüberprüfung:

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

Sicherstellen, dass LLDP in der globalen Konfiguration aktiviert ist

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

Thu Jul 18 20:16:12.073 UTC

lldp

Konfiguration des PON-Controllers

Stellen Sie sicher, dass die RPM xr-pon-ctrl installiert ist und aktiv ist. Ist dies nicht der Fall, überprüfen Sie, ob NCS540l-iosxr-optional-RPMs-24.2.11.tar auf der Festplatte vorhanden ist (in der Linux-Shell lautet der Pfad /misc/disk1/), und das lokale Repo mit den per Software abgeglichenen RPMs wird korrekt referenziert.

Anmerkung: Informationen zur Installation und Verwaltung von systemweiten RPMs finden Sie unter: Handbuch für die Systemeinrichtung und Softwareinstallation für Cisco NCS 540 Router, IOS XR Version 24.1.x, 24.2.x

Beispiel:

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

Stellen Sie sicher, dass der PON-Controller mit der richtig zugeordneten Datei, dem Dateipfad und der VRF-Instanz konfiguriert ist.

Beispiel:

pon-ctlr

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

Überprüfungen

JSON-Datei

Anmerkung: Das Dateibeispiel PonCntlInit.json ist in der Installation der Routed PON Manager-Software auf dem virtuellen System enthalten.

Anmerkung: Mit einer einzigen VM Installation des PON Managers sind die MongoDB IP und die VM IP identisch.

Anmerkung: Im aufgeführten Beispiel wird KEIN TLS verwendet. Wenn Sie TLS verwenden, stellen Sie sicher, dass Benutzername und Kennwort für die Installation richtig festgelegt sind.

Stellen Sie sicher, dass die IP-Adresse der MongoDB im Host festgelegt ist: Abschnitt, der mit dem PON-Controller verbunden wird. Überprüfen Sie außerdem, ob der konfigurierte Port mit dem der Datei mongod.conf im virtuellen System übereinstimmt.

Beispiel:

{

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

}

Konnektivitätsprüfungen

Senden Sie vom XR-Router einen Ping an den MongoDB/VM Hosting Routed PON Manager. Wenn Sie eine VRF-Instanz verwenden, geben Sie die Quelle der VRF-Instanz ein.

Beispiel:

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#

Containerstatus

Der PON-Controller wird auf einem Docker-Container auf dem XR-Router ausgeführt. Überprüfen Sie den Status des Containers, indem Sie sich in der Linux-Shell des XR-Routers anmelden und dann den Befehl docker ps ausführen. Zeigt den aktuell aktiven Container an, falls vorhanden.

Beispiel:

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

Wenn der Docker-Container NICHT ausgeführt wird, überprüfen Sie den Inhalt und die Dateistruktur in der JSON-Datei. Überprüfen Sie die Protokolle des Docker-Containers auf aktive Fehler. Das Protokollbeispiel zeigt eine ONU, die sich beim Controller registriert. Dadurch werden auch eventuelle Docker-Level-Fehler in Bezug auf Container und OLT ausgegeben. Zusätzlich kann durch eine einfache Show-Protokollierung eine Anleitung zur Fehlersuche gewonnen werden.

Anmerkung: Die Verwendung von —follow zeigt den neuesten Protokollinhalt im Docker an.

Beispiel:

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

Datum und Uhrzeit

Stellen Sie sicher, dass Uhrzeit und Datum auf dem XR-Router und dem virtuellen System mit dem Routed PON Manager übereinstimmen. Verwenden Sie, falls möglich, dieselben NTP-Server für optimale Genauigkeit.

Vorsicht: Wenn das NTP zwischen dem virtuellen System und dem XR-Router nicht synchronisiert ist, wirkt sich dies direkt auf die OLT-Transparenz im Routed PON Manager aus.

Beispiel:

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

Konfigurationsbeispiel:

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

Nachverfolgungsmeldungen

Der PON-Prozess generiert eine zusätzliche Protokollierung über ltrace. Überprüfen Sie diese Protokolle auf Fehler im Zusammenhang mit diesem Prozess.

Beispiel:

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

Validierungsschritte - Linux VM

Überprüfungen

status.sh Skript

Innerhalb des Installationsverzeichnisses des Routed PON Managers gibt es ein Shell-Skript (status.sh), um den aktuellen Status der einzelnen zugehörigen Prozesse anzuzeigen. Führen Sie dieses Skript mit erhöhten Berechtigungen aus, um zu überprüfen, ob alle aufgeführten Dienste ausgeführt werden. Falls einer der Dienste nicht ausgeführt wird, überprüfen Sie zunächst das Installationsskript, das bei der Durchführung der Installation ausgeführt wurde, und stellen Sie sicher, dass die entsprechenden Argumente in der Installationsanleitung angegeben wurden.

Anmerkung: Das Installationshandbuch für den Cisco Routed PON Manager finden Sie unter diesem Link: Cisco Routed PON Manager - Installationshandbuch

mongod.service

apache2.service

netconf.service

netopeer2-server.service

Beispiel:

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

Validieren Sie den NetPlan, und stellen Sie sicher, dass die IP-Informationen gültig sind, dass der Name der VM-Netzwerkschnittstelle korrekt ist, dass die VLAN-ID 4090 erstellt und zugewiesen wurde und dass eine gültige NetPlan YAML-Baumstruktur verwendet wird.

Anmerkung: Die netplan YAML-Datei befindet sich in /etc/netplan/.

Beispiel:

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

Überprüfen Sie die IP-Konfiguration des virtuellen Systems, und stellen Sie sicher, dass der konfigurierte Netzwerkadapter mit den Angaben in der YAML-Netzwerkplandatei übereinstimmt.

Anmerkung: Die Verwendung von sudo netplan —debug apply ist nützlich, wenn der netplan vor der Anwendung getestet wird.

Beispiel:

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

IP-Verbindungen

Überprüfen Sie die IP-Verbindung mit dem XR-Router, der den PON-Controller hostet, über Ping.

Beispiel:

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

Stellen Sie sicher, dass der MongoDB TCP Port 27017 geöffnet ist. Wenn Sie einen nicht standardmäßigen Port für die MongoDB verwenden, überprüfen Sie, ob er über netstat -tunl geöffnet ist bzw. lauscht.

Anmerkung: Der Standard-TCP-Port von MongoDB ist 27017.

Anmerkung: Die in Schritt 4 aufgeführte Konfigurationsdatei legt auch die TCP-Portkonfiguration für die MongoDB fest.

Beispiel:

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

MongoDB-Konfigurationsdatei

Vergewissern Sie sich, dass die Datei mongod.conf korrekt ist und die richtige IP unter bindIP: aufgeführt ist.

Anmerkung: Die MongoDB-Konfigurationsdatei finden Sie unter /etc/mongod.conf

Beispiel:

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

Protokollspeicherorte auf Systemebene

Die Protokolle auf Systemebene für jeden Dienst werden in Linux verwaltet. Diese Protokolle werden im Verzeichnis "/var/log" gespeichert, insbesondere unter diesen Strukturen.

MongoDB-Protokolle: /var/log/mongod/mongod.log

Apache-Protokolle: /var/log/apache2/<Dateiname>.log

Syslog virtueller Systeme: /var/log/syslog

Referenzdokumentation

- Seite für Cisco Support und Downloads

- Seite für Cisco Routed PON-Lösung

- Cisco Routed PON - Installationshandbuch

- Implementierungsleitfaden für Cisco Routed PON

- Versionshinweise für Cisco Routed PON, Cisco IOS XR 24.1.1 und 24.1.2