{"id":1556,"date":"2017-12-23T23:25:07","date_gmt":"2017-12-23T15:25:07","guid":{"rendered":"https:\/\/networkingnotesblog.wordpress.com\/?p=1556"},"modified":"2017-12-23T23:25:07","modified_gmt":"2017-12-23T15:25:07","slug":"mpls-vpn-option-c-using-bgp-label-exchange-with-cisco-and-junos-part1","status":"publish","type":"post","link":"http:\/\/notes4it.com\/?p=1556","title":{"rendered":"MPLS VPN &#8211; option C &#8211; using bgp label exchange with cisco and Junos -part 1"},"content":{"rendered":"<p>It has been a while since I have done any labs after getting a new job. This time, I will be building a NNI option C using both Cisco IOS and Juniper MX. The reason I write this is because I do not find many resources on the internet about the inter AS connection using 2 different software at the same time. Hope this can be useful for anyone who is having the same struggle as i do.<br \/>\n(the AS# below are randomly picked!!)<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1557\" src=\"https:\/\/networkingnotesblog.files.wordpress.com\/2017\/12\/lab-testing-mpls.png\" alt=\"lab-testing-mpls\" width=\"2571\" height=\"2026\" srcset=\"http:\/\/notes4it.com\/wp-content\/uploads\/2017\/12\/lab-testing-mpls.png 2571w, http:\/\/notes4it.com\/wp-content\/uploads\/2017\/12\/lab-testing-mpls-300x236.png 300w, http:\/\/notes4it.com\/wp-content\/uploads\/2017\/12\/lab-testing-mpls-1024x807.png 1024w, http:\/\/notes4it.com\/wp-content\/uploads\/2017\/12\/lab-testing-mpls-768x605.png 768w, http:\/\/notes4it.com\/wp-content\/uploads\/2017\/12\/lab-testing-mpls-1536x1210.png 1536w, http:\/\/notes4it.com\/wp-content\/uploads\/2017\/12\/lab-testing-mpls-2048x1614.png 2048w\" sizes=\"auto, (max-width: 2571px) 100vw, 2571px\" \/><br \/>\nBased on the lab diagram (dont feel like copping it up), as the internal VPN service is already running and the intra AS is running OSPF and LDP for MPLS, I will be connecting AS5052 (the green aren in middle) and AS7077 (the orange area at the bottom) together over NNIs to extend the MPLS VPN services.<br \/>\n<!--more-->Since the NNIs in this lab will not be running LDP between the ASBRs of AS5052 and AS7077, we will be using BGP to exchange IPv4 plus label information between AS7077 and AS5052 for building end to end LSP as a second option.<br \/>\nAlso, we will have the route reflectors to exchange the MPLS VPN route entries between both autonomous system for extending MPLS VPN services.<br \/>\nThe objective of this lab would be the following:<br \/>\n1. R04 (AS5052 ASBR) has eBGP peering with R25 (AS7077 ASBR) for IPv4 entries plus labelling.<br \/>\n2. R06 (AS5052 ASBR) has eBGP peering with R24 (AS7077 ASBR) for IPv4 entries plus labelling.<br \/>\n3. R26 (AS7077 RR) has eBGP peering with R08 and R09 (AS5052 RR) for MPLS VPN route entries.<br \/>\n4. Route reflector(s) within AS will have iBGP peering to every PE router for giving out the peering AS loop back addresses and as well the VPN route entries.<br \/>\nFirst of all, the ASBRs from both AS will have to advertise their internal loop back Addresses to their peers. This is to allow the peering AS network PE routers to recognize the next hop of the VPN traffic, as well as the peering between router reflectors. In order to do so, ASBR will redistribute all of the loop back address from its OSPF database to its peer via eBGP.<br \/>\n<!--more--><br \/>\nR04:<br \/>\nIn the attached route table below, we can tell the routes are store in the inet.0 table, which is the IPv4 table. But why would the good old IPv4 routes would have a label attach at the end? That is because the label will be used to form an end to end label switching path to carry the mpls encapsulated packets from one AS to another. And some of you might have spot that some route entries does not have MPLS label. That is because R04 is the penultimate router of R25.<br \/>\n&nbsp;<br \/>\n&nbsp;<\/p>\n<table style=\"height:1122px;\" width=\"804\">\n<tbody>\n<tr>\n<td>Route entries<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>netuser@net-AS5052-vMX-R04&gt; show route protocol bgp next-hop 9.9.9.5<br \/>\ninet.0: 42 destinations, 62 routes (42 active, 0 holddown, 0 hidden)<br \/>\n+ = Active Route, &#8211; = Last Active, * = Both<br \/>\n10.70.0.24\/32 [BGP\/170] 01:14:47, MED 2, localpref 100<br \/>\nAS path: 7077 ?, validation-state: unverified<br \/>\n&gt; to 9.9.9.5 via ge-0\/0\/2.3969, <span style=\"color:#ff0000;\">Push 19<\/span><br \/>\n10.70.0.25\/32 *[BGP\/170] 01:14:47, MED 0, localpref 100<br \/>\nAS path: 7077 ?, validation-state: unverified<br \/>\n&gt; to 9.9.9.5 via ge-0\/0\/2.3969<br \/>\n10.70.0.26\/32 [BGP\/170] 01:14:47, MED 2, localpref 100<br \/>\nAS path: 7077 ?, validation-state: unverified<br \/>\n&gt; to 9.9.9.5 via ge-0\/0\/2.3969, <span style=\"color:#ff0000;\">Push 17<\/span><br \/>\n10.70.1.0\/31 [BGP\/170] 01:14:47, MED 501, localpref 100<br \/>\nAS path: 7077 ?, validation-state: unverified<br \/>\n&gt; to 9.9.9.5 via ge-0\/0\/2.3969, <span style=\"color:#ff0000;\">Push 18<\/span><br \/>\n10.70.1.2\/31 *[BGP\/170] 01:14:47, MED 0, localpref 100<br \/>\nAS path: 7077 ?, validation-state: unverified<br \/>\n&gt; to 9.9.9.5 via ge-0\/0\/2.3969<br \/>\n10.70.1.4\/31 *[BGP\/170] 01:14:47, MED 0, localpref 100<br \/>\nAS path: 7077 ?, validation-state: unverified<br \/>\n&gt; to 9.9.9.5 via ge-0\/0\/2.3969<br \/>\n10.70.1.6\/31 *[BGP\/170] 01:14:47, MED 0, localpref 100<br \/>\nAS path: 7077 ?, validation-state: unverified<br \/>\n&gt; to 9.9.9.5 via ge-0\/0\/2.3969<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u00a0The syntax for the R04 is listed below:<br \/>\n&#8211; it is to build an LSP using BGP.<br \/>\n&#8211; also it exchanges the loopback addresses of router reflector and other P and PE routes to AS7077.<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>set interfaces ge-0\/0\/2 unit 3969 description &#8220;Connect to NNI-C AS7077 R25&#8221;<br \/>\nset interfaces ge-0\/0\/2 unit 3969 vlan-id 3969<br \/>\nset interfaces ge-0\/0\/2 unit 3969 family inet mtu <span style=\"color:#ff0000;\">1982<\/span><br \/>\nset interfaces ge-0\/0\/2 unit 3969 family inet address 9.9.9.4\/31<br \/>\nset interfaces ge-0\/0\/2 unit 3969 family mpls mtu <span style=\"color:#ff0000;\">1962<\/span><br \/>\nset interfaces ge-0\/0\/2 unit 3969 family mpls <strong><span style=\"color:#ff0000;\">maximum-labels 5<br \/>\n<\/span><span style=\"color:#ff0000;\">!!! it is always a good practices to <\/span><span style=\"color:#ff0000;\">set interfaces to take as much labels as possible. In this case, it will pass 3 layers of encapulations (1 for MPLS VPN, 1 for internal AS LSP, and 1 for LSP over NNI) to AS7077 !!!<br \/>\n<\/span><\/strong><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>set policy-options policy-statement ebgp-AS7077-export term 01-route_reflector from route-filter 10.50.0.8\/32 exact<br \/>\nset policy-options policy-statement ebgp-AS7077-export term 01-route_reflector from route-filter 10.50.0.9\/32 exact<br \/>\nset policy-options policy-statement ebgp-AS7077-export term 01-route_reflector then accept<br \/>\nset policy-options policy-statement ebgp-AS7077-export term 02-loopback from route-filter 10.50.0.0\/24 prefix-length-range \/32-\/32<br \/>\nset policy-options policy-statement ebgp-AS7077-export term 02-loopback then accept<br \/>\nset policy-options policy-statement ebgp-AS7077-export then reject<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>set protocols bgp group ebgp-AS7077-NNI-C type external<br \/>\nset protocols bgp group ebgp-AS7077-NNI-C family inet <strong><span style=\"color:#ff0000;\">labeled-unicast<\/span><\/strong><br \/>\n<span style=\"color:#ff0000;\"> !!! the magic of building an LSP using BGP is &#8220;labeled-unicast&#8221; !!!<\/span><br \/>\nset protocols bgp group ebgp-AS7077-NNI-C export ebgp-AS7077-export<br \/>\nset protocols bgp group ebgp-AS7077-NNI-C peer-as 7077<br \/>\nset protocols bgp group ebgp-AS7077-NNI-C neighbor 9.9.9.5<\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><!--more--><br \/>\nR25:<br \/>\n&nbsp;<\/p>\n<table width=\"804\">\n<tbody>\n<tr>\n<td>Route entries<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>net-AS7077-vIOS-R25#sho ip route bgp | in 9.9.9.4<br \/>\nB 10.50.0.1\/32 [20\/1] via 9.9.9.4, 00:11:10<br \/>\nB 10.50.0.4\/32 [20\/0] via 9.9.9.4, 00:11:10<br \/>\nB 10.50.0.5\/32 [20\/1] via 9.9.9.4, 00:11:10<br \/>\nB 10.50.0.8\/32 [20\/1] via 9.9.9.4, 00:11:10<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\n<table width=\"804\">\n<tbody>\n<tr>\n<td>net-AS7077-vIOS-R25#sho mpls forwarding-table | in 10.50<br \/>\n20 <span style=\"color:#ff0000;\">320705<\/span> 10.50.0.1\/32 0 Gi0\/2.3969 9.9.9.4<br \/>\n21 <span style=\"color:#ff0000;\">320753<\/span> 10.50.0.5\/32 0 Gi0\/2.3969 9.9.9.4<br \/>\n22 <span style=\"color:#ff0000;\">320785<\/span> 10.50.0.8\/32 222125 Gi0\/2.3969 9.9.9.4<br \/>\n23 <span style=\"color:#ff0000;\">23<\/span> 10.50.0.2\/32 0 Gi0\/1.3973 10.70.1.7<br \/>\n24 <span style=\"color:#ff0000;\">24<\/span> 10.50.0.3\/32 0 Gi0\/1.3973 10.70.1.7<br \/>\n25 <span style=\"color:#ff0000;\">27<\/span> 10.50.0.6\/32 0 Gi0\/1.3973 10.70.1.7<br \/>\n26 Pop Label 10.50.0.4\/32 0 Gi0\/2.3969 9.9.9.4<br \/>\n27 <span style=\"color:#ff0000;\">26<\/span> 10.50.0.9\/32 0 Gi0\/1.3973 10.70.1.7<br \/>\n28 29 10.50.0.11\/32 0 Gi0\/1.3973 10.70.1.7<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>The syntax below for R25 is listed below:<br \/>\n&#8211; to exchange route entries including<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>interface GigabitEthernet0\/2.3969<br \/>\nencapsulation dot1Q 3969<br \/>\nip address 9.9.9.5 255.255.255.254<br \/>\nmpls mtu 1980<br \/>\nmpls traffic-eng tunnels<br \/>\n<span style=\"color:#ff0000;\"> mpls bgp forwarding<\/span><br \/>\nmpls ip<br \/>\nip rsvp bandwidth 1500<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>router bgp 7077<br \/>\nbgp log-neighbor-changes<br \/>\nno bgp default ipv4-unicast<br \/>\nneighbor 9.9.9.4 remote-as 5052<br \/>\nneighbor 10.70.0.26 remote-as 7077<br \/>\nneighbor 10.70.0.26 update-source Loopback0<br \/>\n!<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>address-family ipv4<br \/>\nredistribute ospf 1<br \/>\nneighbor 9.9.9.4 activate<br \/>\nneighbor 9.9.9.4 send-community extended<br \/>\nneighbor 9.9.9.4 route-map bgp-in in<br \/>\nneighbor 9.9.9.4 route-map bgp-out out<br \/>\nneighbor 9.9.9.4 <span style=\"color:#ff0000;\">send-label<\/span><br \/>\nexit-address-family<br \/>\n!<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>route-map bgp-out permit 10<br \/>\nset mpls-label<br \/>\n!<br \/>\nroute-map bgp-in permit 10<br \/>\nmatch mpls-label<br \/>\n!<\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><!--more--><br \/>\nAfter both sides have the route info of the addresses of router s loopback and the router reflector, we can build the ebgp peering between both router reflectors (R8 and R26). The R8 is a logical router.<br \/>\n&nbsp;<\/p>\n<table width=\"804\">\n<tbody>\n<tr>\n<td>Syntax for R8<br \/>\n&#8211; applying all of the route type in the same group is not really a good practice, but who cares, it s a lab only eh !!!<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>set logical-systems LS-RR1 protocols bgp group ebgp-NNI-C type external<br \/>\nset logical-systems LS-RR1 protocols bgp group ebgp-NNI-C <span style=\"color:#ff0000;\">multihop ttl 200<br \/>\n!!! since this ebgp connection is not direct peering, and the default ebgp time to live value is 1, so we have to increase the ttl for this connection. !!!<\/span><br \/>\nset logical-systems LS-RR1 protocols bgp group ebgp-NNI-C local-address 10.50.0.8<br \/>\nset logical-systems LS-RR1 protocols bgp group ebgp-NNI-C neighbor 10.70.0.26 <span style=\"color:#ff0000;\">multihop no-nexthop-change<br \/>\n!!! also we need to advertise the route entries to AS7077 without changing the next hop at their end. otherwise, all of the traffic from AS7077 to AS5052 will be routed via the route reflector. !!!<\/span><br \/>\nset logical-systems LS-RR1 protocols bgp group ebgp-NNI-C neighbor 10.70.0.26 family inet-vpn unicast<br \/>\nset logical-systems LS-RR1 protocols bgp group ebgp-NNI-C neighbor 10.70.0.26 family inet6-vpn unicast<br \/>\nset logical-systems LS-RR1 protocols bgp group ebgp-NNI-C neighbor 10.70.0.26 family l2vpn signaling<br \/>\nset logical-systems LS-RR1 protocols bgp group ebgp-NNI-C neighbor 10.70.0.26 family evpn signaling<br \/>\nset logical-systems LS-RR1 protocols bgp group ebgp-NNI-C neighbor 10.70.0.26 family inet-mvpn signaling<br \/>\nset logical-systems LS-RR1 protocols bgp group ebgp-NNI-C neighbor 10.70.0.26 family inet6-mvpn signaling<br \/>\nset logical-systems LS-RR1 protocols bgp group ebgp-NNI-C neighbor 10.70.0.26 peer-as 7077<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Syntax for R26:<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>router bgp 7077<br \/>\nneighbor 10.50.0.8 remote-as 5052<br \/>\nneighbor 10.50.0.8<span style=\"color:#ff0000;\"> ebgp-multihop 200<\/span><br \/>\n<span style=\"color:#ff0000;\">!!!! the multi hop here is the same as ttl in junos.<\/span><br \/>\nneighbor 10.50.0.8 update-source Loopback0<br \/>\nneighbor 10.50.0.9 remote-as 5052<br \/>\nneighbor 10.50.0.9 <span style=\"color:#ff0000;\">ebgp-multihop 200<\/span><br \/>\n<span style=\"color:#ff0000;\">!!!! the multi hop here is the same as ttl in junos.<\/span><br \/>\nneighbor 10.50.0.9 update-source Loopback0<br \/>\n!<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>address-family vpnv4<br \/>\nneighbor 10.50.0.8 activate<br \/>\nneighbor 10.50.0.8 send-community both<br \/>\nneighbor 10.50.0.8 <span style=\"color:#ff0000;\">next-hop-unchanged<\/span><br \/>\n<span style=\"color:#ff0000;\">!!! also we need to advertise the route entries to AS5052 without changing the next hop at their end. otherwise, all of the traffic from AS5052 to AS7077 will be routed via the route reflector. !!!<\/span><br \/>\nneighbor 10.50.0.9 activate<br \/>\nneighbor 10.50.0.9 send-community both<br \/>\nneighbor 10.50.0.9 <span style=\"color:#ff0000;\">next-hop-unchanged<\/span><br \/>\nexit-address-family<br \/>\n!<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>address-family vpnv4 multicast<br \/>\nneighbor 10.50.0.8 activate<br \/>\nneighbor 10.50.0.8 send-community extended<br \/>\nneighbor 10.50.0.8 <span style=\"color:#ff0000;\">next-hop-unchanged<\/span><br \/>\nneighbor 10.50.0.9 activate<br \/>\nneighbor 10.50.0.9 send-community extended<br \/>\nneighbor 10.50.0.9 <span style=\"color:#ff0000;\">next-hop-unchanged<\/span><br \/>\nexit-address-family<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>address-family vpnv6<br \/>\nneighbor 10.50.0.8 activate<br \/>\nneighbor 10.50.0.8 send-community extended<br \/>\nneighbor 10.50.0.8 <span style=\"color:#ff0000;\">next-hop-unchanged<\/span><br \/>\nneighbor 10.50.0.9 activate<br \/>\nneighbor 10.50.0.9 send-community extended<br \/>\nneighbor 10.50.0.9<span style=\"color:#ff0000;\"> next-hop-unchanged<\/span><br \/>\nexit-address-family<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>address-family vpnv6 multicast<br \/>\nneighbor 10.50.0.8 activate<br \/>\nneighbor 10.50.0.8 send-community extended<br \/>\nneighbor 10.50.0.8 <span style=\"color:#ff0000;\">next-hop-unchanged<\/span><br \/>\nneighbor 10.50.0.9 activate<br \/>\nneighbor 10.50.0.9 send-community extended<br \/>\nneighbor 10.50.0.9 <span style=\"color:#ff0000;\">next-hop-unchanged<\/span><br \/>\nexit-address-family<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>address-family l2vpn evpn<br \/>\nneighbor 10.50.0.8 activate<br \/>\nneighbor 10.50.0.8 send-community both<br \/>\nneighbor 10.50.0.8 <span style=\"color:#ff0000;\">next-hop-unchanged<\/span><br \/>\nneighbor 10.50.0.9 activate<br \/>\nneighbor 10.50.0.9 send-community both<br \/>\nneighbor 10.50.0.9<span style=\"color:#ff0000;\"> next-hop-unchanged<\/span><br \/>\nexit-address-family<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Once we have the ebgp connection setup at both AS, we will be able to see the route entries received from R26 to R08, and R08 will redistribute the ebgp routes to other PE nodes within the AS.<br \/>\n&nbsp;<\/p>\n<table style=\"height:549px;\" width=\"805\">\n<tbody>\n<tr>\n<td>Route entries at R08:<br \/>\n&#8211; from\u00a0 the routes below, for route 8.8.8.8\/32 and 10.70.2.0\/30 (located in R25 VRF), there are 2 mpls labes.<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<\/tr>\n<tr>\n<td>If R08 is the ingress router and need to pass a packet to 10.70.2.0\/30, the traffic flow will be listed below:<\/p>\n<table style=\"height:81px;\" width=\"802\">\n<tbody>\n<tr>\n<td>device<\/td>\n<td>Sender<\/td>\n<td>R08<\/td>\n<td>R04<\/td>\n<td>R25<\/td>\n<td>recepient<\/td>\n<\/tr>\n<tr>\n<td>Router type<\/td>\n<td><\/td>\n<td>Ingress route<\/td>\n<td>Penultimate router<\/td>\n<td>\u00a0Egress router<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Label header<\/td>\n<td>\u00a0N\/A<\/td>\n<td>insert the following labels.<br \/>\nlv1 &#8211; 320881<br \/>\nlv2 &#8211; 29<br \/>\nlv3 &#8211; IPv4<\/td>\n<td>Pop the\u00a0 outter label.<br \/>\nlv1 &#8211; 29<br \/>\nlv2 &#8211; IPv4<\/td>\n<td>Pop the outter label.<br \/>\nlv1 &#8211; IPv4<\/td>\n<td>It will not receive any labeled packets.<br \/>\nlv1 &#8211; IPv4<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>If R08 is the ingress router and need to pass a packet to 10.70.90.26\/32, the traffic flow will be listed below:<\/p>\n<table style=\"height:81px;\" width=\"802\">\n<tbody>\n<tr>\n<td>device<\/td>\n<td>Sender<\/td>\n<td>R08<\/td>\n<td>R04<\/td>\n<td>R25<\/td>\n<td>\u00a0R26<\/td>\n<td>recepient<\/td>\n<\/tr>\n<tr>\n<td>Router type<\/td>\n<td><\/td>\n<td>Ingress route<\/td>\n<td>intermediate router<\/td>\n<td>Penultimate router<\/td>\n<td>\u00a0Egress router<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Label header<\/td>\n<td>Sending a regular IPv4 packet.<br \/>\nIPv4<\/td>\n<td>Insert the following labels.<br \/>\nlv1 &#8211; 402033<br \/>\nlv2 &#8211; 74<br \/>\nlv3 &#8211; IPv4<\/td>\n<td>SWAP the outter label.<br \/>\nlv1 &#8211; 17<br \/>\nlv2 &#8211; 74<br \/>\nlv3 &#8211; IPv4<\/td>\n<td>Pop the outter label.<br \/>\nlv1 &#8211; 74<br \/>\nlv2 &#8211; IPv4<\/td>\n<td>Pop the outter label.<br \/>\nlv1 &#8211; IPv4<\/td>\n<td>Receive a regular IPv4 packet.<br \/>\nlv1 &#8211; IPv4<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>netuser@net-AS5052-vMX-R04&gt; show route logical-system LS-RR1 table bgp.l3vpn.0<br \/>\nbgp.l3vpn.0: 30 destinations, 30 routes (30 active, 0 holddown, 0 hidden)<br \/>\n+ = Active Route, &#8211; = Last Active, * = Both7077:1025:8.8.8.8\/32<br \/>\n*[BGP\/170] 00:42:59, localpref 100, from 10.70.0.26<br \/>\nAS path: 7077 ?, validation-state: unverified<br \/>\n&gt; to 10.50.1.24 via lt-0\/0\/0.25, <span style=\"color:#ff0000;\">Push 29, Push 320881(top)<br \/>\n!!! <\/span><br \/>\n7077:1025:10.70.2.0\/30<br \/>\n*[BGP\/170] 00:42:59, localpref 100, from 10.70.0.26<br \/>\nAS path: 7077 ?, validation-state: unverified<br \/>\n&gt; to 10.50.1.24 via lt-0\/0\/0.25, <span style=\"color:#ff0000;\">Push 30, Push 320881(top)<\/span><br \/>\n7077:1026:10.70.90.26\/32<br \/>\n*[BGP\/170] 04:13:07, MED 0, localpref 100, from 10.70.0.26<br \/>\nAS path: 7077 ?, validation-state: unverified<br \/>\n&gt; to 10.50.1.24 via lt-0\/0\/0.25, <span style=\"color:#ff0000;\">Push 74, Push 402033(top)<br \/>\n<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>netuser@net-AS5052-vMX-R04&gt; show route label 402033<br \/>\nmpls.0: 33 destinations, 33 routes (33 active, 0 holddown, 0 hidden)<br \/>\n+ = Active Route, &#8211; = Last Active, * = Both<br \/>\n402033 *[VPN\/170] 00:37:58<br \/>\n&gt; to 9.9.9.5 via ge-0\/0\/2.3969, Swap <span style=\"color:#ff0000;\">17<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>net-AS7077-vIOS-R25#sho mpls forwarding-table labels <span style=\"color:#ff0000;\">17<\/span><br \/>\nLocal Outgoing Prefix Bytes Label Outgoing Next Hop<br \/>\nLabel Label or Tunnel Id Switched interface<br \/>\n<span style=\"color:#ff0000;\">17<\/span> Pop Label 10.70.0.26\/32 747812 Gi0\/1.3972 10.70.1.3<br \/>\nPop Label 10.70.0.26\/32 377223 Gi0\/1.3971 10.70.1.5<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>net-AS7077-vIOS-R26#sho mpls forwarding-table labels <span style=\"color:#ff0000;\">74<\/span><br \/>\nLocal Outgoing Prefix Bytes Label Outgoing Next Hop<br \/>\nLabel Label or Tunnel Id Switched interface<br \/>\n<span style=\"color:#ff0000;\">74<\/span> Pop Label 10.70.90.26\/32[V] \\<br \/>\n0 aggregate\/<span style=\"color:#ff0000;\">cust-A<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<br \/>\nI think I will stop here for a while. Also this post should cover the basic NNI option C setup for both Cisco IOS and Juniper Junos already. But do let me know what else can be put into this post to make it better.<br \/>\n&nbsp;<br \/>\n&nbsp;<\/p>\n<table>\n<tbody>\n<tr>\n<td>1<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>4<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It has been a while since I have done any labs after getting a new job. This time, I will be building a NNI option C using both Cisco IOS and Juniper MX. The reason I write this is because I do not find many resources on the internet about the inter AS connection using [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,3],"tags":[16,26,44,67,72,75,90,92,94,108,111,116,128,139,142,157,159,197,205,207,208],"class_list":["post-1556","post","type-post","status-publish","format-standard","hentry","category-networking","category-virtualization","tag-bgp-label-en","tag-cisco-en","tag-ebgp-en","tag-ibgp-en","tag-intermediate-router-en","tag-ios-en","tag-juniper-en","tag-juniper-vmx-en","tag-junos-en","tag-logical-router-en","tag-mpls-en","tag-nni-option-c-en","tag-penultimate-route-en","tag-rfc-4364-en","tag-route-reflector-en","tag-show-mpls-forwarding-table-en","tag-show-route-label-en","tag-virtual-ios-en","tag-vmx-en","tag-vpn-en","tag-vrf-en"],"_links":{"self":[{"href":"http:\/\/notes4it.com\/index.php?rest_route=\/wp\/v2\/posts\/1556","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/notes4it.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/notes4it.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/notes4it.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/notes4it.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1556"}],"version-history":[{"count":0,"href":"http:\/\/notes4it.com\/index.php?rest_route=\/wp\/v2\/posts\/1556\/revisions"}],"wp:attachment":[{"href":"http:\/\/notes4it.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1556"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/notes4it.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1556"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/notes4it.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1556"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}