<div dir="ltr">To add some resolution to this question, I was able to get this working with veth interfaces. Same FRR configuration as before, but with the following interface configuration on the VTEPs:<div><br></div><div><div>/usr/sbin/ip link add dev br0 type bridge</div><div>/usr/sbin/ip link add dev vxlan0 type vxlan id 1 local ${LOCAL_IP} dstport 4789 nolearning</div><div>/usr/sbin/ip link add name vif0 type veth peer name vif1</div><div><br></div><div># slave vxlan0 & vif0 to br0</div><div>/usr/sbin/ip link set dev vxlan0 master br0</div><div>/usr/sbin/ip link set dev vif0 master br0</div><div><br></div><div># mark interfaces up</div><div>/usr/sbin/ip link set up dev br0</div><div>/usr/sbin/ip link set up dev vxlan0</div><div>/usr/sbin/ip link set up dev vif0</div><div>/usr/sbin/ip link set up dev vif1</div><div><br></div><div>#add IP to vif1</div><div>/usr/sbin/ip addr add ${VXLAN_IP} dev vif1</div><br><div class="gmail_quote"><div dir="ltr">On Sat, Jan 13, 2018 at 10:44 AM Henry Snow <<a href="mailto:henry.snow@nielsen.com">henry.snow@nielsen.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">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.<div><br></div><div>I've been following this blog post: <a href="https://vincent.bernat.im/en/blog/2017-vxlan-bgp-evpn" target="_blank">https://vincent.bernat.im/en/blog/2017-vxlan-bgp-evpn</a>, 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.</div><div><br></div><div>When I run 'show evpn mac vni 100', I do not see any mac addresses. My suspicion is that it is because I'm not using a bridge, but assigning an IP address directly to the vxlan interface. Looking at the source code (my C is very rusty), it looks like it enumerates all the VNIs, finds the bridges they're slaved to, then enumerates the interfaces on the bridge. I'm looking at this: <a href="https://github.com/FRRouting/frr/blob/8eac4812601f069f14fc7950e10904c2ae0ae774/zebra/zebra_vxlan.c#L2668" target="_blank">https://github.com/FRRouting/frr/blob/8eac4812601f069f14fc7950e10904c2ae0ae774/zebra/zebra_vxlan.c#L2668</a></div><div><br></div><div>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?</div><div><br></div><div>Additional Thoughts: </div><div>- using static unicast discovery, vxlan membership across servers works</div><div>- adding a bridge interface and slaving the vxlan interface + a dummy interface, assigning an ip to the dummy did not seem to work</div><div>- tried kernel 4.4 from elrepo, (tends to work better from previous docker overlay network experiences)</div><div><br></div><div>Config:</div><div>compiled from commit c1240044fbf081bb7407b1449d3954e4b63fec9f on CentOS 7.4, with --enable-cumulus</div><div><br></div><div>Route Reflector:<br></div><div><a href="http://10.40.1.131/31" target="_blank">10.40.1.131/31</a></div><div><br></div><div>bgpd.conf:</div><div><div>router bgp 65000</div><div> bgp router-id 10.40.1.131</div><div> bgp cluster-id 10.40.1.131</div><div> bgp log-neighbor-changes</div><div> no bgp default ipv4-unicast</div><div> coalesce-time 1000</div><div> neighbor fabric peer-group</div><div> neighbor fabric remote-as 65000</div><div> neighbor fabric update-source 10.40.1.131</div><div> neighbor fabric capability extended-nexthop</div><div> bgp listen range <a href="http://10.40.1.128/25" target="_blank">10.40.1.128/25</a> peer-group fabric</div><div> !</div><div> address-family l2vpn evpn</div><div>  neighbor fabric activate</div><div>  neighbor fabric route-reflector-client</div><div> exit-address-family</div><div>!</div></div><div><br></div><div><br></div><div>layer-2 member server example:</div><div><a href="http://10.40.1.129/31" target="_blank">10.40.1.129/31</a><br></div><div><br></div><div>bgpd.conf:</div><div><div>router bgp 65000</div><div> bgp router-id 10.40.1.129</div><div> no bgp default ipv4-unicast</div><div> coalesce-time 1000</div><div> neighbor fabric peer-group</div><div> neighbor fabric remote-as 65000</div><div> neighbor fabric capability extended-nexthop</div><div> neighbor 10.40.1.131 peer-group fabric</div><div> !</div><div> address-family l2vpn evpn</div><div>  neighbor fabric activate</div><div>  advertise-all-vni</div><div> exit-address-family</div><div>!</div></div><div><br></div><div>vxlan configured with:</div><div># ip link vxlan100 type vxlan id 100 local 10.40.1.129 port 4789 nolearning</div><div># ip link set up dev vxlan100</div><div># ip addr add <a href="http://172.31.254.2/24" target="_blank">172.31.254.2/24</a> dev vxlan100</div><div><br></div><div>Thanks for any suggestions (or course corrections, as this is new to me)!</div><div><br></div></div><br clear="all"><br>-- <br><div dir="ltr" class="m_-6975780669963676877gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><font color="#808080" style="line-height:normal;font-family:cantarell">Henry Snow | Director, Site Reliability Engineering</font><div><font color="#808080" style="line-height:normal;font-family:cantarell"><a href="http://exelate.com/" target="_blank">eXelate, a Nielsen company</a></font><br style="line-height:normal;color:rgb(0,0,0);font-family:cantarell"><font color="#808080" style="line-height:normal;font-family:cantarell">E: <a href="mailto:henry.snow@nielsen.com" target="_blank">henry.snow@nielsen.com</a> | </font><span style="color:rgb(128,128,128);font-family:cantarell;line-height:normal">M: <a href="tel:(347)%20366-2700" value="+13473662700" target="_blank">347.366.2700</a></span><br style="line-height:normal;color:rgb(0,0,0);font-family:cantarell"><font color="#808080" style="line-height:normal;font-family:cantarell">675 6th Ave, 3rd Floor, New York, NY 10010 </font><br></div></div></div></blockquote></div></div></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><font color="#808080" style="line-height:normal;font-family:cantarell">Henry Snow | Director, Site Reliability Engineering</font><div><font color="#808080" style="line-height:normal;font-family:cantarell"><a href="http://exelate.com/">eXelate, a Nielsen company</a></font><br style="line-height:normal;color:rgb(0,0,0);font-family:cantarell"><font color="#808080" style="line-height:normal;font-family:cantarell">E: <a href="mailto:henry.snow@nielsen.com">henry.snow@nielsen.com</a> | </font><span style="color:rgb(128,128,128);font-family:cantarell;line-height:normal">M: 347.366.2700</span><br style="line-height:normal;color:rgb(0,0,0);font-family:cantarell"><font color="#808080" style="line-height:normal;font-family:cantarell">675 6th Ave, 3rd Floor, New York, NY 10010 </font><br></div></div></div>