Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Overview

MPLS stands for MultiProtocol Label Switching. It kind of replaces IP routing - packet forwarding decision (outgoing interface and next-hop router) is no longer based on fields in IP header (usually destination address) and routing table, but on labels that are attached to packet. This approach speeds up the forwarding process because next-hop lookup becomes very simple compared to routing lookup (finding the longest matching prefix).

The efficiency of the forwarding process is the main benefit of MPLS, but it must be taken into account that MPLS forwarding disables the processing of network layer (e.g. IP) headers, therefore no network layer-based actions like NAT and filtering can be applied to MPLS forwarded packets. Any network-layer-based actions should be taken on ingress or egress of MPLS cloud, with the preferred way being ingress - this way, e.g. traffic that is going to be dropped anyway does not travel through the MPLS backbone.

In the simplest form, MPLS can be thought of as improved routing - labels are distributed by means of LDP protocol for routes that are active and a labeled packet takes the same path it would take if it was not labeled. A router that routes unlabeled packets using some route for which it has received a label from the next hop, imposes a label on the packet, and sends it to the next hop - gets MPLS switched further along its path. A router that receives a packet with a label it has assigned to some route changes the packet label with one received from the next hop of a particular route and sends a packet to the next hop. Label switched path ensures delivery of data to the MPLS cloud egress point. Applications of MPLS are based on this basic MPLS concept of label switched paths.

Another way of establishing label switching paths is traffic engineering tunnels (TE tunnels) by means of the RSVP-TE protocol. Traffic engineering tunnels allow explicitly routed LSPs and constraint-based path selection (where constraints are interface properties and available bandwidth).

Taking into account the complexity, new protocols, and applications that MPLS introduces and the differences of concepts that MPLS adds to routed/bridged networks, it is recommended to have an in-depth understanding of MPLS concepts before implementing MPLS in a production network. Some suggested reading material:

Reference

General Properties

Sub-menu: /mpls

...

Forwarding Table

Sub-menu: /mpls forwarding-table

...

An array of the next-hops, each entry in the array represents one ECMP next-hop. Array entry can contain several parameters:

  • label - egress MPLS label
  • nh - out next-hop IP address
  • interface - out the interface

...

Code Block
languageros
[admin@rack1_b35_CCR1036] /mpls/forwarding-table> print 
Flags: L, V - VPLS
Columns: LABEL, VRF, PREFIX, NEXTHOPS
#   LABEL  VRF   PREFIX         NEXTHOPS                                            
0 L    16  main  10.0.0.0/8     { nh=10.155.130.1; interface=ether12 }              
1 L    18  main  111.111.111.3  { label=impl-null; nh=111.12.0.1; interface=ether2 }
2 L    17  main  111.111.111.2  { label=impl-null; nh=111.11.0.1; interface=ether1 }


Interface

Sub-menu: /mpls interface

...

Note

Listed entries are ordered, and the first entry (iterating from the top to the bottom) that matches the interface will be used.

The order of the entries is important due to the possibility that different interface lists can contain the same interface and in addition, that interface can be referenced directly.

Selection of the MPLS MTU happens in the following manner:

  • If the interface matched the entry from this table, then try to use configured MPLS MTU value
  • If the interface does not match any entry then consider MPLS MTU equal to L2MTU
  • If the interface does not support L2MTU, then consider MPLS MTU equal to L3 MTU

On the MPLS ingress path, MTU is chosen by min(MPLS MTU - tagsize, l3mtu). This means that on interfaces that do not support L2MTU and default L3 MTU is set to 1500, max path MTU will be 1500 - tag size (the interface will not be able to pass full IP frame without fragmentation). In such scenarios, L3MTU must be increased by max observed tag size.

Properties

...

languageros

...

Supported Features

Currently, RouterOS supports the following MPLS related features:

  • MPLS switching with penultimate hop popping support
  • static local label bindings for IPv4 and IPv6
  • static remote label bindings for IPv4 and IPv6
  • Label Distribution Protocol (RFC 3036, RFC 5036, and RFC 7552) for IPv4 and IPv6
    • downstream unsolicited label advertisement
    • independent label distribution control
    • liberal label retention
    • targeted session establishment
    • optional loop detection
    • ECMP support
  • Virtual Private Lan Service
    • VPLS LDP signaling (RFC 4762)
    • Cisco style static VPLS pseudowires (RFC 4447 FEC type 0x80)
    • VPLS pseudowire fragmentation and reassembly (RFC 4623)
    • VPLS MP-BGP based autodiscovery and signaling (RFC 4761)
    • Cisco VPLS BGP-based auto-discovery (draft-ietf-l2vpn-signaling-08)
    • support for multiple import/export route-target extended communities for BGP based VPLS (both, RFC 4761 and draft-ietf-l2vpn-signaling-08)
  • RSVP-TE Tunnels
    • tunnel head-end
    • explicit paths
    • OSPF extensions for TE tunnels
    • CSPF path selection
    • forwarding of VPLS and MPLS IP VPN traffic on TE tunnels
    • Ingress TE tunnel rate limit and automatic reserved bandwidth adjustment, see TE Tunnel Bandwidth Control
    • all tunnel bandwidth settings are specified and displayed in bits per second
  • MP-BGP based MPLS IP VPN
  • Per-prefix and per-vrf label distribution policies for MP-BGP based MPLS VPN
  • OSPF extensions for MPLS TE
  • support for OSPF as CE-PE protocol
  • ping and traceroute for specified VRF
  • control over network-layer TTL propagation in MPLS
  • RIP as CE-PE protocol
  • per-VRF BGP instance redistribution settings

MPLS features that RouterOS DOES NOT HAVE yet:

  • LDP features:
    • downstream on-demand label advertisement
    • ordered label distribution control
    • conservative label retention
  • TE features
    • fast-reroute
    • link/node protection
  • Support for BGP as label distribution protocol