Table des matières

Introduction

Conditions préalables

Exigences

Composants utilisés

Étapes de validation - Routeur XR

Contrôles de configuration

Mise en réseau Linux

Configuration physique et sous-interface

Configuration du contrôleur PON

Vérifications

Fichier JSON

Contrôles de connectivité

État du conteneur

Date et heure

Suivre les messages

Étapes de validation - Machine virtuelle Linux

Vérifications

Script status.sh

Netplan

Connectivité IP

Fichier de configuration MongoDB

Emplacements des journaux au niveau système

Documentation de référence

Introduction

Ce document décrit la validation de la solution Cisco Routed PON (Passive Optical Network) sur une machine virtuelle (VM) et un routeur XR.

Conditions préalables

Exigences

Cisco recommande des connaissances sur ces sujets.

- Logiciel Cisco IOS® XR

- Linux

- Environnement de machine virtuelle

Composants utilisés

Les informations contenues dans ce document sont basées sur les versions logicielles et matérielles répertoriées :

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

- Logiciel Cisco IOS® XR 24.1.2

- Routed PON Version 24.1.2

- Ubuntu Version 20.04.06 LTS

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.

Étapes de validation - Routeur XR

Contrôles de configuration

Mise en réseau Linux

Assurez-vous que le VRF (Virtual Routing and Forwarding) utilisé pour la connectivité est reflété dans la configuration réseau de Linux. Pour cet exemple, VRF Mgmt-intf a été configuré. Assurez-vous également que la route par défaut de l'indication de source est définie pour l'interface de liaison ascendante correcte. La connectivité de l’exemple ci-dessous utilise l’interface MgmtEth0/RP0/CPU0/0.

Exemple de configuration :

linux networking

vrf Mgmt-intf

address-family ipv4

default-route software-forwarding

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

Configuration physique et sous-interface

Assurez-vous que l'interface dans laquelle le terminal de ligne optique enfichable est inséré est correcte et qu'elle ne s'arrête pas dans la configuration. Vérifiez également que la sous-interface est étiquetée dot1q avec 4090 et qu'elle est appliquée à l'interface physique associée.

Exemple de configuration :

interface TenGigE0/0/0/0

description PON OLT

!

interface TenGigE0/0/0/0.4090

encapsulation dot1q 4090

Vérification des commandes :

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

Assurez-vous que le protocole LLDP est activé dans la configuration globale.

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

Thu Jul 18 20:16:12.073 UTC

lldp

Configuration du contrôleur PON

