Hi Júlíus,
Yes, we intentionally use a single VLAN-aware bundle EVPN instance. We were
advised to keep it simple in one shared setup. We do not need inter-VNI/VLAN
routing, so splitting into multiple EVPN instances would just add unnecessary
complexity for our use case. Our plan is to use VNIs as simple l2 domains -
like VLAN. We don't have to split this into different routing instances,
because they don't need to be isolated from one another.
ip -d link show dev vxlan4004055
19: vxlan4004055: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue
master brvx-4004055 state UNKNOWN mode DEFAULT group default qlen 1000
link/ether 36:d9:fe:f8:e0:6b brd ff:ff:ff:ff:ff:ff promiscuity 1 allmulti
1 minmtu 68 maxmtu 65535
info: Using default fan map value (33)
vxlan id 4004055 local 10.66.200.2 srcport 0 0 dstport 4789 nolearning ttl
auto ageing 300 udpcsum noudp6zerocsumtx noudp6zerocsumrx
bridge_slave state forwarding priority 32 cost 100 hairpin off guard off
root_block off fastleave off learning on flood on port_id 0x8001 port_no 0x1
designated_port 32769 designated_cost 0 designated_bridge
8000.92:49:a7:74:a0:f6 designated_root 8000.92:49:a7:74:a0:f6 hold_timer
0.00 message_age_timer 0.00 forward_delay_timer 0.00 topology_change_ack
0 config_pending 0 proxy_arp off proxy_arp_wifi off mcast_router 1
mcast_fast_leave off mcast_flood on bcast_flood on mcast_to_unicast off
neigh_suppress off group_fwd_mask 0 group_fwd_mask_str 0x0 vlan_tunnel off
isolated off locked off addrgenmode eui64 numtxqueues 1 numrxqueues 1
gso_max_size 65536 gso_max_segs 65535 tso_max_size 65536 tso_max_segs 65535
gro_max_size 65536
Julian Sluimann
IT-Service
[cid:phone-icon_004b6ca1-3c9d-4d5f-a392-9e20f385200f.png] 0256498996-30
[cid:mail-icon_0faae6df-067c-4ca9-a09f-d32cbfd051ea.png] [email protected]
[cid:epnoxlogo_45de1f2a-1d32-4b3a-8ea0-3fc3a81feb48.png]
[cid:website-icon_cd56ec0c-da12-41a5-a7c5-4e2997773e4c.png] epnox.de
[cid:location-icon_d9aaf7ae-803a-430f-b99e-11ccf4e4ccff.png] Stadtlohner
Str. 6, 48691 Vreden
epnox GmbH Stadtlohner Straße 6 48691 Vreden
Geschäftsführer: Gerd Gevering | Christian Meiners | Nils Waning | Ust.-Nummer:
DE351345026
St.Nr.: 301/5813/2061 | HRB 20199 | zertifiziert nach: ISO 27001
[cid:leaf-icon-green_4afffd01-0555-42af-9279-0b6f0b5dd129.png] Bitte prüfen Sie
vorher, ob ein Ausdruck dieser E-Mail wirklich notwendig ist.
Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen.
Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten
haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail.
Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht
gestattet. This e-mail may contain confidential and/or privileged information.
If you are not the intended recipient (or have received this e-mail in error)
please notify the sender immediately and destroy this e-mail. Any unauthorised
copying, disclosure or distribution of the material in this e-mail is strictly
forbidden.
Von: Júlíus Þór Bess <[email protected]>
Datum: Donnerstag, 28. Mai 2026 um 16:30
An: [email protected] <[email protected]>
Betreff: Re: AW: Re: VXLAN with EVPN Problem
Hi Julian,
Why do you mix the VNI's into one RT? Are you trying to do vlan-bundle
service type on the FRR side?
Also, can you show ip -d link show dev <vxlan dev>
On 5/28/26 11:53 AM, Julian Sluimann wrote:
> Hey everyone,
>
> Yesterday we reviewed the whole situation together with Juniper support.
> According to them, the overall setup and configuration on the Juniper side
> looks correct. However, they suspect that the issue is related to how FRR
> advertises the EVPN routes.
>
> Specifically, the Type-2 routes received from FRR do not include the VNI in
> the route itself (see output below – EthTag/VNI is shown as "0"). The switch
> appears to recognize the VNI as a route label and learns the MAC addresses,
> but due to the missing VNI field it does not properly associate the MAC
> entries with the EVPN MAC-IP table. This would also explain why communication
> works locally on the same switch, but not across EVPN/VXLAN between the
> servers.
>
> The interesting part is that the VNI is shown correctly for the MAC address
> "48:a9:8a:ef:75:73". However, this device is not connected via VXLAN directly
> — it is a MikroTik board connected through a regular Layer-2 VLAN which is
> mapped into the VNI on the EX4650 side. Communication between the VMs and the
> MikroTik board is only partially working (75% packet loss). Only the two VM
> MAC addresses ("02:04:02:64:00:01" and "02:04:02:64:00:02") learned from FRR
> are missing the VNI information in the Type-2 routes:
>
> show bgp l2vpn evpn route type 2
> BGP table version is 4, local router ID is 10.66.200.3
> Network Next Hop Metric LocPrf Weight Path
> Extended Community
> Route Distinguisher: 10.65.200.240:100
> *> [2]:[4004055]:[48]:[48:a9:8a:ef:75:73] RD 10.65.200.240:100
> 10.65.200.240 0 65400 i
> RT:100:100 ET:8
>
> Route Distinguisher: 10.66.200.2:3
> *> [2]:[0]:[48]:[02:04:02:64:00:01] RD 10.66.200.2:3
> 10.66.200.2 0 65400 65202 i
> RT:100:100 ET:8
>
> Route Distinguisher: 10.66.200.3:3
> *> [2]:[0]:[48]:[02:04:02:64:00:02] RD 10.66.200.3:3
> 10.66.200.3 32768 i
> ET:8 RT:100:100
>
> Juniper’s statement was:
>
> “Based on our findings, it appears that the servers are not sending their
> Type-2 routes with the VNI included in the route, which may be preventing the
> creation of entries in the EVPN MAC-IP table. In addition, the next-hop entry
> seems to be missing from the PFE.”
>
> We also discussed this with another engineer who has extensive experience
> with Juniper and EVPN deployments. He also does not see a fundamental issue
> on the Juniper side, but unfortunately he has no practical experience with
> FRR in this specific scenario.
>
> Maybe some of you have experience with FRR? Do you use it in a similar way to
> us? Maybe we just missing a small detail in the config:
>
> !
> frr version 10.6.0
> frr defaults traditional
> hostname cs-kvm-st-cl1-03
> log syslog informational
> log file /var/log/frr/debug.log debugging
> service integrated-vtysh-config
> !
> ip prefix-list LOOPBACKS seq 10 permit 10.0.0.0/8 le 32
> !
> interface bond1
> ip ospf area 0.0.0.51
> ip ospf network point-to-point
> no ipv6 nd suppress-ra
> exit
> !
> interface lo
> ip address 10.66.200.3/32
> exit
> !
> router bgp 65203
> bgp router-id 10.66.200.3
> no bgp ebgp-requires-policy
> no bgp default ipv4-unicast
> no bgp network import-check
> neighbor uplinks peer-group
> neighbor uplinks remote-as external
> neighbor uplinks ebgp-multihop
> neighbor uplinks update-source lo
> neighbor 10.65.200.240 peer-group uplinks
> !
> address-family l2vpn evpn
> neighbor uplinks activate
> neighbor uplinks next-hop-self
> advertise-all-vni
> advertise ipv4 unicast
> vni 4004070
> route-target import 100:100
> route-target export 100:100
> proxy-arp
> exit-vni
> vni 4004055
> route-target import 100:100
> route-target export 100:100
> advertise-svi-ip
> proxy-arp
> exit-vni
> vni 10030864
> route-target import 100:100
> route-target export 100:100
> proxy-arp
> exit-vni
> advertise-svi-ip
> exit-address-family
> exit
> !
> router ospf
> ospf router-id 10.66.200.3
> redistribute connected route-map OSPF_EXPORT
> exit
> !
> route-map OSPF_EXPORT permit 10
> match ip address prefix-list LOOPBACKS
> exit
> !
> end
>
> Thanks for your help!
>
> Von: Julian Sluimann <[email protected]>
> Datum: Dienstag, 19. Mai 2026 um 10:48
> An: [email protected] <[email protected]>
> Cc: Wido den Hollander <[email protected]>
> Betreff: RE: Re: VXLAN with EVPN Problem
>
> Hey Wido!
>
> Thanks for reply!
>
>> I must say I have never tried with a JunOS VC, but why would you also?
>> This is a full L3 setup, correct? Why add the VC of JunOS?
> We are currently using two virtual chassis because it was an existing setup
> with running redundant L2 connections.
> We still need these connections. Our plan was to migrate to a L3 environment
> now. In a new setup we would use four single devices too.
> Right now this is not possible because of production systems.
>
>> Which MACs, where? Who is your gateway?
> We are seeing all mac-addresses on the right sides in evpn database. These
> are published to evpn fine.
>
>> Why not use this for the BGP session?
> We are using a bond because of the virual chassis on the switch side. We
> wanted to use 2x25G connection. We are using OSPF to learn Loopback IPs of
> devices.
> BGP connection via Loopback is the reason for one single bgp session between
> switch and kvm host.
>
>> Did you set a vtep-source under switch-options to lo0.0?
> Yes, of course we set vtep Interface to loopback.
>
> set switch-options vtep-source-interface lo0.0
>
> Can you tell me something about your import/export rules or add a snippet too?
> Right now we are not using any policies.
>
> Our next steps are: We will try to run bgp sessions via interface addresses
> without OSPF. We will try with a single spare device without VC.
> We thought about using iBGP too but decided to use eBGP because of easier
> debugging.
>
> Thank you for your help!
>
> On 2026/05/19 04:14:35 Wido den Hollander via users wrote:
>>
>> Op 18-05-2026 om 11:25 schreef Julian Sluimann:
>>> Hi everyone,
>>>
>>> We are currently trying to expand our L2 VLAN-based CloudStack environment
>>> to include EVPN VXLAN. We've run into a problem that we can't seem to solve…
>>>
>>> But right from the start: We are using two Juniper Virtual Chassis, each
>>> with two Juniper EX4650 switches. The KVM hosts (Ubuntu 24.04 with
>>> FRRouting 10.6.1) use an LACP bond (bond1) for guest traffic. We have
>>> included the script needed to create the bridges. The bridge is created
>>> correctly; we see traffic from the VM’s "vnet" interface passing through
>>> the bridge and then exiting the bond encapsulated in VXLAN. However, the
>>> traffic simply does not seem to arrive on the other side. It doesn't matter
>>> whether the KVM hosts are connected to the same switch chassis. If the KVM
>>> hosts communicate directly with each other via BGP, everything works
>>> without any problems.
>>>
>> I do see some problems with FRR <> JunOS communicating with BGP+EVPN,
>> but it can work.
>>
>> I must say I have never tried with a JunOS VC, but why would you also?
>> This is a full L3 setup, correct? Why add the VC of JunOS?
>>
>>> We noticed that the ARP table within the VM is not populated correctly.
>>> That's strange, because both the switches and the KVM hosts have filled
>>> their ARP tables with all the MAC addresses. But even if we add the missing
>>> MAC addresses of the VMs on both sides, they still cannot communicate with
>>> each other. That doesn't seem to be the problem, but perhaps it's a
>>> consequence of the actual problem?
>> Which MACs, where? Who is your gateway?
>>
>> (see more below)
>>
>>> Our current FRR configuration looks like this:
>>>
>>> !
>>> frr version 10.6.0
>>> frr defaults traditional
>>> hostname kvm-h1
>>> log syslog informational
>>> service integrated-vtysh-config
>>> !
>>> ip prefix-list LOOPBACKS seq 10 permit 10.0.0.0/8 le 32
>>> !
>>> interface bond1
>>> ip ospf area 0.0.0.51
>>> ip ospf network point-to-point
>>> no ipv6 nd suppress-ra
>>> exit
>>> !
>>> interface lo
>>> ip address 10.66.200.3/32
>>> exit
>>> !
>>> router bgp 65203
>>> bgp router-id 10.66.200.3
>>> no bgp ebgp-requires-policy
>>> no bgp default ipv4-unicast
>>> no bgp network import-check
>>> neighbor uplinks peer-group
>>> neighbor uplinks remote-as external
>>> neighbor uplinks ebgp-multihop
>>> neighbor uplinks update-source lo
>> Correct? How does the EX learn this loopback address of the KVM host?
>> Why not use the address of the interface for the uplink?
>>
>> And why a bond and not two seperate BGP sessions?
>>
>>> neighbor 10.65.200.250 peer-group uplinks
>>> neighbor 10.65.200.250 description SWITCH1
>>> !
>>> address-family l2vpn evpn
>>> neighbor uplinks activate
>>> advertise-all-vni
>>> vni 10003168
>>> route-target import 100:100
>>> route-target export 100:100
>>> proxy-arp
>>> exit-vni
>>> advertise-svi-ip
>>> exit-address-family
>>> exit
>>> !
>>> router ospf
>>> ospf router-id 10.66.200.3
>>> redistribute connected route-map OSPF_EXPORT
>>> exit
>>> !
>>> route-map OSPF_EXPORT permit 10
>>> match ip address prefix-list LOOPBACKS
>>> exit
>>> !
>>> end
>>>
>>> Our test VNI is 10003168. It contains two VMs, each on a different KVM
>>> host, which in turn are connected to two different virtual switches.
>>>
>>> The "bond1" interface is used, which is defined in the Netplan as follows:
>>>
>>> bonds:
>>> bond1:
>>> mtu: "9000"
>>> interfaces:
>>> - ens2f1np1
>>> - eno3np1
>>> addresses:
>>> - "10.65.200.5/31"
>> Why not use this for the BGP session?
>>
>>> parameters:
>>> mode: "802.3ad"
>>> lacp-rate: "slow"
>>> transmit-hash-policy: "layer3+4"
>>>
>>> This is how our juniper configuration looks like:
>>>
>>> set protocols evpn no-core-isolation
>>> set protocols evpn encapsulation vxlan
>>> set protocols evpn default-gateway no-gateway-community
>>> set protocols evpn duplicate-mac-detection detection-threshold 5
>>> set protocols evpn duplicate-mac-detection detection-window 180
>>> set protocols evpn duplicate-mac-detection auto-recovery-time 15
>>> set protocols evpn multicast-mode ingress-replication
>>> set protocols evpn extended-vni-list 4004070
>>> set protocols evpn extended-vni-list 10003168
>>>
>>> set routing-options router-id 10.65.200.250
>>> set switch-options vrf-target target:100:100
>>> set switch-options route-distinguisher 10.65.200.250:100
>> Did you set a vtep-source under switch-options to lo0.0?
>>
>>> Session to EX4650 VC2
>>>
>>> set protocols bgp group BGP-SW-to-SW multihop ttl 2
>>> set protocols bgp group BGP-SW-to-SW multihop no-nexthop-change
>>> set protocols bgp group BGP-SW-to-SW family inet unicast
>>> set protocols bgp group BGP-SW-to-SW family evpn signaling
>>> set protocols bgp group BGP-SW-to-SW neighbor 10.65.100.250 description
>>> AS65100
>>> set protocols bgp group BGP-SW-to-SW neighbor 10.65.100.250 local-address
>>> 10.65.200.250
>>> set protocols bgp group BGP-SW-to-SW neighbor 10.65.100.250 peer-as 65100
>>>
>>> set protocols bgp group BGP-SW-to-KVM multihop ttl 2
>>> set protocols bgp group BGP-SW-to-KVM multihop no-nexthop-change
>>> set protocols bgp group BGP-SW-to-KVM family inet unicast
>>> set protocols bgp group BGP-SW-to-KVM family evpn signaling
>>> set protocols bgp group BGP-SW-to-KVM neighbor 10.66.200.3 description
>>> "AS65203"
>>> set protocols bgp group BGP-SW-to-KVM neighbor 10.66.200.3 local-address
>>> 10.65.200.250
>>> set protocols bgp group BGP-SW-to-KVM neighbor 10.66.200.3 peer-as 65203
>> A snippet of the config on a QFX5120
>>
>>
>> group compute {
>> type external;
>> multihop {
>> no-nexthop-change;
>> }
>> accept-remote-nexthop;
>> import compute-in;
>> family inet {
>> unicast {
>> extended-nexthop;
>> }
>> }
>> family inet6 {
>> unicast;
>> }
>> family evpn {
>> signaling;
>> }
>> export compute-out;
>> neighbor 2a01:XXX:2:180::7 {
>> description compute0;
>> local-address 2a01:XXX:2:180::6;
>> peer-as 64650;
>> }
>> }
>>
>> Here we peer over IPv6, so yes, slightly different.
>>
>>
>>>> set protocols bgp local-as 65200
>>> Does anyone have experience with EVPN-VXLAN and Juniper EX4650 switches?
>>> It’s probably a really silly problem… but we just can’t figure it out.
>> As said, the QFX5120 gave me some troubles as well, but it works!
>>
>> Wido
>>
>>> Thanks!
>>>
>>