Routing
Highlighted
Routing

Protocols MPLS

‎12-20-2017 12:12 PM

What exactly does configuring protocols mpls do? I've done some testing in the lab and here's what I observed:

 

LDP LSPs - Does not require protocols mpls

RSVP LSPs - Requires protocols mpls

LDP signalled VPN - Requires protocols mpls on PEs

BGP signalled L3VPN - Does not require protocols mpls

 

One of my PEs is an MX running 15.x, and other PE is an SRX running 12.x. So it's not a platform or code specific issue. Can anyone explain why protocols mpls is required for RSVP but not LDP LSPs? Why it's required for LDP signalled VPNs, but not BGP signalled L3VPN?

20 REPLIES 20
Highlighted
Routing

Re: Protocols MPLS

‎12-20-2017 12:34 PM

Hi,

 

MPLS is enabled on an interface when the interface is configured with both the set protocol mpls interface interface-name and set interface interface-name unit 0 family mpls statements.

 

[KUDOS PLEASE! If you think I earned it!

If this solution worked for you please flag my post as an "Accepted Solution" so others can benefit..]

Highlighted
Routing

Re: Protocols MPLS

‎12-20-2017 12:48 PM

Thanks for the reply, although it's not exactly what I was looking for.

 

Why can I run L3VPNs over LDP LSPs without "protocols mpls interface x" configured on any router?

Highlighted
Routing

Re: Protocols MPLS

‎12-20-2017 12:58 PM
Hi,

You don’t always need “protocol mpls” but it’s a good practice to have it configured on the box.

Family mpls is enough to enable the mpls encapsulation on the interface. You will need MPLS for RSVP LSP or 6vPE (ipv6-tunneling) because it’s configured under protocol mpls

HTH
Highlighted
Routing

Re: Protocols MPLS

‎12-20-2017 02:01 PM

If family mpls is enough to enable mpls encapsulation on the interface, why do I also need "protocols mpls interface x" when creating RSVP LSPs. I tried just family mpls on the interface and a simple "protocols mpls label-switched-path...", but it doesn't work without "protocols mpls interface x". I noticed that it affects the TED entry so a CSPF calculation fails. When I turn off CSPF, it results in a label allocation failure.

 

Why does a martini circuit and a CCC require "protocols mpls"? You get a commit error if you don't have "protocols mpls" configured. But an L3VPN works fine without it.

 

A JNCIE once told me that "family mpls" allows for the acceptance of etherype 0x8847 and 0x8848 on the interface, and "protocols mpls interface" enables mpls for that interface. That sounded reasonable, but it wasn't accurate based on my lab testing. I just want to know what it actually does and why is the behavior different across MPLS transport and VPNs.

Highlighted
Routing

Re: Protocols MPLS

‎12-21-2017 12:49 AM

you need protocol mpls for communication using either RSVP and /or pseudowires ( l2vpn,VPLS)

[pseudowires are kind of stateful connections between PEs]

you do NOT ned it for LDP and for any communication not using pseudowire circuits ( like L3VPN and EVPN)

 

regards

 

alexander

Highlighted
Routing

Re: Protocols MPLS

‎12-21-2017 09:16 AM

I'm not asking when you need it or where you need it. I'm asking why you need it. Why is it necessary for some but not others? What's the actual reasoning behind it.

Highlighted
Routing

Re: Protocols MPLS

‎12-22-2017 02:45 AM
As per my Understanding, this is because of what signaling method is being used.

RSVP need to signal the LSP so it need the interface which is MPLS enabled same is for l2circuit.

For L3VPN and L2VPN, BGP is used for the signaling so protocol mpls is not needed. Only family mpls is enough to handle labeled packets.

HTH
Highlighted
Routing

Re: Protocols MPLS

‎12-22-2017 07:45 AM

So why doesn't LDP LSPs need "protocols mpls" configured?

 

An L3VPN will actually exchange labels without both protocols mpls and family mpls. Configuring family mpls is only a requirement for sginaling LSPs. Of course without valid LSPs, the VPN IPv4 prefixes become hidden but the label exchange still occurs.

Highlighted
Routing

Re: Protocols MPLS

[ Edited ]
‎12-22-2017 08:21 PM

I was talking about PW signaling. LDP will assign and distribute transport label without protocol mpls.

 

And for L3VPN, VPN labels are exchanged via BGP that's the reason VPN label will be advertised even if you don't configure protocol mpls and family mpls.

Highlighted
Routing

Re: Protocols MPLS

‎12-23-2017 06:49 AM

Hi Folks,

