Introduction to IOS-XR 6.0 Sai Gopalakrishnan, Manager, Product Management Patrick Warichet, Technical Marketing Engineer Agenda
• Introduction
• Software Architecture Overview
• Flexible Packaging
• Application Hosting
• Configuration, Monitoring and Troubleshooting
• Conclusions
3 Introduction
4 30% Growth is Forcing Web Providers in Two Directions
“Scale breaks hardware. Speed Speed breaks software. Speed at scale breaks Scale everything” Adrian Cockroft, Technical Fellow, Battery Ventures (formerly Cloud Architect at Netflix)
5 Examples of Speed @ Scale
• Deploy services 300 times an hour to an average 10,000 servers
• 15K engineers working 4K projects with 5500 commits and 75M test cases run every day
• Build, test and deploy new code in ~60 min
• Deploy bug fixes and internal changes twice a day, and new features once a week Source: NANOG ‘15 AWS re:invent ’15 GCPNext ’15
6 Integrating network into operational workflow still the sticking point
… “working in network operations is the equivalent of working in the boiler room” … --Cameron Haight, Gartner research vice president, at the Gartner Data Center Conference
“I’ve hugged a lot of routers in my life, and believe me, they do not hug you back. They hate you.” --Amazon CTO Werner Vogels in his keynote speech at AWS re: Invent
7 Networking Operations to Adapt to Cloud Scale
Traditional Cloud Scale Networking Operations Networking Operations
Manual + Total some Automation Automation Modular and Closed Extensible SW SW with open interfaces Fragmented Topology Visibility & View and Control Complex Routing
8 … coming to a platform closer to you In development More in CLUS 2016
Fixed 1 RU 40x10G SFP+ 4x100G QSFP28
NCS5001
Fixed 2 RU Modular 8 Slot 80x10G SFP+ 288x100GE QSFP28 4x100G QSFP28
NCS5002 Fixed 2RU 2Tbps DWDM capacity 2Tbps client capacity 8 CFP2 trunks and 20 QSFP clients
NCS5508 NCS1002 ASR9000(*)
Q4 CY15 Q2 CY16 Q4 CY16
* On ASR9k, 32-bit QNX images and 64-bit linux images will be supported 9 Guiding Principles for IOS-XR operational enhancements Bring Your own Application • Provide a platform on which customers can host their apps • Customer apps, Third party apps, Cisco apps
Automatable interfaces • Provide visibility into the device through machine friendly interfaces
Open architecture Decrease tool chain variance • Fit into customer’s operational workflow
10 Pillars of IOS-XR operational enhancements
Visibility & • Operational Data, Deep analytical hooks Telemetry • Policy-based, flexible, Push Model
Evolved • Data accessible via published model driven interfaces • 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
Flexible Platform • Packages can be inspected on box using standard tool chain (RPM tools) • Automated package dependency checkers and Packaging • Open Bootloaders (iPXE) and end-to-end auto-provision
11 Why is this relevant beyond Web and OTT space?
Continuous iteration of business “Market leaders will out-experiment their services and offerings in real-time peers.” Need matching infrastructure that Gene Kim, The Phoenix Project supports continuous deployment and rapid innovation
Workflow automation is the secret sauce; Reduces operational “Many operators will be cautious about expenses by an order of magnitude transforming their networks because Cisco is committed to providing transformation is risky … But the 100% operational fit to make you companies that do, are likely to be the successful. winners.” Alex Clauberg, DT
9 Software Architecture
13 IOS-XR 6.0: A New Software Infrastructure
• 64-bit OpenEmbedded Linux support. Processes containerization. Brings in standard Linux toolchain. Third-Party applications support. Classic XR XR 6.0
System • NCS5500, NCS5000 and NCS1002 System Control Admin will support only 64-bit Linux Control Admin
32 bit QNX 64 bit Linux • ASR 9000 will still have 32-bit QNX NPU X86 Hardware support
14 Traditional Virtualization Introduction to Containers App App
• LXC (LinuX Containers) let you run a Linux Lib Lib … system within another Linux system. OS OS • A container is a group of processes on a Linux Operating System machine. Hypervisor • These processes form an isolated environment. X86 Hardware • Inside the container, it looks like a Virtual Machine. Containers App App • Outside the container, it looks like normal processes running on the system. Lib Lib … • Containers look like Virtual Machines, but are more efficient. OS OS Operating System
X86 Hardware 15 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 - Can be bridged, routed... just like with KVM. LXC2 App App • Its own filesystem - e.g.: RedHat host can run Debian container. Lib Lib … • Isolation (security) OS OS - Two containers can't harm (or even see) each other.
• Isolation (resource usage) Operating System - Soft & Hard quotas for RAM, CPU, I/O. X86 Hardware 16 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.
17 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
64
Plane
LXC
FrontPanel
- Line Card Line
Fabric Hostbit OS Fabric
Admin Admin
Plane LXC
19 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.
20 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
21 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.
22 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
23 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.
25 DHCP SERVER
IOS-XR Boot Process with iPXE IP address Next-server iPXE Filename=http://
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 26 configuration Packages, etc… Flexible Packaging
28 Networking Software Delivery Direction
• Server-like Workflows
• Modular Disaggregated
• Update, Upgrade, Remove • RPM
• Dependency management • YUM
• Secure • New Install Commands
• Repository Support
• Third Party Applications
29 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.
30 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
31 XR Packages Naming Convention
Package
ncs5500-mgbl-1.0.0.0-r600.x86_64.rpm
SMU
ncs5500-mgbl-1.0.0.1-r600.CSCab12345.x86_64.rpm
32 Package Repository www.cisco.com Local Repository
Mini ISO
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-li-1.0.0.0-r60017L.x86_64.rpm
Svc Pak DDTS SMUs ncs-5500-mgbl-2.0.0.1-r60017L.CSCab12345.x86_64.rpm
33 Updating XR Packages
Command Line Behavior install update source
34 Upgrading XR Packages
Command Line Behavior install upgrade source
35 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
36 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
37 Application Hosting
38 Third Party Network Name Space
• Provide visibility of fabric Control Plane Admin Plane Third Party attached interfaces outside of XR CLI. TPNNS TPNNS Mgmt Mgmt Internal • Available to processes in the Gig Gig IPC XR containers or Third Party 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
40 Third Party Container Application Workflow
2 Deploy 3 Launch • Create the Container archive on a Linux Server. Server • Copy the archive file to /misc/app_host.
• Unarchive in a rootfs directory. • Create XML file specifying LXC Control Admin Third TAR parameters. Plane Plane Party • Run virsh command. 1 Create 64-bit Host OS Routing Processor virsh –c lxc+tcp://10.11.12.15:16509 create
41 Configuration, Monitoring and Troubleshooting
42 Streaming Telemetry: Introduction
Where Data Is Created Where Data Is Useful
SNMP
syslog sensing & measurement storage & CLI analysis
43 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
*User needs to have the correct privileges 44 Telemetry
• Common modeling language • Describes monitoring data structure and attributes • Goal is YANG (experimental SysDB name space in IOS-XR 6.0) • Push Model • Stream data continuously with 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
45 Streaming Telemetry Model • Telemetry Configuration XR Control Plane • Described in JSON. Telemetry • Define one or multiple collection Configuration Namespace group(s). • Each group contains a rate and a pointer to one or multiple objects in the experimental SysDB path (6.0 only) Telemetry Policy • Telemetry Policy Telemetry • Define the encoder, transport and the receiver(s) for each policy. Receiver Telemetry • Telemetry Agent Agent • XR process that runs automatically and looks for registered policies to act on. Host OS
46 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": "" }, "CollectionGroups": { "FirstGroup":{ Cadence "Period": 30, SysDB "Paths":["RootOper.InfraStatistics.Interface([*]).Latest.GenericCounters"] Path } }
} 47 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 48 Programmatic Interface
Secure Connection Negotiate RPC-based Configuration Manager Transport Oriented Capabilities communication model
Backend Apps XR SSH NETCONF YANG SSHd Programmatic Proxy Agent Framework SysDB Interface Server Client SysDB Library
49 Conclusions
50 Key Takeaways
• No Change in traditional CLI Operation with IOS-XR 6.0 • 6.0 is available on NCS5500, NCS5000 and NCS1000 Platforms • 6.1.1 is available on ASR9k (traditional 32-bit QNX offering will still be supported) • Operational enhancement for Automated Operations • Operating System change for Open Source tooling
51 IOS-XR 6.0 Operational Enhancements
IOS-XR 6.0
& Packaging &
Application Hosting Application
Visibility Telemetry & Visibility
Evolved programmability Evolved Flexible PlatformFlexible
52 Call to Action
• DevNet zone related sessions • DevNet-1086 Extending Streaming Telemetry • DevNet-1088 Developing on IOS XR • DevNet-1089 Bringing DevOps to Routing with Evolved XR.
• Related Labs • LTRSPG-2517 IOS-XR 6.0 hands-on lab • LABRST-2332 Cisco IOS XR Programmability for cloud-scale networking
• Related Sessions • PSOSPG-4006 Software Innovations for Cloud Scale Networking • BRKSDN-1119 Hitchhiker's Guide to Device APIs • BRKSPG-2404 IOS-XR Platforms Hardware Architectures
53 Complete Your Online Session Evaluation
• Please complete your online session evaluations after each session. Complete 4 session evaluations & the Overall Conference Evaluation (available from Thursday) to receive your Cisco Live T-shirt.
• All surveys can be completed via the Cisco Live Mobile App or the Communication Stations
54 Thank you
55