{"id":8,"date":"2025-10-03T15:50:37","date_gmt":"2025-10-03T15:50:37","guid":{"rendered":"https:\/\/tafstudy.com\/?p=8"},"modified":"2025-10-03T16:14:28","modified_gmt":"2025-10-03T16:14:28","slug":"m-ldp-da-01","status":"publish","type":"post","link":"https:\/\/tafstudy.com\/?p=8","title":{"rendered":"M-LDP-DA-01"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\" id=\"mpls\">MPLS<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li>What\/Why: Multiprotocol\n<ul class=\"wp-block-list\">\n<li>IP\/Eth\/ATM\/FR<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>How: Label Switching<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"data-plane-dp\">Data Plane (DP)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Data plane remains mostly unchanged over time; defined in RFC3031, RFC3032<\/li>\n\n\n\n<li>No concept of src\/dst address &#8211; replaced by MPLS label (routers generally only look at dst address anyway)<\/li>\n\n\n\n<li><code>MPLS Label<\/code>: Instruction for packet treatment\n<ul class=\"wp-block-list\">\n<li>Instructions are not carried in the packet, instead programmed in device (control plane)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>Lookup<\/code>: Router process to locate the instructions for a labeled packet in the control plane<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"mpls-label\">MPLS Label<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Defined in RFC3032<\/li>\n\n\n\n<li>Stored in TCAM<\/li>\n\n\n\n<li>MPLS header comes after\u00a0L2\u00a0header (always encapsulated within\u00a0L2), can encapsulate\u00a0L3\u00a0(IP) or\u00a0L2\u00a0(Eth)\n<ul class=\"wp-block-list\">\n<li>Sometimes called &#8220;L2.5&#8221;, &#8220;L2+&#8221; maybe more accurate<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"fields\">Fields<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Label: Label Value, 20 bits\n<ul class=\"wp-block-list\">\n<li>Lowest: 0, Highest: 2^20 (1,048,575)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Exp: Experimental Use, 3 bits [used for QoS, CoS bits; RFC5462: Traffic Class]<\/li>\n\n\n\n<li>S: Bottom of Stack, 1 bit\n<ul class=\"wp-block-list\">\n<li>Indicates that the following header is either MPLS (0) or non-MPLS (1) (when multiple MPLS headers are &#8216;stacked&#8217;)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>TTL: Time to Live, 8 bits<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"label-opacity\">Label Opacity<\/h4>\n\n\n\n<p>When a router recieves an MPLS packet (has MPLS header), it uses the first header to determine the forwarding instructions. Any further MPLS headers are ignored (hidden)<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"instructions\">Instructions<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Stored in MPLS LBL FIB\n<ul class=\"wp-block-list\">\n<li>MPLS LBL FIB conains\u00a0<code>MPLS Label Value<\/code>\u00a0->\u00a0<code>Exit Ifc, Next Hop Addr, MPLS Actions\/Operation<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"mpls-actions\">MPLS Actions<\/h5>\n\n\n\n<p><code>Add the label (Push)<\/code>Adds a label to the top of the stack of labels, increasing stack depth<code>Replace the label (Swap)<\/code>Swaps the label at the top of the stack to a new label, stack depth remains the same<code>Remove the label (Pop)<\/code>Removes the label at the top of the stack, stack depth decreases<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"reserved-labels\">Reserved Labels<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>0<\/code>: IPv4 Explicit Null (aka, &#8220;pop the label&#8221; Pop + perform an IPv4 lookup)<\/li>\n\n\n\n<li><code>1<\/code>: Router Alert<\/li>\n\n\n\n<li><code>2<\/code>: IPv6 Explicit Null<\/li>\n\n\n\n<li><code>3<\/code>: Implicit Null (aka, &#8220;pop the label&#8221;)<\/li>\n\n\n\n<li><code>4-6<\/code>: Unassigned<\/li>\n\n\n\n<li><code>7<\/code>: Entropy Label Indicator (ELI)<\/li>\n\n\n\n<li><code>8-12<\/code>: Unassigned<\/li>\n\n\n\n<li><code>13<\/code>: Generic Associated Channel<\/li>\n\n\n\n<li><code>14<\/code>: OAM Alert<\/li>\n\n\n\n<li><code>15<\/code>: Extension Label (XL)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"packet-forwarding\">Packet Forwarding<\/h3>\n\n\n\n<p><code>Limited IP Core<\/code>MPLS network does not know IP routes for packets it is forwarding<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"tables\">Tables<\/h4>\n\n\n\n<p><strong>IP FIB (w\/o MPLS)<\/strong>&nbsp;&#8211; Contents: IP Subnets &#8211; Key: IP Addresses &#8211; Results: Exit Ifc, Next Hop Info (Adj table)<\/p>\n\n\n\n<p><strong>IP FIB (w\/ MPLS)<\/strong>&nbsp;&#8211; Contents: (same) &#8211; Key: (same) &#8211; Results: Exit Ifc, Next Hop Info (Adj table),&nbsp;<strong>Optional: MPLS Action<\/strong><\/p>\n\n\n\n<p><strong>MPLS Label FIB<\/strong>&nbsp;&#8211; Contents: MPLS Labels &#8211; Key: MPLS Label &#8211; Results: Exit Ifc, Next Hop Info (Adj table), MPLS Actions<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"control-plane-cp\">Control Plane (CP)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>TDP<\/code>: Prestandard version of LDP (Cisco specific)<\/li>\n\n\n\n<li><code>LDP<\/code>: Dynamic protocol to distribute MPLS paths; this tech is on it&#8217;s way out<\/li>\n\n\n\n<li><code>RSVP<\/code>:<\/li>\n\n\n\n<li><code>BGP-LU<\/code>:<\/li>\n\n\n\n<li><code>SR<\/code>: Segment routing; latest and greatest MPLS control plane<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"static-label-switched-paths-lsp\">Static Label Switched Paths (LSP)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Take a destination IP (FIB entry) and bind an MPLS label<\/li>\n<\/ul>\n\n\n\n<p>Create static MPLS action<\/p>\n\n\n\n<p>&#8220;Binding&#8221;: Bind an IP CEF entry to an MPLS action<\/p>\n\n\n\n<pre id=\"__code_0\" class=\"wp-block-code\"><code>mpls static binding ipv4 &lt;dest-prefix&gt; &lt;dest-mask&gt; &lt;input|output&gt; &lt;dest-nexthop&gt; &lt;label-id&gt;\n<\/code><\/pre>\n\n\n\n<p>Create a static MPLS label<\/p>\n\n\n\n<pre id=\"__code_1\" class=\"wp-block-code\"><code>mpls static labelswitch &lt;incoming-label-id&gt;\n  moi out-interface &lt;output-intf&gt; ipv4 &lt;nexthop-ip&gt; &lt;outgoing-label-id&gt;\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bgp-free-core\">BGP-Free Core<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Only edge routers run BGP, core is MPLS packets destined between edge routers<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"label-distribution-protocol-ldp\">Label Distribution Protocol (LDP)<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Autodiscovery\n<ul class=\"wp-block-list\">\n<li><code>HELLO<\/code>\u00a0packets\n<ul class=\"wp-block-list\">\n<li>Dest IP (Multicast): 224.0.0.2 (AllRouters)<\/li>\n\n\n\n<li>Uses UDP (Src\/Dst\u00a0Port: 646)<\/li>\n\n\n\n<li>Neighbor advertises unicast IP (XPort IP, usually same as LSR-ID &#8211; must be routable) for creation of neighbor->neighbor TCP session<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>LDP-ID (LSR-ID: LABELSPACE)\n<ul class=\"wp-block-list\">\n<li>Highest Loopback = LSR-ID<\/li>\n\n\n\n<li>Ethernet: LABELSPACE = 0 (per platform, not per interface)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Session (neighborship) creation\n<ul class=\"wp-block-list\">\n<li>Created using XPort IP (Dst\u00a0IP)<\/li>\n\n\n\n<li>TCP session (Dst\u00a0Port: 646,\u00a0Src\u00a0Port: ephermal) (client\/server)<\/li>\n\n\n\n<li>Two types of messages\n<ol class=\"wp-block-list\">\n<li><code>Label Mapping MSG<\/code>\n<ul class=\"wp-block-list\">\n<li>Advertises local bindings (IPv4 Addr + MPLS Label)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>Address MSG<\/code>\n<ul class=\"wp-block-list\">\n<li>??<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Independent LSP Control (generate labels for everything) [Cisco]<\/li>\n\n\n\n<li>Ordered LSP Control (generate binding for local routes and any bindings that were recieved from other rtrs)<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"ldp-configuration\">LDP Configuration<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>LDP starts when\u00a0<code>mpls ip<\/code>\u00a0is enabled on an intf<\/li>\n<\/ul>\n\n\n\n<p>See bindings:&nbsp;<code>show mpls ldp bindings<\/code><\/p>\n\n\n\n<p>See autodiscovery:&nbsp;<code>show mpls ldp discovery [detail]<\/code><\/p>\n\n\n\n<p>Set MPLS LDP transfer address&nbsp;<code>(config-if) mpls ldp discovery transport-address [ip|interface]<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mpls-configuration\">MPLS Configuration<\/h2>\n\n\n\n<p>See all MPLS intfs<\/p>\n\n\n\n<pre id=\"__code_2\" class=\"wp-block-code\"><code>show ip mpls interfaces\n<\/code><\/pre>\n\n\n\n<p>Show MPLS LFIB<\/p>\n\n\n\n<pre id=\"__code_3\" class=\"wp-block-code\"><code>show mpls forwarding-table\n<\/code><\/pre>\n\n\n\n<p>Enable MPLS on intf<\/p>\n\n\n\n<pre id=\"__code_4\" class=\"wp-block-code\"><code>interface &lt;intf&gt;\n  mpls ip\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mpls-l3vpn\">MPLS L3VPN<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SP provdes &#8220;router as a service&#8221;\n<ul class=\"wp-block-list\">\n<li>Customer advertises routes to SP router, which advertises other customer routes<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"goals\">Goals<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Separation between Customer (C) routes<\/li>\n\n\n\n<li>No C-routes in the core (P routers)<\/li>\n\n\n\n<li>C-routes separated at PE routers\n<ul class=\"wp-block-list\">\n<li>Each customer space assigned unique identifier\n<ul class=\"wp-block-list\">\n<li>No longer IPv4 routes, now L3VPN routes (and BGP AF)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>BGP to distribute routes between PE&#8217;s<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"separation-of-c-routes\">Separation of C-Routes<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Utilizes &#8220;route distinguisher&#8221; attached to each IPv4 route\n<ul class=\"wp-block-list\">\n<li>64-bits\n<ul class=\"wp-block-list\">\n<li>NN = unique number<\/li>\n\n\n\n<li>AS:NN<\/li>\n\n\n\n<li>IPv4:NN<\/li>\n\n\n\n<li>4BAS:NN<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Becomes part of the route (NLRI) within BGP, so it would be unique even if IPv4 is same<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>New BGP address family\n<ul class=\"wp-block-list\">\n<li>RD:IPv4 (64 bits + 32 bits = 96 bits)\n<ul class=\"wp-block-list\">\n<li><em>Example:<\/em>\u00a0ASN:NN:IPV4ROUTE\n<ul class=\"wp-block-list\">\n<li>10:1:10.1.1.1<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>New address family called\u00a0<code>VPN-IPv4<\/code>\u00a0(or\u00a0<code>VPN-IPv6<\/code>)\n<ul class=\"wp-block-list\">\n<li>Cisco:\u00a0<code>VPNv4<\/code><\/li>\n\n\n\n<li>Juniper:\u00a0<code>INET-VPN<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>PE: Advertises C-Routes as VPNv4\n<ul class=\"wp-block-list\">\n<li>VRF (on PE router) becomes associated with a VPNv4 RD<\/li>\n\n\n\n<li>virtual router (on local router) + RD = VRF<\/li>\n\n\n\n<li>VRF:RD is 1:1 relationship<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"policy-administration\">Policy Administration<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Uses tags, not RD &#8211; because single tag is insufficient for complex policy<\/li>\n\n\n\n<li>Originating PE: attaches tags per export policy<\/li>\n\n\n\n<li>Receiving PE: inspects and imports tags per import policy<\/li>\n\n\n\n<li>BGP doesn&#8217;t have tags, instead has attributes\n<ul class=\"wp-block-list\">\n<li>Extended-Communities (64 bits)\n<ul class=\"wp-block-list\">\n<li>Route-Target: used for tagging purposes\n<ul class=\"wp-block-list\">\n<li>AS:NN<\/li>\n\n\n\n<li>IPv4:NN<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>RD (part of VPNv4 route\/NLRI)\u00a0<strong>is not same as<\/strong>\u00a0RT (BGP extended community)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"vpnv4-configuration\">VPNv4 configuration<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>iBGP between PE&#8217;s, MPLS+LDP+OSPF\u00a0across core<\/li>\n<\/ul>\n\n\n\n<p>PE configuration<\/p>\n\n\n\n<pre id=\"__code_5\" class=\"wp-block-code\"><code>! Create VR for routes\nvrf definiation VRF_BLUE\n rd 10:101 ! &lt;asn:unique&gt;\n route-target import 102:102 ! &lt;&gt;\n route-target export 101:101\n address-family ipv4 unicast\n exit\n\n! Add customer facing interface to VR\ninterface &lt;intf&gt;\n vrf forwarding VRF_BLUE\n\n! Move Cust-&gt;SP eBGP to VR\nrouter bgp &lt;asn&gt;\n address-family ipv4 unicast vrf VRF_BLUE\n  neighbor &lt;cust-ip&gt; remote-as &lt;cust-as&gt;\n\n! Exchange VPNv4 routes\nrouter bgp &lt;asn&gt;\n address-family vpnv4 unicast\n  neighbor &lt;peer-pe-ip&gt; activate\n<\/code><\/pre>\n\n\n\n<p>! See routes inside of VRF&nbsp;<code>show bgp vpnv4 unicast &lt;rd|vrf&gt; &lt;vrf-name&gt;<\/code><\/p>\n\n\n\n<p>How does receiving PE know which VRF data plane traffic is placed in? Stacked MPLS labels &#8211; the VPNv4 path gets an &#8220;inner&#8221; label.<\/p>\n\n\n\n<p>There may be different routing options such as:<br><br>Static routing<br><br>iBGP<br><br>eBGP<br><br>EIGRP<br><br>OSPF<br><br>On R2 to R4, we can verify OSPF routes using the command:<br><br>show ip route ospf | include 1.1.1.1<br><br><br>On R4, the same command:<br><br>show ip route ospf | include 1.1.1.1<br><br><br>returns the following result:<br><br>O    1.1.1.1\/32 [110\/xx] via 34.1.1.3, GigabitEthernet0\/3<br><br><br>To check the control plane (RIB), we use:<br><br>show ip route 1.1.1.1<br><br><br>To check the data plane (CEF), we use:<br><br>show ip cef 1.1.1.1<br><br><br>Both commands should show the next-hop information:<br><br>34.1.1.3, GigabitEthernet0\/3<br><br><br>On R1, if we run:<br><br>show ip route | begin Gateway<br><br><br>we can observe multiple routing entries such as:<br><br>OSPF routes<br><br>BGP routes (for example, B 6.6.6.6 [20] and B 7.7.7.7 [200])<br><br>EIGRP routes (denoted by D)<br><br>Static routes (denoted by S)<br><br>When working with MPLS, the label protocol can be:<br><br>LDP (Label Distribution Protocol)<br><br>TDP (Tag Distribution Protocol) \u2192 this is tag-based, not label-based<br><br>LDP is based on the interface. For example:<br><br>interface GigabitEthernet0\/x<br> mpls ip<br><br><br>When configuring MPLS with OSPF, we can use:<br><br>router ospf 1<br> mpls ldp autoconfig area 0<br><br><br>We can verify the label range using:<br><br>show mpls label range 16 100000<br><br><br>By default, the minimum value is 16 and the maximum is 1048575.<br><br>For manual label range assignments:<br><br>On R1: mpls label range 100 199<br><br>On R2: mpls label range 200 299<br><br>On R3: mpls label range 300 399<br><br>On R4: mpls label range 400 499<br><br>In practice, I have not seen any service provider make such a simple classification of label ranges.<br><br>Prerequisites for enabling LDP:<br><br>CEF (Cisco Express Forwarding) must be enabled.<br><br>MPLS IP must be enabled globally.<br><br>Example configuration when enabling MPLS IP:<br><br>On R1:<br><br>interface GigabitEthernet0\/2<br> mpls ip<br><br><br>On R2 to R4:<br><br>router ospf 1<br> mpls ldp autoconfig area 0<br><br>on R1<br><br>sh mpls ldp binding local<br><br>Step #1<br><br>Each LSR, locally assigns a label to 1.1.1.1 32<br><br>on R1<br><br>sh mpls ldp binding local 1.1.1.1 32<br>imp null<br><br>on R2<br><br>sh mpls ldp binding local 1.1.1.1 32<br>200<br><br>on R3<br><br>sh mpls ldp binding local 1.1.1.1 32<br>300<br><br>on R1<br><br>sh mpls ldp binding local 1.1.1.1 32<br>400<br><br>Step #2<br><br>on R1<br>sh mpls ldp binding 1.1.1.1 32<br>L = imp_null<br>R=2.2.2.2<br><br>on R2<br>sh mpls ldp bind 1.1.1.1 32<br>L=200<br>R=R1 &#8211; implicit null<br>R =R3=300 &#8211; LLR (Liberal Label Retention)<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p>On R3<\/p>\n\n\n\n<p>sh mpls ldp bind 1.1.1.1 32<\/p>\n\n\n\n<p>L=300<\/p>\n\n\n\n<p>R=R2 &#8211; 200<\/p>\n<\/div><\/div>\n\n\n\n<p>R = R4 &#8211; 400<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p>On R4<\/p>\n\n\n\n<p>sh mpls ldp bind 1.1.1.1 32<\/p>\n\n\n\n<p>L=400<\/p>\n\n\n\n<p>R=R3 &#8211; 300<\/p>\n\n\n\n<p>Data Plane<\/p>\n\n\n\n<p>On R4<br>sh mpls forward 1.1.1.1 32<\/p>\n\n\n\n<p>Local   out<\/p>\n\n\n\n<p>400    3000     1.1.1.1\/32    34.1.1.3  gi0\/3<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>LFIB<\/p>\n\n\n\n<p>sh mpls ip bind 1.1.1.1 32<br>in = 400<\/p>\n\n\n\n<p>out = 300 &#8212; R3  in use<\/p>\n\n\n\n<p>sh ip cef 1.1.1.1<\/p>\n\n\n\n<p>NH (Next hop Ip address) = 34.1.1.3 , gi0\/3 , 300<\/p>\n\n\n\n<p>On R3<\/p>\n\n\n\n<p>sh mpls for 1.1.1.1 32<\/p>\n\n\n\n<p>Local    out <\/p>\n\n\n\n<p>300       200       1.1.1.1\/32    23.1.1.2   gi0\/2<\/p>\n<\/div><\/div>\n\n\n\n<p>sh mpls ip bind 1.1.1.1 32<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p>in = 300<\/p>\n\n\n\n<p>out = 200 &#8212;&#8211; in use<\/p>\n\n\n\n<p>out = 400<\/p>\n\n\n\n<p>sh ip cef 1.1.1.1<\/p>\n\n\n\n<p>NH = 23.1.1.2, gi0\/2 , 200<\/p>\n\n\n\n<p><br>on R2<\/p>\n\n\n\n<p>sh mpls for 1.1.1.1  32<\/p>\n\n\n\n<p>Local out<br>200   pop label       1.1.1.1\/32   12.1.1.1  gi0\/1<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>sh mpls ip bind 1.1.1.1    32<\/p>\n\n\n\n<p>in = 200<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>out = R1  imp null   &#8212; in use<\/p>\n\n\n\n<p>out = R3 &#8212;300<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Sh ip cef 1.1.1.1<\/p>\n\n\n\n<p>NH=12.1.1.1, gi0\/1 <br><br>Applications of MPLS<\/p>\n\n\n\n<p>LDP = swap + pop<\/p>\n\n\n\n<p>L3VPN =<\/p>\n<\/div><\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>MPLS Data Plane (DP) MPLS Label Fields Label Opacity When a router recieves an MPLS packet (has MPLS header), it uses the first header to determine the forwarding instructions. Any further MPLS headers are ignored (hidden) Instructions MPLS Actions Add&hellip;<\/p>\n","protected":false},"author":1,"featured_media":36,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-8","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ccie-mpls"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>M-LDP-DA-01 - TAF Study<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tafstudy.com\/?p=8\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"M-LDP-DA-01 - TAF Study\" \/>\n<meta property=\"og:description\" content=\"MPLS Data Plane (DP) MPLS Label Fields Label Opacity When a router recieves an MPLS packet (has MPLS header), it uses the first header to determine the forwarding instructions. Any further MPLS headers are ignored (hidden) Instructions MPLS Actions Add&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tafstudy.com\/?p=8\" \/>\n<meta property=\"og:site_name\" content=\"TAF Study\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-03T15:50:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-03T16:14:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/tafstudy.com\/wp-content\/uploads\/2025\/10\/MPLS-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"777\" \/>\n\t<meta property=\"og:image:height\" content=\"303\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/tafstudy.com\/?p=8\",\"url\":\"https:\/\/tafstudy.com\/?p=8\",\"name\":\"M-LDP-DA-01 - TAF Study\",\"isPartOf\":{\"@id\":\"https:\/\/tafstudy.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/tafstudy.com\/?p=8#primaryimage\"},\"image\":{\"@id\":\"https:\/\/tafstudy.com\/?p=8#primaryimage\"},\"thumbnailUrl\":\"https:\/\/tafstudy.com\/wp-content\/uploads\/2025\/10\/MPLS-1.jpg\",\"datePublished\":\"2025-10-03T15:50:37+00:00\",\"dateModified\":\"2025-10-03T16:14:28+00:00\",\"author\":{\"@id\":\"https:\/\/tafstudy.com\/#\/schema\/person\/799d380d2bda8da8a9b3151f8c6c0c3d\"},\"breadcrumb\":{\"@id\":\"https:\/\/tafstudy.com\/?p=8#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/tafstudy.com\/?p=8\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/tafstudy.com\/?p=8#primaryimage\",\"url\":\"https:\/\/tafstudy.com\/wp-content\/uploads\/2025\/10\/MPLS-1.jpg\",\"contentUrl\":\"https:\/\/tafstudy.com\/wp-content\/uploads\/2025\/10\/MPLS-1.jpg\",\"width\":777,\"height\":303},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/tafstudy.com\/?p=8#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/tafstudy.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"M-LDP-DA-01\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/tafstudy.com\/#website\",\"url\":\"https:\/\/tafstudy.com\/\",\"name\":\"TAF Study\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/tafstudy.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/tafstudy.com\/#\/schema\/person\/799d380d2bda8da8a9b3151f8c6c0c3d\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/tafstudy.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/89be0f44d7f70514baa5cb5ee6f6e1fa55f0d0f2e41faf11091f5e04ca3ff62d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/89be0f44d7f70514baa5cb5ee6f6e1fa55f0d0f2e41faf11091f5e04ca3ff62d?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/tafstudy.com\"],\"url\":\"https:\/\/tafstudy.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"M-LDP-DA-01 - TAF Study","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/tafstudy.com\/?p=8","og_locale":"en_US","og_type":"article","og_title":"M-LDP-DA-01 - TAF Study","og_description":"MPLS Data Plane (DP) MPLS Label Fields Label Opacity When a router recieves an MPLS packet (has MPLS header), it uses the first header to determine the forwarding instructions. Any further MPLS headers are ignored (hidden) Instructions MPLS Actions Add&hellip;","og_url":"https:\/\/tafstudy.com\/?p=8","og_site_name":"TAF Study","article_published_time":"2025-10-03T15:50:37+00:00","article_modified_time":"2025-10-03T16:14:28+00:00","og_image":[{"width":777,"height":303,"url":"https:\/\/tafstudy.com\/wp-content\/uploads\/2025\/10\/MPLS-1.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/tafstudy.com\/?p=8","url":"https:\/\/tafstudy.com\/?p=8","name":"M-LDP-DA-01 - TAF Study","isPartOf":{"@id":"https:\/\/tafstudy.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/tafstudy.com\/?p=8#primaryimage"},"image":{"@id":"https:\/\/tafstudy.com\/?p=8#primaryimage"},"thumbnailUrl":"https:\/\/tafstudy.com\/wp-content\/uploads\/2025\/10\/MPLS-1.jpg","datePublished":"2025-10-03T15:50:37+00:00","dateModified":"2025-10-03T16:14:28+00:00","author":{"@id":"https:\/\/tafstudy.com\/#\/schema\/person\/799d380d2bda8da8a9b3151f8c6c0c3d"},"breadcrumb":{"@id":"https:\/\/tafstudy.com\/?p=8#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tafstudy.com\/?p=8"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tafstudy.com\/?p=8#primaryimage","url":"https:\/\/tafstudy.com\/wp-content\/uploads\/2025\/10\/MPLS-1.jpg","contentUrl":"https:\/\/tafstudy.com\/wp-content\/uploads\/2025\/10\/MPLS-1.jpg","width":777,"height":303},{"@type":"BreadcrumbList","@id":"https:\/\/tafstudy.com\/?p=8#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/tafstudy.com\/"},{"@type":"ListItem","position":2,"name":"M-LDP-DA-01"}]},{"@type":"WebSite","@id":"https:\/\/tafstudy.com\/#website","url":"https:\/\/tafstudy.com\/","name":"TAF Study","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tafstudy.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/tafstudy.com\/#\/schema\/person\/799d380d2bda8da8a9b3151f8c6c0c3d","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tafstudy.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/89be0f44d7f70514baa5cb5ee6f6e1fa55f0d0f2e41faf11091f5e04ca3ff62d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/89be0f44d7f70514baa5cb5ee6f6e1fa55f0d0f2e41faf11091f5e04ca3ff62d?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/tafstudy.com"],"url":"https:\/\/tafstudy.com\/?author=1"}]}},"jetpack_featured_media_url":"https:\/\/tafstudy.com\/wp-content\/uploads\/2025\/10\/MPLS-1.jpg","_links":{"self":[{"href":"https:\/\/tafstudy.com\/index.php?rest_route=\/wp\/v2\/posts\/8","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tafstudy.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tafstudy.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tafstudy.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tafstudy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8"}],"version-history":[{"count":5,"href":"https:\/\/tafstudy.com\/index.php?rest_route=\/wp\/v2\/posts\/8\/revisions"}],"predecessor-version":[{"id":43,"href":"https:\/\/tafstudy.com\/index.php?rest_route=\/wp\/v2\/posts\/8\/revisions\/43"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tafstudy.com\/index.php?rest_route=\/wp\/v2\/media\/36"}],"wp:attachment":[{"href":"https:\/\/tafstudy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tafstudy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tafstudy.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}