Just my 2 cents on this…

 

I could recollect on enabling the protocol mpls on the box, Junos creates the mpls.0 routing table and places three entries in it. Let me do some lab testings to further comment on this…

 

By default,

 

labroot@R1> show route table ?

Possible completions:

  <table>              Name of routing table

  inet.0              

  inet6.0             

labroot@R1>

 

On configuring protocol mpls,

 

 [edit]

labroot@R1# set protocols mpls interface all

 

[edit]

labroot@R1# commit and-quit

commit complete

Exiting configuration mode

 

labroot@R1> show route protocol mpls

 

inet.0: 42 destinations, 42 routes (42 active, 0 holddown, 0 hidden)

 

mpls.0: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden)

+ = Active Route, - = Last Active, * = Both

 

0                  *[MPLS/0] 00:00:04, metric 1

                      Receive

1                  *[MPLS/0] 00:00:04, metric 1

                      Receive

2                  *[MPLS/0] 00:00:04, metric 1

                      Receive

13                 *[MPLS/0] 00:00:04, metric 1

                      Receive

 

inet6.0: 22 destinations, 24 routes (22 active, 0 holddown, 0 hidden)

 

labroot@R1>

 

 

-Python JNCIE 3X [SP|DC|ENT] JNCIP-SEC JNCDS 3X [ WAN | DC|SEC] JNCIS-Cloud JNCIS-DevOps CCIP ITIL
#Please mark my solution as accepted if it helped, Kudos are appreciated as well.
Highlighted
Routing

Re: Protocols MPLS

[ Edited ]
‎12-23-2017 07:28 AM

Well, mpls.0 table will still be there even if you don’t enable protocol mpls. And those 4 route will be installed in a table if you just configure protocol mpls (without configuring interfaces)

Highlighted
Routing

Re: Protocols MPLS

‎12-23-2017 10:01 AM

Hi Kingsman,

I have tested the behaviour in legacy Junos [12.3] and mpls.0 table will not be there by default and it gets built on enabling the protocol mpls.

Let me do some lab testing and share the findings. 

-Python JNCIE 3X [SP|DC|ENT] JNCIP-SEC JNCDS 3X [ WAN | DC|SEC] JNCIS-Cloud JNCIS-DevOps CCIP ITIL
#Please mark my solution as accepted if it helped, Kudos are appreciated as well.
Highlighted
Routing

Re: Protocols MPLS

[ Edited ]
‎12-23-2017 10:19 AM

I have tested this in both 12.3 and 17.4 and I found the same behavior ☺

 

[edit]
root@R1# show protocols mpls

[edit]
root@R1# run show route table mpls.0

mpls.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden)
Restart Complete
+ = Active Route, - = Last Active, * = Both

16 *[VPN/0] 1w1d 00:04:54
to table test5.inet.0, Pop
17 *[VPN/0] 1w1d 00:04:54
to table test4.inet.0, Pop
18 *[VPN/0] 1w1d 00:04:54
to table test3.inet.0, Pop
19 *[VPN/0] 1w1d 00:04:54
to table test2.inet.0, Pop
20 *[VPN/0] 1w1d 00:04:54
to table test1.0, Pop
310528 *[LDP/9] 00:00:10, metric 1
> to 10.0.1.6 via ge-1/0/0.0, Pop
310528(S=0) *[LDP/9] 00:00:10, metric 1
> to 10.0.1.6 via ge-1/0/0.0, Pop
310544 *[LDP/9] 00:00:10, metric 1
> to 10.0.1.6 via ge-1/0/0.0, Swap 300080

[edit]
root@R1# run show version
Hostname: R1
Model: XXXXXX
JUNOS Crypto Software Suite [12.3X54-D31]
JUNOS Base OS Software Suite [12.3X54-D31]
JUNOS Kernel Software Suite [12.3X54-D31]

Highlighted
Routing

Re: Protocols MPLS

‎12-23-2017 10:07 PM

Surprisingly I do find different behavior in my DUT… by default I don’t find the mpls.0 in 12.3R8.7

 

--- JUNOS 12.3R8.7 built 2014-09-19 15:52:00 UTC

labroot@jtac-MX10-r2004> show configuration protocols mpls

 

labroot@jtac-MX10-r2004> show route table mpls.0

 

labroot@jtac-MX10-r2004> edit

Entering configuration mode

 

[edit]

labroot@jtac-MX10-r2004# set protocols mpls

                                            ^

missing argument.

 

[edit]

labroot@jtac-MX10-r2004# set protocols mpls interface ?

Possible completions:

  <interface_name>     Interface name

