Difference between revisions of "Manual:MPLS"

From MikroTik Wiki
Jump to: navigation, search
m (General Properties)
 
(15 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
==Sub Categories==
 +
 +
{{ycgu-cooltable-3
 +
|title-left='''List of reference sub-pages'''
 +
|title-center='''Case studies'''
 +
|title-right='''List of examples'''
 +
|content-left=
 +
 +
* '''Interface'''
 +
**[[M:Interface/VPLS | vpls ]]
 +
**[[M:Interface/Traffic_Engineering | traffic-eng]]
 +
 +
* '''MPLS'''
 +
**[[M:MPLS/LDP | ldp ]]
 +
**[[M:MPLS/Traffic_Eng | traffic-eng]]
 +
 +
 +
|content-center=
 +
'''General'''
 +
* [[M:MPLS/Overview|MPLS Overview and RouterOS MPLS Implementation Status]]
 +
* [[M:MPLS/EXP bit behaviour | EXP bit behaviour]]
 +
* [[M:Maximum_Transmission_Unit_on_RouterBoards#MPLS.2FLayer-2.5.2FL2.5_MTU|L2MTU]]
 +
 +
 +
'''Layer2 VPN'''
 +
* [[M:MPLSVPLS|LDP and LDP based VPLS]]
 +
* [[M:BGP_based_VPLS|BGP based VPLS]]
 +
* [[M:Cisco_VPLS|Cisco style VPLS]]
 +
* [[M:VPLS_Control_Word|VPLS Control Word]]
 +
 +
 +
'''Layer3 VPN'''
 +
* [[M:Virtual Routing and Forwarding | Virtual Routing and Forwarding (VRF)]]
 +
* [[M:OSPF as PE-CE routing protocol | OSPF as PE-CE routing protocol]]
 +
* [[M:EBGP as PE-CE routing protocol | EBGP as PE-CE routing protocol]]
 +
 +
 +
'''Traffic Engineering'''
 +
* [[M:TE_Tunnels|TE Tunnels]]
 +
* [[M:TE_tunnel_auto_bandwidth|TE Tunnel Bandwidth Control]]
 +
 +
 +
 +
|content-right=
 +
'''General'''
 +
* [[M:MPLS over PPPoE | MPLS over PPPoE]]
 +
 +
 +
'''Layer2 VPN'''
 +
* [[Manual:MPLS_L2VPN_vs_Juniper | P2P L2VPN to Juniper router]]
 +
 +
 +
'''Layer3 VPN'''
 +
* [[M:Layer-3 MPLS VPN example|A complete Layer-3 MPLS VPN example]]
 +
* [[VRF_Route_Leaking|VRF Route Leaking]]
 +
* [[M:Internet access from VRF|Internet access from VRF]]
 +
* [[M:Internet access from VRF with NAT|Internet access from VRF with NAT]]
 +
 +
 +
'''Traffic Engineering'''
 +
* [[M:Simple_TE | Simple TE configuration]]
 +
* [[M:TE Tunnels Example | TE tunnels for VPLS]]
 +
 +
}}
 +
 +
==Summary==
 +
 
'''[http://mikrotik.com/software.html MikroTik RouterOS] supports MPLS.  
 
'''[http://mikrotik.com/software.html MikroTik RouterOS] supports MPLS.  
The below articles describe what it is and how it operates in RouterOS.  
+
All [http://routerboard.com MikroTik RouterBOARD] hardware products support MPLS.'''
  
All [http://routerboard.com MikroTik RouterBOARD] hardware products support MPLS.'''  
+
==General Properties==
 +
 
 +
{{Mr-arg-table-h
 +
|prop=Property
 +
|desc=Description
 +
}}
 +
 
 +
{{Mr-arg-table
 +
|arg=dynamic-label-range
 +
|type=range of integer[16..1048575]
 +
|default=16-1048575
 +
|desc=Range of Label numbers used for dynamic allocation. First 16 labels are reserved for special purposes (as defined in RFC). If you intend to configure labels statically then adjust dynamic default range not to include numbers that will be used in static configuration.
 +
}}
 +
 
 +
{{Mr-arg-table-end
 +
|arg=propagate-ttl
 +
|type=yes {{!}} no
 +
|default=yes
 +
|desc=Whether to copy TTL values from IP header to MPLS header. If this option is set to '''no''' then hops inside MPLS cloud will be invisible from traceroutes.
 +
}}
 +
 
 +
==Forwarding Table==
 +
<p id="shbox"><b>Sub-menu:</b> <code>/mpls forwarding-table</code></p>
 +
 
 +
 
 +
Entries in this sub-menu shows label bindings for specific routes that will be used in MPLS label switching. Properties in this menu are read-only
 +
 
 +
 
 +
{{Mr-arg-table-h
 +
|prop=Property
 +
|desc=Description
 +
}}
 +
 
 +
{{Mr-arg-ro-table
 +
|arg=bytes
 +
|type=integer
 +
|desc=Total number of packet bytes matched by this entry
 +
}}
 +
 
 +
{{Mr-arg-ro-table
 +
|arg=destination
 +
|type=IP/Mask
 +
|desc=Destination prefix for which labels are assigned
 +
}}
 +
 
 +
 
 +
{{Mr-arg-ro-table
 +
|arg=in-label
 +
|type=integer
 +
|desc=Label number for incoming packet
 +
}}
 +
 
 +
{{Mr-arg-ro-table
 +
|arg=interface
 +
|type=string
 +
|desc=
 +
}}
 +
 
 +
{{Mr-arg-ro-table
 +
|arg=ldp
 +
|type=yes {{!}} no
 +
|desc=Whether labels are [[M:MPLS/LDP | LDP]] signaled
 +
}}
 +
 
 +
{{Mr-arg-ro-table
 +
|arg=nexthop
 +
|type=IP
 +
|desc=IP address of the nexthop
 +
}}
 +
 
 +
{{Mr-arg-ro-table
 +
|arg=out-label
 +
|type=integer
 +
|desc=Label number which is added or switched to for outgoing packet.
 +
}}
 +
 
 +
{{Mr-arg-ro-table
 +
|arg=packets
 +
|type=integer
 +
|desc=Number of packets matched by this entry
 +
}}
 +
 
 +
{{Mr-arg-ro-table
 +
|arg=traffic-eng
 +
|type=yes {{!}} no
 +
|desc=Shows whether entry is signaled by RSVP-TE (Traffic Engineering)
 +
}}
 +
 
 +
{{Mr-arg-ro-table-end
 +
|arg=vpls
 +
|type=yes {{!}} no
 +
|desc=Shows whether entry is used for [[M:MPLSVPLS | VPLS]] tunnels.
 +
}}
 +
 
 +
 
 +
For example we have forwarding table as shown below.
 +
<pre>
 +
[admin@RB493G] /mpls forwarding-table> print
 +
Flags: L - ldp, V - vpls, T - traffic-eng
 +
#  IN-LABEL      OUT-LABELS  DESTINATION                    IN NEXTHOP       
 +
0  expl-null   
 +
1 L 105                        10.255.255.36/32              lo 10.5.101.36   
 +
2 L 120          112          3.3.3.1/32                    lo 10.5.101.3   
 +
3 L 121          113          3.3.3.2/32                    lo 10.5.101.3   
 +
[admin@RB493G] /mpls forwarding-table>
 +
</pre>
 +
 
 +
You can see that all labels are LDP signaled. Note that for entry #1 there is no out-label, it means that MPLS label switching will not occur, packet will be sent out as regular IP packet. In the other hand entry #2 has in-label and out-label, which means that during packet forwarding label will be switched from 120 to 112.
 +
 
 +
==Interface==
 +
<p id="shbox"><b>Sub-menu:</b> <code>/mpls interface</code></p>
 +
 
 +
 
 +
This menu allows to configure MTUs including MPLS headers that interface can forward without fragmentation.
 +
 
 +
{{Note| If Ethernet card does not support Jumbo frames, then MPLS MTU for all interfaces on all devices participating in LSP should be set to 1500}}
 +
 
 +
'''Properties'''
 +
{{Mr-arg-table-h
 +
|prop=Property
 +
|desc=Description
 +
}}
 +
 
 +
{{Mr-arg-table
 +
|arg=comment
 +
|type=string
 +
|default=
 +
|desc=Short description of the interface
 +
}}
 +
 
 +
{{Mr-arg-table
 +
|arg=disabled
 +
|type=yes {{!}} no
 +
|default=no
 +
|desc=If set to '''yes''' then this configuration is ignored.
 +
}}
 +
 
 +
{{Mr-arg-table
 +
|arg=interface
 +
|type=string {{!}} all
 +
|default=all
 +
|desc=Interface name to which apply settings. If set to '''all''' then the same config will be used for every interface if there is no specific configuration for the interface.
 +
}}
 +
 
 +
{{Mr-arg-table-end
 +
|arg=mpls-mtu
 +
|type=integer [512..65535]
 +
|default=1508
 +
|desc=Option represents how big packets can be carried over the interface with added MPLS labels. [[ Manual:Maximum_Transmission_Unit_on_RouterBoards#MPLS.2FLayer-2.5.2FL2.5_MTU | <code>Read More >></code>]]
 +
}}
 +
 
 +
 
 +
In RouterOS by default have entry which sets MS MTU to 1508 for all interfaces.
 +
<pre>
 +
[admin@RB493G] /mpls interface> print
 +
Flags: X - disabled
 +
#  INTERFACE                                                          MPLS-MTU
 +
0  all                                                                    1508
 +
</pre>
 +
 
 +
==Local Bindings==
 +
<p id="shbox"><b>Sub-menu:</b> <code>/mpls local-bindings</code></p>
 +
 
 +
 
 +
This sub-menu shows labels bound to the routes locally in the router. In this menu also static bindings can be configured if there is no intention to use any of dynamic protocols (like LDP).
 +
 
 +
 
 +
'''Properties'''
 +
 
 +
{{Mr-arg-table-h
 +
|prop=Property
 +
|desc=Description
 +
}}
 +
 
 +
{{Mr-arg-table
 +
|arg=comments
 +
|type=string
 +
|default=
 +
|desc=Short description of the entry
 +
}}
 +
 
 +
{{Mr-arg-table
 +
|arg=disabled
 +
|type=yes {{!}} no
 +
|default=no
 +
|desc=
 +
}}
 +
 
 +
{{Mr-arg-table
 +
|arg=dst-address
 +
|type=IP/Mask
 +
|default=
 +
|desc=Destination prefix for which label is assigned
 +
}}
 +
 
 +
{{Mr-arg-table-end
 +
|arg=label
 +
|type=integer[0..1048576] {{!}} alert {{!}} expl-null {{!}} expl-null6 {{!}} impl-null {{!}} none
 +
|default=
 +
|desc=Label number assigned to destination.
 +
}}
 +
 
 +
 
 +
'''Read-only Properties'''
 +
{{Mr-arg-table-h
 +
|prop=Property
 +
|desc=Description
 +
}}
 +
 
 +
{{Mr-arg-ro-table
 +
|arg=adv-path
 +
|type=
 +
|desc=
 +
}}
 +
 
 +
 
 +
{{Mr-arg-ro-table
 +
|arg=advertised
 +
|type=yes {{!}} no
 +
|desc=Whether binding was advertised to the neigbors
 +
}}
 +
 
 +
 
 +
{{Mr-arg-ro-table
 +
|arg=dynamic
 +
|type=yes {{!}} no
 +
|desc=Whether entry was dynamically added
 +
}}
 +
 
 +
 
 +
{{Mr-arg-ro-table
 +
|arg=egress
 +
|type=yes {{!}} no
 +
|desc=
 +
}}
 +
 
 +
 
 +
{{Mr-arg-ro-table
 +
|arg=gateway-route
 +
|type=yes {{!}} no
 +
|desc=Whether destination is reachable through the gateway.
 +
}}
 +
 
 +
 
 +
{{Mr-arg-ro-table
 +
|arg=local-route
 +
|type=yes {{!}} no
 +
|desc=Whether destination is locally reachable on the router
 +
}}
  
[[File:Routerboard-banner.gif|link=http://www.routerboard.com/index.php?showProduct=56]]
 
  
==== General Information ====
+
{{Mr-arg-ro-table-end
 +
|arg=peers
 +
|type=IP:label_space
 +
|desc=IP address and label space of the peer to which this entry was advertised.
 +
}}
  
* [[MPLS_Overview|MPLS Overview and RouterOS MPLS Implementation Status]]
+
==Remote Bindings==
* [[EXP bit behaviour]]
+
<p id="shbox"><b>Sub-menu:</b> <code>/mpls remote-bindings</code></p>
* [[MPLS_TE_Tunnels|TE Tunnels]]
 
* [[TE_tunnel_auto_bandwidth|TE Tunnel Bandwidth Control]]
 
* [[MPLS Lab Setup]]
 
  
==== Layer-2 VPN ====
 
* [[MPLSVPLS|LDP and LDP based VPLS]]
 
* [[BGP_based_VPLS|BGP based VPLS]]
 
* [[Cisco_VPLS|Cisco style VPLS]]
 
  
==== Layer-3 VPN ====
+
Sub-menu shows label bindings for routes received from other routers. This table is used to build [[#Forwarding Table | Forwarding Table]]
* [[Virtual Routing and Forwarding]]
 
* [[A complete Layer-3 MPLS VPN example]]
 
* [[OSPF as PE-CE routing protocol]]
 
* [[EBGP as PE-CE routing protocol]]
 
* [[Internet access from VRF with NAT]]
 
* [[Internet access from VRF]]
 
* [[VRF_Route_Leaking|VRF Route Leaking]]
 
  
==== Other articles related to MPLS ====
 
  
* [[Maximum_Transmission_Unit_on_RouterBoards#MPLS.2FLayer-2.5.2FL2.5_MTU|L2MTU]]
+
{{cont}}
  
 
[[Category:Manual]]
 
[[Category:Manual]]
 
[[Category:Internetworking]]
 
[[Category:Internetworking]]
 +
[[Category:MPLS]]

Latest revision as of 10:47, 6 December 2018

Sub Categories

List of reference sub-pages

Case studies

List of examples

General


Layer2 VPN


Layer3 VPN


Traffic Engineering

General


Layer2 VPN


Layer3 VPN


Traffic Engineering

Summary

MikroTik RouterOS supports MPLS. All MikroTik RouterBOARD hardware products support MPLS.

General Properties

Property Description
dynamic-label-range (range of integer[16..1048575]; Default: 16-1048575) Range of Label numbers used for dynamic allocation. First 16 labels are reserved for special purposes (as defined in RFC). If you intend to configure labels statically then adjust dynamic default range not to include numbers that will be used in static configuration.
propagate-ttl (yes | no; Default: yes) Whether to copy TTL values from IP header to MPLS header. If this option is set to no then hops inside MPLS cloud will be invisible from traceroutes.

Forwarding Table

Sub-menu: /mpls forwarding-table


Entries in this sub-menu shows label bindings for specific routes that will be used in MPLS label switching. Properties in this menu are read-only


Property Description
bytes (integer) Total number of packet bytes matched by this entry
destination (IP/Mask) Destination prefix for which labels are assigned
in-label (integer) Label number for incoming packet
interface (string)
ldp (yes | no) Whether labels are LDP signaled
nexthop (IP) IP address of the nexthop
out-label (integer) Label number which is added or switched to for outgoing packet.
packets (integer) Number of packets matched by this entry
traffic-eng (yes | no) Shows whether entry is signaled by RSVP-TE (Traffic Engineering)
vpls (yes | no) Shows whether entry is used for VPLS tunnels.


For example we have forwarding table as shown below.

[admin@RB493G] /mpls forwarding-table> print 
Flags: L - ldp, V - vpls, T - traffic-eng 
 #   IN-LABEL      OUT-LABELS   DESTINATION                    IN NEXTHOP        
 0   expl-null    
 1 L 105                        10.255.255.36/32               lo 10.5.101.36    
 2 L 120           112          3.3.3.1/32                     lo 10.5.101.3     
 3 L 121           113          3.3.3.2/32                     lo 10.5.101.3     
[admin@RB493G] /mpls forwarding-table> 

You can see that all labels are LDP signaled. Note that for entry #1 there is no out-label, it means that MPLS label switching will not occur, packet will be sent out as regular IP packet. In the other hand entry #2 has in-label and out-label, which means that during packet forwarding label will be switched from 120 to 112.

Interface

Sub-menu: /mpls interface


This menu allows to configure MTUs including MPLS headers that interface can forward without fragmentation.

Icon-note.png

Note: If Ethernet card does not support Jumbo frames, then MPLS MTU for all interfaces on all devices participating in LSP should be set to 1500


Properties

Property Description
comment (string; Default: ) Short description of the interface
disabled (yes | no; Default: no) If set to yes then this configuration is ignored.
interface (string | all; Default: all) Interface name to which apply settings. If set to all then the same config will be used for every interface if there is no specific configuration for the interface.
mpls-mtu (integer [512..65535]; Default: 1508) Option represents how big packets can be carried over the interface with added MPLS labels. Read More >>


In RouterOS by default have entry which sets MS MTU to 1508 for all interfaces.

[admin@RB493G] /mpls interface> print 
Flags: X - disabled 
 #   INTERFACE                                                           MPLS-MTU
 0   all                                                                     1508

Local Bindings

Sub-menu: /mpls local-bindings


This sub-menu shows labels bound to the routes locally in the router. In this menu also static bindings can be configured if there is no intention to use any of dynamic protocols (like LDP).


Properties

Property Description
comments (string; Default: ) Short description of the entry
disabled (yes | no; Default: no)
dst-address (IP/Mask; Default: ) Destination prefix for which label is assigned
label (integer[0..1048576] | alert | expl-null | expl-null6 | impl-null | none; Default: ) Label number assigned to destination.


Read-only Properties

Property Description
adv-path ()
advertised (yes | no) Whether binding was advertised to the neigbors
dynamic (yes | no) Whether entry was dynamically added
egress (yes | no)
gateway-route (yes | no) Whether destination is reachable through the gateway.
local-route (yes | no) Whether destination is locally reachable on the router
peers (IP:label_space) IP address and label space of the peer to which this entry was advertised.

Remote Bindings

Sub-menu: /mpls remote-bindings


Sub-menu shows label bindings for routes received from other routers. This table is used to build Forwarding Table


[ Top | Back to Content ]