Contents

Introdução

Pré-requisitos

Requisitos

Componentes Utilizados

Etapas de validação - Roteador XR

Verificações de configuração

Redes Linux

Configuração física e de subinterface

Configuração do controlador PON

Verificações

Arquivo JSON

Verificações de conectividade

Status do contêiner

Data e hora

Rastrear Mensagens

Etapas de validação - VM Linux

Verificações

Script status.sh

Netplan

Conectividade de IP

Arquivo de configuração MongoDB

Locais de log no nível do sistema

Documentação de referência

Introdução

Este documento descreve a validação da solução Cisco Routed PON (Passive Optical Network) em uma máquina virtual (VM) e roteador XR.

Pré-requisitos

Requisitos

A Cisco recomenda o conhecimento sobre esses tópicos.

- Software Cisco IOS® XR

- Linux

- Ambiente de máquina virtual

Componentes Utilizados

As informações neste documento são baseadas nas versões de software e hardware listadas:

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

- Software Cisco IOS® XR 24.1.2

- PON Roteado Versão 24.1.2

- Ubuntu Versão 20.04.06 LTS

As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.

Etapas de validação - Roteador XR

Verificações de configuração

Redes Linux

Certifique-se de que o VRF (Virtual Routing and Forwarding, roteamento e encaminhamento virtual) usado para conectividade esteja refletido na configuração de rede do Linux. Para este exemplo, o VRF Mgmt-intf foi configurado. Além disso, certifique-se de que a rota padrão de dica de origem esteja definida para a interface de uplink correta. A conectividade no exemplo listado usa a interface MgmtEth0/RP0/CPU0/0.

Exemplo de configuração:

linux networking

vrf Mgmt-intf

address-family ipv4

default-route software-forwarding

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

Configuração física e de subinterface

Certifique-se de que a interface na qual o OLT (Optical Line Terminal - Terminal de Linha Óptica) Conectável está inserido está correta e não está desligada na configuração. Além disso, confirme se a subinterface está marcada com dot1q com 4090 e se está aplicada à interface física associada.

Exemplo de configuração:

interface TenGigE0/0/0/0

description PON OLT

!

interface TenGigE0/0/0/0.4090

encapsulation dot1q 4090

Verificação 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

Verifique se o LLDP está habilitado na configuração global.

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

Thu Jul 18 20:16:12.073 UTC

lldp

Configuração do controlador PON

Certifique-se de que o RPM xr-pon-ctrl esteja instalado e ativo. Caso contrário, confirme se o NCS540l-iosxr-optional-RPMs-24.2.11.tar existe no disco rígido (no shell do Linux, o caminho é /misc/disk1/) e se o repositório local que contém os RPMs correspondentes ao software é referenciado corretamente.

Observação: as informações sobre a instalação e o gerenciamento em RPMs de todo o sistema podem ser encontradas neste link: Guia de Instalação de Software e Configuração do Sistema para Cisco NCS 540 Series Routers, IOS XR Release 24.1.x, 24.2.x

Exemplo:

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

Verifique se o controlador PON está configurado com o arquivo, o caminho do arquivo e o VRF corretamente associados.

Exemplo:

pon-ctlr

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

Verificações

Arquivo JSON

Observação: o exemplo do arquivo PonCntlInit.json está incluído na instalação do software Routed PON Manager na VM.

Observação: com uma única instalação VM do PON Manager, o IP MongoDB e o IP VM são um no mesmo.

Observação: o exemplo listado NÃO usa TLS. Se você estiver usando TLS, verifique se o nome de usuário e a senha estão definidos corretamente para sua instalação.

Certifique-se de que o IP do MongoDB esteja definido na seção host: para corresponder ao que o controlador PON se conecta. Além disso, confirme se a porta configurada corresponde à porta do arquivo mongod.conf na VM.

Exemplo:

{

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

}

Verificações de conectividade

A partir do roteador XR, faça ping no MongoDB/VM Hosting Routed PON Manager. Se você estiver usando um VRF, use a origem do VRF.

Exemplo:

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#