[edit]

labroot@jtac-MX10-r2004# set protocols mpls interface all

 

[edit]

labroot@jtac-MX10-r2004# commit and-quit

commit complete

Exiting configuration mode

 

labroot@jtac-MX10-r2004> show route table mpls.0   

 

mpls.0: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden)

+ = Active Route, - = Last Active, * = Both

 

0                  *[MPLS/0] 00:00:02, metric 1

                      Receive

1                  *[MPLS/0] 00:00:02, metric 1

                      Receive

2                  *[MPLS/0] 00:00:02, metric 1

                      Receive

13                 *[MPLS/0] 00:00:02, metric 1

                      Receive

 

labroot@jtac-MX10-r2004> show version

Hostname: jtac-MX10-r2004

Model: mx10-t

JUNOS Base OS boot [12.3R8.7]

JUNOS Base OS Software Suite [12.3R8.7]

JUNOS Kernel Software Suite [12.3R8.7]

JUNOS Crypto Software Suite [12.3R8.7]

JUNOS Packet Forwarding Engine Support (MX80) [12.3R8.7]

JUNOS Online Documentation [12.3R8.7]

JUNOS Routing Software Suite [12.3R8.7]

 

labroot@jtac-MX10-r2004>

 

-Python JNCIE 3X [SP|DC|ENT] JNCIP-SEC JNCDS 3X [ WAN | DC|SEC] JNCIS-Cloud JNCIS-DevOps CCIP ITIL
#Please mark my solution as accepted if it helped, Kudos are appreciated as well.
Highlighted
Routing

Re: Protocols MPLS

‎12-23-2017 10:13 PM

Kingsman... To add, we don’t find these Explicit/Implicit Null labels in your box [as below]; this makes the difference…

 

Value Description

0     IPv4 Explicit NULL Label     

1     Router Alert Label     

2     IPv6 Explicit NULL Label     

3     Implicit NULL Label    

 

-Python JNCIE 3X [SP|DC|ENT] JNCIP-SEC JNCDS 3X [ WAN | DC|SEC] JNCIS-Cloud JNCIS-DevOps CCIP ITIL
#Please mark my solution as accepted if it helped, Kudos are appreciated as well.
Highlighted
Routing

Re: Protocols MPLS

‎12-23-2017 10:30 PM
Yeah. Others are LDP labels. You can enable LDP and deactivate MPLS in your DUT and check.
Highlighted
Routing

Re: Protocols MPLS

[ Edited ]
‎12-23-2017 10:33 PM

Also, The 4th defaults label is 13

Highlighted
Routing

Re: Protocols MPLS

‎12-24-2017 10:36 AM

Hi Folks,

I managed to get the documentation on this … JNCIA Study Guide by Joseph M. Soricelli.

 

 

MPLS Implementation 495, Configuring the Protocol

-Python JNCIE 3X [SP|DC|ENT] JNCIP-SEC JNCDS 3X [ WAN | DC|SEC] JNCIS-Cloud JNCIS-DevOps CCIP ITIL
#Please mark my solution as accepted if it helped, Kudos are appreciated as well.
Highlighted
Routing

Re: Protocols MPLS

[ Edited ]
‎12-24-2017 11:03 AM

 

Hi Folks,

I have made a small setup and could find, in the absence of configuration “protocol mpls” with rsvp; the mpls.0 table is not created. While with in the absence of configuration “protocol mpls” with ldp; the mpls.0 table is still present. This makes the difference why ldp works and rsvp does not.

 

The rsvp LSP will not come up on the absence of the configuration.

 

To add, the only difference [with protocol mpls/without protocol mpls] + ldp config is, in the absence of ‘protocol mpls’, label 0,1,2,13 are not present. This behavior is hardcoded in Junos.

 

 

