Introduction to IOS-XR 6.
0
Joachim Jerberg Jensen joajense@cisco.com
System Engineer, Global Service Providers
CCIE SP #42403
Agenda
Introduction
Software Architecture Overview
Flexible Packaging
Application Hosting
Configuration, Monitoring and Troubleshooting
Conclusions
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 2
Introduction
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 3
coming to a platform closer to you
In development
Not committed yet
NCS5001 NCS5011 NCS1002 w/ macsec
NCS5002
NCS5502
NCS5508 NCS1002 NCS5501 ASR9000(*) NCS 6000
Q4 CY15 Q2 CY16 Q4 CY16
* On ASR9k, 32-bit QNX images and 64-bit linux images will be supported
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 4
Guiding Principles for IOS-XR operational enhancements
Bring Your own Application
Provide a platform on which customers can host their apps (3rd party apps,
customer apps, cisco apps)
Automatable interfaces
Provide visibility into the device through machine friendly interfaces
Open architecture Decrease tool chain variance
Fit into customers operational workflow
2015 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 5
Pillars of IOS-XR operational enhancements
Visibility & Operational Data, Deep analytical hooks
Telemetry Policy-based, flexible, Push Model
Data accessible via published model driven interfaces
Evolved
Machine friendly
Programmability Enables automation @ scale
Application Ability to run 3rd party off the shelf applications built with Linux tool chains
Hosting Run custom applications inside an LXC container on the 64-bit Linux host
Packages can be inspected on box using standard tool chain (RPM tools)
Flexible Platform
Automated package dependency checkers
and Packaging Open Bootloaders (iPXE) and end-to-end auto-provision
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
Software Architecture
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 7
IOS XR 6.0 introduces a new software infrastructure offering
64-bit OpenEmbedded Linux support.
Processes containerization.
Brings in standard Linux toolchain. Classic XR XR 6.0
Third-Party Applications Support.
System System
NCS 5500, NCS 5000 and NCS1002 Control Admin
Control Admin
will support only 64-bit Linux
32
bit
QNX 64
bit
Linux
ASR 9000 will still have 32-bit QNX NPU X86
Hardware
support
8
Traditional
Virtualization
Introduction to Containers App App
LXC (LinuX Containers) let you run a Lib Lib
Linux system within another Linux system.
OS OS
A container is a group of processes on a Operating
System
Linux machine. Hypervisor
Those processes form an isolated X86
Hardware
environment.
Containers
Inside the container, it looks like a Virtual App App
Machine.
Lib Lib
Outside the container, it looks like normal
processes running on the system. OS OS
Containers look like Virtual Machines, but Operating
System
are more efficient. X86
Hardware 9
Why Containers?
They are Fast Deploy and Boot in less than one Second vs Minutes for
Virtual Machines
They are Lightweight Only a few MB of Disk Space per Container vs
several hundred MB for traditional Virtual Machines.
They provide Similar Services as VMs Each container has:
Its own network interfaces LXC1 LXC2
- Can be bridged, routed... just like with KVM. App App
Its own filesystem Lib Lib
- e.g.: RedHat host can run Debian container.
OS OS
Isolation (security)
- Two containers can't harm (or even see) each other. Operating
System
Isolation (resource usage) X86
Hardware
10
- Soft & Hard quotas for RAM, CPU, I/O.
Linux Containers Kernel Requirements
To create a virtual environment, containers use the following kernel features.
1. Namespaces: Partition essential kernel
App App structures to create virtual environments:
pid (processes)
Lib Lib
net (network interfaces, routing...)
OS OS
2. Control Groups: Limit, account, and isolate
Operating
System resource usage:
Exposed through a virtual filesystem
X86
Hardware
3. Chroot: operation that changes the apparent
root directory of the container process.
11
IOS-XR Container Architecture
Modular
Router Fixed
Router
LXC LXC LXC
Control Admin
Third Control Admin
Third
Plane Plane Party Plane Plane Party
64-bit
Host
OS 64-bit
Host
OS
Routing
Processor Routing
Processor
Control Admin
64-bit
Host
OS
Plane Plane
LXC
Fabric Fabric
Front
Panel
Line
Card
LXC
12
IOS-XR Container Roles: The Host
Runs Yocto based 64-bit Open
Embedded Linux kernel.
Built using Windriver 7
The main functions of the host are:
Control Admin
Third Interact directly with the underlying
hardware.
Plane Plane Party
Provide kernel services for the
containers.
Provide libraries, tools, and utilities to
64-bit
Host
OS help launch, monitor, and maintain
containers.
Routing
Processor Provide the network infrastructure to
allow containers to communicate.
13
IOS-XR Container Roles: The Control Plane
The heart of IOS-XR 6.0
Runs a Yocto based 64-bit OELinux
composed of 2 types of packages:
1. Cisco developed packages for core
network functions (BGP, MPLS, etc.)
Control Admin
Third
2. Yocto packages for standard Linux
Plane Plane Party tools and libraries (bash, python,
tcpdump, etc.).
64-bit
Host
OS
Routing
Processor
14
IOS-XR Container Roles: The Admin Plane
Runs a Yocto based 64-bit Linux.
Provides services that were originally
provided by the admin mode of XR.
Runs processes responsible to
Control Admin
Third perform system diagnostics, monitor
Plane Plane Party environmental variables, and manage
hardware components.
First container to be booted by the
64-bit
Host
OS host, and is responsible for the start
and maintenance of all the other
Routing
Processor
containers in the system.
15
IOS-XR Container Roles: Third Party
Runs any 64-bit Linux distribution.
Launched from the XR container
using virsh and libvirtd.
Control Admin
Third Access Network Interface through the
Plane Plane Party Third Party Network Name Space
(TPNNS).
64-bit
Host
OS
Routing
Processor
16
XR Boot Process
XR 6.0 image will be released in the form of bootable self-extracting ISOs
Similar to any Linux distribution.
NCS 5000 and 5500 possess a BIOS that offers NetBooting using iPXE.
iPXE is an open-source network boot firmware that supports:
1. Booting from HTTP/HTTPS.
2. Controlling the boot process via scripts.
3. Performing image validation.
XR 6.0 comes with an Auto-Provision process
Executed at the end of the control-plane boot sequence.
Executed inside the Shell.
Can execute Scripts or apply Static Configuration.
17
DHCP SERVER
IOS-XR Boot Process with iPXE IP address
Next-server
iPXE Filename=http://<http-srv>/image-new.ISO
N boot 1
Y IP address
Next-server
iPXE 2 Filename=http://<http-srv>/AutoProv-SN.sh
or
Filename=http://<http-srv>/Config-SN.txt
XR Install
HTTP SERVER
XR Boot 3
Image-new.ISO
4 GET script-SN.sh or config-SN.txt
AutoProvision script-SN.sh
execution config-SN.txt
5 Additional
Apply GET addon scripts/packages/configuration Scripts
Execute script Packages, etc
Configuration Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
18
Single DHCP Server Configuration
host NCS5500-rp0 {
hardware ethernet e4:c7:22:be:10:ba; DHCP
option 77
fixed-address 192.168.0.10;
If exists user-class and option user-class = "iPXE" {
DHCP
# Image request, provide ISO option 67
filename "http://192.168.0.10/images/ncs5500 -mini-x.iso-r6.0.0 ";
} elsif exists user-class and option user-class = "exr-config" {
# Auto-provision request, provide script or configuration
filename "http://192.168.0.10/scripts/ncs5500-rp0.sh";
}
}
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 19
NCS 5000 on board ports
Management Ethernet 0 and 1 is mapped to IOS-XR
Permanently
Console port uses Console mux feature (By using CTRL+O
we can switch between the HOST OS(Linux), Admin LXC
and XR LXC
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
NCK5K BIOS
NCS5K BIOS can be accessed by either pressing esc or F12 Key when Box is
Powered.
It will list out following options
(1) UEFI: SMART eUSB HS-SD/MMC (Internal Disk)
(2) UEFI: Sony Storage Media 0100 (External USB )
(3) UEFI: Built-in EFI IPXE
(4) UEFI: Built-in EFI Shell
Boot order can be Changed on the BIOS Menu
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
Boot With External USB
Download the uncompressed image file in external USB.
It contains folder structure with following files
EFI/Cisco/ncs5k-mini-x.iso
\EFI\Cisco\grub.efi
\EFI\Cisco\bootx64.efi
\EFI\Cisco\grub.cfg
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
What will you see
iPXE in action
iPXE 1.0.0+ (3e573) -- Open Source Network Boot Firmware --
http://ipxe.org
Features: DNS HTTP TFTP VLAN EFI ISO9660 NBI Menu
Trying net0...
net0: c4:72:95:a6:14:e1 using dh8900cc on PCI01:00.1 (open)
[Link:up, TX:0 TXE:0 RX:0 RXE:0]
Configuring (net0 c4:72:95:a6:14:e1).................. Ok << Talking t o DHCP/PXE
server t o obtain network information
net0: 1.37.1.101/255.255.0.0 gw 1.37.1.0
net0: fe80::c672:95ff:fea6:14e1/64
net0: 2001:1800:5000:1:c672:95ff:fea6:14e1/64 gw fe80::20c:29ff:fefb:b9fe
net1: fe80::c672:95ff:fea6:14e3/64 (inaccessible)
Next server: 1.37.1.235
Filename: http://1.37.1.235/nkhade/skywarp-mini-x.iso
http://1.37.1.235/nkhade/skywarp-mini-x.iso... 58% << Downloading file as
indicated by DHCP/PXE server to boot install image
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
Flexible Packaging
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
Networking Software Delivery Direction
What How
Server-like Workflows Linux Operations
Modular, Disaggregated Business Driven Packaging
Integration with Stack Programmatic Validation
Reduced Delivery Cycles Targeted Validation
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
RPM: XR New Package Format
RPM Package Manager is the new Package format starting with IOS-XR 6.0.
Packages are placed in a reachable repository and accessed via
FTP/SFTP/SCP/TFTP or HTTP or pre-staged on the box
Third Party packages are installed with RPM or YUM inside the Shell.
IOS-XR packages are installed with install update/upgrade.
Install commands are a wrapper around YUM to provide multi-arch support.
Both YUM and install commands provide dependency verification/resolution.
26
Anatomy of RPM Packages
RPM
Archive CPIO binary Archive
Describe package contents
MetaData Install structure /var/lib/rpm
Dependencies
Scriptlet Pre and Post Install Instructions
Database of installed packages
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 27
XR Packages Naming Convention
Package <name>-<version>-<release>.<architecture>.rpm
ncs5500-mpls-1.0.0.0-r600.x86_64.rpm
SMU <name>-<version>-<release>.<defect>.<architecture>.rpm
ncs5500-mpls-1.0.0.1-r600.CSCab12345.x86_64.rpm
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 28
Package Repository
www.cisco.com Local Repository
Mini ISO <REPO_ROOT>
Platform +
Pkgs 6.0.0.17L
Release ncs-5500-mini-x.iso-6.0.0.17L.iso
Mini ISO
+
k9 pkg ncs-5500-mpls-te-rsvp-1.1.0.0-r60017L.x86_64.rpm
XR Software +
Pkgs ncs-5500-bgp-1.0.0.0-r60017L.x86_64.rpm
Full K9 ISO ncs-5500-eigrp-1.0.0.0-r60017L.x86_64.rpm
ncs-5500-k9sec-1.0.0.0-r60017L.x86_64.rpm
Full ISO
ncs-5500-mgbl-2.0.0.0-r60017L.x86_64.rpm
XR SMUs DDTS SMU ncs-5500-mpls-1.1.0.0-r60017L.x86_64.rpm
ncs-5500-m2m-1.0.0.0-r60017L.x86_64.rpm
Svc Pak DDTS SMUs ncs-5500-mpls-1.1.0.1-r60017L.CSCab12345.x86_64.rpm
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 29
Updating XR Packages
Command Line Behavior
install update source <repository> No package specified, update latest SMUs of all
installed packages
install update source <repository> ncs5500-mpls Package name specified, will install that package,
update all latest SMUs of that package(s) (along with
its dependencies).
install update source <repository> ncs5500-mpls- SMU installation: the SMU will be downloaded and
1.0.0.1-r622.CSCab12345.x86_64.rpm installed (along with its dependent SMUs).
install update source <repository> ncs5500-mpls- Asynchronous package upgrade, that package will be
1.0.2.0-r622.x86_64.rpm installed (along with its dependent SMUs).
Available in future release
30
Upgrading XR Packages
Command L ine Behavior
install upgrade source <repository> version 6.1.1 Upgrade the base image to the specified version.
All installed packages will be upgraded to same
release as the base package.
install upgrade source <repository> version 6.1.1 Perform install upgrade and install update for a
ncs5500-mpls-1.0.2.0-r623.x86_64.rpm specific package(s) in one operation.
31
PIE Install RPM Install
No dependency management Dependency management
Offline process required to copy packages Online process over secure transport
Require multiple operations Single operation
install add install update or install upgrade
install activate
install commit
CSM for package content On-box / Off-box package inspection
using rpm tool
Description
Dependencies
Content
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 32
Installing and Updating Third Party Packages
Third Party Packages are traditional Linux tools available from the Shell
Communication: lighttpd ,openssh, wget, curl, etc.
Programing: python, ruby, perl, etc.
Utilities: sed, gawk, tar, gzip, vi, etc.
Additional packages provided by vendors (No Cisco Support)
Chef
Puppet
Installed using yum or rpm
yum-config-manager --add-repo=http://192.168.0.254/XR/6.0.0
yum install chef y
33
Application Hosting
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 34
Third Party Network Name Space
Provide visibility of fabric Control
Plane Admin
Plane Third Party
attached interfaces outside
TPNNS TPNNS
of XR CLI.
Mgmt Mgmt
Available to processes in the Internal
Gig Gig
XR containers or Third Party IPC
TenGig TenGig
containers. Interfaces
HunGig HunGig
Requires that the interface is
Up with a valid IP address.
Routing handled by XR. TPNNS
64-bit Host OS
Routing
Processor
[xr-vm_node0_RP0_CPU0:~]$ip netns exec tpnns bash
35
Third Party Container Application Workflow
2 Deploy 3 Launch
Create the Container archive on a Linux
Server.
Copy the archive file to /misc/app_host.
Unarchive in a rootfs directory.
Create XML file specifying LXC Control Admin
Third
parameters. Plane Plane Party
1 Create
Run virsh command.
64-bit
Host
OS
Routing
Processor
virsh c lxc+tcp://10.11.12.15:16509 create <XML File>
36
Configuration, Monitoring
and Troubleshooting
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 37
Streaming Telemetry: Introduction
Where Data Is Created Where Data Is Useful
SNMP
syslog
sensing &
measurement
storage &
CLI analysis
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 38
Streaming Telemetry
Design Vision
Get as much data off the box as quickly
Performance as possible
Grant full access to all operational data
Coverage on the box
Serialize the data in a flexible, efficient
Automation way that fits customers automated tools
39
Telemetry
Common modeling language: Goal is YANG (experimental SysDB name space in 6.0)
Describes monitoring data structure and attributes
Push Model
Stream data continuously w ith incremental updates based on subscriptions
Data delivery:
JSON (compressed) inside TCP.
Google Protocol Buffer inside UDP.
Google Protocol Buffer inside gRPC.
Observe network state through a time-series data stream
40
Streaming Telemetry Model
Telemetry Configuration XR Control Plane
Described in JSON. Telemetry
Configuration Namespace
Define one or multiple collection
group(s).
Each group contains a rate and a pointer
to one or multiple objects in the
Telemetry
experimental SysDB path (6.0 only) Policy
Telemetry Policy Telemetry
Define the encoder, transport and the Receiver
receiver(s) for each policy. Telemetry
Agent
Telemetry Agent
XR process that runs automatically and Host OS
looks for registered policies to act on.
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 41
Streaming Telemetry Example
{
"Name": "GenericCounters",
"Metadata": {
"Version": 25,
"Description": "This is a sample policy to demonstrate the syntax",
"Comment": "This is the first draft",
"Identifier": "<data that may be sent by the encoder to the mgmt station>"
},
"CollectionGroups": {
"FirstGroup":{
"Period": 30,
"Paths":["RootOper.InfraStatistics.Interface([*]).Latest.GenericCounters"]
}
}
} Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 42
Network Configuration Protocol (NETCONF)
NETCONF provides mechanisms to install, manipulate, and delete device
configuration.
It uses an XML based data encoding for the configuration data as well as the
protocol messages.
NETCONF protocol operations are realized as remote procedure calls (RPCs)
over SSH.
SSH Clients Networking Device
SSH
Retrieve, Configure, Copy, and Delete
RPC calls are divided in 4 groups of methods: Retrieve, Configure, Copy, and Delete.
Additional methods can be supported 43
Programmatic Interface
Secure Connection Negotiate RPC-based Configuration
Transport communication Manager
Oriented Capabilities
model
Backend
Apps
XR SSH
NETCONF
SSHd Programmatic Proxy
Agent SysDB
Interface Server
YANG Client SysDB
Framework Library
Web RESTCONF
Server Agent XR YANG
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 44
Conclusions
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
Key Takeaway
No Change in traditional CLI Operation
In 6.0, available on NCS-5500, NCS-5000 and NCS1000 Platform
In 6.1.1, available on ASR9k (traditional 32-bit QNX offering will still be
supported)
Operational enhancement for Automated Operations
Operating System change for Open Source tooling
46
IOS XR 6.0 Operational Enhancements
IOS XR 6.0
Flexible Platform & Packaging
Evolved programmability
Visibility & Telemetry
Application Hosting
Presentation ID 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 47
Were ready. Are you?