tag:blogger.com,1999:blog-85278571528187239842024-03-19T13:15:33.888+01:00MPLS for the massesnicola modenahttp://www.blogger.com/profile/08151880994148540464noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-8527857152818723984.post-4822233804127365722023-05-11T16:20:00.002+02:002023-05-11T16:52:58.319+02:00BGP is the answer, what is the question ?<div><span style="font-family: verdana;">In my talk at ITNOG7 I presented "<b>BGP FlowSpec Services beyond DDOS Mitigation</b>" with the intention of proposing other uses of flowspec, as too often cataloged exclusively as a tool for managing DDOS.I built two services to achieve egress engineering and bidirectional traffic steering, using a combination of BGP Flowspec and MPLS L3VPN. Finally I described a framework for creating NFV services that can scale on service provider architectures.<br />the slide with the requirements and proposed solution are eloquent:</span></div><div><span style="font-family: verdana;"><br /></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW8CR6jIcRHsJeLtAWXwyEaJhBy3RWt4_Nm8RXHGzhtyHvcdUEXD0ioK6GRKioPDa1J2GS08-IFwjGFFEmc05vTsxXdAg5VBg9f9Mawd5QsILWJFJYW8iIhFXyOTJxBKag5psXWLYirhSjEIS4EiVzcCg5BsnjtdepOBlDqqAEEgCaTxZACgNfPRcHzg/s751/slide16.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="427" data-original-width="751" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW8CR6jIcRHsJeLtAWXwyEaJhBy3RWt4_Nm8RXHGzhtyHvcdUEXD0ioK6GRKioPDa1J2GS08-IFwjGFFEmc05vTsxXdAg5VBg9f9Mawd5QsILWJFJYW8iIhFXyOTJxBKag5psXWLYirhSjEIS4EiVzcCg5BsnjtdepOBlDqqAEEgCaTxZACgNfPRcHzg/w380-h216/slide16.png" width="380" /></a></div><div><span style="font-family: verdana;"><br /></span></div><div><div><span style="font-family: verdana;">and in the conclusions I try to make people think about how I organized the service</span></div><div style="text-align: center;"><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBZn34fOwQRLKqoEkjgl3jNTmbgfs111HcSd6illueYQxR1qG9wtpRp8pj3MwIpJgy6MUuKbxuOIW2Q4-f-KVHlDmZ-Qg4TYGsQBuqH5p5NKoLz0OjzEWg3UNuRI9De7sPzHJi0zVOoiZ1lneNpT2r0L9UZJEJf5BTqkmBoqyDFNWaKzsLkrsaej4VYA/s751/slide22.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="427" data-original-width="751" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBZn34fOwQRLKqoEkjgl3jNTmbgfs111HcSd6illueYQxR1qG9wtpRp8pj3MwIpJgy6MUuKbxuOIW2Q4-f-KVHlDmZ-Qg4TYGsQBuqH5p5NKoLz0OjzEWg3UNuRI9De7sPzHJi0zVOoiZ1lneNpT2r0L9UZJEJf5BTqkmBoqyDFNWaKzsLkrsaej4VYA/w387-h220/slide22.png" width="387" /></a></div></div><div><br /></div><div><span style="font-family: verdana;">Ivan Pepelniak who I had the honor of having as a reviewer and listener, told me that I should call my presentation "BGP is the answer, what is the question ?" and I find it hard not to agree with him.</span></div></div><div><span style="font-family: verdana;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFBw9Wszao-05dEB5v4kNtoweiVXVpzRc_X310CMziror1S6FZbsr_xZ2UpBdChJinxOQ_RSQ415GnbrruFdoZuhBPamb4M9A_5Pv8IS2wLki7h3STYYU_fAY54edJKtRCrf-RyuqtbyUQ8rAwCr4n8GF7k0jk3Ng_WO5DoMzlHALVI_DkzdD8caYrHg/s1024/itnog7-flowspec_small.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="705" data-original-width="1024" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFBw9Wszao-05dEB5v4kNtoweiVXVpzRc_X310CMziror1S6FZbsr_xZ2UpBdChJinxOQ_RSQ415GnbrruFdoZuhBPamb4M9A_5Pv8IS2wLki7h3STYYU_fAY54edJKtRCrf-RyuqtbyUQ8rAwCr4n8GF7k0jk3Ng_WO5DoMzlHALVI_DkzdD8caYrHg/w349-h240/itnog7-flowspec_small.png" width="349" /></a></div></div><div><span style="font-family: verdana;"><br /></span></div><div><div><span style="font-family: verdana;">This year was a huge edition of #ITNOG, which over the years is growing in form and content, maintaining that spirit of independence and informality that make it unique.</span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;">A big thank you to all the ITNOG - Italian Network Operators Group staff for the work done and for allowing me to present again this year, and to all the people I met who wanted to renew their friendship and had the patience to listen to me.</span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;">the presentation it's available on my GitHub repository </span></div><div><span style="font-family: verdana;"><br /></span></div><div><a href="https://github.com/nmodena/blog/blob/master/202305_BGP_Flowspec_nmodena_ITNOG7.pdf"><span style="font-family: courier; font-size: x-small;">https://github.com/nmodena/blog/blob/master/202305_BGP_Flowspec_nmodena_ITNOG7.pdf</span></a></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;">with also an extended edition from WWT 2023</span></div><div><span style="font-family: verdana;"><br /></span></div><div><a href="https://github.com/nmodena/blog/blob/master/202305-BGP_FlowSpec_Services_nmodena_extended_WWT.pdf"><span style="font-family: courier; font-size: x-small;">https://github.com/nmodena/blog/blob/master/202305-BGP_FlowSpec_Services_nmodena_extended_WWT.pdf</span></a></div><div><br /></div></div>nicola modenahttp://www.blogger.com/profile/08151880994148540464noreply@blogger.com0tag:blogger.com,1999:blog-8527857152818723984.post-81210120094021528122022-04-27T07:22:00.000+02:002022-04-27T07:22:44.788+02:00modern bgp design<p>The Wholesale Winery Tour 2022 was an opportunity to meet old and new friends, and to present something new.</p><p>"modern bgp design" is a talk on how to overcome the stereotypes of traditional bgp design and combine new features using BGP as a real control-plane protocol.</p><p>The target of the presentation are small and medium-sized service providers and the will is to rationalize network resources and simplify infrastructure and configurations. It is then used what I use to call a "dual stage lookup" for upstream traffic, distributing only the default route within the POPs and DCs, and keeping the Full Internet Routing Table only within the core devices.</p><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjTvf_vaOAbJINPyIHqRDIQvZG0mcc2sXEVgbsoPiPYkiEBbMq9eNaRBM5GexjzecjmHh41YgzydUP-MYPh49YqDHSHl21doIR3G1HNiVrffqoh95h2D4CQqDUBPH_nhl3fbIf7TiS1HER14z2uJcwR5zujbgO8B8_dTXbZiZjxkUJFQ4PqHFLo473Rrg" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="425" data-original-width="752" height="181" src="https://blogger.googleusercontent.com/img/a/AVvXsEjTvf_vaOAbJINPyIHqRDIQvZG0mcc2sXEVgbsoPiPYkiEBbMq9eNaRBM5GexjzecjmHh41YgzydUP-MYPh49YqDHSHl21doIR3G1HNiVrffqoh95h2D4CQqDUBPH_nhl3fbIf7TiS1HER14z2uJcwR5zujbgO8B8_dTXbZiZjxkUJFQ4PqHFLo473Rrg" width="320" /></a></div></div><p>A single pair of RR is used for the entire infrastructure, exploiting a combination of ADD-PATH [rfc7911] and ORR [rfc9107] (Optimized Route Reflection) to distribute in a targeted manner the only information necessary to maintain optimal routing and guarantee load-balancing or even just High Availability based on a local convergence.</p><p>this is the full <a href="https://github.com/nmodena/blog/blob/master/202204-Modern_BGP_Design_nmodena.pdf">Presentation</a></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://github.com/nmodena/blog/blob/master/202204-Modern_BGP_Design_nmodena.pdf" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="425" data-original-width="752" height="181" src="https://blogger.googleusercontent.com/img/a/AVvXsEibBmM0QcPPObbksP9bMdgdBdOLzlHCOcVeUFc8CKcXVw5z0gebrsv0YK4RFQk9uMQlObVCEoJU-ZR90oYtRlOOnaCG0n-JFdT7KDWydnhvsBCvxVJsYHL_udYd2xHuZb5zxZYaOFRfY5kh2DpDct0PFlLge48p4JQsYh9ySzqxA9e8rBwvNE9deyEI5w" width="320" /></a></div><br /><br /><p></p>nicola modenahttp://www.blogger.com/profile/08151880994148540464noreply@blogger.comtag:blogger.com,1999:blog-8527857152818723984.post-80332876647519955172020-05-29T16:13:00.001+02:002022-04-22T10:19:38.479+02:00Switch as Internet Border Router - FIRT with selective FIB install<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt;">
I had the opportunity to present <span lang="EN-US">at</span> <b>ITNOG on the web</b> the use of a switch as an internet border router<span lang="EN-US">,</span> and how to set up a <span lang="EN-US">distribution </span>strategy within the backbone to reduce the routing information while maintaining <span lang="EN-US">an “almost </span>optimal<span lang="EN-US">”</span> routing.<o:p></o:p></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt;">
For the border router, <span lang="EN-US">I used a selective </span>FIB <span lang="EN-US">installation in </span>TCAM<span lang="EN-US"> only </span>for significant destinations. The wide availability of RAM on recent switches <span lang="EN-US">permits </span>to <span lang="EN-US">hold </span>the FIRT <span lang="EN-US">(Full Internet Routing Table) and tag with a BGP Community</span> the <span lang="EN-US">relevant </span>destination to be loaded into the FIB. <span lang="EN-US">For the remaining prefixes a “hot-potato” strategy can be applied using a default-router to the transit provider.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt;">
<span lang="EN-US"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8glI9cZC-2LjgyXyEGKeNezJhF0CLBgcKAhO70B3_i9nsXs9xwMbnjSKqFvBep7o8_V2QzBkdah7KRpD1Clu3NGt2OYE1DgVy2wR1_7N7wBdaR666h38TVMOFzVlRyfHUdnGfcieX_ZN1/s1600/switch-as-border.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="631" data-original-width="920" height="219" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8glI9cZC-2LjgyXyEGKeNezJhF0CLBgcKAhO70B3_i9nsXs9xwMbnjSKqFvBep7o8_V2QzBkdah7KRpD1Clu3NGt2OYE1DgVy2wR1_7N7wBdaR666h38TVMOFzVlRyfHUdnGfcieX_ZN1/s320/switch-as-border.png" width="320" /></a></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt;">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt;">
<span lang="EN-US">The </span>optimal border <span lang="EN-US">selection with a “cold-potato” approach </span>is then <span lang="EN-US">realized into the b</span>ackbone, using an intelligent <span lang="EN-US">external route reflection on the route-reflector.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt;">
The border routers <span lang="EN-US">sends the</span><span lang="EN-US"> </span><span lang="EN-US">FIRT</span><span lang="EN-US"> </span><span lang="EN-US">to the route-reflector with significant prefixes already cataloged </span>with BGP communities. it therefore becomes a task of the RR to reflect only <span lang="EN-US">these</span> significant prefixes or make a further selection, for example by combining the destinations with a netflow analysis.<o:p></o:p></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt;">
The idea is inspired by the work of David Barroso and Paolo Lucente with their <a href="https://github.com/dbarrosop/sir" target="_blank">SIR </a>(Software Internet Router)<o:p></o:p></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt;">
The main difference of my solution<span lang="EN-US">:<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt;">
<span lang="EN-US"><br /></span></div>
<div class="MsoListParagraphCxSpFirst" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt 36pt; text-indent: -18pt;">
<span lang="EN-US">-<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span></span><span lang="EN-US">It’s a combination of selective FIB installation on border router and selective route distribution in the backbone<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt 36pt; text-indent: -18pt;">
-<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span>the border router lies in the approach completely based on BGP and native policies, and not by an external programming or by the loading of the FIB by an external controller.<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt 36pt; text-indent: -18pt;">
<span lang="EN-US">-<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span></span><span lang="EN-US">Further route selection, driven by a netflow analysis it’s performed only on the route-reflector.<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt 36pt; text-indent: -18pt;">
<span lang="EN-US">-<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span></span><span lang="EN-US">All the backbone router operates without the FIRT and a traditional aligned RIB/FIB.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt;">
The solution is therefore extremely simple and requires peering devices capable of managing the FIRT in RAM and in TCAM a number of prefixes certainly much smaller than the size of the current FIRT.<o:p></o:p></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt;">
<span lang="EN-US">This the complete <a href="https://github.com/nmodena/blog/blob/master/ITNOG%20on%20the%20web%205%20nmodena%20public.pdf" target="_blank">presentation</a> </span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt;">
<br /><span lang="EN-US"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://github.com/nmodena/blog/blob/master/ITNOG%20on%20the%20web%205%20nmodena%20public.pdf" target="_blank"><img border="0" data-original-height="256" data-original-width="488" height="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJTWQRhmM6YydKsjrnhNGwU0T76IZX4-E30CuuJRcUMlXgdV_39BPEMbRv7iKIiugE9HF1NJ7vhAxgsiRApk58a9UYz0hzijXv9eYuIE8A33h1nnsrZ8rsV9rCpoaI2sxQJeheSbCgNn1D/s320/cover.png" width="320" /></a></div>
<o:p></o:p>nicola modenahttp://www.blogger.com/profile/08151880994148540464noreply@blogger.comtag:blogger.com,1999:blog-8527857152818723984.post-27250340205300785672018-12-03T18:40:00.000+01:002018-12-03T18:40:35.585+01:00The need for simplicity and standardization, at least in networking (The wheel has already been invented)<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-GB">As my knowledge and experience in networking evolved, I came to the conclusion that too much freedom and too many features can be very dangerous, especially in the wrong hands. After all, who would give a Ferrari to a young driver?<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-GB">The truth is that getting to the essence, removing the superfluous and using the right tools and in the right way, is a precious skill to be developed with continuous study, dedication and preferably under the right guidance. Often this could simply be the result of identifying requirements and turning them to a reference architecture, but too often design becomes an exercise in creativity and research of originality with the continuous research to be able to use up to the last available feature.</span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-GB"><br /></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-GB">In recent years I have combined the search for simplicity with that of prototyping to make everything replicable and automatable. During my participation at the #NFD19, I had the opportunity to learn more about Apstra and meet a group of people for whom this mantra has been realized in the creation of their AOS "Apstra Operating System".<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<span lang="EN-GB">They just used some considerations:<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<span lang="EN-GB"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPG7dcs8mC71ORyh3jcptuXwes0bFdOj0g_h8jZfLI0ltGTywnm5tScQYzT0W4s7H2PeC_Fu7Q11WOb4rMMKD7wcJCUYVj98oWQ66neakQA1an6foO8gj-vlS_y2OH_Y5Nu8_WM0lDd_J-/s1600/Apstra-presentation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="898" data-original-width="1600" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPG7dcs8mC71ORyh3jcptuXwes0bFdOj0g_h8jZfLI0ltGTywnm5tScQYzT0W4s7H2PeC_Fu7Q11WOb4rMMKD7wcJCUYVj98oWQ66neakQA1an6foO8gj-vlS_y2OH_Y5Nu8_WM0lDd_J-/s400/Apstra-presentation.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
</div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-GB">AOS is designed to create and manage multivendor Clos IP Fabrics, in which a standard configuration is applied that makes extensive use of BGP and EVPN. The model used is not mandatory and can be modified to adapt to any different customer needs. But in this case, we would have to go back on questioning the starting idea, and in fact talking with Apstra team, they confirmed that customers eventually adopt the proposed configuration without modifications.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-GB">The advantages of this approach are such that discourage a change. The configurations are in fact:<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
</div>
<ul>
<li>Made by experts and based on their greater experience</li>
<li>Born to guarantee interoperability between different vendors</li>
<li>Continuously verified to guarantee compatibility with the new releases of AOS and vendors.</li>
</ul>
<br />
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<span lang="EN-GB"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghoX6QGPy3SAKkvbBp77TGNqlFkmCQUQ0rJ_t2SjaYmxodTmMtAzQBfwaLrHgyaeQI1VX-EfNn0LQwCfp2ITvfcZAwScHUQy0B5pHXSilfLC25admHcg3n2lPw8ZKYUh0GCVxVfLgRXOtj/s1600/Apstra+Tweet.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="528" data-original-width="489" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghoX6QGPy3SAKkvbBp77TGNqlFkmCQUQ0rJ_t2SjaYmxodTmMtAzQBfwaLrHgyaeQI1VX-EfNn0LQwCfp2ITvfcZAwScHUQy0B5pHXSilfLC25admHcg3n2lPw8ZKYUh0GCVxVfLgRXOtj/s320/Apstra+Tweet.png" width="296" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-GB">This is my tweet during the event with the nice slide in which the CEO presents the result in the interoperability EVPN between Cisco and Arista.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<b><span lang="EN-GB">Intent-based Design</span></b></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-GB">This abstraction and simplified management therefore translate into a set of applications in which the resources available are defined in terms of devices, connections, addresses, AS numbers, and the intentions (or blueprints), namely the specificity of connectivity, visibility, security etc. AOS is concerned with translating them into configuration statements and applying them to the devices.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<b><span lang="EN-GB">Automation of Automation</span></b></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-GB">Automation is not just delegated to configuration management but is a fundamental component of the platform. In fact, a common platform is provided to customize and further automate the various devices. The thing that struck me is the possibility to create probes, which allow a pro-active monitoring of the infrastructure. On <a href="https://github.com/Apstra/iba" target="_blank">GitHub</a> there is already a large collection of probes and users are encouraged to contribute. </span>The automation is therefore automatable, as AOS itself. I leave to you to determine the level of recursion to which we have arrived :-).</div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<b><span lang="EN-GB">Intent-based Analytics</span></b></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-GB">AOS integrates a sophisticated management of telemetry, which also in this case normalizes the different vendors. The results of the active probes are integrated and also in this case it is possible to integrate automatic instruments. The preventive management of GBIC failures has been presented: the entire process of off-line transfer has been automated upon exceeding the established threshold values, the activation of a replacement request and subsequent replacement return.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-GB">It is not my goal to do a review of the platform, you can directly draw your conclusions from NFD videos available at the <a href="https://techfieldday.com/event/nfd19/" target="_blank">Tech Field Day </a> portal, but I would like to share some thoughts:<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<b><span lang="EN-GB">Is it possible to simplify everything?</span></b></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-GB">The reality is that in order to manage very large and intrinsically complex systems, <b>simplicity is a requirement. </b>But simplifying does not mean renouncing any of the necessary functionalities, rather rationalizing and reducing the features used to achieve the prefixed objectives.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<b><span lang="EN-GB">What makes me think that Apstra get the right way?</span></b></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-GB">It comes down to the maturity and scalability of the architecture and technology used: Clos fabric, BGP and EVPN are now the building blocks for each datacenter. If once were only the prerogative of large data centers, now it is also applicable on the small scale. I have already discussed my beliefs with highly qualified people here (<a href="https://blog.ipspace.net/2018/02/using-evpn-in-very-small-data-center.html" style="color: #954f72;" target="_blank">Using EVPN in Very Small Data Center Fabrics</a>), and also the data presented by Apstra show how their solution is spreading also in the enterprise market and not just among the big cloud providers.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-GB">The use of an abstraction layer (or intent), can eliminate the main obstacle represented by BGP knowledge and experience.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<b><span lang="EN-GB">Are we going to meet a world that is all the same?</span></b></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-GB">In reality, it is not what we have always looked for with the various IETF, ISO etc etc? Unfortunately, the transition from what has been defined to what has been achieved has introduced sometimes insurmountable incompatibilities or led to completely different implementations (Anyone TRILL?).<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-GB">But moving from protocols to architectures, we introduce the "user" variable that too often ventures into original solutions "because I have unique needs" or simply as a result of a disorderly growth that miraculously works (Layer-2 + Any form of spanning tree).<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-GB">Having a guide and a reference model which must be followed (especially for those without the skills) is certainly very useful.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<b><span lang="EN-GB">Can I keep my uniqueness?</span></b></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-GB">The wheel has already been invented! Let's try to think that the Clos networks theory was defined in 1953 and only in the last few years has it been applied in our networks. I believe that only now does networking begin to come out of its stone age and begin the transition from craftsmanship to industrialization. It is important to invest your resources in an intelligent way and in the search for the simplification and automation of work rather than the solution of problems for which ready and tested solutions exist. This means working at a higher level, exploiting automation and in this case with Apstra being able to do it transparently with more vendors.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<span lang="EN-GB" style="margin-left: 1em; margin-right: 1em;"></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-GB">Right now, the solution is confined to the datacenter, but I'm curious to discover the evolution and if it will decide to expand further into the enterprise world, how it will address the Campus and Wan themes.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: justify;">
</div>
nicola modenahttp://www.blogger.com/profile/08151880994148540464noreply@blogger.com2tag:blogger.com,1999:blog-8527857152818723984.post-3892116502489842972016-11-07T05:40:00.002+01:002016-11-07T10:05:30.571+01:00evpn control-plane for overlay networks<span style="font-family: "verdana" , sans-serif;"><span class="" id="result_box" lang="en">I had the opportunity to talk about datacenter during <a href="http://www.itnog.it/itnog2/" target="_blank">itnog2</a>. thank you <a href="http://www.itnog.it/itnog2/cfp.html" target="_blank">guys</a>!</span></span><br />
<br />
<span style="font-family: "verdana" , sans-serif;"><span class="" id="result_box" lang="en"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgDwuRzbDWf5E7QQQKuMnCWpw-spN8S6ddtX7otlWMgEmbI9xn56o9HAj6LOGKlgPKjnutciaIHlPNcATX1WhEi6tSPtyb0z7WXA5ZtJIYV5V1OCuoCFZdvIEUesO202Iq8IKDDLjTNtB_/s1600/IMG_4019.jpg" imageanchor="1"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgDwuRzbDWf5E7QQQKuMnCWpw-spN8S6ddtX7otlWMgEmbI9xn56o9HAj6LOGKlgPKjnutciaIHlPNcATX1WhEi6tSPtyb0z7WXA5ZtJIYV5V1OCuoCFZdvIEUesO202Iq8IKDDLjTNtB_/s320/IMG_4019.jpg" width="320" /></a> </span></span><br />
<span style="font-family: "verdana" , sans-serif;"><span class="" id="result_box" lang="en"> </span><span class="" id="result_box" lang="en"></span><span class="" id="result_box" lang="en"> <br />I talked about the use <span class="">EVPN</span> as <span class="">control plane</span> for overlay networks, and <span class="">how to exploit them</span> <span class="">to create</span> distributed <span class="">services</span> between different datacenters.<br />I also mentioned the use of EVPN type-<span class="">5 with</span> proxy-arp to reduce distribution of <span class="">mac-address</span> routes and completely eliminate layer-2, <span class="">while maintaining compatibility</span> with current clustering and HA solutions based on layer-2 but now distribute<span style="font-family: "verdana" , sans-serif;">d in multiple datacenters</span>.</span></span><br />
<br />
<span style="font-family: "verdana" , sans-serif;"><span class="" id="result_box" lang="en"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcn_niwA0AFWVrIhfMTgO8fXCVeK_nbrSpiCZjlsu-bfEjPQNKEq6GQmrLspEzKgQ-jVff04Wn7TUqS_kET4m5RvDclsuxoWwSfwt-Ghnt0ZpSERyFQ-XBOuPPABx8niVW1R9Fv0DXYHeW/s1600/evpn-type-5.png" imageanchor="1"><img border="0" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcn_niwA0AFWVrIhfMTgO8fXCVeK_nbrSpiCZjlsu-bfEjPQNKEq6GQmrLspEzKgQ-jVff04Wn7TUqS_kET4m5RvDclsuxoWwSfwt-Ghnt0ZpSERyFQ-XBOuPPABx8niVW1R9Fv0DXYHeW/s320/evpn-type-5.png" width="320" /></a> </span></span><br />
<span style="font-family: "verdana" , sans-serif;"><span class="" id="result_box" lang="en"></span><span class="" id="result_box" lang="en"><br />this is the <a href="https://github.com/nmodena/blog/blob/master/evpn/ITNOG2-nmodena-vxlan-evpn.pdf" target="_blank">full presentation</a>. <span class=""></span></span></span>nicola modenahttp://www.blogger.com/profile/08151880994148540464noreply@blogger.com2tag:blogger.com,1999:blog-8527857152818723984.post-2257300753464046242012-08-20T13:47:00.000+02:002012-08-22T11:39:02.672+02:00BGP Diverse-Path for a faster convergence<br />
The BGP implementation in Junos is event-driven while in IOS is
timer based and require that the scan process goes trough the BGP
Table and select the best path to put into the RIB. The BGP scan-time
command control this interval, with a default value of 60 sec.<br />
In a large scale bgp scenario where usually route reflectors are
involved, this mean that in the worst case the convergence time can
be up to 120 sec because the route-reflector convergence and bgp
update is required before the client can have a consistent BGP table
and compute the new best path updating the RIB.<br />
This is because Route Reflectors distribute to the clients only
the best path. <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmccLWFUV6Azbmtm-oRyxcU8-TP56dvI3jVJOT7i5NbFYTKwlO4nvJI2xTgYQ9LhYdX43ZL4Zvgjbw6JbEBzeaIQvOnPwfBnNuifdnL232S3PbBKUI6flK6AJFOvtDUVimqtdacYshGODj/s1600/blog_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="174" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmccLWFUV6Azbmtm-oRyxcU8-TP56dvI3jVJOT7i5NbFYTKwlO4nvJI2xTgYQ9LhYdX43ZL4Zvgjbw6JbEBzeaIQvOnPwfBnNuifdnL232S3PbBKUI6flK6AJFOvtDUVimqtdacYshGODj/s320/blog_1.png" width="320" /></a></div>
<br />
In layer-3 MPLS VPN scenario this problem is solved using
different Route-Distinguisher that create not comparable entry on
route reflectors allowing reflection of both routes to all clients.
This action moves the best-path selection process to all clients,
eliminating the intermediate covergence step of route-reflectors.<br />
But how to solve the problem in global routing table ?<br />
Different approach are proposed, and a wonderful discussion can be
reached here:<br />
<br />
<a href="http://blog.ine.com/2010/11/22/understanding-bgp-convergence/">http://blog.ine.com/2010/11/22/understanding-bgp-convergence/</a><br />
<br />
I already use the Add-Path (
<a href="http://tools.ietf.org/html/draft-ietf-idr-add-paths-07">http://tools.ietf.org/html/draft-ietf-idr-add-paths-07</a> ) extension
that permit multiple next-hop for the same prefix, this allows
load-balancing in addition to the fast convergence due to the direct
next-hop tracking, but this approach require the support of this new
bgp capability and usually MPLS encapsulation on the backbone to
prevent ip lookups and possible routing loops on transit nodes.<br />
BGP Diverse-Path (
<a href="http://tools.ietf.org/html/draft-ietf-grow-diverse-bgp-path-dist-08">http://tools.ietf.org/html/draft-ietf-grow-diverse-bgp-path-dist-08</a> )
it's not a new capability, but comes from the knowledge of the
topology and uses existing attributes of a typical RR BGB Cluster.
One cluster member are selected as a "shadow"
route-reflector and instead of reflect the best path ( that is
reflected by the others route reflector in the cluster ) it's
announce the backup path to his clients. It's also important to note
that like all other routers in the backbone, it still install the
best path into it's own RIB for traffic forwarding.<br />
<br />
Now all backbone routers has at least two iBGP peering session to
the RR Cluster, the first to the regular route-reflector and the
other to the shadow RR.<br />
BGP topology on the RR clients now contain the best and the backup
path, allowing a local calculation of the best path. This step
eliminates the need of convergence of the route-reflector, halving
the total convergence time removing the convergence requirement of the route reflector.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNBz2BpmlPhtuT1jqXVwrpFQjnnHRTevwF4CxcByEEPEOrHqybpqNjtspE61LsD7VEwwqDXn5FhpGFHUN2HTTEhca1erQumm7TPyvpYv3cF6XH-OrlTx8AHJCZ9DqC_9fN1GR4f_BLCSNx/s1600/blog_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="177" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNBz2BpmlPhtuT1jqXVwrpFQjnnHRTevwF4CxcByEEPEOrHqybpqNjtspE61LsD7VEwwqDXn5FhpGFHUN2HTTEhca1erQumm7TPyvpYv3cF6XH-OrlTx8AHJCZ9DqC_9fN1GR4f_BLCSNx/s320/blog_2.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: left;">
This behavior it's not new, and in the past was performed with an
IGP metric manipulation on the Shadow route-reflector ( because the
in these cases the tie-break for the best path selection process is
the IGP ) but now on some IOS image there is the support to build in
a simple manner this architecture.</div>
<div style="text-align: left;">
The last step to speed up the convergence process is to eliminate
the scan time and trigger the reconvergence process to the next-hop
availability. This can be performed using the next-hop-tracking
feature that track the IGP for the next-hop reachability and trigger
an immediate reconvergence. In recent IOS version this function is
enabled by default.</div>
<div style="text-align: left;">
Take care that having so different converging time ( from few ms
to 120 sec ) on different part of the backbone can lead to a traffic
loops and high dependence to flapping links. The development of a
fast convergence and high capacity backbone require a careful
analysis of all components ( and the possible involvement of MPLS,
LFA and TE ) and not just enabling some fancy feature.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b>Testing Lab</b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
This is the complete lab scenario to test this capability:</div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwYcaFuqp5iPD7hBnGsxA0N94zXt1rAtXvFmbElrqLksNsqX0ulFFKxJdez14MEbURMLwgwjJF93HwPLx3EQprgVeLMO9GaBpVL9YGQDkuhHAWBg2Cc6UXuS-sAB8Yh7GpKHSNcNsHLNLI/s1600/blog_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwYcaFuqp5iPD7hBnGsxA0N94zXt1rAtXvFmbElrqLksNsqX0ulFFKxJdez14MEbURMLwgwjJF93HwPLx3EQprgVeLMO9GaBpVL9YGQDkuhHAWBg2Cc6UXuS-sAB8Yh7GpKHSNcNsHLNLI/s1600/blog_3.png" /></a></div>
<div style="text-align: left;">
</div>
Into the lab only IPv6 addresses form the ULA ( Unique Local
Address ) address Range are used: only one single level-2 ISIS area
with all the point-to-point internal lefts to the automatic
link-local addresses. Loopback are numbered as /128 ipv6 address and
an aggregate prefix is generated on the peering point.<br />
The complete addressing and IGP configuration of R2 looks like:<br />
<br />
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">interface
Loopback0</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">no
ip address</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">ipv6
address FD00::2/128</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">interface
FastEthernet0/0</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">no
ip address</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">interface
FastEthernet0/0.201</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">description
---- to R1 ----</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">encapsulation
dot1Q 102</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">ipv6
enable</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">ipv6
router isis
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">isis
network point-to-point
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">interface
FastEthernet0/0.203</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">description
---- to R3 ----</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">encapsulation
dot1Q 203</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">ipv6
enable</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">ipv6
router isis
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">isis
network point-to-point
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">interface
FastEthernet0/0.205</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">description
---- to R5 - ASN2 ----</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">encapsulation
dot1Q 205</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">ipv6
address FD00:25::2/64</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">router
isis</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">net
49.0000.0000.0002.00</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">is-type
level-2-only</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">metric-style
wide</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">no
hello padding</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">passive-interface
Loopback0</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!</span></div>
<br />
<br />
R1 is chosen as the shadow route reflectors.<br />
To configure the BGP Diverse Path on the shadow router 4 steps are
required:<br />
<br />
<br />
<b>1) Disable the IGP bestpath igp-metric tie-break ( optional and
topology depended )</b><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> bgp bestpath igp-metric ignore</span><br />
<b>2) Allow the identification of the backup path</b><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> bgp additional-paths select backup</span><br />
<b>3) Permit the backup path announcement</b><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> bgp additional-paths send</span><br />
<b>4) select the route-reflection clients enabled for the update (
the Clients peer-group )</b><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> neighbor Clients advertise diverse-path backup</span><br />
<br />
<br />
The complete BGP configuration of the shadow RR ( R1 )<br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br />
</span><br />
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">router
bgp 1</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">bgp
router-id 100.0.0.1</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">bgp
cluster-id 1</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">bgp
log-neighbor-changes</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">no
bgp default ipv4-unicast</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">neighbor
Clients peer-group</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">neighbor
Clients remote-as 1</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">neighbor
Clients update-source Loopback0</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">neighbor
FD00::2 peer-group Clients</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">neighbor
FD00::3 peer-group Clients</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">neighbor
FD00::4 peer-group Clients</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">address-family
ipv4</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">exit-address-family</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">address-family
ipv6</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="color: red; font-family: Verdana, sans-serif; font-size: x-small;">bgp
additional-paths select backup</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="color: red; font-family: Verdana, sans-serif; font-size: x-small;">bgp
additional-paths send</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="color: red; font-family: Verdana, sans-serif; font-size: x-small;">bgp
bestpath igp-metric ignore</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">neighbor
Clients route-reflector-client</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="color: red; font-family: Verdana, sans-serif; font-size: x-small;">neighbor
Clients advertise diverse-path backup</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">neighbor
FD00::2 activate</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">neighbor
FD00::3 activate</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">neighbor
FD00::4 activate</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">exit-address-family</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!</span></div>
<br />
<br />
check the BGP status:<br />
<br />
<br />
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">R1#<b>sh
bgp all summary </b>
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">...</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Neighbor
V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down
State/PfxRcd</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">FD00::2
4 1 20 24 5 0 0 00:14:47
1</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">FD00::3
4 1 22 28 5 0 0 00:18:56
0</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">FD00::4
4 1 24 27 5 0 0 00:18:55
2</span></div>
<br />
<br />
The bgp table identify the best path for for "FD00:5::/64"
trough R2 ( and install into the RIB ) and the possible "backup-path"
trough R4:<br />
<br />
<br />
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">R1#<b>sh
bgp ipv6 unicast </b>
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">BGP
table version is 5, local router ID is 100.0.0.1</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Status
codes: s suppressed, d damped, h history, * valid, > best, i -
internal,
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">r
RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">x
best-external, a additional-path, c RIB-compressed,
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Origin
codes: i - IGP, e - EGP, ? - incomplete</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">RPKI
validation codes: V valid, I invalid, N Not found</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br />
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Network
Next Hop Metric LocPrf Weight Path</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">*>i
FD00::/64 FD00::4 0 100 0 i</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">*>i
FD00:5::/64 FD00::2 0 100 0 2 i</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="color: red; font-family: Courier New, Courier, monospace; font-size: x-small;">*bi
FD00::4 0 100 0 2 i</span></div>
<br />
<br />
This backup path is now sent to R3:<br />
<br />
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">R1#<b>sh
bgp ipv6 unicast neighbors FD00::3 advertised-routes </b>
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">BGP
table version is 5, local router ID is 100.0.0.1</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Status
codes: s suppressed, d damped, h history, * valid, > best, i -
internal,
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">r
RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">x
best-external, a additional-path, c RIB-compressed,
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Origin
codes: i - IGP, e - EGP, ? - incomplete</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">RPKI
validation codes: V valid, I invalid, N Not found</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br />
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Network
Next Hop Metric LocPrf Weight Path</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">*>i
FD00::/64 FD00::4 0 100 0 i</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">*biaFD00:5::/64
FD00::4 0 100 0 2 i</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br />
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Total
number of prefixes 2</span></div>
<br />
<br />
on R3 the nexthop trigger is enabled with a timeout of 1 sec for
the IPv6 address-family<br />
<br />
<br />
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">router
bgp 1</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">bgp
router-id 100.0.0.3</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">no
bgp default ipv4-unicast</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">bgp
log-neighbor-changes</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">neighbor
FD00::1 remote-as 1</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">neighbor
FD00::1 update-source Loopback0</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">neighbor
FD00::2 remote-as 1</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">neighbor
FD00::2 update-source Loopback0</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">address-family
ipv6</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="color: red; font-family: Verdana, sans-serif; font-size: x-small;">bgp
nextop trigger enable</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="color: red; font-family: Verdana, sans-serif; font-size: x-small;">bgp
nextop trigger delay 1</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">neighbor
FD00::1 activate</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">neighbor
FD00::1 activate</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">neighbor
FD00::1 activate</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">exit-address-family</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!</span></div>
<br />
<br />
on R3 two exit point for FD00:5::/64 are now present, and the best
path still select R2 as the primary, but the backup path is already present in the BGP table<br />
<br />
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">R3#<b>sh
bgp ipv6 unicast </b>
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">BGP
table version is 8, local router ID is 100.0.0.3</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Status
codes: s suppressed, d damped, h history, * valid, > best, i -
internal,</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">r
RIB-failure, S Stale</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Origin
codes: i - IGP, e - EGP, ? - incomplete</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br />
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Network
Next Hop Metric LocPrf Weight Path</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">*
iFD00::/64 FD00::4 0 100 0 i</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">*>i
FD00::4 0 100 0 i</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">*>iFD00:5::/64
FD00::2 0 100 0 2 i</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">*
i FD00::4 0 100 0 2 i</span></div>
<br />
<br />
A traceroute confirm the complete path correctness:<br />
<br />
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">R3#<b>traceroute
ipv6 fd00:5::5</b></span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br />
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Type
escape sequence to abort.</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Tracing
the route to FD00:5::5</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br />
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">1
FD00::2 12 msec 8 msec 8 msec</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">2
FD00:5::5 24 msec 84 msec 84 msec</span></div>
<br />
<br />
As a simple test, during a continuous ping to R5 from R3, the R2
loopback was forced down, triggering the backup path selection
without any packet loss.<br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span>
<br />
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">R3#<b>ping
fd00:5::5 repeat 1000</b></span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br />
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Type
escape sequence to abort.</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Sending
10000, 100-byte ICMP Echos to FD00:5::5, timeout is 2 seconds:</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br />
</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">*Mar
1 01:00:05.675: %BGP-3-NOTIFICATION: received from neighbor FD00::2
4/0 (hold time expired) 0 bytes</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">*Mar
1 01:00:05.675: %BGP-5-ADJCHANGE: neighbor FD00::2 Down BGP
Notification received</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span></div>
<div align="LEFT" style="background-position: initial initial; background-repeat: initial initial; border-left-color: rgb(192, 192, 192); border-left-width: 1px; border-right-color: rgb(192, 192, 192); border-right-width: 1px; border-style: none solid; margin-bottom: 0cm; padding: 0cm 0.05cm 0cm 0.25cm;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span></div>
<br />
<br />
<br />
<b>Conclusion</b><br />
<br />
Whit this solution the convergence time of bgp is now comparable to the IGP also with route reflectors.<br />
BGP add-path is obviously the more powerful options but require the specific capability in most of the BGP speaker, and then recommended for new solutions, while diverse-path can help to improve the global convergent time without requiring any new capability on legacy device. MPLS is not always required for both solutions, but take my advice and adopt it always.<br />
<br />
<b>Feature availability:</b><br />
<br />
This feature is primary available in IOS XR and recently
implemented in IOS 15.2(3)T and 15.2(4)S<br />
<br />
The complete lab configuration are <a href="http://modena.to/blog/diverse_path.zip">here</a><br />
<br />nicola modenahttp://www.blogger.com/profile/08151880994148540464noreply@blogger.com1tag:blogger.com,1999:blog-8527857152818723984.post-53037100091259976062010-11-21T22:22:00.001+01:002010-11-21T22:23:58.045+01:00talking about CCIEI recently talk about my experience in becoming CCIE Certified.<br />
This was a good opportunity to share experience and meet old and new friends.<br />
A shot for my presentation:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSLxrBnlsrNhFrwOaAwdX58BGHp4Sm_dKQHD5iSgL1q9BSkDJXdY9MRb_gqfHtJ-jkrPFNxrpoYWqY8IZbI-1uBnqj2dsLnnALYHG8HwEZOSvN1MwawK58l1HUFWuTJUqTq7fuiwxmbzlO/s1600/IMGP4237-300x199.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSLxrBnlsrNhFrwOaAwdX58BGHp4Sm_dKQHD5iSgL1q9BSkDJXdY9MRb_gqfHtJ-jkrPFNxrpoYWqY8IZbI-1uBnqj2dsLnnALYHG8HwEZOSvN1MwawK58l1HUFWuTJUqTq7fuiwxmbzlO/s1600/IMGP4237-300x199.jpg" /></a></div>The link official url for the <a href="http://www.areanetworking.it/resoconto-sullevento-cisco-ccie-dinner.html">event</a> and my <a href="http://www.areanetworking.it/wp-content/uploads/2010/10/Slide-CCIE-Dinner-Nicola-Modena.pdf">presentation</a> ( in italian )nicola modenahttp://www.blogger.com/profile/08151880994148540464noreply@blogger.com0tag:blogger.com,1999:blog-8527857152818723984.post-41968998261757287462010-02-01T22:15:00.015+01:002010-02-05T09:38:09.200+01:006VPE - ipv6 mpls VPN between cisco e junosThe spread of IPv6 in our networks is slow, but to refresh my IPv6 knowledge and use the LSPs configured in the previous post, I decided to configure an IPv6 mpls VPN between two sites.<br />
This solution is called 6VPE and introduced on IOS a new configuration syntax for VRF.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSd20WgbNUZc76jtOEqfI83U3SyfaYvp5KXx58zCy8ielEGTmvuwORzy1oV_fWplSbd_3nZmpPfPimiWauS27EbJrCAo-DBzvFtBNMGmMeUBDH_yQxHWx6OA5CiAGdSaaxwJDGhsZJkjU4/s1600-h/6vpe-blog_modena_to.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSd20WgbNUZc76jtOEqfI83U3SyfaYvp5KXx58zCy8ielEGTmvuwORzy1oV_fWplSbd_3nZmpPfPimiWauS27EbJrCAo-DBzvFtBNMGmMeUBDH_yQxHWx6OA5CiAGdSaaxwJDGhsZJkjU4/s400/6vpe-blog_modena_to.png" width="400" /></a></div><br />
<br />
<br />
<b>Building the control plane</b><br />
<br />
The operations are very similar to a IPv4 MPLS VPN: vpn prefix and label are signaled by mBGP while, LDP and/or RSVP ensure the label signaling necessary to forward MPLS packet throught the backbone.<br />
<br />
The lab uses a virtual CE, realized exclusively with a loopback within each of the two PE involved. It thus avoids the entire PE-CE configuration as the purpose of the lab is to exercise on the MPLS component.<br />
<br />
<b>Peering mBGP</b><br />
<br />
As vpnv6 signaling uses mBGP, we need to configure an iBGP peering between the two PE. The configuration proposed is minimal, and allows only the signaling of the vpnv6 AF (Address Family).<br />
<br />
<b>J2 Juniper PE</b><br />
<br />
The BGP configuration necessarily require the use of a group (equivalent to a cisco peer-group) and the explicit peering type identification (internal vs. external). As previously mentioned only AF inet6-vpn unicast is enabled:<br />
<blockquote><pre>protocols {
bgp {
group iBGP {
type internal;
family inet6-vpn {
unicast;
}
neighbor 10.0.9.6 {
local-address 10.0.6.2;
}
}
}
}
routing-options {
autonomous-system 1;
}</pre></blockquote>In junos it is also mandatory to explicity enable the transport of IPv6 traffic over MPLS<br />
<blockquote><pre>[edit logical-systems J2]
nick@zion#<b> show protocols | find mpls</b>
mpls {
<b>ipv6-tunneling;</b> /* enable ipv6 transport */
label-switched-path J2-to-R6 {
to 10.0.9.6;
}
}
</pre></blockquote><br />
<b>R6 PE Cisco</b><br />
<br />
The IOS PE requires a global enable for ipv6 ed ipv6 cef. In the BGP part is avoided the exchange of IPv4 prefixes while vpnv6 peering with a complete community exchange is enabled for J2.<br />
<blockquote><pre>!
ipv6 unicast-routing
ipv6 cef
!
router bgp 1
no bgp default ipv4-unicast
neighbor 10.0.6.2 remote-as 1
neighbor 10.0.6.2 update-source Loopback0
!
address-family vpnv6
neighbor 10.0.6.2 activate
neighbor 10.0.6.2 send-community both
exit-address-family
!
!
</pre></blockquote><br />
<b>BGP session</b><br />
<br />
It is always interesting to have a look at the communication capability negotiated BGP: The Open messages include the Multiprotocol Extension AFI (2) and SAFI (120) as indicated in the RFC:<br />
<br />
Multiprotocol Extensions for BGP-4 <a href="http://www.ietf.org/rfc/rfc2858.txt">rfc2858</a><br />
Carrying Label Information in BGP-4 <a href="http://tools.ietf.org/html/rfc3107">rfc3107</a><br />
And as assigned by the IANA <a href="http://www.iana.org/assignments/safi-namespace">safi-namespace</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnLlrGRVjWCjtdj06fe7ImnPHl9ZS9kX8B32SIssGyzTRdfwOWBwZJWXI7ooDGG229Rc7QLHzW08oTR0PncHWAPEmC_Trlrnd-qPdNM2SQvT10hyphenhypheno3-iL_Zl7G4-nu8Md_5Fo5Ee7OLyyA/s1600-h/mBGP_6vpe.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="326" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnLlrGRVjWCjtdj06fe7ImnPHl9ZS9kX8B32SIssGyzTRdfwOWBwZJWXI7ooDGG229Rc7QLHzW08oTR0PncHWAPEmC_Trlrnd-qPdNM2SQvT10hyphenhypheno3-iL_Zl7G4-nu8Md_5Fo5Ee7OLyyA/s400/mBGP_6vpe.png" width="400" /></a></div><br />
<br />
The complete capture of BGP communication is <a href="http://www.modena.to/blog/mBGP_6vpe.pcap">here</a><br />
<br />
<b>VRF Configurations on Junos</b><br />
<br />
Until now we have used the logical system of Junos isolating in its own stanza all the configuration statements for the virtual router realized. <br />
The configuration of VRF rather intersects with the main routing instance ( or logical system ) which ensures the communication. The VRF is a particular routing-instance type in which the routing features are configured and the interfaced assigned, however the complete interface configuration remain global.<br />
<br />
On J2 the IPv6 address fec0:cc1e:1::1/128 is configured on the new lo0 unit 102.<br />
<br />
<blockquote><br />
set logical-systems J2 interfaces lo0 unit 102 family inet6 address fec0:cc1e:1::1/128 <br />
<br />
</blockquote><br />
then the "red" VRF routing instance is created, with route distinguisher assigned as the 2:2 route-target and 100:100.<br />
<blockquote><br />
set logical-systems J2 routing-instances red instance-type vrf <br />
set logical-systems J2 routing-instances red route-distinguisher 2:2 <br />
set logical-systems J2 routing-instances red vrf-target target:100:100<br />
<br />
</blockquote><br />
Finally the newly configured unit 102 of the lo0 interface is associated with the routing-instance<br />
<blockquote><br />
set logical-systems J2 routing-instances red interface lo0.102<br />
<br />
</blockquote><br />
For those used to work with IOS there is no requirement to explicit configure the "redistribute connected" required to put the prefix in the mBGP table, all the prefix of the routing instance are automatically exported in mBGP.<br />
<br />
this is the complete configuration in the usual form:<br />
<blockquote><pre>[edit logical-systems J2]
nick@zion#<b> show interfaces lo0</b>
unit 2 {
family inet {
address 10.0.6.2/32;
}
family iso {
address 49.0000.0000.0002.00;
}
}
<b>unit 102 {
family inet6 {
address fec0:cc1e:1::1/128;
}
}</b>
[edit logical-systems J2]
nick@zion#<b> show | find routing-instance </b>
routing-instances {
red {
instance-type vrf;
interface lo0.102;
route-distinguisher 2:2;
vrf-target target:100:100;
vrf-table-label;
}
}</pre></blockquote><br />
The "vrf-table-label" is not required in this case, but serves to ensure the operation of MPLS VPN in Olive, where the forwarding is not PFE assisted.<br />
<br />
<b>VRF Definition on IOS</b><br />
<br />
The 6VPE feature introduce a new configuration syntax and keywords with address-family, in this case RD 1:1 is used, while it is necessary to enable the redistribution of connected routes in the BGP process:<br />
<br />
<blockquote><pre>R6#<b>sh run vrf red</b>
Building configuration...
Current configuration : 354 bytes
!
vrf definition red
rd 1:1
!
address-family ipv6
route-target export 100:100
route-target import 100:100
exit-address-family
!
!
router bgp 1
!
address-family ipv6 vrf red
redistribute connected metric 1
no synchronization
exit-address-family
!
interface Loopback106
vrf forwarding red
no ip address
ipv6 address FEC0:CC1E:6::6/128
end
</pre></blockquote><br />
<b>Check if everything works as expected</b><br />
<br />
In Junos the routing-instance routing table, are prefixed with the istance name, then the remote prefix fec0:cc1e:6::6/128 are installed in the table named “red.inet6.0”<br />
<br />
With a single command I can get all necessary label details:<br />
<br />
Top Label = 16 - first hop Transport allocated with RSVP <br />
Inner Label = 32 - VPN Label allocated by mBGP <br />
<br />
<blockquote>nick@zion><b> show route logical-system J2 protocol bgp table red.inet6.0 detail</b> <br />
<br />
red.inet6.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)<br />
fec0:cc1e:6::6/128 (1 entry, 1 announced)<br />
*BGP Preference: 170/-101<br />
Route Distinguisher: 1:1<br />
Next hop type: Indirect<br />
Next-hop reference count: 3<br />
Source: 10.0.9.6<br />
Next hop type: Router, Next hop index: 885<br />
Next hop: 10.0.4.9 via fxp2.204 weight 0x1, selected<br />
<b>Label-switched-path J2-to-R6<br />
Label operation: Push 32, Push 16(top)<br />
Protocol next hop: ::ffff:10.0.9.6<br />
Push 32</b><br />
Indirect next hop: 8d98330 131070<br />
State: <secondary active="" ext="" int=""><br />
Local AS: 1 Peer AS: 1<br />
Age: 27:26 Metric: 1 Metric2: 30 <br />
Task: BGP_1.10.0.9.6+20615<br />
Announcement bits (1): 0-KRT <br />
AS path: ?<br />
<b>Communities: target:100:100<br />
Import Accepted<br />
VPN Label: 32</b><br />
Localpref: 100<br />
Router ID: 10.0.9.6<br />
Primary Routing Table bgp.l3vpn-inet6.0<br />
</secondary></blockquote><br />
On the IOS side it is necessary to use multiple commands to collect all the label information, sometimes with misleading results... however this is mainly due to the fact that we only use RSVP and the usually Cisco proposed solutions involve LDP:<br />
<br />
<blockquote>R6#<b>sh bgp vpnv6 unicast vrf red FEC0:CC1E:1::1/128</b> <br />
BGP routing table entry for [1:1]FEC0:CC1E:1::1/128, version 11 <br />
Paths: (1 available, best #1, table red) <br />
Not advertised to any peer <br />
Local, imported path from [2:2]FEC0:CC1E:1::1/128 <br />
::FFFF:10.0.6.2 (metric 30) from 10.0.6.2 (10.0.6.2) <br />
Origin IGP, localpref 100, valid, internal, best <br />
Extended Community: RT:100:100 <br />
mpls labels in/out nolabel/16 <br />
<br />
R6#<b>sh ipv6 cef vrf red FEC0:CC1E:1::1/128 detail</b> <br />
FEC0:CC1E:1::1/128, epoch 0<br />
recursive via 10.0.6.2 label 16<br />
nexthop 10.0.6.2 Tunnel0<br />
<br />
R6#<b>sh mpls traffic-eng tunnels tunnel 0 | i Label</b> <br />
InLabel : - <br />
OutLabel : FastEthernet0/0, 299776</blockquote><br />
<b>The powerful cef “hidden” IOS command</b><br />
<br />
In IOS there is a hidden IOS command <b>“show ipv6 cef internal”</b> used to show a set information very useful for troubleshooting and to understand the solution mechanisms.<br />
<br />
<blockquote>R6#<b>show ipv6 cef vrf red internal | b FEC0:CC1E:1::1/128 </b><br />
FEC0:CC1E:1::1/128, epoch 0, RIB[B], refcount 3, per-destination sharing <br />
sources: RIB <br />
feature space: <br />
LFD: FEC0:CC1E:1::1/128 0 local labels <br />
contains path extension list <br />
label switch chain 0x66BA9888 <br />
IPRM: 0x00018000 <br />
ifnums: (none) <br />
path 659EAE98, path list 659E05F0, share 1/1, type recursive, for IPv6, flags must-be-labelled <br />
MPLS short path extensions: MOI flags = 0x4 label 16 <br />
recursive via 10.0.6.2[IPv4:Default] label 16, fib 65A2F590, 1 terminal fib <br />
path 659EAF0C, path list 659E063C, share 1/1, type attached nexthop, for IPv4 <br />
MPLS short path extensions: MOI flags = 0x1 label implicit-null <br />
nexthop 10.0.6.2 Tunnel0, adjacency IP midchain out of Tunnel0 65EF2C60 <br />
<b>output chain: label 16 label implicit-null TAG midchain out of Tunnel0 65EF2AE0 label 299792 TAG adj out of FastEthernet0/0, addr 10.0.8.6 65EF2DE0 </b></blockquote><br />
<b>IPv4 to IPv6 Mappeed address</b><br />
<br />
In the both cases there is a odd NEXT-HOP address indicated as ::FFFF:10.0.6.2 or ::FFFF:10.0.9.6. This is due to fact that the next-hop address required in the AFI/SAFI ipv6 is still an ipv6 address. In our case this is an IPv4 address ( the PE Loopback ) and this is replaced with IPv4 mapped IPv6 addess.<br />
<br />
<b>And in the end the ping...</b><br />
This waste of energy to run a ping ... hope at least it works:<br />
<blockquote>nick@zion><b> ping logical-system J2 routing-instance red fec0:cc1e:6::6 </b><br />
PING6(56=40+8+8 bytes) fec0:cc1e:1::1 --> fec0:cc1e:6::6<br />
16 bytes from fec0:cc1e:6::6, icmp_seq=0 hlim=64 time=16.438 ms<br />
16 bytes from fec0:cc1e:6::6, icmp_seq=1 hlim=64 time=17.256 ms<br />
16 bytes from fec0:cc1e:6::6, icmp_seq=2 hlim=64 time=11.247 ms<br />
16 bytes from fec0:cc1e:6::6, icmp_seq=3 hlim=64 time=11.361 ms<br />
^C<br />
--- fec0:cc1e:6::6 ping6 statistics ---<br />
4 packets transmitted, 4 packets received, 0% packet loss<br />
round-trip min/avg/max/std-dev = 11.247/14.076/17.256/2.787 ms</blockquote>on the cisco side:<br />
<blockquote>R6#<b>ping vrf red ipv6 fec0:cc1e:1::1</b><br />
<br />
Type escape sequence to abort.<br />
Sending 5, 100-byte ICMP Echos to FEC0:CC1E:1::1, timeout is 2 seconds:<br />
!!!!!<br />
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/12/20 ms<br />
R6#</blockquote><br />
<b>Conclusions</b><br />
<b><br />
</b><br />
MPLS and BGP are confirmed two key tools in providing simple and efficient solutions, allowing the transport of any type of traffic without changes to the backbone infrastructure.<br />
<br />
BGP session capture <a href="http://www.modena.to/blog/mBGP_6vpe.pcap">here</a><br />
Final Juniper configuration <a href="http://www.modena.to/blog/jncip_6vpe_post4.confg">here</a><br />
Final R4 configuration <a href="http://www.modena.to/blog/R4_post4.confg">here</a><br />
Final R6 Configuration <a href="http://www.modena.to/blog/R6_post4.confg">here</a>nicola modenahttp://www.blogger.com/profile/08151880994148540464noreply@blogger.com0tag:blogger.com,1999:blog-8527857152818723984.post-53802453582592723992010-01-05T16:35:00.003+01:002010-01-29T10:28:30.165+01:00IS-IS and MPLS Integration between Junos and IOS devicesIn recent years I have concentrated work and study on Cisco's MPLS platform, but wanting to deepen my knowledge of Junos and test the interoperability between the two platforms, I decided to incorporate a couple of Cisco routers in my lab. I replaced J4 and J6 with two Cisco 7200 routers running IOS version 12.2 SRC.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1L4EDJuUpc8fWiU0DqeNSgfGesnyZ3nLxTlY7waM4wGTOj0hLdm02WFyK2optrydcEw_0mLWabvNa1GjWuJX2witj6EfwoSxzfgD4Q0kr10tn5t_ARiafcVsmLPN5bRgrQMuooflP_-kL/s1600-h/jncip_lab_with_cisco.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1L4EDJuUpc8fWiU0DqeNSgfGesnyZ3nLxTlY7waM4wGTOj0hLdm02WFyK2optrydcEw_0mLWabvNa1GjWuJX2witj6EfwoSxzfgD4Q0kr10tn5t_ARiafcVsmLPN5bRgrQMuooflP_-kL/s400/jncip_lab_with_cisco.png" /></a></div><br />
<br />
It's necessary to configure ISIS, forming adjacency, enable the carrying of Traffic Engineering extensions, enable RSVP and LSP signaling ( which in Cisco terminology are often called Traffic Engineering Tunnel ) and finally to enable the forwarding of MPLS Labeled packets.<br />
<br />
Starting from my topology JNCIP delete on my Olive router "Zion" the two logical-system J4 and J6:<br />
<blockquote><pre>[edit]
nick@zion# delete logical-systems J4
[edit]
nick@zion# delete logical-systems J6
</pre></blockquote>and proceed with the configuration of two new Cisco router:<br />
<br />
<b>R4: IP address and IS-IS Routing</b><br />
<br />
The IS-IS configuration is very simple, enable ISIS on the interfaces and set as a point-to-point link, (to avoid DIS election, speed-up and reduce the database).<br />
In the IS-IS process specified the System ID ( "net" entry) define this as an only level-2 router and use the "wide style" mandatory metrics for the TE operation, and finally declare the loopback as passive to include in the topology.<br />
<blockquote><pre>interface Loopback0
ip address 10.0.3.4 255.255.255.255
!
interface FastEthernet0/0
ip address 10.0.4.9 255.255.255.252
ip router isis
isis network point-to-point
!
interface FastEthernet0/1
ip address 10.0.2.6 255.255.255.252
ip router isis
isis network point-to-point
!
interface FastEthernet1/0
ip address 10.0.2.10 255.255.255.252
ip router isis
isis network point-to-point
!
router isis
net 49.0000.0000.0004.00
is-type level-2-only
metric-style wide
passive-interface Loopback0
!
</pre></blockquote>but the adjacencies never come up, remaining in the INIT state:<br />
<blockquote><pre>R4#<b>sh clns neighbors</b>
System Id Interface SNPA State Holdtime Type Protocol
0000.0000.0002 Fa0/0 0050.8be3.eb2c Init 24 L2 IS-IS
0000.0000.0003 Fa0/1 0050.8be3.eb2d Init 23 L2 IS-IS
0000.0000.0005 Fa1/0 0050.8be3.eb2c Init 20 L2 IS-IS
</pre></blockquote>there is a MTU mistmatch, the Zion interface has and CLNS (ISO) MTU of 1493:<br />
<blockquote><pre>nick@zion><b> show interfaces fxp2.204</b>
Logical interface fxp2.204 (Index 82) (SNMP ifIndex 143)
Description: ------- link ptp J2 <-> J4 --
Flags: SNMP-Traps VLAN-Tag [ 0x8100.204 ] Encapsulation: ENET2
Bandwidth: 0
Input packets : 6673
Output packets: 6931
Protocol inet, MTU: 1496
Flags: None
Addresses, Flags: Is-Preferred Is-Primary
Destination: 10.0.4.8/30, Local: 10.0.4.10, Broadcast: 10.0.4.11
<b>Protocol iso, MTU: 1493 </b>
Flags: None
Protocol mpls, MTU: 1484
Flags: None
</pre></blockquote>This is because Zion interfaces are using 802.1q and Olive uses a fixed MTU of 1500 bytes on <i><b>FXP</b></i> interfaces, reducing the effective packet length of 4 bytes, while Cisco routers are connected to in access-mode to the switch...<br />
The absence of adjacency depend on hello messages padding introduced for early detection of MTU problems.<br />
The solution proposed is to reduce MTU just for the CLNS packet on the cisco side ( my hardware does not support changing interface MTU )<br />
<blockquote><pre>R4#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R4(config)#int fast 0/0
R4(config-if)#clns mtu 1493
R4(config-if)#int fast 0/1
R4(config-if)#clns mtu 1493
R4(config-if)#int fast 1/0
R4(config-if)#clns mtu 1493
R4(config-if)#^Z
</pre></blockquote>alternatively you can use the command "<a href="http://www.cisco.com/en/US/docs/ios/iproute/command/reference/irp_is1.html#wp1012099">no hello padding</a>" and all its variants <br />
<br />
for example:<br />
<blockquote><pre>R4(config)#router isis
R4(config-router)#no hello padding point-to-point
</pre></blockquote>adjacency is now established and the database is populated ...<br />
<blockquote><pre>R4#<b>sh clns neighbors</b>
System Id Interface SNPA State Holdtime Type Protocol
zion-J2 Fa0/0 0050.8be3.eb2c Up 25 L2 IS-IS
zion-J3 Fa0/1 0050.8be3.eb2d Up 22 L2 IS-IS
zion-J5 Fa1/0 0050.8be3.eb2c Up 20 L2 IS-IS </pre></blockquote><blockquote><pre>R4#<b>sh ip route isis | B ^Ga</b>
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 22 subnets, 3 masks
i L2 10.0.2.0/30 [115/20] via 10.0.2.9, FastEthernet1/0
[115/20] via 10.0.2.5, FastEthernet0/1
i L2 10.0.3.3/32 [115/10] via 10.0.2.5, FastEthernet0/1
...
</pre></blockquote><b>R4 : MPLS and IS-IS TE Database integration </b><br />
<br />
you must also enable the extensions required by <a href="http://www.ietf.org/rfc/rfc3784.txt">RFC3784</a> necessary for TE information exchange, to control band allocation and label signaling via RSVP and finally the process of MPLS labeled packet:<br />
<br />
globally enable LSP allocation<br />
<blockquote><pre>mpls traffic-eng tunnels
</pre></blockquote>enable on all PE facing interface RSVP and MPLS packet processing like:<br />
<blockquote><pre>interface FastEthernet0/0
ip rsvp bandwidth
mpls traffic-eng tunnels
</pre></blockquote>estabilish the router-id ( TLV 134 ) and allow the necessary TE TLV exchange on all Level-2 adjacencies<br />
<blockquote><pre>router isis
mpls traffic-eng router-id Loopback0
mpls traffic-eng level-2
</pre></blockquote><br />
this is the complete R4 configuration:<br />
<blockquote><pre>!
hostname R4
!
mpls traffic-eng tunnels
!
interface Loopback0
ip address 10.0.3.4 255.255.255.255
!
interface FastEthernet0/0
ip address 10.0.4.9 255.255.255.252
ip router isis
mpls traffic-eng tunnels
clns mtu 1493
isis network point-to-point
ip rsvp bandwidth
!
interface FastEthernet0/1
ip address 10.0.2.6 255.255.255.252
ip router isis
mpls traffic-eng tunnels
clns mtu 1493
isis network point-to-point
ip rsvp bandwidth
!
interface FastEthernet1/0
ip address 10.0.2.10 255.255.255.252
ip router isis
mpls traffic-eng tunnels
clns mtu 1493
isis network point-to-point
ip rsvp bandwidth
!
router isis
net 49.0000.0000.0004.00
is-type level-2-only
metric-style wide
passive-interface Loopback0
mpls traffic-eng router-id Loopback0
mpls traffic-eng level-2
!
</pre></blockquote>the R6 configuration is similar and available at the end of this post.<br />
<br />
<b>LSP Setup</b><br />
<br />
To verify the effective integration of the two platforms, let's configure two LSP (or TE Tunnels ), one from J2 to R6 and the simmetric from R6 to J2, reminding us that LSPs are always unidirectional.<br />
We will not use any constraint, and hence the LSP will be allocated according to the best IGP metric the result should be:<br />
LSP1 : J2 → R4 → R6 → J4 <br />
LSP2 : J5 → R4 → R6 → J2<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4WyuAdMnxguBwFgOAbFTUrqjHvApHXA8scM3O-Gdc2suMj3eQMB7JLWdT-vDVICmIvRfloOlhMfPmeNfsr0368lttDd0lILP2IodDlaj8quUMP5WNw1PVgDdjIcvCxyOJMy37y5i6RhhC/s1600-h/basic_lsp_trought_cisco.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4WyuAdMnxguBwFgOAbFTUrqjHvApHXA8scM3O-Gdc2suMj3eQMB7JLWdT-vDVICmIvRfloOlhMfPmeNfsr0368lttDd0lILP2IodDlaj8quUMP5WNw1PVgDdjIcvCxyOJMy37y5i6RhhC/s400/basic_lsp_trought_cisco.png" /></a></div><br />
<br />
The J2 configuration is simple:<br />
<blockquote><pre>protocols {
mpls {
label-switched-path J2-to-R6 {
to 10.0.9.6;
}
}
</pre></blockquote>This command requires an LSP to the address 10.0.9.6, resources allocation and Label signaling. If the entire process is successful, it immediately create an entry for the destination address in the inet.3 table, usually used to resolve the BGP next-hop, and that has precedence over the inet.0:<br />
<br />
the LSP is active:<br />
<blockquote><pre>nick@zion><b> show mpls lsp ingress logical-system J2</b>
Ingress LSP: 1 sessions
To From State Rt P ActivePath LSPname
10.0.9.6 10.0.6.2 <b>Up</b> 0 * J2-to-R6
Total 1 displayed, Up 1, Down 0
</pre></blockquote>the destination is installed in inet.3<br />
<blockquote><pre>nick@zion><b> show route 10.0.9.6 logical-system J2</b>
<b>inet.0</b>: 21 destinations, 21 routes (21 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
10.0.9.6/32 *[IS-IS/18] 00:51:24, metric 30
> to 10.0.4.1 via fxp2.203
to 10.0.4.9 via fxp2.204
<b>inet.3</b>: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
10.0.9.6/32 *[RSVP/7] 00:49:32, metric 30
> to 10.0.4.9 via fxp2.204, <b>label-switched-path J2-to-R6</b>
</pre></blockquote>The label allocated and signaled by R4 for this LSP is 16, the first label non-reserved<br />
<blockquote><pre>nick@zion><b> show route 10.0.9.6 logical-system J2 table inet.3 extensive | match Label</b>
Label-switched-path J2-to-R6
Label operation: <b>Push 16</b>
</pre></blockquote>The minimum configuration of R6 is:<br />
<blockquote><pre>interface Tunnel0
ip unnumbered Loopback0
tunnel destination 10.0.6.2
tunnel mode mpls traffic-eng
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng path-option 10 dynamic
!
</pre></blockquote>in IOS LSP is usually called “TE Tunnel” and configured as a tunnel interface: some notes about the configuration:<br />
in this type of tunnel there is no “tunnel source”<br />
“autoroute announce” install in the routing table the destination through the tunnel<br />
“path-option 10 dynamic” use just the IGP metric without costrain<br />
<blockquote><pre>R6#<b>sh mpls traffic-eng tunnels brief | b ^TU</b>
TUNNEL NAME DESTINATION UP IF DOWN IF STATE/PROT
R6_t0 10.0.6.2 - Fa0/0 up/up
J2-to-R6 10.0.9.6 Fa0/0 - up/up
Displayed 1 (of 1) heads, 0 (of 0) midpoints, 1 (of 1) tails
</pre></blockquote>show 2 tunnels “UP/UP”, one head and one tail.<br />
<br />
IOS has just 1 table and this output can be disorienting (or the different Junos table :-) )<br />
<br />
<blockquote><pre>R6#<b>sh ip route 10.0.6.2</b>
Routing entry for 10.0.6.2/32
Known via "isis", distance 115, metric 30, type level-2
Redistributing via isis
Last update from 10.0.6.2 on Tunnel0, 00:55:05 ago
Routing Descriptor Blocks:
* 10.0.6.2, from 10.0.6.2, via Tunnel0
Route metric is 30, traffic share count is 1
</pre></blockquote>and the label used, allocated and signaled by J5 is in the tipical Junos range for this type of traffic:<br />
<blockquote><pre>R6#<b>sh mpls traffic-eng tunnels tunnel 0 | i Label</b>
InLabel : -
OutLabel : FastEthernet0/0, 299888
</pre></blockquote>Also on the transit router can control the LSP allocated<br />
On Junos:<br />
<blockquote><pre>nick@zion><b> show mpls lsp logical-system J5 </b>
Ingress LSP: 0 sessions
Total 0 displayed, Up 0, Down 0
Egress LSP: 0 sessions
Total 0 displayed, Up 0, Down 0
Transit LSP: 2 sessions
To From State Rt Style Labelin Labelout LSPname
10.0.6.2 10.0.9.6 Up 1 1 SE 299888 17 R6_t0
10.0.9.6 10.0.6.2 Up 1 1 FF 299872 <b>0</b> J2-to-R6
Total 2 displayed, Up 2, Down 0
</pre></blockquote>and on Cisco:<br />
<blockquote><pre>R4#<b>sh mpls traffic-eng tunnels brief | b ^TU</b>
TUNNEL NAME DESTINATION UP IF DOWN IF STATE/PROT
J2-to-R6 10.0.9.6 Fa0/0 Fa1/0 up/up
R6_t0 10.0.6.2 Fa1/0 Fa0/0 up/up
Displayed 0 (of 0) heads, 2 (of 2) midpoints, 0 (of 0) tails
R4#<b>sh mpls traffic-eng tunnels | i Tunnel|Label</b>
LSP Tunnel J2-to-R6 is signalled, connection is up
InLabel : FastEthernet0/0, 16
OutLabel : FastEthernet1/0, 299872
LSP Tunnel R6_t0 is signalled, connection is up
InLabel : FastEthernet1/0, 17
OutLabel : FastEthernet0/0, <b>implicit-null</b>
</pre></blockquote>In both cases the special label "implict-null" is used in place of PHP (Penultimate Hop Popping) because TE operations usually use the EXP Bit for traffic classification, which for some traffic reclassification may be different from the IP Precedence of the transported package ( and obviously also the traffic can not be IP... )<br />
<br />
One further note for the Cisco platform that can misleading:<br />
analizing LFIB (Label Forwarding Information Base) used for MPLS packet forwarding on R4 shows "Pop Label"<br />
<blockquote><pre>R4#<b>sh mpls forwarding-table</b>
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or VC or Tunnel Id Switched interface
16 299872 10.0.6.2 12053 [1] \
0 Fa1/0 10.0.2.9
17 <b>Pop Label</b> 10.0.9.6 0 [248] 0 Fa0/0 10.0.4.10
</pre></blockquote><br />
but this mean ( from Cisco documentation ) : <br />
<b>No Label</b> - Means that there is no label for the destination from the next hop or that label switching is not enabled on the outgoing interface. <br />
<b>** Pop Label ** </b>- Means that the next hop advertised an implicit NULL label for the destination and that the router popped the top label. <br />
<b>Aggregate</b> - Means there are several prefixes for one local label. This entry is used when IPv6 is configured on edge routers to transport IPv6 traffic over an IPv4 MPLS network. <br />
<br />
<br />
Nothing particularly exciting at this point, only a couple of suggestions like the hello padding ISIS and verification of proper implementation of the two LSPs, it is now time to think about what to do with this two LSPs...<br />
<br />
final Zion Configuration <a href="http://www.modena.to/blog/jncip_ios_integration_post3.confg">here</a><br />
final R4 Configuration <a href="http://www.modena.to/blog/R4.cfg">here</a><br />
final R6 Configuration <a href="http://www.modena.to/blog/R6.cfg">here</a>nicola modenahttp://www.blogger.com/profile/08151880994148540464noreply@blogger.com1tag:blogger.com,1999:blog-8527857152818723984.post-31885690035453539512009-12-17T00:06:00.004+01:002009-12-19T16:05:10.468+01:00Configuration Groups in JunosSometimes part of the configuration is repeated, or is necessary to ensure that some statements are always applied to interfaces, protocols or other configuration portion.<br />
<br />
With JUNOS you can collect these sets of commands in a group, and then apply it to portions of the configuration. The comparison with a programming language can be like a subroutine or much better for the principle of "inheritance" of the object-oriented programming.<br />
The result is a reduction in the code length, eliminating the possibility of typing errors or oversights. Finally a modification of an operating parameter in the group is directly reflected in the configuration of all the elements to which the group is applied.<br />
<br />
When defining groups wildcar can be used to specify which portions of the code to apply the configuration.<br />
<br />
The official reference for this statementi is <a href="http://www.juniper.net/techpubs/en_US/junos9.6/information-products/topic-collections/swconfig-cli/id-11139566.html#id-11139566"><br />
http://www.juniper.net/techpubs/en_US/junos9.6/information-products/topic-collections/swconfig-cli/id-11139566.html#id-11139566</a><br />
<br />
Why did I introduce groups? Most of the fxp interfaces in all router for my JNCIP/JNCIE lab topology proposed in the previous post, use "family mpls" and "familiy iso" so why not save lots of typing and exercise the use of configuration groups ?<br />
<br />
start defining the group:<br />
<br />
<blockquote><pre>[edit]
nick@zion# <b>show groups | no-more</b>
isis-mpls {
logical-systems {
<*> {
interfaces {
<fxp*> {
unit <*> {
family iso;
family mpls;
}
}
}
}
}
}
</pre></blockquote><br />
and then apply the group to the all the system:<br />
<br />
<br />
<blockquote><pre>[edit]
nick@zion# <b>set apply-groups isis-mpls</b>
</pre></blockquote><br />
To display the effect of the configuration group is necessary to pipe the show command trough the "display inheritance" command as follow:<br />
<br />
<br />
<blockquote><pre><b>show logical-systems J1 interfaces | display inheritance</b>
fxp1 {
unit 102 {
description "------- LAN J1-J2 ----------";
vlan-id 102;
family inet {
address 10.0.5.1/24;
}
##
## 'iso' was inherited from group 'isis-mpls'
##
family iso;
##
## 'mpls' was inherited from group 'isis-mpls'
##
family mpls;
}
unit 103 {
description "------- link ptp J1 <-> J3 --";
vlan-id 103;
family inet {
address 10.0.4.14/30;
}
##
## 'iso' was inherited from group 'isis-mpls'
##
family iso;
##
## 'mpls' was inherited from group 'isis-mpls'
##
family mpls;
}
...
</pre></blockquote><br />
or simply skipping the line with "#" in a concised form:<br />
<br />
<blockquote><pre>nick@zion#<b>show logical-systems J1 interfaces | display inheritance | except # </b>
fxp1 {
unit 102 {
description "------- LAN J1-J2 ----------";
vlan-id 102;
family inet {
address 10.0.5.1/24;
}
family iso;
family mpls;
}
unit 103 {
description "------- link ptp J1 <-> J3 --";
vlan-id 103;
family inet {
address 10.0.4.14/30;
}
family iso;
family mpls;
}
...</pre></blockquote><br />
Other elements of the configuration are repetitive, and therefore can find an ideal location in the definition of the group, whose final configuration is thus:<br />
<br />
<br />
<blockquote><pre>[edit]
nick@zion#<b> show groups | no-more </b>
isis-mpls {
logical-systems {
<*> {
interfaces {
<fxp*> {
unit <*> {
family iso;
family mpls;
}
}
}
protocols {
rsvp {
interface all;
}
mpls {
interface all;
}
isis {
level 1 disable;
level 2 wide-metrics-only;
interface all {
point-to-point;
}
}
}
}
}
}
</pre></blockquote><br />
Some elements use different names in each logical router, so you must configure each specific command directly into the respective stanzas:<br />
<br />
<blockquote><pre>[edit]
nick@zion#<b> show logical-systems J3 protocols | no-more </b>
isis {
interface lo0.3 {
passive;
}
}</pre></blockquote><br />
The result, like in the interface portion, is the union of both statements:<br />
<br />
<blockquote><pre>nick@zion#<b>show logical-systems J3 | find protocols | display inheritance | except ##</b>
protocols {
rsvp {
interface all;
}
mpls {
interface all;
}
isis {
level 1 disable;
level 2 wide-metrics-only;
interface lo0.3 {
passive;
}
interface all {
point-to-point;
}
}
}
</pre></blockquote><br />
If you are not confortable using "display inheritance" or working without viewing some portions of the configuration, you can always use my starting configuration with the apply-groups, save the result of the "display inheritance" in a file and then replace the original configuration. In this case is better to use a regular expression to prevent stripping of the hashed password data ( quoted also with '##' ).<br />
<br />
<blockquote><pre>nick@zion#<b> show | display inheritance | except "^\ *#" | save Jncip-Logical-System_L2_isis.confg </b>
Wrote 486 lines of output to 'Jncip-Logical-System_L2_isis.confg'
[edit]
nick@zion#<b> load override Jncip-Logical-System_L2_isis.confg </b>
load complete
</pre></blockquote><br />
I promised complex scenarios and not just some simple CLI tricks, but is necessary to start with someting solid to work on...<br />
<br />
The complete configuration is available <a href="http://www.modena.to/blog/Jncip_Logical_System_lab1.confg">Here</a>nicola modenahttp://www.blogger.com/profile/08151880994148540464noreply@blogger.com0tag:blogger.com,1999:blog-8527857152818723984.post-20684955865155962432009-12-11T00:20:00.020+01:002009-12-16T22:41:07.775+01:00Setting up the labMy lab setup is based on the standard JNCIP/JNCIE topology.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjow7NYvz02qMJfVKp3sbPkrNhwSHPV32hU1-v5ME8ZMT2r8O0dc_1mH4CJ9pQNlRkX6yngPmLiynQmoYvS7BNkxlHd7R6YbIm3JdjaiUwizVIuelBAacpfYXXg5X5XwqQiNOnzxiOim16D/s1600-h/jncip_lab_jnpr.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjow7NYvz02qMJfVKp3sbPkrNhwSHPV32hU1-v5ME8ZMT2r8O0dc_1mH4CJ9pQNlRkX6yngPmLiynQmoYvS7BNkxlHd7R6YbIm3JdjaiUwizVIuelBAacpfYXXg5X5XwqQiNOnzxiOim16D/s400/jncip_lab_jnpr.png" /></a><br />
</div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
The basic configuration for this topology is <a href="http://www.modena.to/blog/Jncip_Logical_System_clean.confg">here</a> <br />
<br />
I mainly use an Olive router ( <a href="http://juniper.cluepon.net/index.php/Olive">http://juniper.cluepon.net/index.php/Olive</a> ) connected in my lab with some other nice gear. The standard topology is based on 7 router [J1- J7] that I simulate with logical-router, now <a href="http://www.juniper.net/techpubs/en_US/junos9.6/information-products/topic-collections/config-guide-routing/id-10510265.html">Logical-System</a>. I'ts a very common and simple level-2 only isis area, with MPLS and ISO (CLNS) enable on all the backbone interface. RSVP is chosen as the signaling protocol for the MPLS labels.<br />
<blockquote><pre>nick@zion# <b>show logical-systems J4 | no-more</b>
interfaces {
fxp1 {
unit 204 {
description "------- link ptp J2 <-> J4 --";
vlan-id 204;
family inet {
address 10.0.4.9/30;
}
family iso; /* enable CLNS for ISIS */
family mpls; /* enable MPLS packet forwarding */
}
unit 304 {
description "------- link ptp J3 <-> J4 --";
vlan-id 304;
family inet {
address 10.0.2.6/30;
}
family iso;
family mpls;
}
unit 405 {
description "------- link ptp J4 <-> J5 --";
vlan-id 405;
family inet {
address 10.0.2.10/30;
}
family iso;
family mpls;
}
}
lo0 {
unit 4 {
family inet {
address 10.0.3.4/32;
}
family iso {
address 49.0000.0000.0004.00; /* assign ISO net */
}
}
}
}
protocols {
rsvp {
interface all;
}
mpls {
interface all;
}
isis {
level 1 disable;
interface lo0.4 {
passive;
}
interface all { /* prevent DIS election */
point-to-point;
}
}
}
</pre></blockquote>I don't want to spend time explaining the lab setup and the mpls theory for this basic environment, because I prefer to depper analize the more complex features.<br />
<br />
<br />
Just to confirm that all things work correctly, some command output to verify that all is going right..<br />
<blockquote><pre>/* verify on witch interface ISIS is running */
nick@zion> <b>show isis interface logical-system J4</b>
IS-IS interface database:
Interface L CirID Level 1 DR Level 2 DR L1/L2 Metric
fxp1.204 2 0x1 Disabled Point to Point 10/10
fxp1.304 2 0x1 Disabled Point to Point 10/10
fxp1.405 2 0x1 Disabled Point to Point 10/10
lo0.4 0 0x1 Passive Passive 0/0
/* TLV 137 permit to show neighbor names...*/
nick@zion> <b>show isis adjacency logical-system J4</b>
Interface System L State Hold (secs) SNPA
fxp1.204 zion-J2 2 Up 25
fxp1.304 zion-J3 2 Up 22
fxp1.405 zion-J5 2 Up 22
/* and the routing table from this point of view... */
nick@zion> <b>show route protocol isis logical-system J4 terse</b>
inet.0: 22 destinations, 22 routes (22 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
A Destination P Prf Metric 1 Metric 2 Next hop AS path
* 10.0.2.0/30 I 18 20 >10.0.2.5
10.0.2.9
* 10.0.3.3/32 I 18 10 >10.0.2.5
* 10.0.3.5/32 I 18 10 >10.0.2.9
* 10.0.3.12/30 I 18 20 >10.0.2.5
* 10.0.4.0/30 I 18 20 10.0.4.10
>10.0.2.5
* 10.0.4.4/30 I 18 30 >10.0.2.5
* 10.0.4.12/30 I 18 20 >10.0.2.5
* 10.0.5.0/24 I 18 30 >10.0.2.5
* 10.0.6.1/32 I 18 20 >10.0.2.5
* 10.0.6.2/32 I 18 10 >10.0.4.10
* 10.0.8.0/30 I 18 30 >10.0.2.9
* 10.0.8.4/30 I 18 20 >10.0.2.9
* 10.0.8.8/30 I 18 20 >10.0.2.9
* 10.0.9.6/32 I 18 20 >10.0.2.9
* 10.0.9.7/32 I 18 20 >10.0.2.9
iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
mpls.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
/* a brief look into the isis database */
nick@zion> <b>show isis database logical-system J4 </b>
IS-IS level 1 link-state database:
0 LSPs
IS-IS level 2 link-state database:
LSP ID Sequence Checksum Lifetime Attributes
zion-J1.00-00 0x2a 0xc3ba 774 L1 L2
zion-J2.00-00 0x2a 0xaa64 945 L1 L2
zion-J3.00-00 0x38 0xe99 515 L1 L2
zion-J4.00-00 0x20 0x8c2f 671 L1 L2
zion-J5.00-00 0x2e 0x9fa6 557 L1 L2
zion-J6.00-00 0x14 0x46e2 520 L1 L2
zion-J7.00-00 0x2e 0x3f57 1093 L1 L2
7 LSPs
/* a snipped detailed part of the isis database expose some TED ( Traffic Engineering Database ) information */
nick@zion> <b>show isis database logical-system J4 zion-J4.00-00 extensive </b>
...
Header: LSP ID: zion-J4.00-00, Length: 439 bytes
Allocated length: 1492 bytes, Router ID: 10.0.3.4
Remaining lifetime: 655 secs, Level: 2, Interface: 0
Estimated free bytes: 896, Actual free bytes: 1053
Aging timer expires in: 655 secs
Protocols: IP, IPv6
Packet: LSP ID: zion-J4.00-00, Length: 439 bytes, Lifetime : 1198 secs
Checksum: 0x8c2f, Sequence: 0x20, Attributes: 0x3 <l1 l2="">
NLPID: 0x83, Fixed length: 27 bytes, Version: 1, Sysid length: 0 bytes
Packet type: 20, Packet version: 1, Max area: 0
TLVs:
Area address: 49 (1)
Speaks: IP
Speaks: IPV6
IP router id: 10.0.3.4
IP address: 10.0.3.4
Hostname: zion-J4
IS neighbor: zion-J2.00, Internal, Metric: default 10
IS neighbor: zion-J3.00, Internal, Metric: default 10
IS neighbor: zion-J5.00, Internal, Metric: default 10
IS extended neighbor: zion-J2.00, Metric: default 10
IP address: 10.0.4.9
Neighbor's IP address: 10.0.4.10
Local interface index: 103, Remote interface index: 81
Current reservable bandwidth:
Priority 0 : 100Mbps
Priority 1 : 100Mbps
Priority 2 : 100Mbps
Priority 3 : 100Mbps
Priority 4 : 100Mbps
Priority 5 : 100Mbps
Priority 6 : 100Mbps
Priority 7 : 100Mbps
Maximum reservable bandwidth: 100Mbps
Maximum bandwidth: 100Mbps
Administrative groups: 0 <none>
...
</none></l1></pre></blockquote><br />
<br />
Some note about the Junos Version, I currently use:<br />
<br />
<blockquote><pre>nick@zion> <b>show version</b>
Hostname: zion
Model: olive
JUNOS Base OS boot [9.6R1.13]
</pre></blockquote><br />
As a side note, Olive is a great gift from Juniper but remember:<br />
<br />
<span style="font-size: 13px; line-height: 19px;"><i><span style="font-family: Times, 'Times New Roman', serif;">"It is also important to remember that Olive exists because Juniper allows it to exist, and is a testament to the mutual respect between the extremely knowledgeable developer and user bases. If the Olive platform became widely abused, Juniper could easily add additional software checks to prevent it from working. Please do not abuse this feature by doing stupid things like contacting JTAC for support on an Olive, or selling illegal copies of the software as "router simulators". This type of activity is likely to have serious legal consequences and/or provoke a justified response from Juniper, so just don't do it."</span></i></span><br />
<span style="font-family: sans-serif; font-size: small;"><span style="font-size: 13px; line-height: 19px;"><br />
</span></span>nicola modenahttp://www.blogger.com/profile/08151880994148540464noreply@blogger.com2