Configuration Guide for Cisco NCS 1004, IOS XR Release 25.x.x

PDF

Configuration Guide for Cisco NCS 1004, IOS XR Release 25.x.x

Verify reachability of IOS XR and Packet I/O infrastructure

Want to summarize with AI?

Log in

Use this task to verify that interfaces configured on IOS XR are programmed into the Linux kernel and that the packet I/O infrastructure provides default reachability for off-the-shelf Linux applications.


Ensure that interfaces configured on IOS XR are fully accessible from the Linux kernel and that packet I/O infrastructure enables default network reachability, supporting both native and third-party Linux applications.

Interfaces configured on IOS XR are programmed into the Linux kernel. These interfaces allow Linux applications to run as if they were running on a regular Linux system. This packet I/O capability ensures that off-the-shelf Linux applications can be run alongside IOS XR, allowing operators to use their existing tools and automate deployments with IOS XR.

The IP address on the Linux interfaces, MTU settings, MAC (Media Access Control) address are inherited from the corresponding settings of the IOS XR interface. Accessing the global VRF (Virtual Routing and Forwarding) network namespace ensures that when you issue the bash command, the default or the global VRF in IOS XR is reflected in the kernel. This ensures default reachability based on the routing capabilities of IOS XR and the packet I/O infrastructure.

Virtual addresses can be configured to access a router from the management network such as gRPC (Google Remote Procedure Call) using a single virtual IP address. On a device with two or more RPs (Route Processors), the virtual address refers to the management interface that is currently active. This functionality can be used across RP failover without the information of which RP is currently active. This is applicable to the Linux packet path.

Note

Automatic synchronization of secondary IPv4 and IPv6 addresses from XR to Linux OS

The secondary IPv4 and IPv6 addresses that are configured for an XR interface are now synchronized into the Linux operating system automatically. With this secondary IPv4 and IPv6 address synchronization, the third party applications that are deployed on Cisco IOS XR can now use the secondary addresses. Prior to this release, only primary IPv4 and IPv6 addresses were supported and the secondary IPv4 and IPv6 addresses had to be configured manually in the Linux operating system.

Exposed XR interfaces (EXIs) and address-only interfaces support secondary IPv4 and IPv6 address synchronization:

  • EXIs have secondary IP addresses added to their corresponding Linux interface

  • Address-only interfaces have secondary IP addresses added to the Linux loopback device. For details about address-only interfaces, see show linux networking interfaces address-only.

The restrictions of secondary IPv4 and IPv6 addresses synchronization are:

  • Secondary IPv4 addresses are not synchronized from Linux to XR for Linux-managed interfaces.

  • The ifconfig Linux command only displays the first configured IPv4 address. To view the complete list of IPv4 and IPv6 addresses, use the ip addr show Linux command.

For details about secondary IPv4 and IPV6 addresses, see ipv4 address (network) and ipv6 address.

You can run bash commands at the IOS XR router prompt to view the interfaces and IP addresses stored in global VRF. When you access the Cisco IOS XR Linux shell, you directly enter the global VRF.

Follow these steps to verify reachability of IOS XR and Packet I/O infrastructure.

Procedure

1.

From your Linux box, access the IOS XR console through SSH (Secure Shell), and log in.

Example:

cisco@host:~$ ssh root@192.168.122.xxx
root@192.168.122.188's password:
RP/0/RP0/CPU0:ios#
2.

View the ethernet interfaces on IOS XR.

Example:

RP/0/RP0/CPU0:ios#show ip interface brief

This output displays the IP address and the status of the active NCS 1004 interfaces.

Tue Oct 28 17:53:00.194 IST

Interface                      IP-Address      Status          Protocol Vrf-Name
Loopback2                      2.2.2.2         Up              Up       default
MgmtEth0/RP0/CPU0/0            10.127.60.173   Up              Up       default
MgmtEth0/RP0/CPU0/1            4.25.0.68       Down            Down     default
MgmtEth0/RP0/CPU0/2            unassigned      Shutdown        Down     default
Note

Use the ip addr show or ip link show commands to view all corresponding interfaces in Linux. The IOS XR interfaces that are admin-down state also reflects a Down state in the Linux kernel.

3.

Check the IP and MAC addresses of the interface that is in Up state.

Example:

RP/0/RP0/CPU0:ios#show interfaces mgmtEth 0/RP0/CPU0/0

This output shows the configuration details of the MgmtEth0/RP0/CPU0/0 interface.

Tue Oct 28 17:54:36.066 IST
MgmtEth0/RP0/CPU0/0 is up, line protocol is up
  Interface state transitions: 1
  Hardware is Management Ethernet, address is b026.80ff.d778 (bia b026.80ff.d778)
  Internet address is 10.127.60.173/24
  MTU 1450 bytes, BW 1000000 Kbit (Max: 1000000 Kbit)
     reliability 255/255, txload 0/255, rxload 0/255
  Encapsulation ARPA,
  Full-duplex, 1000Mb/s, CX, link type is autonegotiation
  loopback not set,
  Last link flapped 03:10:46
  ARP type ARPA, ARP timeout 04:00:00
  Last input 00:00:00, output 00:00:00
  Last clearing of "show interface" counters never
  5 minute input rate 4000 bits/sec, 6 packets/sec
  5 minute output rate 306000 bits/sec, 39 packets/sec
     747548 packets input, 857360447 bytes, 0 total input drops
     0 drops for unrecognized upper-level protocol
     Received 12247 broadcast packets, 48061 multicast packets
              0 runts, 0 giants, 0 throttles, 0 parity
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     547486 packets output, 489284750 bytes, 0 total output drops
     Output 1 broadcast packets, 4 multicast packets
     0 output errors, 0 underruns, 0 applique, 0 resets
     0 output buffer failures, 0 output buffers swapped out
     1 carrier transitions
RP/0/RP0/CPU0:ios#
4.

Verify that the bash command runs in global VRF to view the network interfaces.

Example:

RP/0/RP0/CPU0:ios#bash -c ifconfig

This output shows the active network interfaces in Linux.

Tue Oct 28 18:15:41.890 IST
Mg0_RP0_CPU0_0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.127.60.173  netmask 255.255.255.0  broadcast 0.0.0.0
        inet6 fe80::b226:80ff:feff:d778  prefixlen 64  scopeid 0x20<link>
        inet6 2001:420:5446:2014::281:178  prefixlen 119  scopeid 0x0<global>
        inet6 2001:420:5446:2014::281:378  prefixlen 119  scopeid 0x0<global>
        ether b0:26:80:ff:d7:78  txqueuelen 2000  (Ethernet)
        RX packets 9179  bytes 1140006 (1.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 816 (816.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 1400
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 508702  bytes 473586341 (451.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 508702  bytes 473586341 (451.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

to_xr: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1300
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 2000  (UNSPEC)
        RX packets 257333  bytes 26930763 (25.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 273099  bytes 46297306 (44.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

The to_xr interface indicates access to the global VRF.

5.

Access the Linux shell.

Example:

RP/0/RP0/CPU0:ios#bash
[ios:~]$
6.

(Optional) View the IP routes used by the to_xr interfaces.

Example:

[ios:~]$ ip route
default dev to_xr proto static scope link src 10.127.60.173 metric 2048 mtu 1500 advmss 1460
10.127.59.46 via 10.127.60.1 dev Mg0_RP0_CPU0_0 proto static metric 2048
10.127.60.0/24 dev Mg0_RP0_CPU0_0 proto static scope link src 10.127.60.173
[ios:~]$