Nice catch! Please let support know about this.
Could you write about this more? Or give link. I have a CHR lab and BGP-VPLS works on 7.19 but died when I upgraded the lab upto 7.20beta4.
Edit: after upgrade, I changed MPLS LDP interface configs a little to conformance of the documentation, reverted back and BGP-VPLS works again with iBGP-RR.
This is the the basic topology iâm working on, If the route reflector is v6 itâs working properly as expected but if I change the route reflector to any v7 it wonât work VPLS is up (using BGP Signal VPLS) everything is up mpls forwarding table is ok, but both CE1 and CE2 canât reach on Layer3.
But normal VPLS is working on either v6 or v7 route reflector
V6 RR + V7 PE + BGP Signal VPLS is working
V7 RR + v7 PE + BGP Singal VPLS is not working
V7 RR + v7 PE + VPLS is working
EDIT: What I didnât try is to form full mesh with ebgp session without route reflector if v7 BGP Signal VPLS will work
is VPLS hardware offloaded ?
Nope, In V6 for CRS317 i think on P role not in PE thatâs what I know, in our use case since thereâs only a handful customer avail L2VPN mostly L3VPN we donât need large amount of throughput, for L3VPN we are happy to pass 2 to 3ishg of L3VPN at the moment with minimal hit to CPU on 1036
The CRS317-1G-16S+ switch, running RouterOS v6.41 and later, supports hardware offloading of certain MPLS functions. To achieve this, the switch needs to be configured as a "P" (Provider) router in a PE-P-PE MPLS network setup. This offloading allows for faster label switching, potentially at wire speed
Google ![]()
This is a well known problem, from a year or more. The only workaround is a full BGP mash, as you tryed. Be carefull also with CCR2216, if any, when using MPLS/LDP. When running, packet loss is introduced on forwarding plane.
Really? do you guys reported it and what does support say is that architecture specific?
Its interesting because I experiencing the opposite. BGP signaled VPLS works, LDP signaled doesnât.
I use this topology to test things, the inner ring is P only, those routers runs only OSPF + MPLS, on PE routers, the PE routers runs iBGP too, PE1 is RR, other PEs are RR-client.
I configured L2VPN + L3VPN. The BGP L[23]VPN config from PE1:
/routing bgp vpls
add bridge=VPLS_A bridge-horizon=3 cisco-id=10.0.10.11&65530:3 disabled=no export-route-targets=65530:3 import-route-targets=65530:3 name=VPLS_A rd=65530:3
add bridge=VPLS_B bridge-horizon=4 disabled=no export-route-targets=65530:4 import-route-targets=65530:4 name=VPLS_B rd=65530:4 site-id=11
/routing bgp vpn
add disabled=no export.redistribute=connected .route-targets=65530:1 import.route-targets=65530:1 instance=bgp-instance-1 label-allocation-policy=per-vrf name=bgp-mpls-vpn-1 \
route-distinguisher=65530:1 vrf=VRF_A
add disabled=no export.redistribute=connected .route-targets=65530:2 import.route-targets=65530:2 instance=bgp-instance-1 label-allocation-policy=per-prefix name=bgp-mpls-vpn-2 \
route-distinguisher=65530:2 vrf=VRF_B
The MPLS config from the same PE1:
/mpls interface
add interface=all mpls-mtu=1500
/mpls ldp
add afi=ip,ipv6 disabled=no lsr-id=10.0.10.11 preferred-afi=ip transport-addresses=10.0.10.11,b00b::10:0:10:11
/mpls ldp interface
add accept-dynamic-neighbors=yes afi=ip,ipv6 interface=ether2
VPLS_B interfaces are up and running, but VPLS_A IFs arenât:
[admin@rtr1.PE] > /interface/vpls/print
Flags: R - RUNNING; D - DYNAMIC
Columns: NAME, PEER, BGP-VPLS
# NAME PEER BGP-VPLS
0 RD vpls1 10.0.10.13 VPLS_B
1 RD vpls2 10.0.10.15 VPLS_B
2 RD vpls3 10.0.10.12 VPLS_B
3 RD vpls4 10.0.10.14 VPLS_B
4 RD vpls5 10.0.10.16 VPLS_B
[admin@rtr1.PE] >
I can ping all other PE IPâs (IPv4 and IPv6) over VPLS_B. Configs almost identical, except loopback IPs, router-id and VPLS site-id. We have another project, where we using LDP signaled VPLS with eBGP and cisco on the other side, and its works fine with minimal config:
/mpls interface add interface=ether1 mpls-mtu=1512
/mpls ldp add afi=ip lsr-id=10.43.0.126 vrf=main
/mpls ldp interface add accept-dynamic-neighbors=yes afi=ip interface=ether1 transport-addresses=10.43.0.126
/routing bgp connection add afi=l2vpn,l2vpn-cisco,vpnv4 cisco-vpls-nlri-len-fmt=bytes connect=yes \
listen=no local.address=10.43.0.126 .role=ebgp multihop=yes \
name=JPoP-IPv4 remote.address=10.7.255.255/32 .as=XXXX tcp-md5-key=*** templates=default
/routing bgp vpls add bridge=VPLS cisco-id=10.43.0.126&65000:076540 \
export-route-targets=65000:076540 import-route-targets=65000:076540 name=bgp-vpls1 rd=65000:076540
I have another example all router is v7 but the VPLS this time is static non BGP signal in all of my example P is route reflector and LDP only and I donât use cisco style id
for the âPâ itâs role is ibgp-rr and all PE is ibgp
# P Router
/mpls ldp
add disabled=no lsr-id=10.254.254.1 transport-addresses=10.254.254.1
/mpls ldp advertise-filter
add advertise=yes disabled=yes prefix=10.254.254.0/29
add advertise=no disabled=yes prefix=0.0.0.0/0
/mpls ldp interface
add disabled=no interface=ether5
add disabled=no interface=ether6
/routing bgp connection
add afi=ip,l2vpn,vpnv4 as=65000 disabled=no local.address=10.254.254.1 .role=ibgp-rr name=TO-PE1 nexthop-choice=\
force-self output.default-originate=always remote.address=10.254.254.2/32 router-id=10.254.254.1 routing-table=main \
templates=default
add afi=ip,l2vpn,vpnv4 as=65000 disabled=no local.address=10.254.254.1 .role=ibgp-rr name=TO-PE2 nexthop-choice=\
force-self output.default-originate=always remote.address=10.254.254.3/32 router-id=10.254.254.1 routing-table=main \
templates=default
/routing ospf interface-template
add area=backbone disabled=no interfaces=lo passive
add area=backbone dead-interval=15s disabled=no hello-interval=5s interfaces=ether5
add area=backbone dead-interval=15s disabled=no hello-interval=5s interfaces=ether6
# PE1 Router
/routing bgp template
set default afi=ip,l2vpn,vpnv4 as=65000 disabled=no router-id=10.254.254.2 routing-table=main
/routing ospf instance
add disabled=no mpls-te-address=10.254.254.2 mpls-te-area=0.0.0.0 name=ospf-instance-1
add disabled=no name=ospf-instance-2 originate-default=never router-id=C5 vrf=C5
/routing ospf area
add disabled=no instance=ospf-instance-1 name=backbone
add disabled=no instance=ospf-instance-2 name=custC
/interface vpls
add arp=enabled bridge=BRIDGE disabled=no mac-address=02:CB:FE:DA:C2:88 mtu=1500 name=TO-P peer=10.254.254.1 \
pw-control-word=default pw-l2mtu=1550 pw-type=vpls vpls-id=111:1
/mpls ldp
add lsr-id=10.254.254.2 transport-addresses=10.254.254.2
/mpls ldp advertise-filter
add advertise=yes disabled=yes prefix=10.252.254.0/29
add advertise=no disabled=yes prefix=0.0.0.0/0
/mpls ldp interface
add interface=ether5
/routing bgp connection
add afi=ip,l2vpn,vpnv4 as=65000 disabled=no local.address=10.254.254.2 .role=ibgp name=TO-P remote.address=\
10.254.254.1/32 router-id=10.254.254.2 routing-table=main templates=default
/routing bgp vpn
add disabled=no export.redistribute=connected,ospf .route-targets=111:2 import.route-targets=111:2 .router-id=C5 \
label-allocation-policy=per-vrf name=bgp-mpls-vpn-1 route-distinguisher=111:2 vrf=C5
/routing ospf interface-template
add area=backbone dead-interval=15s disabled=no hello-interval=5s interfaces=lo passive
add area=backbone dead-interval=15s disabled=no hello-interval=5s interfaces=ether5
add area=custC dead-interval=15s disabled=no hello-interval=5s interfaces=ether1
Iâm going to try your topology too and see what I can find
BTW it seems when I upgrade from 7.19.2 to 7.20beta4 then BGP VPN inherits instance name but connections doesnât. bgp connection shows âinstance=*0â after upgrade so I must fix it by hand.
I thought beta4 should fix that itâs in the changelog if my memory serves correctlyâŚ
Another issue is upgrade from 7.19.2 to 7.20beta4 kills LDP signaled VPLS over eBGP. Something changed in VPLS sintax?
config:
/routing bgp vpls
add bridge=VPLS cisco-id=10.47.128.14&65000:76540 disabled=no export-route-targets=65000:76540 import-route-targets=65000:76540 name=bgp-vpls1 rd=65000:76540
RIB:
routing/route/print detail where afi~"l2vpn"
Flags: X - disabled, F - filtered, U - unreachable, A - active;
c - connect, s - static, r - rip, b - bgp, o - ospf, i - isis, d - dhcp, v - vpn, m - modem, a - ldp-address, l - ldp-mapping, g - slaac, y - bgp-mpls-vpn, e - evpn; H - hw-offloaded;
+ - ecmp, B - blackhole
afi=l2vpn-cisco contribution=candidate dst-address=10.47.128.14&65000:76540 routing-table=main belongs-to="cisco-bgp-vpls"
bgp.ext-communities=rt:65000:76540,raw:000afde800012afc
debug.fwp-ptr=0x20342120
Yes it should, in case of vpn, fixed, but for me in the connection section it didnât.
Blockquote
Another issue is upgrade from 7.19.2 to 7.20beta4 kills LDP signaled VPLS over eBGP
This i havenât tried it yet VPLS over eBGPâŚ
pppoe issue still not fixed mtu defaults to 1480
âppp - do not send initial echo request if keepalive-timeout=disabled;â
this feature came in 7.20 beta 2 but reverted in beta4
Yes exactly i am facing this issue (pppoe isp) ONLY with mikrotik while VYOS/OPENWRT/OPNSENSE/IPFIRE happily works with their default settings giving me mtu of 1492 ,while mk defaults to 1480 and 1488 if you adjust mtu manually ,i send many emails to mikrotik support they say there is some device between isp and their device which causes it.i tried many things but in vain..
edit
Now it works KEEPalive timeout after disabling all is good!!! keep it up
I try this with very simple topology LAN1 â R1 â R2 â LAN2 with ebgp and bgp signal vpls itâs working with v7.19.1 will try in v7.20beta4
Perhaps in the slew of /container feature, you should consider adding âeventsâ to container some
/container add on-change={ :put "$[get $.id name] changed from $from to $to" }
or broken out to on-stop= on-stopping= on-error-state= on=start= on=stop= ⌠â just quite a few of them, and you can just provide the âstateâ (ideally both from and to) as variable to one generic script handler.
Right now even with all the good changes in /container, itâs still a shitshow to script container, properly, without either a lot of script to poll and check states, or error-prone :delay.
Itâs better to add mtu and âclient-allowedipsâ options to wireguard peers config, rather than use default 0.0.0.0/0,::/0
*) veth - added dhcp=yes/no property to be able to easily run a container in LAN, runs a special dynamic dhcp-client on interface and sets acquired address/gateway/dns to in-container interface;
Also tried it but could not get it to work.
Added a DHCP server to the bridge interface where the veth is attached.
I also can see DHCP requests on that bridge interface, but no DHCP offer.
Can anyone post a working configuration?




