BUM traffic to a multicast group without using PIM (shared VNI VXLAN interface)
Pieter Krul
pkrul at tilaa.com
Sun Jul 7 16:19:56 UTC 2024
Greetings,
We have configured two VTEP endpoints, mux and stub, both in a pure L2 only
EVPN network, to send all BUM traffic to multicast group 239.0.0.1
These two configured VTEP endpoints are using shared VNI VXLAN interfaces.
There is no PIM involved. All traffic sent to 239.0.0.1 is then ingress-
replicated by an underlying network.
Both hosts are on AlmaLinux 8.10, kernel 4.18.0-553.8.1.el8_10.x86_64, with
FRR version 10.0.1
What we observed using tcpdump on the VXLAN interfaces of mux and stub, is
that the two VTEP endpoints advertise a type 3 EVPN route for VNI 2063, and
do not send traffic to the multicast group, but rather use ingress replication.
Since this is not what we expected;
Is it possible to send BUM traffic to a multicast group without using PIM,
while using shared VNI VXLAN interfaces?
Configuration:
#### FRR configuration (stub)
frr version 10.0
frr defaults traditional
hostname stub
log syslog
no ip forwarding
no ipv6 forwarding
!
router bgp 65101
bgp router-id 10.11.0.20
bgp log-neighbor-changes
no bgp default ipv4-unicast
bgp disable-ebgp-connected-route-check
neighbor rrs peer-group
neighbor rrs remote-as internal
neighbor rrs update-source 10.11.0.20
neighbor rrs capability extended-nexthop
neighbor 10.11.0.19 peer-group rrs
neighbor 10.11.0.19 disable-connected-check
!
address-family l2vpn evpn
neighbor rrs activate
neighbor rrs route-map dataplane out
advertise-all-vni
exit-address-family
exit
!
route-map dataplane permit 10
set ipv4 vpn next-hop 10.111.111.2
exit
!
#### FRR configuration (mux)
frr version 10.0
frr defaults traditional
hostname mux
log syslog
no ip forwarding
no ipv6 forwarding
!
router bgp 65101
bgp router-id 10.11.0.30
bgp log-neighbor-changes
no bgp default ipv4-unicast
bgp disable-ebgp-connected-route-check
neighbor rrs peer-group
neighbor rrs remote-as internal
neighbor rrs update-source 10.11.0.30
neighbor rrs capability extended-nexthop
neighbor 10.11.0.19 peer-group rrs
neighbor 10.11.0.19 disable-connected-check
!
address-family l2vpn evpn
neighbor rrs activate
neighbor rrs route-map dataplane out
advertise-all-vni
exit-address-family
exit
!
route-map dataplane permit 10
set ipv4 vpn next-hop 10.111.111.6
exit
!
####
Linux device configuration:
# ip link add dev br0 type bridge vlan_filtering 1 vlan_default_pvid 1 vlan_protocol 0x8100 vlan_stats_enabled 1 mcast_stats_enabled 1 vlan_stats_per_port 1
on stub:
# ip link add vxlan0 type vxlan external dstport 8472 dev vlan0 local 10.111.111.2 group 239.0.0.1 nolearning vnifilter
on mux:
# ip link add vxlan0 type vxlan external dstport 8472 dev vlan0 local 10.111.111.6 group 239.0.0.1 nolearning vnifilter
# ip link set dev vxlan0 master br0
# ip link set dev vxlan0 type bridge_slave vlan_tunnel on
# bridge vlan add dev vxlan0 vid 2063
# bridge vlan add dev vxlan0 vid 2063 tunnel_info id 2063
####
on stub: vtysh -c "show bgp l2vpn evpn route type 3 self-originate json" | jq .
"10.11.0.20:17": {
"rd": "10.11.0.20:17",
"[3]:[0]:[32]:[10.111.111.2]": {
"prefix": "[3]:[0]:[32]:[10.111.111.2]",
"prefixLen": 352,
"paths": [
[
{
"valid": true,
"bestpath": true,
"selectionReason": "First path received",
"pathFrom": "external",
"routeType": 3,
"ethTag": 0,
"ipLen": 32,
"ip": "10.111.111.2",
"weight": 32768,
"peerId": "(unspec)",
"path": "",
"origin": "IGP",
"extendedCommunity": {
"string": "ET:8 RT:65101:2063"
},
"nexthops": [
{
"ip": "10.111.111.2",
"hostname": "stub",
"afi": "ipv4",
"used": true
}
]
}
]
]
}
}
####
on mux: # vtysh -c "show bgp l2vpn evpn route type 3 self-originate json" | jq .
"10.11.0.30:19": {
"rd": "10.11.0.30:19",
"[3]:[0]:[32]:[10.111.111.6]": {
"prefix": "[3]:[0]:[32]:[10.111.111.6]",
"prefixLen": 352,
"paths": [
[
{
"valid": true,
"bestpath": true,
"selectionReason": "First path received",
"pathFrom": "external",
"routeType": 3,
"ethTag": 0,
"ipLen": 32,
"ip": "10.111.111.6",
"weight": 32768,
"peerId": "(unspec)",
"path": "",
"origin": "IGP",
"extendedCommunity": {
"string": "ET:8 RT:65101:2063"
},
"nexthops": [
{
"ip": "10.111.111.6",
"hostname": "mux",
"afi": "ipv4",
"used": true
}
]
}
]
]
}
}
####
on stub: # show evpn vni 2063
VNI: 2063
Type: L2
Vlan: 0
Bridge: br0
Tenant VRF: default
VxLAN interface: vxlan0
VxLAN ifIndex: 25
SVI interface:
SVI ifIndex: 0
Local VTEP IP: 10.111.111.2
Mcast group: 0.0.0.0 <-----------
Remote VTEPs for this VNI:
10.111.111.6 flood: HER
Number of MACs (local and remote) known for this VNI: 2
Number of ARPs (IPv4 and IPv6, local and remote) known for this VNI: 0
Advertise-gw-macip: No
Advertise-svi-macip: No
####
on mux: # vtysh -c "show evpn vni 2063"
VNI: 2063
Type: L2
Vlan: 0
Bridge: br0
Tenant VRF: default
VxLAN interface: vxlan0
VxLAN ifIndex: 8
SVI interface:
SVI ifIndex: 0
Local VTEP IP: 10.111.111.6
Mcast group: 0.0.0.0 <-----------
Remote VTEPs for this VNI:
10.111.111.2 flood: HER
Number of MACs (local and remote) known for this VNI: 2
Number of ARPs (IPv4 and IPv6, local and remote) known for this VNI: 0
Advertise-gw-macip: No
Advertise-svi-macip: No
With kind regards,
Pieter
More information about the frog
mailing list