Status do contêiner

O controlador PON é executado em um contêiner de encaixe no roteador XR. Verifique o status do contêiner efetuando login no shell do linux no roteador XR e, em seguida, execute o comando docker ps. Mostra o contêiner ativo no momento, se houver.

Exemplo:

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 o contêiner do docker NÃO estiver em execução, verifique o conteúdo e a estrutura do arquivo no arquivo JSON. Verifique nos logs do contêiner do encaixe se há erros ativos. O exemplo do registro mostra um ONU a registrar-se com o controlador. Isso também imprime todos os erros no nível do encaixe com relação ao contêiner e ao OLT. Além disso, é possível obter orientação ao executar um show logging simples para verificar se há mensagens de erro.

Observação: o uso de —follow exibe o conteúdo de log mais recente no docker.

Exemplo:

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

Verifique se a hora e a data no Roteador XR e na VM que hospeda o Gerenciador PON Roteado correspondem. Se possível, use os mesmos servidores NTP para uma precisão ideal.

Cuidado: o NTP não está sincronizado entre a VM e o Roteador XR afeta diretamente a visibilidade do OLT no Gerenciador PON Roteado.

Exemplo:

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

Exemplo de configuração:

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 Mensagens

O processo PON gera logs adicionais por meio do ltrace. Verifique se há erros relacionados a esse processo nesses logs.

Exemplo:

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

Etapas de validação - VM Linux

Verificações

Script status.sh

No diretório de instalação do Routed PON Manager, há um script shell (status.sh) para exibir o status atual de cada processo associado. Execute este script com privilégios elevados para verificar se cada um dos serviços listados está ativo e em execução. Caso um dos serviços não esteja em execução, verifique primeiro o script de instalação que foi executado durante a execução da instalação e certifique-se de que os argumentos apropriados foram definidos de acordo com o guia de instalação.

Observação: o Guia de instalação do Cisco Routed PON Manager pode ser encontrado neste link: Guia de instalação do Cisco Routed PON Manager

mongod.service

apache2.service

netconf.service

netopeer2-server.service

Exemplo:

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 o Netplan e verifique se as informações de IP são válidas, se o nome da interface de rede da VM está correto, se a ID da VLAN 4090 foi criada e atribuída e se ela está usando uma estrutura de árvore YAML válida do Netplan.

Observação: o arquivo YAML do netplan está localizado em /etc/netplan/.

Exemplo:

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 a configuração IP da VM e se o adaptador de rede configurado corresponde ao que está listado no arquivo NETPLAN YAML.

Observação: o uso de sudo netplan — debug apply é útil ao testar o netplan antes do aplicativo.

Exemplo:

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

Conectividade de IP

Verifique a conectividade IP com o roteador XR que hospeda o controlador PON via ping.

Exemplo:

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 se o 27017 de porta TCP do MongoDB está aberto. Se você estiver usando uma porta não padrão para o MongoDB, verifique se ela está aberta/escutando via netstat -tunl.

Observação: a porta TCP MongoDB padrão é 27017.

Observação: o arquivo de configuração listado no passo 4 também define a configuração da porta TCP para o MongoDB usar.

Exemplo:

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

Arquivo de configuração MongoDB

Verifique se o arquivo mongod.conf está correto e se tem o IP correto listado em bindIP:.

Observação: o arquivo de configuração MongoDB está localizado em /etc/mongod.conf

Exemplo:

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

Locais de log no nível do sistema

Os registros de nível de sistema para cada serviço são gerenciados no linux. Esses logs são armazenados no diretório /var/log, especificamente sob essas árvores.

Logs do MongoDB: /var/log/mongod/mongod.log

Logs do Apache: /var/log/apache2/<nome_do_arquivo>.log

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

Documentação de referência

- Página de suporte e downloads da Cisco

- Página da solução Cisco Routed PON

- Guia de instalação do Cisco Routed PON

- Guia de implantação do Cisco Routed PON

- Notas de versão para Cisco Routed PON, Cisco IOS XR Release 24.1.1 e 24.1.2