# Table of Contents - [About | The (Unofficial) CCNP-SP Study Guide](#about-the-unofficial-ccnp-sp-study-guide) - [About the Author | The (Unofficial) CCNP-SP Study Guide](#about-the-author-the-unofficial-ccnp-sp-study-guide) - [LDP | The (Unofficial) CCNP-SP Study Guide](#ldp-the-unofficial-ccnp-sp-study-guide) - [About This Study Guide | The (Unofficial) CCNP-SP Study Guide](#about-this-study-guide-the-unofficial-ccnp-sp-study-guide) - [MPLS OAM | The (Unofficial) CCNP-SP Study Guide](#mpls-oam-the-unofficial-ccnp-sp-study-guide) - [BGP Security | The (Unofficial) CCNP-SP Study Guide](#bgp-security-the-unofficial-ccnp-sp-study-guide) - [Unified MPLS | The (Unofficial) CCNP-SP Study Guide](#unified-mpls-the-unofficial-ccnp-sp-study-guide) - [BGP | The (Unofficial) CCNP-SP Study Guide](#bgp-the-unofficial-ccnp-sp-study-guide) - [OSPF | The (Unofficial) CCNP-SP Study Guide](#ospf-the-unofficial-ccnp-sp-study-guide) - [Segment Routing | The (Unofficial) CCNP-SP Study Guide](#segment-routing-the-unofficial-ccnp-sp-study-guide) - [MPLS-TE | The (Unofficial) CCNP-SP Study Guide](#mpls-te-the-unofficial-ccnp-sp-study-guide) - [IPv6 Transition | The (Unofficial) CCNP-SP Study Guide](#ipv6-transition-the-unofficial-ccnp-sp-study-guide) - [ISIS | The (Unofficial) CCNP-SP Study Guide](#isis-the-unofficial-ccnp-sp-study-guide) - [L3VPN | The (Unofficial) CCNP-SP Study Guide](#l3vpn-the-unofficial-ccnp-sp-study-guide) - [IOS-XE Ethernet Services | The (Unofficial) CCNP-SP Study Guide](#ios-xe-ethernet-services-the-unofficial-ccnp-sp-study-guide) - [EVPN | The (Unofficial) CCNP-SP Study Guide](#evpn-the-unofficial-ccnp-sp-study-guide) - [Carrier Ethernet | The (Unofficial) CCNP-SP Study Guide](#carrier-ethernet-the-unofficial-ccnp-sp-study-guide) - [IOS Software Overview | The (Unofficial) CCNP-SP Study Guide](#ios-software-overview-the-unofficial-ccnp-sp-study-guide) - [Transport | The (Unofficial) CCNP-SP Study Guide](#transport-the-unofficial-ccnp-sp-study-guide) --- # About | The (Unofficial) CCNP-SP Study Guide [About the Author](https://ccnp-sp.gitbook.io/studyguide/about/about-the-author) [About This Study Guide](https://ccnp-sp.gitbook.io/studyguide/about/about-this-study-guide) [NextAbout the Author](https://ccnp-sp.gitbook.io/studyguide/about/about-the-author) Last updated 2 years ago --- # About the Author | The (Unofficial) CCNP-SP Study Guide My name is Andrew Ohanian and I have been in network engineering field for about 5 years. I obtained my CCNP-RS back in 2018 and worked as an enterprise engineer at an insurance company from 2018-2021. I recertified my CCNP with the ENCOR exam in April of 2021. After recertifying my CCNP-EI (previously RS), I realized how much I missed dealing with routing and switching on a day to day basis. Many of my daily tasks on the network team at the insurance company involved managing firewall policies, DNS, F5 load balancing, URL filtering, and troubleshooting database issues that had nothing to do with networking. It was then that I decided to go into the service provider field where routing and switching is the main focus. By the end of 2021 I earned my JNCIA and JNCIS-SP certifications and joined a regional tier 3 service provider as a network engineer. The Juniper studies allowed me to learn ISIS (a protocol I had never worked with), learn the basics of MPLS, and also see OSPF and BGP in a new light. Becoming "vendor agonistic" allowed me to see the protocols for what they are rather than thinking of them in terms of the Cisco CLI. In 2022 I began studying for the CCNP-SP. I passed SPRI in May 2022 following this great blog post: [https://journey2theccie.wordpress.com/2021/05/03/cisco-300-510-spri-passed-resources-used-exam-thoughts/](https://journey2theccie.wordpress.com/2021/05/03/cisco-300-510-spri-passed-resources-used-exam-thoughts/) . My studies mostly came from spending many hours labbing along with the books mentioned in this post. I then spent the following 6-7 months from June-December studying for SPCOR. I used books, blog posts, random Youtube videos, and Cisco documentation. Throughout the journey, I realized there was a gap in study material for the SPCOR. So I decided to write about each topic as I learned it in a "blogging" style. This was admittedly in large part for my own benefit. I found that trying to "teach" an invisible reader through writing forced me to confront aspects of the technology that I didn't truly know well enough. In December 2022 I passed SPCOR to earn the CCNP-SP. Throughout this journey I have accumlated dozens of articles that I think could be useful to others studying for this same exam, which is the reason for publishing these online. This "book" is the product of these last six months of studying, and I hope you find some information here useful. If you have any suggestions, corrections, requests for more articles, or you even want to submit your own articles to be posted here, feel free to reach out and let me know. You can find me here on LinkedIn: [https://www.linkedin.com/in/andrew-ohanian-972928122/](https://www.linkedin.com/in/andrew-ohanian-972928122/) [PreviousAbout](https://ccnp-sp.gitbook.io/studyguide) [NextAbout This Study Guide](https://ccnp-sp.gitbook.io/studyguide/about/about-this-study-guide) Last updated 2 years ago --- # LDP | The (Unofficial) CCNP-SP Study Guide [LDP Transport Address](https://ccnp-sp.gitbook.io/studyguide/mpls/ldp/ldp-transport-address) [LDP Conditional Advertisement](https://ccnp-sp.gitbook.io/studyguide/mpls/ldp/ldp-conditional-advertisement) [LDP Authentication](https://ccnp-sp.gitbook.io/studyguide/mpls/ldp/ldp-authentication) [LDP/IGP Sync](https://ccnp-sp.gitbook.io/studyguide/mpls/ldp/ldp-igp-sync) [LDP Session Protection](https://ccnp-sp.gitbook.io/studyguide/mpls/ldp/ldp-session-protection) [PreviousAbout This Study Guide](https://ccnp-sp.gitbook.io/studyguide/about/about-this-study-guide) [NextLDP Transport Address](https://ccnp-sp.gitbook.io/studyguide/mpls/ldp/ldp-transport-address) Last updated 2 years ago --- # About This Study Guide | The (Unofficial) CCNP-SP Study Guide ### [](https://ccnp-sp.gitbook.io/studyguide/about/about-this-study-guide#how-to-use-this-guide) How to use this guide This study guide reads as more of a lab workbook than a textbook. I would highly recommend labbing along with each section. Each article typically starts with some background information and theory on the topic. You will then see a "Lab" section that contains a topology diagram and a code block with startup configs, which you can use to quickly build your own lab and follow along. Throughout the article I will use the lab to demonstrate features, and sometimes test your knowledge. For example, it might say "What will happen if we do xyz? Pause to think this through before continuing on." Of course, no one is making you do this, but I believe it will help your understanding if you challenge yourself to think critically about the technology. #### [](https://ccnp-sp.gitbook.io/studyguide/about/about-this-study-guide#code-snippets) Code snippets Throughout each article, show output and configuration commands are placed in a code block. In order to further explain a line of configuration or output, I use an annotation within the code block. If there are squiggly lines underneath text, you can click on it to get more information. For example, click the text "10.1.1.2" below: Copy CSR1000v#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 2.2.2.2 0 FULL/ - 00:00:36 10.1.1.2 GigabitEthernet2 ![](https://ccnp-sp.gitbook.io/studyguide/~gitbook/image?url=https%3A%2F%2F1203572585-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FgAMH3CMtmYTBkob03NUj%252Fuploads%252FsUW7j7j6oxrhktGkNK9N%252Fimage.png%3Falt%3Dmedia%26token%3D5d3a40a4-ef63-420b-8f87-aeea56aa2a38&width=768&dpr=4&quality=100&sign=533906aa&sv=2) I sometimes use annotations to simply point out interesting information in a multi-line show command output. There isn't a way to highlight within a code block on gitbook (as far as I'm aware). ### [](https://ccnp-sp.gitbook.io/studyguide/about/about-this-study-guide#not-all-topics-are-comprehensively-covered) Not all topics are comprehensively covered A few topics, such as Segment Routing, Multicast, and QoS are covered from the "ground up." However, other topics such as LDP, basic MPLS, BGP, OSPF, and ISIS are _not_ covered comprehensively. Instead, I encourage readers to seek outside material for these topics if you are interested in more information about the basics and fundamentals of these protocols. Articles on these topics will be more advanced topics or corner cases that I thought were unique. There are a dozen books you can read on BGP that will teach the fundamentals better than I can. ### [](https://ccnp-sp.gitbook.io/studyguide/about/about-this-study-guide#ios-xr) IOS-XR It is assumed that readers have some knowledge and basic experience working with IOS-XR. I do not cover the basic operations of IOS-XR such as committing, CLI syntax, etc. Throughout each topic, the IOS-XR configuration will be explained, but you should understand how to commit changes, and that MPLS LDP configuration is done under its own stanza, etc. If you have no experience with IOS-XR I would recommend this introduction: [https://www.fryguy.net/wp-content/uploads/2013/03/Cisco-IOS-XR-Introduction-Ver-1.pdf](https://www.fryguy.net/wp-content/uploads/2013/03/Cisco-IOS-XR-Introduction-Ver-1.pdf) ### [](https://ccnp-sp.gitbook.io/studyguide/about/about-this-study-guide#this-is-not-a-comprehensive-study-guide) This is not a comprehensive study guide I would not suggest that you use this study guide as your only resource. I make no claim that by following this guide thoroughly you will be able to pass the CCNP-SP exams. This study guide is "unofficial" and has no affiliation with Cisco. You can think of this study guide as a slightly more organized blog website that I created while studying for the CCNP-SP. Many articles contain a "further reading" section at the bottom with links to config guides or chapters in particular books that you should definitely utilize. #### [](https://ccnp-sp.gitbook.io/studyguide/about/about-this-study-guide#reading-list) Reading list These are some of the books I used to learn these topics. Many of these books are referenced in the "further reading" sections throughout this article. * Brad Edgeworth, Aaron Foss, Rios Ramiro Garza, **IP Routing on Cisco IOS, IOS XE, and IOS XR** * Beau Williamson, **Developing IP Multicast Networks** * Luc De Ghein, **MPLS Fundamentals** * Mobeen Tahir, Mark Ghattas, Dawit Birhanu, Syed Natif Nawaz, **Cisco IOS XR Fundamentals** * Jeff Doyle, Jennifer Carroll, **Routing TCP/IP Volume II** * Wendell Odom, Michael J. Vacanaugh, **Cisco QOS Exam Certification Guide** * Ivan Pepelnjak, Jim Guichard, Jeff Apcar, **MPLS and VPN Architectures Volume II** [**http://www.ccieordie.com/ccie-service-provider-reading-list**](http://www.ccieordie.com/ccie-service-provider-reading-list) **Config guides** I would highly suggest you use Cisco documentation throughout your studies. These will be linked throughout the "futher reading" sections, but you can also take a look at a comprehensive collection of CCNP-SP config links here: [https://www.reddit.com/r/ccnp/comments/nohfj4/spcor\_and\_spri\_study\_materials\_superthread/?utm\_medium=android\_app&utm\_source=share](https://www.reddit.com/r/ccnp/comments/nohfj4/spcor_and_spri_study_materials_superthread/?utm_medium=android_app&utm_source=share) ### [](https://ccnp-sp.gitbook.io/studyguide/about/about-this-study-guide#topic-order) Topic order The topics are not in a particular order in this gitbook. Each topic can be treated separately, sort of like its own blog post. You don't need to read each section one by one in order. Feel free to skip around to different sections as you study them. ### [](https://ccnp-sp.gitbook.io/studyguide/about/about-this-study-guide#lab-challenges) Lab challenges At the very end of this gitbook, there are 13 lab challenges. You can use these at the very end of your studies, or use them while you learn each topic. I refrain from fully explaining each lab answer so that you discover more about the technology yourself if you are having trouble. Each lab challenge contains a CML .yaml file which you can directly import into CML, and the startup configs which you can use to lab with GNS3 or EVE-NG. [PreviousAbout the Author](https://ccnp-sp.gitbook.io/studyguide/about/about-the-author) [NextLDP](https://ccnp-sp.gitbook.io/studyguide/mpls/ldp) Last updated 2 years ago * [How to use this guide](https://ccnp-sp.gitbook.io/studyguide/about/about-this-study-guide#how-to-use-this-guide) * [Not all topics are comprehensively covered](https://ccnp-sp.gitbook.io/studyguide/about/about-this-study-guide#not-all-topics-are-comprehensively-covered) * [IOS-XR](https://ccnp-sp.gitbook.io/studyguide/about/about-this-study-guide#ios-xr) * [This is not a comprehensive study guide](https://ccnp-sp.gitbook.io/studyguide/about/about-this-study-guide#this-is-not-a-comprehensive-study-guide) * [Topic order](https://ccnp-sp.gitbook.io/studyguide/about/about-this-study-guide#topic-order) * [Lab challenges](https://ccnp-sp.gitbook.io/studyguide/about/about-this-study-guide#lab-challenges) --- # MPLS OAM | The (Unofficial) CCNP-SP Study Guide [Classic Traceroute Behavior in MPLS Networks](https://ccnp-sp.gitbook.io/studyguide/mpls/mpls-oam/classic-traceroute-behavior-in-mpls-networks) [LSP Ping](https://ccnp-sp.gitbook.io/studyguide/mpls/mpls-oam/lsp-ping) [LSP Traceroute](https://ccnp-sp.gitbook.io/studyguide/mpls/mpls-oam/lsp-traceroute) [PreviousSR-TE Pt. 6 (Flex Algo)](https://ccnp-sp.gitbook.io/studyguide/mpls/segment-routing/sr-te-pt.-6-flex-algo) [NextClassic Traceroute Behavior in MPLS Networks](https://ccnp-sp.gitbook.io/studyguide/mpls/mpls-oam/classic-traceroute-behavior-in-mpls-networks) Last updated 2 years ago --- # BGP Security | The (Unofficial) CCNP-SP Study Guide [BGP TTL Security, Pt. 1](https://ccnp-sp.gitbook.io/studyguide/routing/bgp-security/bgp-ttl-security-pt.-1) [BGP TTL Security, Pt. 2 (IOS-XE)](https://ccnp-sp.gitbook.io/studyguide/routing/bgp-security/bgp-ttl-security-pt.-2-ios-xe) [BGP TTL Security, Pt. 3 (IOS-XR)](https://ccnp-sp.gitbook.io/studyguide/routing/bgp-security/bgp-ttl-security-pt.-3-ios-xr) [BGP MD5 Authentication](https://ccnp-sp.gitbook.io/studyguide/routing/bgp-security/bgp-md5-authentication) [BGP Maximum Prefixes](https://ccnp-sp.gitbook.io/studyguide/routing/bgp-security/bgp-maximum-prefixes) [BGP RFD (Route Flap Dampening)](https://ccnp-sp.gitbook.io/studyguide/routing/bgp-security/bgp-rfd-route-flap-dampening) [RTBH](https://ccnp-sp.gitbook.io/studyguide/routing/bgp-security/rtbh) [Flowspec](https://ccnp-sp.gitbook.io/studyguide/routing/bgp-security/flowspec) [BGPsec](https://ccnp-sp.gitbook.io/studyguide/routing/bgp-security/bgpsec) [PreviousRPL](https://ccnp-sp.gitbook.io/studyguide/routing/bgp/rpl) [NextBGP TTL Security, Pt. 1](https://ccnp-sp.gitbook.io/studyguide/routing/bgp-security/bgp-ttl-security-pt.-1) Last updated 2 years ago --- # Unified MPLS | The (Unofficial) CCNP-SP Study Guide Unified MPLS, also called Seamless MPLS, was defined in _draft-ietf-mpls-seamless-mpls-07_. This is not really a new technology, but a combination of tools to allow for multiple IGP islands within a single AS. This allows you to form end-to-end LSPs even though you don’t have a single IGP. (An end-to-end LSP is an LSP in which the bottom service label never changes). This is sort of like Inter-AS VPNs, but you could call it “Inter-Domain IGP / Intra-Domain AS”. The service provider has multiple, separate IGP processes for scalability, but a single BGP AS. Imagine the following topology, which we will use for our lab: ![](https://ccnp-sp.gitbook.io/studyguide/~gitbook/image?url=https%3A%2F%2F1203572585-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FgAMH3CMtmYTBkob03NUj%252Fuploads%252FqM2UrXpgHWip64FSinb8%252FUntitled.png%3Falt%3Dmedia%26token%3Dbeaa17f3-ce29-4511-969a-8e52ee12dc40&width=768&dpr=4&quality=100&sign=e8de96c&sv=2) For scalability, the service provider has created a single OSPF process for each agg router and all access routers that connect to that agg router. For brevity only a single access router connects to each agg in our lab. The core, comprising of all agg and core routers, runs ISIS. What happens if we want to have an LSP from Access1 to Access2? By default, this will not work, as Access1 does not know Access2’s loopback and vice versa. You could redistribute all loopbacks into every IGP process, but this kind of defeats the purpose of having multiple IGPs. If you have thousands of routers in each IGP process, you don’t want to flood the IGP with thousands of external /32s. The Unified MPLS solution uses BGP-LU (Labeled Unicast) to exchange the /32 loopbacks of access routers in the topology. BGP is much better equiped to handle a large number of routes than IGP is. The agg routers are ASBRs, because they participate in both the ISIS core and the OSPF processes. The access routers will run BGP-LU with the Agg router in their area. The agg routers will also run BGP-LU between each other. The core can stay “BGP-Free” as no CEs or services connect directly to the core. The potential problem with this is that, by default, when an iBGP route is reflected to another iBGP router, you cannot alter the next-hop. Access1 will get a /32 route for Access2 but pointing to Access2. Obviously this cannot work. Agg1 needs to insert itself into the path by setting the next-hop of the /32 for Access2 to itself when it advertises the route to Access1. In order to change the next-hop on iBGP learned routes that are advertised to iBGP peers you have to use a special command: * IOS-XE: **next-hop-self all** on the neighbor statement * IOS-XR: **ibgp policy out enforce-modifications** globally **\+ next-hop-self** on the neighbor’s AFI/SAFI Let’s set this up in our lab so you can get a better understanding of how this works. ### [](https://ccnp-sp.gitbook.io/studyguide/mpls/unified-mpls#ad5cdc25-7154-45f9-a7ee-b864f17244b8) Lab First we’ll configure standard IGP/LDP on all routers. Remember there is no redistribution between the IGP processes. On the agg routers we’ll advertise the loopback into both IGPs. Now we’ll configure BGP-LU on the access and agg routers. Each access router advertises its own loopback. The agg routers treat access routers as RR clients and each other as RR clients. We now have an LSP between Access1 and Access2: Let’s go hop-by-hop and understand where each label came from. #### [](https://ccnp-sp.gitbook.io/studyguide/mpls/unified-mpls#hop1) Hop1 * Label 22 is imposed because this is the label that Agg1 advertised to Access1 for 6.6.6.6/32 via BGP-LU. #### [](https://ccnp-sp.gitbook.io/studyguide/mpls/unified-mpls#hop2) Hop2 * Agg1 swaps label 22 for label 24005, because this is the label that Agg2 advertised to Agg1 via BGP-LU. * Agg1 also needs to push the transport label representing Agg2’s loopback, as Core1 and Core2 are BGP-free. This is very similar to vpnv4, where the top label seen in the core is the label representing the remote PE’s loopback. #### [](https://ccnp-sp.gitbook.io/studyguide/mpls/unified-mpls#hop3) Hop3 * Core1 swaps 19 for 24003. This is a normal LDP operation. #### [](https://ccnp-sp.gitbook.io/studyguide/mpls/unified-mpls#hop4) Hop4 * Core2 pops label 24003 and delivers to Agg2. This is another normal LDP operation. #### [](https://ccnp-sp.gitbook.io/studyguide/mpls/unified-mpls#hop5) Hop5 * Agg2 pops the BGP-LU label that it advertised to Agg1 and delivers to Access2 The labels that Agg1 and Agg2 advertised to each other over BGP-LU are actually just the LDP labels allocated for the prefixes 1.1.1.1/32 and 6.6.6.6/32 that were already allocated. ### [](https://ccnp-sp.gitbook.io/studyguide/mpls/unified-mpls#adding-an-l2vpn-service) Adding an L2VPN Service Let’s test the end-to-end LSP by adding an L2VPN service between Access1 and Access2. If you would like to follow along, you will need to swap Access2 XRv for a XRv9000. CE1 connects to Access1 on Gi2: ![](https://ccnp-sp.gitbook.io/studyguide/~gitbook/image?url=https%3A%2F%2F1203572585-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FgAMH3CMtmYTBkob03NUj%252Fuploads%252FJWFMv8qxp7zdyCC6XgrS%252FUntitled%25201.png%3Falt%3Dmedia%26token%3D986955dd-34f1-4ded-8000-7e85b4711d65&width=768&dpr=4&quality=100&sign=c6ece0e4&sv=2) CE2 connects to Access2 on Gi0/0/0/1: ![](https://ccnp-sp.gitbook.io/studyguide/~gitbook/image?url=https%3A%2F%2F1203572585-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FgAMH3CMtmYTBkob03NUj%252Fuploads%252FYy1cUirDoQ5BAPDhPixx%252FUntitled%25202.png%3Falt%3Dmedia%26token%3D4429eabe-4cba-4037-8675-11cef3c35b6a&width=768&dpr=4&quality=100&sign=6a105a9e&sv=2) #### [](https://ccnp-sp.gitbook.io/studyguide/mpls/unified-mpls#test-your-understanding) Test your understanding **Question:** How many labels are seen on the link between Agg1 and Core1 when CE1 pings CE2? **Answer:** Three. The top label is the transport label which represents Agg2. The middle label is the BGP label that Agg2 advertised for 6.6.6.6/32. The bottom label is the service label which Access2 advertised to Access1 for this L2VPN. ![](https://ccnp-sp.gitbook.io/studyguide/~gitbook/image?url=https%3A%2F%2F1203572585-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FgAMH3CMtmYTBkob03NUj%252Fuploads%252FwYESfgC0zi4UEywi8MOG%252FUntitled%25203.png%3Falt%3Dmedia%26token%3Dcf40a9ce-ecb5-4baf-86bd-c79bbd2c0edc&width=768&dpr=4&quality=100&sign=de996741&sv=2) * 19 is the transport label, 24005 is the BGP label, and 24000 is the service label. **Question:** Why didn’t we need to run BGP between Access1 and Access2 for this L2VPN to work? **Answer:** The xconnect is a Martini circuit. This uses targeted LDP to exchange the service label. See the section “IOS-XE Ethernet Services/E-Line” for more information or practice. What is interesting is that because Access1 and Access2 only know each other via a labeled path, the targeted LDP Hellos are actually MPLS-encapsulated! ![](https://ccnp-sp.gitbook.io/studyguide/~gitbook/image?url=https%3A%2F%2F1203572585-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FgAMH3CMtmYTBkob03NUj%252Fuploads%252FvgE0YpsdR0bWwyh5xsIL%252FUntitled%25204.png%3Falt%3Dmedia%26token%3D659acb7a-b1d9-41af-81bc-24fe6450bf1e&width=768&dpr=4&quality=100&sign=838acdc&sv=2) [PreviousMPLS-TE with OSPF](https://ccnp-sp.gitbook.io/studyguide/mpls/mpls-te/mpls-te-with-ospf) [NextSegment Routing](https://ccnp-sp.gitbook.io/studyguide/mpls/segment-routing) Last updated 2 years ago * [Lab](https://ccnp-sp.gitbook.io/studyguide/mpls/unified-mpls#ad5cdc25-7154-45f9-a7ee-b864f17244b8) * [Adding an L2VPN Service](https://ccnp-sp.gitbook.io/studyguide/mpls/unified-mpls#adding-an-l2vpn-service) Copy #Access1 hostname Access1 ! line con 0 logging sync ! int Gi1 ip address 10.1.2.1 255.255.255.0 no shut mpls ip ip ospf network point-to-point ! int Lo0 ip address 1.1.1.1 255.255.255.255 ! router ospf 1 network 0.0.0.0 255.255.255.255 area 0 #Agg1 hostname Agg1 ! line con 0 logging sync ! int Gi1 ip address 10.1.2.2 255.255.255.0 no shut mpls ip ip ospf network point-to-point ! int Gi2 ip address 10.2.3.2 255.255.255.0 no shut mpls ip ip router isis isis network point-to-point ! int Lo0 ip address 2.2.2.2 255.255.255.255 ip router isis ! router ospf 1 network 10.1.2.0 0.0.0.255 area 0 network 2.2.2.2 255.255.255.255 area 0 ! router isis net 49.0001.0000.0000.0002.00 is-type level-2-only metric-style wide #Core1 hostname Core1 ! line con 0 logging sync ! int Gi1 ip address 10.3.4.3 255.255.255.0 no shut mpls ip ip router isis isis network point-to-point ! int Gi2 ip address 10.2.3.3 255.255.255.0 no shut mpls ip ip router isis isis network point-to-point ! int Lo0 ip address 3.3.3.3 255.255.255.255 ip router isis ! router isis net 49.0001.0000.0000.0003.00 is-type level-2-only metric-style wide #Core2 hostname Core2 ! int Gi0/0/0/0 ip address 10.3.4.4/24 no shut ! int Gi0/0/0/1 ip address 10.4.5.4/24 no shut ! int lo0 ip address 4.4.4.4/32 ! router isis 1 net 49.0001.0000.0000.0004.00 is-type level-2-only address-family ipv4 unicast metric-style wide int Gi0/0/0/0 point-to-point address-family ipv4 unicast int Gi0/0/0/1 point-to-point address-family ipv4 unicast int Lo0 address-family ipv4 unicast ! mpls ldp int Gi0/0/0/0 int Gi0/0/0/1 #Agg2 hostname Agg2 ! int Gi0/0/0/0 ip address 10.5.6.5/24 no shut ! int Gi0/0/0/1 ip address 10.4.5.5/24 no shut ! int lo0 ip address 5.5.5.5/32 ! router isis 1 net 49.0001.0000.0000.0005.00 is-type level-2-only address-family ipv4 unicast metric-style wide int Gi0/0/0/1 point-to-point address-family ipv4 unicast int Lo0 address-family ipv4 unicast ! router ospf 2 area 0 int Gi0/0/0/0 int Lo0 ! mpls ldp int Gi0/0/0/0 int Gi0/0/0/1 #Access2 hostname Access2 ! int Gi0/0/0/0 ip address 10.5.6.6/24 no shut ! int lo0 ip address 6.6.6.6/32 ! router ospf 2 area 0 int Gi0/0/0/0 int Lo0 ! mpls ldp int Gi0/0/0/0 Copy #Access1 router bgp 100 neighbor 2.2.2.2 remote-as 100 neighbor 2.2.2.2 update-source Lo0 network 1.1.1.1 mask 255.255.255.255 neighbor 2.2.2.2 send-label #Agg1 router bgp 100 neighbor 1.1.1.1 remote-as 100 neighbor 1.1.1.1 update-source Lo0 neighbor 1.1.1.1 send-label neighbor 1.1.1.1 next-hop-self all neighbor 1.1.1.1 route-reflector-client neighbor 5.5.5.5 remote-as 100 neighbor 5.5.5.5 update-source Lo0 neighbor 5.5.5.5 send-label neighbor 5.5.5.5 next-hop-self all neighbor 5.5.5.5 route-reflector-client #Agg2 router bgp 100 ibgp policy out enforce-modifications address-family ipv4 unicast allocate-label all ! neighbor 2.2.2.2 remote-as 100 update-source Lo0 address-family ipv4 labeled-unicast route-reflector-client next-hop-self ! neighbor 6.6.6.6 remote-as 100 update-source Lo0 address-family ipv4 labeled-unicast route-reflector-client next-hop-self #Access2 router bgp 100 address-family ipv4 unicast network 6.6.6.6/32 allocate-label all ! neighbor 5.5.5.5 remote-as 100 update-source Lo0 address-family ipv4 labeled-unicast Copy Access1#traceroute 6.6.6.6 source lo0 probe 1 Type escape sequence to abort. Tracing the route to 6.6.6.6 VRF info: (vrf in name/id, vrf out name/id) 1 10.1.2.2 [MPLS: Label 22 Exp 0] 13 msec 2 10.2.3.3 [MPLS: Labels 19/24005 Exp 0] 13 msec 3 10.3.4.4 [MPLS: Labels 24003/24005 Exp 0] 10 msec 4 10.4.5.5 [MPLS: Label 24005 Exp 0] 12 msec 5 10.5.6.6 11 msec Copy Access1#show bgp ipv4 unicast labels Network Next Hop In label/Out label 1.1.1.1/32 0.0.0.0 imp-null/nolabel 6.6.6.6/32 2.2.2.2 nolabel/22 Access1#show bgp ipv4 unicast 6.6.6.6/32 BGP routing table entry for 6.6.6.6/32, version 5 Paths: (1 available, best #1, table default) Not advertised to any peer Refresh Epoch 1 Local 2.2.2.2 (metric 2) from 2.2.2.2 (2.2.2.2) Origin IGP, metric 0, localpref 100, valid, internal, best Originator: 6.6.6.6, Cluster list: 2.2.2.2, 5.5.5.5 mpls labels in/out nolabel/22 rx pathid: 0, tx pathid: 0x0 Updated on Aug 18 2022 23:44:34 UTC Copy Agg1#show bgp ipv4 unicast labels Network Next Hop In label/Out label 1.1.1.1/32 1.1.1.1 16/imp-null 6.6.6.6/32 5.5.5.5 22/24005 Copy Agg1#show mpls forwarding-table 5.5.5.5 Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 21 19 5.5.5.5/32 0 Gi2 10.2.3.3 Copy Core1#show mpls forwarding-table 5.5.5.5 Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 19 24003 5.5.5.5/32 7971 Gi1 10.3.4.4 Copy RP/0/0/CPU0:Core2#show mpls forwarding prefix 5.5.5.5/32 Thu Aug 18 23:53:58.524 UTC Local Outgoing Prefix Outgoing Next Hop Bytes Label Label or ID Interface Switched ------ ----------- ------------------ ------------ --------------- ------------ 24003 Pop 5.5.5.5/32 Gi0/0/0/1 10.4.5.5 9684 Copy RP/0/0/CPU0:Agg2#show mpls forwarding labels 24005 Thu Aug 18 23:55:01.240 UTC Local Outgoing Prefix Outgoing Next Hop Bytes Label Label or ID Interface Switched ------ ----------- ------------------ ------------ --------------- ------------ 24005 Pop 6.6.6.6/32 Gi0/0/0/0 10.5.6.6 8981 RP/0/0/CPU0:Agg2#show bgp ipv4 unicast labels Network Next Hop Rcvd Label Local Label *>i1.1.1.1/32 2.2.2.2 16 24006 *>i6.6.6.6/32 6.6.6.6 3 24005 Copy #CE1 hostname CE1 ! line con 0 logging sync ! int Gi1 ip address 10.1.1.1 255.255.255.252 no shut #CE2 hostname CE2 ! line con 0 logging sync ! int Gi1 ip address 10.1.1.2 255.255.255.252 no shut #Access1 int Gi2 no shut service instance 1 ethernet encapsulation default xconnect 6.6.6.6 1 encapsulation mpls #Access2 int Gi0/0/0/1 l2transport no shut ! l2vpn xconnect group XC p2p CUSTOMER1 int Gi0/0/0/1 neighbor 1.1.1.1 pw-id 1 --- # BGP | The (Unofficial) CCNP-SP Study Guide [BGP Synchronization](https://ccnp-sp.gitbook.io/studyguide/routing/bgp/bgp-synchronization) [BGP Load Sharing (Multipath)](https://ccnp-sp.gitbook.io/studyguide/routing/bgp/bgp-load-sharing-multipath) [An Intuitive Look at Path Attributes](https://ccnp-sp.gitbook.io/studyguide/routing/bgp/an-intuitive-look-at-path-attributes) [AS Path Prepending on XE and XR](https://ccnp-sp.gitbook.io/studyguide/routing/bgp/as-path-prepending-on-xe-and-xr) [RPL](https://ccnp-sp.gitbook.io/studyguide/routing/bgp/rpl) [PreviousLSP Traceroute](https://ccnp-sp.gitbook.io/studyguide/mpls/mpls-oam/lsp-traceroute) [NextBGP Synchronization](https://ccnp-sp.gitbook.io/studyguide/routing/bgp/bgp-synchronization) Last updated 2 years ago --- # OSPF | The (Unofficial) CCNP-SP Study Guide [Type 7 to Type 5 Translation](https://ccnp-sp.gitbook.io/studyguide/routing/ospf/type-7-to-type-5-translation) [OSPF Authentication](https://ccnp-sp.gitbook.io/studyguide/routing/ospf/ospf-authentication) [Troubleshooting OSPF Adjacencies](https://ccnp-sp.gitbook.io/studyguide/routing/ospf/troubleshooting-ospf-adjacencies) [OSPFv3 LSA Types](https://ccnp-sp.gitbook.io/studyguide/routing/ospf/ospfv3-lsa-types) [OSPFv3 LSAs Example (Single Area)](https://ccnp-sp.gitbook.io/studyguide/routing/ospf/ospfv3-lsas-example-single-area) [PreviousPE NAT](https://ccnp-sp.gitbook.io/studyguide/routing/l3vpn/pe-nat) [NextType 7 to Type 5 Translation](https://ccnp-sp.gitbook.io/studyguide/routing/ospf/type-7-to-type-5-translation) Last updated 2 years ago --- # Segment Routing | The (Unofficial) CCNP-SP Study Guide [Introduction, Theory Pt.1](https://ccnp-sp.gitbook.io/studyguide/mpls/segment-routing/introduction-theory-pt.1) [Introduction, Lab (OSPF) Pt.2](https://ccnp-sp.gitbook.io/studyguide/mpls/segment-routing/introduction-lab-ospf-pt.2) [Introduction, Lab (ISIS) Pt. 3](https://ccnp-sp.gitbook.io/studyguide/mpls/segment-routing/introduction-lab-isis-pt.-3) [Multi-Area/Level Segment Routing](https://ccnp-sp.gitbook.io/studyguide/mpls/segment-routing/multi-area-level-segment-routing) [Segment Routing using BGP](https://ccnp-sp.gitbook.io/studyguide/mpls/segment-routing/segment-routing-using-bgp) [Migrating LDP to SR](https://ccnp-sp.gitbook.io/studyguide/mpls/segment-routing/migrating-ldp-to-sr) [LDP/SR Interworking](https://ccnp-sp.gitbook.io/studyguide/mpls/segment-routing/ldp-sr-interworking) [TI-LFA Pt. 1 (Theory)](https://ccnp-sp.gitbook.io/studyguide/mpls/segment-routing/ti-lfa-pt.-1-theory) [TI-LFA Pt. 2 (Implementation)](https://ccnp-sp.gitbook.io/studyguide/mpls/segment-routing/ti-lfa-pt.-2-implementation) [TI-LFA Pt. 3 (Node and SRLG Protection)](https://ccnp-sp.gitbook.io/studyguide/mpls/segment-routing/ti-lfa-pt.-3-node-and-srlg-protection) [SR-TE Pt. 1 (Overview)](https://ccnp-sp.gitbook.io/studyguide/mpls/segment-routing/sr-te-pt.-1-overview) [SR-TE Pt. 2 (Creating an SR-TE Policy)](https://ccnp-sp.gitbook.io/studyguide/mpls/segment-routing/sr-te-pt.-2-creating-an-sr-te-policy) [SR-TE Pt. 3 (Using a PCE)](https://ccnp-sp.gitbook.io/studyguide/mpls/segment-routing/sr-te-pt.-3-using-a-pce) [SR-TE Pt. 4 (Automated Steering)](https://ccnp-sp.gitbook.io/studyguide/mpls/segment-routing/sr-te-pt.-4-automated-steering) [SR-TE Pt. 5 (On-Demand Nexthop)](https://ccnp-sp.gitbook.io/studyguide/mpls/segment-routing/sr-te-pt.-5-on-demand-nexthop) [SR-TE Pt. 6 (Flex Algo)](https://ccnp-sp.gitbook.io/studyguide/mpls/segment-routing/sr-te-pt.-6-flex-algo) [PreviousUnified MPLS](https://ccnp-sp.gitbook.io/studyguide/mpls/unified-mpls) [NextIntroduction, Theory Pt.1](https://ccnp-sp.gitbook.io/studyguide/mpls/segment-routing/introduction-theory-pt.1) Last updated 2 years ago --- # MPLS-TE | The (Unofficial) CCNP-SP Study Guide [MPLS-TE Basics, Pt. 1 (TED)](https://ccnp-sp.gitbook.io/studyguide/mpls/mpls-te/mpls-te-basics-pt.-1-ted) [MPLS-TE Basics, Pt.2 (RSVP)](https://ccnp-sp.gitbook.io/studyguide/mpls/mpls-te/mpls-te-basics-pt.2-rsvp) [MPLS-TE Basics, Pt.3 (CSPF)](https://ccnp-sp.gitbook.io/studyguide/mpls/mpls-te/mpls-te-basics-pt.3-cspf) [MPLS-TE Basics, Pt.4 (Routing)](https://ccnp-sp.gitbook.io/studyguide/mpls/mpls-te/mpls-te-basics-pt.4-routing) [MPLS-TE Fast Reroute (FRR)](https://ccnp-sp.gitbook.io/studyguide/mpls/mpls-te/mpls-te-fast-reroute-frr) [MPLS-TE with OSPF](https://ccnp-sp.gitbook.io/studyguide/mpls/mpls-te/mpls-te-with-ospf) [PreviousLDP Session Protection](https://ccnp-sp.gitbook.io/studyguide/mpls/ldp/ldp-session-protection) [NextMPLS-TE Basics, Pt. 1 (TED)](https://ccnp-sp.gitbook.io/studyguide/mpls/mpls-te/mpls-te-basics-pt.-1-ted) Last updated 2 years ago --- # IPv6 Transition | The (Unofficial) CCNP-SP Study Guide [Overview](https://ccnp-sp.gitbook.io/studyguide/routing/ipv6-transition/overview) [NAT64](https://ccnp-sp.gitbook.io/studyguide/routing/ipv6-transition/nat64) [6to4](https://ccnp-sp.gitbook.io/studyguide/routing/ipv6-transition/6to4) [6RD (IPv6 Rapid Deployment)](https://ccnp-sp.gitbook.io/studyguide/routing/ipv6-transition/6rd-ipv6-rapid-deployment) [DS Lite (Dual Stack Lite)](https://ccnp-sp.gitbook.io/studyguide/routing/ipv6-transition/ds-lite-dual-stack-lite) [MAP (Mapping of Address and Port)](https://ccnp-sp.gitbook.io/studyguide/routing/ipv6-transition/map-mapping-of-address-and-port) [Tunneling IPv6 Dynamic Routing Protocols over IPv4](https://ccnp-sp.gitbook.io/studyguide/routing/ipv6-transition/tunneling-ipv6-dynamic-routing-protocols-over-ipv4) [PreviousTroubleshooting ISIS Adjacencies](https://ccnp-sp.gitbook.io/studyguide/routing/isis/troubleshooting-isis-adjacencies) [NextOverview](https://ccnp-sp.gitbook.io/studyguide/routing/ipv6-transition/overview) Last updated 2 years ago --- # ISIS | The (Unofficial) CCNP-SP Study Guide [The Potential for Asymmetric Routing with Multi-Area ISIS](https://ccnp-sp.gitbook.io/studyguide/routing/isis/the-potential-for-asymmetric-routing-with-multi-area-isis) [Interarea Routing is Distance-Vector](https://ccnp-sp.gitbook.io/studyguide/routing/isis/interarea-routing-is-distance-vector) [Basic ISIS - LSPDB](https://ccnp-sp.gitbook.io/studyguide/routing/isis/basic-isis-lspdb) [Multitopology](https://ccnp-sp.gitbook.io/studyguide/routing/isis/multitopology) [What is the role of CLNS and CLNP in ISIS?](https://ccnp-sp.gitbook.io/studyguide/routing/isis/what-is-the-role-of-clns-and-clnp-in-isis) [Troubleshooting ISIS Adjacencies](https://ccnp-sp.gitbook.io/studyguide/routing/isis/troubleshooting-isis-adjacencies) [PreviousOSPFv3 LSAs Example (Single Area)](https://ccnp-sp.gitbook.io/studyguide/routing/ospf/ospfv3-lsas-example-single-area) [NextThe Potential for Asymmetric Routing with Multi-Area ISIS](https://ccnp-sp.gitbook.io/studyguide/routing/isis/the-potential-for-asymmetric-routing-with-multi-area-isis) Last updated 2 years ago --- # L3VPN | The (Unofficial) CCNP-SP Study Guide [An In-Depth Look at RD and RT, Pt. 1](https://ccnp-sp.gitbook.io/studyguide/routing/l3vpn/an-in-depth-look-at-rd-and-rt-pt.-1) [An In-Depth Look at RD and RT, Pt. 2](https://ccnp-sp.gitbook.io/studyguide/routing/l3vpn/an-in-depth-look-at-rd-and-rt-pt.-2) [An In-Depth Look at RD and RT, Pt. 3](https://ccnp-sp.gitbook.io/studyguide/routing/l3vpn/an-in-depth-look-at-rd-and-rt-pt.-3) [An In-Depth Look at RD and RT, Pt. 4](https://ccnp-sp.gitbook.io/studyguide/routing/l3vpn/an-in-depth-look-at-rd-and-rt-pt.-4) [Inter-AS L3VPN Pt. 1, Overview](https://ccnp-sp.gitbook.io/studyguide/routing/l3vpn/inter-as-l3vpn-pt.-1-overview) [Inter-AS L3VPN Pt. 2, Option A](https://ccnp-sp.gitbook.io/studyguide/routing/l3vpn/inter-as-l3vpn-pt.-2-option-a) [Inter-AS L3VPN Pt. 3, Option B](https://ccnp-sp.gitbook.io/studyguide/routing/l3vpn/inter-as-l3vpn-pt.-3-option-b) [Inter-AS L3VPN Pt. 4, Option C](https://ccnp-sp.gitbook.io/studyguide/routing/l3vpn/inter-as-l3vpn-pt.-4-option-c) [CSC (Carrier Supporting Carrier)](https://ccnp-sp.gitbook.io/studyguide/routing/l3vpn/csc-carrier-supporting-carrier) [PE NAT](https://ccnp-sp.gitbook.io/studyguide/routing/l3vpn/pe-nat) [PreviousBGPsec](https://ccnp-sp.gitbook.io/studyguide/routing/bgp-security/bgpsec) [NextAn In-Depth Look at RD and RT, Pt. 1](https://ccnp-sp.gitbook.io/studyguide/routing/l3vpn/an-in-depth-look-at-rd-and-rt-pt.-1) Last updated 2 years ago --- # IOS-XE Ethernet Services | The (Unofficial) CCNP-SP Study Guide [Service Instances](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/ios-xe-ethernet-services/service-instances) [E-Line](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/ios-xe-ethernet-services/e-line) [E-LAN (VPLS)](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/ios-xe-ethernet-services/e-lan-vpls) [E-Tree](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/ios-xe-ethernet-services/e-tree) [E-Access](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/ios-xe-ethernet-services/e-access) [VPLS with BGP Autodiscovery](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/ios-xe-ethernet-services/vpls-with-bgp-autodiscovery) [Martini/Kompella Circuits](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/ios-xe-ethernet-services/martini-kompella-circuits) [PreviousMulticast Routing on IOS-XR](https://ccnp-sp.gitbook.io/studyguide/routing/multicast/multicast-routing-on-ios-xr) [NextService Instances](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/ios-xe-ethernet-services/service-instances) Last updated 2 years ago --- # EVPN | The (Unofficial) CCNP-SP Study Guide [Introduction to EVPN](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/evpn/introduction-to-evpn) [Learning EVPN VXLAN First](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/evpn/learning-evpn-vxlan-first) [E-Line (EVPN VPWS)](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/evpn/e-line-evpn-vpws) [E-Line (EVPN VPWS) on IOS-XR](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/evpn/e-line-evpn-vpws-on-ios-xr) [E-Line (EVPN VPWS) Multi-Homed](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/evpn/e-line-evpn-vpws-multi-homed) [E-LAN (EVPN Single-Homed)](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/evpn/e-lan-evpn-single-homed) [PreviousMartini/Kompella Circuits](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/ios-xe-ethernet-services/martini-kompella-circuits) [NextIntroduction to EVPN](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/evpn/introduction-to-evpn) Last updated 2 years ago --- # Carrier Ethernet | The (Unofficial) CCNP-SP Study Guide [802.1ah (MAC-in-MAC)](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/carrier-ethernet/802.1ah-mac-in-mac) [802.3ah (Ethernet OAM)](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/carrier-ethernet/802.3ah-ethernet-oam) [802.1ag (CFM)](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/carrier-ethernet/802.1ag-cfm) [Cisco REP (Resilient Ethernet Protocol)](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/carrier-ethernet/cisco-rep-resilient-ethernet-protocol) [ITU G.8032 ERPS (Ethernet Ring Protection Switching)](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/carrier-ethernet/itu-g.8032-erps-ethernet-ring-protection-switching) [PreviousE-LAN (EVPN Single-Homed)](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/evpn/e-lan-evpn-single-homed) [Next802.1ah (MAC-in-MAC)](https://ccnp-sp.gitbook.io/studyguide/l2vpn-and-ethernet/carrier-ethernet/802.1ah-mac-in-mac) Last updated 2 years ago --- # IOS Software Overview | The (Unofficial) CCNP-SP Study Guide The operating system that runs on Cisco hardware is called IOS (Internetwork Operating System). In general an OS is responsible for low-level processes on a device such as access to hardware, management of memory, communication between processes, and process scheduling. Memory management is a defining characteristic of an operating system. A monolithic operating system is one in which all processes share the same memory space. There is no fault tolerance between processes. One process can experience a memory leak and starve all memory on the entire device. While a monolithic OS sounds like a poor way to design an OS, there are some benefits. In a monolithic OS, CPU utilization can be improved due to the immediate access to memory. The OS in this case can run directly on the hardware. So using a monolithic OS can be useful when the system is simple and the codebase is small. In contrast, a _kernal-based_ OS uses a separate kernal process to manage memory and other resources. The kernal allows processes to have separate memory spaces. This means that a memory leak in one process does not impact the memory space of other processes. Processes can be restarted individually without affecting the entire system. In a microkernel OS, only the essential core services run in the kernal, and all other processes run in their own memory space. ### [](https://ccnp-sp.gitbook.io/studyguide/misc/ios-software-overview#id-24d7f5a9-a238-4704-83ff-d1157385539d) IOS This is the classic IOS software which runs on end-of-life hardware you may be familiar with, including switches such as the 2960 and 3750, and routers such as the 2951 and 3845. This is a monolithic OS - all processes run in the same memory space. Have you ever noticed how small the IOS file is on an IOS device? On the 2960 running in my lab, the 152-2.E6 software file is a mere 21.3 MB. On a monolithic OS, the entire system image is held in memory. ### [](https://ccnp-sp.gitbook.io/studyguide/misc/ios-software-overview#c6c92b74-3be8-4b26-8e87-09ab9377dfea) IOS-XE IOS-XE is kernal-based, running IOSd (IOS daemon) ontop of a Linux kernal. I’ve seen this called “a combination of a linux kernal and monolithic application (IOSd)” which can be a bit confusing. This makes it sounds as if IOS-XE is simply a kernal with a single process. IOSd _is_ a single daemon but it is able to parition functions into separate processes, which are isolated and memory-protected. IOSd is the main process, running as an application on the Linux kernal. The IOS subsystems run as separate processes. The fact that IOS-XE runs on Linux allows for the ability to run different applications, such as wireshark and containers, tangent to the IOSd. IOS-XE even allows for a guest linux shell, allowing you to access a bash shell from the CLI. * _Example of enabling guestshell in CSR1000v_ IOS-XE runs on modern switches and routers, such as the Catalyst 3650/3850, and 9300/9400/9500, as well as the Cisco ISR and ASR line such as the ISR 4300/4400 and ASR 1000 series. IOS-XE inherits the IOS CLI, so if you are dropped into the CLI of each, you probably won’t be able to tell the difference unless you issue a “show version.” ### [](https://ccnp-sp.gitbook.io/studyguide/misc/ios-software-overview#id-59c16a31-61a4-4724-8c92-67c66f5be3e8) IOS-XR IOS-XR is a microkernel OS which runs ontop of QNX in the 32-bit version of IOS-XR, and Yocto Linux in the 64-bit version of IOS-XR. QNX is a Unix-like operating system. The 32-bit version is called “classic IOS XR” and runs on older hardware such as the 12000 series, CRS series (Carrier Routing System, not to be confused with **CSR** Cloud Services Router), and ASR 9000 series. The 64-bit version runs on the NCS series and new ASR 9x00 series. IOS-XR shares very little with older IOS trains, and was built from the ground up. This is one reason for the different CLI syntax. IOS-XR is highly distributed, with each process individually restartable. For example, BGP may be one process, RIB another, and ISIS another. Each runs in its own memory space. IOS-XR places some processes directly on the line cards, for example ARP, BFD, and FIB. IOS-XR has RPs (route processors) which allow for fault tolerance. Processes can be distributed among the multiple RPs on the system. Package management is modular. Features such as multicast and MPLS can be installed in separate packages, allowing these features to be enabled and disabled while the router is in service. The 32-bit version uses PIE-based software packages, while the 64-bit version uses RPM packages that you may be familiar with in Linux. PIE stands for Package Installation Envelope. ### [](https://ccnp-sp.gitbook.io/studyguide/misc/ios-software-overview#fcbd475c-d080-46fd-a254-4a8732b429ba) Further Reading [https://meelaz.medium.com/using-cows-to-explain-the-differences-of-the-cisco-operating-systems-876d14145827](https://meelaz.medium.com/using-cows-to-explain-the-differences-of-the-cisco-operating-systems-876d14145827) [https://en.wikipedia.org/wiki/Cisco\_IOS\_XE](https://en.wikipedia.org/wiki/Cisco_IOS_XE) [https://networklessons.com/cisco/ccie-routing-switching-written/introduction-cisco-ios-xe](https://networklessons.com/cisco/ccie-routing-switching-written/introduction-cisco-ios-xe) [https://www.packetcoders.io/what-are-the-key-differences-between-cisco-ios-and-ios-xe/](https://www.packetcoders.io/what-are-the-key-differences-between-cisco-ios-and-ios-xe/) [https://en.wikipedia.org/wiki/Cisco\_IOS\_XR](https://en.wikipedia.org/wiki/Cisco_IOS_XR) Cisco IOS XR Fundamentals, Ch. 1 [PreviousLink Aggregation on IOS-XR](https://ccnp-sp.gitbook.io/studyguide/misc/high-availability-ha/link-aggregation-on-ios-xr) [NextLab Challenges](https://ccnp-sp.gitbook.io/studyguide/labs/lab-challenges) Last updated 2 years ago * [IOS](https://ccnp-sp.gitbook.io/studyguide/misc/ios-software-overview#id-24d7f5a9-a238-4704-83ff-d1157385539d) * [IOS-XE](https://ccnp-sp.gitbook.io/studyguide/misc/ios-software-overview#c6c92b74-3be8-4b26-8e87-09ab9377dfea) * [IOS-XR](https://ccnp-sp.gitbook.io/studyguide/misc/ios-software-overview#id-59c16a31-61a4-4724-8c92-67c66f5be3e8) * [Further Reading](https://ccnp-sp.gitbook.io/studyguide/misc/ios-software-overview#fcbd475c-d080-46fd-a254-4a8732b429ba) Copy CSR1000v(config)#iox CSR1000v(config)#int vpg0 CSR1000v(config)#int virtualportGroup 0 CSR1000v(config-if)#ip add 192.168.1.1 255.255.255.0 CSR1000v(config-if)#exit CSR1000v(config)#app-hosting appid guestshell CSR1000v(config-app-hosting)#vnic gateway1 virtualportgroup 0 guest-interface 0 guest-ipaddress 192.168.1.2 netmask 255.255.255.0 gateway 192.168.1.1 name-server 8.8.8.8 CSR1000v(config-app-hosting)#end CSR1000v#guestshell enable Interface will be selected if configured in app-hosting Please wait for completion guestshell activated successfully Current state is: ACTIVATED guestshell started successfully Current state is: RUNNING Guestshell enabled successfully CSR1000v# CSR1000v#guestshell [guestshell@guestshell ~]$ [guestshell@guestshell ~]$ pwd /home/guestshell --- # Transport | The (Unofficial) CCNP-SP Study Guide [xPON](https://ccnp-sp.gitbook.io/studyguide/misc/transport/xpon) [SONET/SDH](https://ccnp-sp.gitbook.io/studyguide/misc/transport/sonet-sdh) [WDM](https://ccnp-sp.gitbook.io/studyguide/misc/transport/wdm) [4G and 5G RAN](https://ccnp-sp.gitbook.io/studyguide/misc/transport/4g-and-5g-ran) [PreviousOpenStack](https://ccnp-sp.gitbook.io/studyguide/misc/virtualization/openstack) [NextxPON](https://ccnp-sp.gitbook.io/studyguide/misc/transport/xpon) Last updated 2 years ago ---