Assurez-vous que le RPM xr-pon-ctrl est installé et qu'il est actif. Si ce n'est pas le cas, vérifiez que le NCS540l-iosxr-optional-RPMs-24.2.11.tar existe sur le disque dur (dans l'interpréteur de commandes Linux, le chemin est /misc/disk1/) et que le référentiel local contenant les RPM logiciels correspondants est correctement référencé.

Remarque : Des informations sur l'installation et la gestion des RPM à l'échelle du système sont disponibles à l'adresse suivante : Guide de configuration du système et d'installation du logiciel pour les routeurs de la gamme Cisco NCS 540, IOS XR version 24.1.x, 24.2.x

Exemple :

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

Assurez-vous que le contrôleur PON est configuré avec le fichier, le chemin d'accès au fichier et le VRF correctement associés.

Exemple :

pon-ctlr

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

Vérifications

Fichier JSON

Remarque : L'exemple de fichier PonCntlInit.json est inclus avec l'installation du logiciel Routed PON Manager sur la machine virtuelle.

Remarque : Avec une seule installation de VM de PON Manager, l'IP MongoDB et l'IP de la VM sont identiques.

Remarque : L'exemple répertorié n'utilise PAS TLS. Si vous utilisez TLS, assurez-vous que le nom d'utilisateur et le mot de passe sont définis correctement pour votre installation.

Assurez-vous que l'adresse IP de la base de données MongoDB est définie dans l'hôte : pour correspondre à ce à quoi le contrôleur PON se connecte. En outre, vérifiez que le port configuré correspond à celui du fichier mongod.conf dans la machine virtuelle.

Exemple :

{

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

}

Contrôles de connectivité

À partir du routeur XR, envoyez une requête ping à MongoDB/VM Hosting Routed PON Manager. Si vous utilisez un VRF, utilisez la source du VRF.

Exemple :

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#

État du conteneur

Le contrôleur PON s'exécute sur un conteneur docker sur le routeur XR. Vérifiez l'état du conteneur en vous connectant au shell linux dans le routeur XR, puis exécutez la commande docker ps. Affiche le conteneur actif et actif, le cas échéant.

Exemple :

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 le conteneur docker n'est PAS en cours d'exécution, vérifiez le contenu et la structure du fichier JSON. Recherchez les erreurs actives dans les journaux du conteneur docker. L'exemple de journal montre une ONU s'enregistrant auprès du contrôleur. Cela imprime également toute erreur de niveau docker en ce qui concerne le conteneur et OLT. En outre, vous pouvez obtenir des conseils en exécutant un simple show logging pour vérifier les messages d'erreur.

Remarque : L'utilisation de —follow affiche le contenu du journal le plus récent dans docker.

Exemple :

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

Date et heure

Assurez-vous que l'heure et la date sur le routeur XR et la machine virtuelle hébergeant Routed PON Manager correspondent. Si possible, utilisez les mêmes serveurs NTP pour une précision optimale.

Mise en garde : Le non-synchronisme du protocole NTP entre la machine virtuelle et le routeur XR a un impact direct sur la visibilité OLT dans Routed PON Manager.

Exemple :

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

Exemple de configuration :

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

Suivre les messages

Le processus PON génère une journalisation supplémentaire via ltrace. Recherchez dans ces journaux toute erreur liée à ce processus.

Exemple :

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

Étapes de validation - Machine virtuelle Linux

Vérifications

Script status.sh

Dans le répertoire d'installation Routed PON Manager, il existe un script shell (status.sh) pour afficher l'état actuel de chaque processus associé. Exécutez ce script avec des privilèges élevés pour vérifier que chacun des services répertoriés est opérationnel. Si l'un des services n'est pas en cours d'exécution, vérifiez d'abord le script d'installation exécuté lors de l'installation et assurez-vous que les arguments appropriés ont été définis conformément au guide d'installation.

Remarque : Le Guide d'installation de Cisco Routed PON Manager est disponible à l'adresse suivante : Guide d'installation de Cisco Routed PON Manager

mongod.service

apache2.service

netconf.service

netoper2-server.service

Exemple :

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

Validez Netplan et assurez-vous que les informations IP sont valides, que le nom de l'interface réseau de la machine virtuelle est correct, que l'ID de VLAN 4090 est créé et attribué et qu'il utilise une structure arborescente YAML Netplan valide.

Remarque : Le fichier YAML netplan se trouve dans /etc/netplan/.

Exemple :

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

Vérifiez la configuration IP de la machine virtuelle et assurez-vous que la carte réseau configurée correspond à ce qui est indiqué dans le fichier YAML du plan réseau.

Remarque : Utilisation de sudo netplan —debug apply est utile lors du test du netplan avant l'application.

Exemple :

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

Connectivité IP

Vérifiez la connectivité IP au routeur XR hébergeant le contrôleur PON via ping.

Exemple :

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

Vérifiez que le port TCP MongoDB 27017 est ouvert. Si vous utilisez un port non standard pour le MongoDB, vérifiez qu'il est ouvert/en écoute via netstat -tunl.

Remarque : Le port TCP MongoDB standard est 27017.

Remarque : Le fichier de configuration répertorié à l'étape 4 définit également la configuration du port TCP que MongoDB doit utiliser.

Exemple :

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

Fichier de configuration MongoDB

Vérifiez que le fichier mongod.conf est correct et que l'adresse IP correcte est indiquée sous bindIP:.

Remarque : Le fichier de configuration MongoDB se trouve à l'adresse /etc/mongod.conf

Exemple :

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

Emplacements des journaux au niveau système

Les journaux au niveau du système pour chaque service sont gérés dans linux. Ces journaux sont stockés dans le répertoire /var/log, en particulier sous ces arborescences.

Journaux MongoDB : /var/log/mongod/mongod.log

Journaux Apache : /var/log/apache2/<nom_fichier>.log

Syslog de la machine virtuelle : /var/log/syslog

Documentation de référence

- Page d'assistance et de téléchargement Cisco

- Page Solution Cisco Routed PON

- Guide d'installation de Cisco Routed PON

- Guide de déploiement de Cisco Routed PON

- Notes de version de Cisco Routed PON, Cisco IOS XR versions 24.1.1 et 24.1.2