+---------------------------+----------------------------------------------------+--------------+
|  r0 lo0.100 192.168.1.100 |             Loop Cable: 1                          | MPLS CLOUD   |
|  r1 lo0.101 192.168.1.101 |                  RR                                | IGP-OSPF     |
|  r2 lo0.102 192.168.1.102 |                +-----+                             | MPLS-RSVP-LSP|
|  r3 lo0.103 192.168.1.103 |           I2.24| R4  | I1.43                       +--------------+
|  r4 lo0.104 192.168.1.104 |           +----+ P3  +----+                                       |
|  r5 lo0.105 192.168.1.105 |           |    +-----+    |                                       |
|  r6 lo0.106 192.168.1.106 |           |               |                                       |
|  r7 lo0.107 192.168.1.107 |           |    AS 100     |                                       |
+---------------------------+           |               |                                       |
|                                 I1.24 |               | I2.43                                 |
|    +-----+I1.1     +-----+         +--+--+I1.23    +--+--+         +-----+I1.56    +-----+    |
|    | R0  +---------+ R1  |I1.12    | R2  +---------+ R3  |I1.35    | R5  +---------+ R6  |    |
|    | CE1 |     I2.1| PE1 +---------+ P1  |         | P2  +---------+ PE2 |    I2.56| CE2 |    |
|    +-----+         +-----+    I2.12+--+--+    I2.23+--+--+    I2.35+-----+         +-----+    |
|   AS 64512                            |I1.27          | I2.73                     AS 64512    |
|        <----ebgp----->                |               |                <----ebgp----->        |
|                                       |      RR       |                                       |
|                                       |    +-----+    |                                       |
|                                       |    | R7  |    |                                       |
|                                       +----+ P4  +----+                                       |
|                                     I2.27  +-----+ I1.73                                      |
|                                                                                               |
+-----------------------------------------------------------------------------------------------+
|       Template  -  MPLS L3VPN - IGP-OSPF # MPLS RSVP LSP # PE-CE Protocol BGP  # DUAL RR      |
+-----------------------------------------------------------------------------------------------+

 

 

labroot@re0_re0:r3> show mpls lsp

Ingress LSP: 0 sessions

Total 0 displayed, Up 0, Down 0

 

Egress LSP: 0 sessions

Total 0 displayed, Up 0, Down 0

 

Transit LSP: 6 sessions

To              From            State   Rt Style Labelin Labelout LSPname

192.168.1.101   192.168.1.105   Up       0  1 FF  299856   299856 r5-to-r1

192.168.1.104   192.168.1.105   Up       0  1 FF  299808        3 r5-to-r4

192.168.1.105   192.168.1.104   Up       0  1 FF  299776        3 r4-to-r5

192.168.1.105   192.168.1.107   Up       0  1 FF  299824        3 r7-to-r5

192.168.1.105   192.168.1.101   Up       0  1 FF  299792        3 r1-to-r5

192.168.1.107   192.168.1.105   Up       0  1 FF  299840        3 r5-to-r7

Total 6 displayed, Up 6, Down 0

 

labroot@re0_re0:r3> show configuration protocols mpls

interface ge-0/0/1.23;

interface ge-0/0/1.43;

interface ge-0/0/0.35;

interface ge-0/0/1.73;

 

labroot@re0_re0:r3> edit

Entering configuration mode

 

[edit]

labroot@re0_re0:r3# deactivate protocols mpls

 

[edit]

labroot@re0_re0:r3# commit and-quit

commit complete

Exiting configuration mode

 

labroot@re0_re0:r3> show route table mpls.0 label 299792 extensive   

 

labroot@re0_re0:r3> show route table mpls.0                           

 

labroot@re0_re0:r3> show mpls lsp                                    

MPLS not configured

 

labroot@re0_re0:r3> show version

Hostname: re0_re0

Model: mx240

Junos: 14.2R5.8

JUNOS Base OS Software Suite [14.2R5.8]

JUNOS Base OS boot [14.2R5.8]

JUNOS Online Documentation [14.2R5.8]

JUNOS Crypto Software Suite [14.2R5.8]

JUNOS platform Software Suite [14.2R5.8]

JUNOS 64-bit Kernel Software Suite [14.2R5.8]

JUNOS Routing Software Suite [14.2R5.8]

JUNOS Runtime Software Suite [14.2R5.8]

JUNOS 64-bit Runtime Software Suite [14.2R5.8]

JUNOS Services AACL PIC package [14.2R5.8]

JUNOS Services AppId PIC package (xlr64) [14.2R5.8]

JUNOS AppId Services PIC Package [14.2R5.8]

JUNOS Services Application Level Gateway (xlr64) [14.2R5.8]

JUNOS Services Application Level Gateway (xlp64) [14.2R5.8]

JUNOS Services Application Level Gateway [14.2R5.8]

JUNOS Services HTTP Content Management PIC package (xlr64) [14.2R5.8]

JUNOS Services HTTP Content Management PIC package [14.2R5.8]

JUNOS Services Captive Portal and Content Delivery PIC package [14.2R5.8]

JUNOS Border Gateway Function PIC package [14.2R5.8]

JUNOS Services LL-PDF PIC package [14.2R5.8]

JUNOS Services JFLOW PIC package (xlp64) [14.2R5.8]

JUNOS Services JFLOW PIC package [14.2R5.8]

