Transparently Bridge two Networks using MPLS

From MikroTik Wiki
Revision as of 12:40, 3 February 2010 by Marisb (talk | contribs) (fixed mtu size)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Overview

This a very basic example how to enable MPLS, establish VPLS tunnel between two wireless links and use it to transparently bridge two networks.

There are several other ways to create this type of setup:

The MPLS/VPLS approach has some advantages:

  • VPLS tunnel is about 60% faster and less overhead than EoIP tunnel
  • 802.11n speed is limited over WDS bridges, this method doesn't have such limitations

Configuration

Let us assume the following network setup:

Wlink.png

Note: For this setup to work in RouterOS 3.x, routing and mpls-test package must be installed. These features are included by default in 4.x.

AP

# --configure wireless access point--
/interface wireless
set wlan1 disabled=no ssid=MPLS frequency=5180 band=5ghz mode=bridge

# --configure IP--
/ip address
add address=172.16.0.1/30 interface=wlan1

# --enable LDP--
/mpls ldp 
set enabled=yes lsr-id=172.16.0.1 transport-address=172.16.0.1
/mpls ldp interface
add interface=wlan1

# --configure VPLS tunnel--
/interface vpls
add name=vpls1 remote-peer=172.16.0.2 vpls-id=1:1 disabled=no

# --add bridge and bridge ports --
/interface bridge add name=bridge1
/interface bridge port
add bridge=bridge1 interface=ether1
add bridge=bridge1 interface=vpls1

station

# --configure wireless access point--
/interface wireless
set wlan1 disabled=no ssid=MPLS band=5ghz mode=station

# --configure IP--
/ip address
add address=172.16.0.2/30 interface=wlan1

# --enable LDP--
/mpls ldp 
set enabled=yes lsr-id=172.16.0.2 transport-address=172.16.0.2
/mpls ldp interface
add interface=wlan1

# --configure VPLS tunnel--
/interface vpls
add name=vpls1 remote-peer=172.16.0.1 vpls-id=1:1 disabled=no

# --add bridge and bridge ports --
/interface bridge add name=bridge1
/interface bridge port
add bridge=bridge1 interface=ether1
add bridge=bridge1 interface=vpls1

Confirm that LDP is running

[admin@MikroTik] /mpls ldp neighbor> print
Flags: X - disabled, D - dynamic, O - operational, T - sending-targeted-hello, V - vpls
 #      TRANSPORT    LOCAL-TRANSPORT PEER           SEND-TARGETED ADDRESSES
 0 DOTV 172.16.0.2   172.16.0.1      172.16.0.2:0   no            172.16.0.2
                                                                                 
[admin@MikroTik] /mpls ldp neighbor> .. .. forwarding-table print
Flags: L - ldp, V - vpls, T - traffic-eng
 #   IN-LABEL        OUT-LABELS      DESTINATION    INTERFACE    NEXTHOP
 0   expl-null
 1 V 18                              vpls1

Confirm that VPLS tunnel is established:

[admin@MikroTik] /interface vpls> monitor vpls1 once
       remote-label: 17
        local-label: 18
      remote-status:
  transport-nexthop: 172.16.0.2
     imposed-labels: 17

Note

When router encapsulates Ethernet frame to forward over VPLS pseudowire, it checks if packet size + VPLS CW + MPLS labels exceeds MPLS MTU of outgoing interface. If it does, VPLS will fragment frame. In this example 1514byte layer2 packets are forwarded over VPLS, router adds CW (8bytes) and one MPLS tag (4bytes) it means that to avoid fragmentation MPLS MTU must be increased to 1526

/mpls interface set 0 mpls-mtu=1526

Ethernet port should be capable of sending 1526 byte L2MTU packets. For more information and supported L2MTU values on RouterBoards refer to Maximum_Transmission_Unit_on_RouterBoards