I have a bare metal hosting provider that provides me with layer-3 networking to every server. For some applications, I require a layer-2 network spanning the servers. This network is for the applications running on the server OS, not via VM or container tennants.
I've been following this blog post:
https://vincent.bernat.im/en/blog/2017-vxlan-bgp-evpn, using frr 3.1dev from git master from several nights ago. I believe I have the route reflector + vteps configured with respect to bgpd as described, but no routes are advertised. I do see bgp neighbors as expected.
Is there a way to configure my interfaces without a bridge (or is this a bad approach)? If a bridge and additional slaved interface is required, any suggestions on how to configure the bridge with no additional tenants on the servers?
Additional Thoughts:
- using static unicast discovery, vxlan membership across servers works
- adding a bridge interface and slaving the vxlan interface + a dummy interface, assigning an ip to the dummy did not seem to work
- tried kernel 4.4 from elrepo, (tends to work better from previous docker overlay network experiences)
Config:
compiled from commit c1240044fbf081bb7407b1449d3954e4b63fec9f on CentOS 7.4, with --enable-cumulus
Route Reflector:
bgpd.conf:
router bgp 65000
bgp router-id 10.40.1.131
bgp cluster-id 10.40.1.131
bgp log-neighbor-changes
no bgp default ipv4-unicast
coalesce-time 1000
neighbor fabric peer-group
neighbor fabric remote-as 65000
neighbor fabric update-source 10.40.1.131
neighbor fabric capability extended-nexthop
!
address-family l2vpn evpn
neighbor fabric activate
neighbor fabric route-reflector-client
exit-address-family
!
layer-2 member server example:
bgpd.conf:
router bgp 65000
bgp router-id 10.40.1.129
no bgp default ipv4-unicast
coalesce-time 1000
neighbor fabric peer-group
neighbor fabric remote-as 65000
neighbor fabric capability extended-nexthop
neighbor 10.40.1.131 peer-group fabric
!
address-family l2vpn evpn
neighbor fabric activate
advertise-all-vni
exit-address-family
!
vxlan configured with:
# ip link vxlan100 type vxlan id 100 local 10.40.1.129 port 4789 nolearning
# ip link set up dev vxlan100
Thanks for any suggestions (or course corrections, as this is new to me)!