JUNOS IDP Services PIC Package [14.2R5.8]

JUNOS Services Mobile Subscriber Service Container package [14.2R5.8]

JUNOS MobileNext PIC package (xlr64) [14.2R5.8]

JUNOS MobileNext PIC package [14.2R5.8]

JUNOS Services PTSP PIC package [14.2R5.8]

JUNOS Services NAT PIC package (xlr64) [14.2R5.8]

JUNOS Services NAT PIC package (xlp64) [14.2R5.8]

JUNOS Services NAT PIC package [14.2R5.8]

JUNOS Services Mobile Subscriber Service PIC package (xlr64) [14.2R5.8]

JUNOS Services Stateful Firewall PIC package (xlr64) [14.2R5.8]

JUNOS Services Stateful Firewall PIC package (xlp64) [14.2R5.8]

JUNOS Services Stateful Firewall PIC package [14.2R5.8]

JUNOS Services RPM PIC package (xlp64) [14.2R5.8]

JUNOS Services RPM PIC package [14.2R5.8]

JUNOS BSG PIC package [14.2R5.8]

JUNOS Services Crypto Base PIC package(xlr64) [14.2R5.8]

JUNOS Services Crypto Base PIC package [14.2R5.8]

JUNOS Services Crypto Base PIC package [14.2R5.8]

JUNOS Services SSL PIC package [14.2R5.8]

JUNOS Services IPSec PIC(xlr64) package [14.2R5.8]

JUNOS Services IPSec PIC package [14.2R5.8]

JUNOS Services IPSec PIC package [14.2R5.8]

JUNOS Packet Forwarding Engine Trio Simulation Package [14.2R5.8]

 

labroot@re0_re0:r3> show mpls lsp

MPLS not configured

 

labroot@re0_re0:r3> show configuration protocols mpls

##

## inactive: logical-systems r3 protocols mpls

##

interface ge-0/0/1.23;

interface ge-0/0/1.43;

interface ge-0/0/0.35;

interface ge-0/0/1.73;

 

labroot@re0_re0:r3>

 

labroot@re0_re0:r1> show mpls lsp name r1-to-r5 extensive

Ingress LSP: 3 sessions

 

192.168.1.105

  From: 192.168.1.101, State: Dn, ActiveRoute: 0, LSPname: r1-to-r5

  ActivePath: (none)

  LSPtype: Static Configured, Penultimate hop popping

  LoadBalance: Random

  Encoding type: Packet, Switching type: Packet, GPID: IPv4

  Primary                    State: Dn

    Priorities: 7 0

    SmartOptimizeTimer: 180

    Will be enqueued for recomputation in 9 second(s).

   14 Dec 24 10:44:52.849 CSPF failed: no route toward 192.168.1.105

   13 Dec 24 10:44:52.849 Clear Call: CSPF computation failed

   12 Dec 24 10:44:52.849 CSPF: link down/deleted: 1.1.35.1(192.168.1.103:0)(192.168.1.103)->0.0.0.0(1.1.35.2:0)(1.1.35.2)

   11 Dec 24 10:44:52.826 Deselected as active

   10 Dec 24 10:44:52.826 ResvTear received

    9 Dec 24 10:44:52.826 1.1.12.1: Down

    8 Dec 24 10:44:52.824 1.1.35.1: MPLS label allocation failure

    7 Dec 24 10:44:52.824 CSPF failed: no route toward 192.168.1.105

    6 Dec 24 10:44:52.824 1.1.73.2: MPLS label allocation failure

    5 Dec 24 10:33:27.745 Selected as active path

    4 Dec 24 10:33:27.728 Record Route:  1.1.12.2 1.1.27.2 1.1.73.2 1.1.35.2

    3 Dec 24 10:33:27.728 Up

    2 Dec 24 10:33:27.475 Originate Call

    1 Dec 24 10:33:27.475 CSPF: computation result accepted  1.1.12.2 1.1.27.2 1.1.73.2 1.1.35.2

  Created: Sun Dec 24 10:32:28 2017

Total 1 displayed, Up 0, Down 1

 

Egress LSP: 2 sessions

Total 0 displayed, Up 0, Down 0

 

Transit LSP: 0 sessions

Total 0 displayed, Up 0, Down 0

 

labroot@re0_re0:r1>

-Python JNCIE 3X [SP|DC|ENT] JNCIP-SEC JNCDS 3X [ WAN | DC|SEC] JNCIS-Cloud JNCIS-DevOps CCIP ITIL
#Please mark my solution as accepted if it helped, Kudos are appreciated as well.