!
----
-
-VXLAN layer2 with vlan aware linux bridges
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-We use 1 vmbr bridge, each vxlan is mapped to a vlan
-
-image::images/vxlan-l2-vlanaware.svg["vxlan l2 bridge vlan aware",align="center"]
-
-multicast mode
-^^^^^^^^^^^^^^
-
-* node1
-
-----
-auto eno1
-iface eno1 inet manual
-
-auto vmbr0
-iface vmbr0 inet static
- address 192.168.0.1
- netmask 255.255.255.0
- bridge_ports eno1 vxlan2 vxlan3
- bridge_stp off
- bridge_fd 0
- bridge_vlan_aware yes
-
-auto vxlan2
-iface vxlan2 inet manual
- vxlan-svcnodeip 225.20.1.1
- vxlan-physdev eno1
- bridge-access 2
-
-auto vxlan3
-iface vxlan3 inet manual
- vxlan-svcnodeip 225.20.1.1
- vxlan-physdev eno1
- bridge-access 3
-----
-
-
-* node2
-
-----
-auto eno1
-iface eno1 inet manual
-
-auto vmbr0
-iface vmbr0 inet static
- address 192.168.0.2
- netmask 255.255.255.0
- bridge_ports eno1 vxlan2 vxlan3
- bridge_stp off
- bridge_fd 0
- bridge_vlan_aware yes
-
-auto vxlan2
-iface vxlan2 inet manual
- vxlan-svcnodeip 225.20.1.1
- vxlan-physdev eno1
- bridge-access 2
-
-auto vxlan3
-iface vxlan3 inet manual
- vxlan-svcnodeip 225.20.1.1
- vxlan-physdev eno1
- bridge-access 3
-----
-
-
-* node3
-
-----
-auto eno1
-iface eno1 inet manual
-
-auto vmbr0
-iface vmbr0 inet static
- address 192.168.0.3
- netmask 255.255.255.0
- bridge_ports eno1 vxlan2 vxlan3
- bridge_stp off
- bridge_fd 0
- bridge_vlan_aware yes
-
-auto vxlan2
-iface vxlan2 inet manual
- vxlan-svcnodeip 225.20.1.1
- vxlan-physdev eno1
- bridge-access 2
-
-auto vxlan3
-iface vxlan3 inet manual
- vxlan-svcnodeip 225.20.1.1
- vxlan-physdev eno1
- bridge-access 3
-----
-
-
-unicast mode
-^^^^^^^^^^^^
-
-* node1
-
-----
-auto eno1
-iface eno1 inet manual
-
-auto vmbr0
-iface vmbr0 inet static
- address 192.168.0.1
- netmask 255.255.255.0
- bridge_ports eno1 vxlan2 vxlan3
- bridge_stp off
- bridge_fd 0
- bridge_vlan_aware yes
-
-auto vxlan2
-iface vxlan2 inet manual
- vxlan_remoteip 192.168.0.2
- vxlan_remoteip 192.168.0.3
- bridge-access 2
-
-auto vxlan3
-iface vxlan3 inet manual
- vxlan_remoteip 192.168.0.2
- vxlan_remoteip 192.168.0.3
- bridge-access 3
-----
-
-
-* node2
-
-----
-auto eno1
-iface eno1 inet manual
-
-auto vmbr0
-iface vmbr0 inet static
- address 192.168.0.2
- netmask 255.255.255.0
- bridge_ports eno1 vxlan2 vxlan3
- bridge_stp off
- bridge_fd 0
- bridge_vlan_aware yes
-
-auto vxlan2
-iface vxlan2 inet manual
- vxlan_remoteip 192.168.0.1
- vxlan_remoteip 192.168.0.3
- bridge-access 2
-
-auto vxlan3
-iface vxlan3 inet manual
- vxlan_remoteip 192.168.0.1
- vxlan_remoteip 192.168.0.3
- bridge-access 3
-----
-
-
-* node3
-
-----
-auto eno1
-iface eno1 inet manual
-
-auto vmbr0
-iface vmbr0 inet static
- address 192.168.0.3
- netmask 255.255.255.0
- bridge_ports eno1 vxlan2 vxlan3
- bridge_stp off
- bridge_fd 0
- bridge_vlan_aware yes
-
-auto vxlan2
-iface vxlan2 inet manual
- vxlan_remoteip 192.168.0.2
- vxlan_remoteip 192.168.0.3
- bridge-access 2
-
-auto vxlan3
-iface vxlan3 inet manual
- vxlan_remoteip 192.168.0.2
- vxlan_remoteip 192.168.0.3
- bridge-access 3
-----
-
-
-bgp-evpn
-^^^^^^^^
-
-Note: currently FRR is working only with 1 vlan aware bridge
-
-* node1
-
-
-----
-auto eno1
-iface eno1 inet manual
-
-auto vmbr0
-iface vmbr0 inet static
- address 192.168.0.1
- netmask 255.255.255.0
- bridge_ports eno1 vxlan2 vxlan3
- bridge_stp off
- bridge_fd 0
- bridge_vlan_aware yes
-
-auto vxlan0
-iface vxlan0 inet manual
- vxlan-local-tunnelip 192.168.0.1
- bridge-learning off
- bridge-arp-nd-suppress on
- bridge-unicast-flood off
- bridge-multicast-flood off
- bridge-access 2
-
-
-auto vxlan3
-iface vxlan3 inet manual
- vxlan-local-tunnelip 192.168.0.1
- bridge-learning off
- bridge-arp-nd-suppress on
- bridge-unicast-flood off
- bridge-multicast-flood off
- bridge-access 3
-----
-
-
-/etc/frr/frr.conf
-
-----
-router bgp 1234
- no bgp default ipv4-unicast
- coalesce-time 1000
- neighbor 192.168.0.2 remote-as 1234
- neighbor 192.168.0.3 remote-as 1234
- !
- address-family l2vpn evpn
- neighbor 192.168.0.2 activate
- neighbor 192.168.0.3 activate
- advertise-all-vni
- exit-address-family
-!
-line vty
-!
-----
-
-
-* node2
-
-----
-auto eno1
-iface eno1 inet manual
-
-auto vmbr0
-iface vmbr0 inet static
- address 192.168.0.2
- netmask 255.255.255.0
- bridge_ports eno1 vxlan2 vxlan3
- bridge_stp off
- bridge_fd 0
- bridge_vlan_aware yes
-
-auto vxlan0
-iface vxlan0 inet manual
- vxlan-local-tunnelip 192.168.0.2
- bridge-learning off
- bridge-arp-nd-suppress on
- bridge-unicast-flood off
- bridge-multicast-flood off
- bridge-access 2
-
-
-auto vxlan3
-iface vxlan3 inet manual
- vxlan-local-tunnelip 192.168.0.2
- bridge-learning off
- bridge-arp-nd-suppress on
- bridge-unicast-flood off
- bridge-multicast-flood off
- bridge-access 3
-----
-
-
-/etc/frr/frr.conf
-
-----
-router bgp 1234
- no bgp default ipv4-unicast
- coalesce-time 1000
- neighbor 192.168.0.1 remote-as 1234
- neighbor 192.168.0.3 remote-as 1234
- !
- address-family l2vpn evpn
- neighbor 192.168.0.1 activate
- neighbor 192.168.0.3 activate
- advertise-all-vni
- exit-address-family
-!
-line vty
-!
-----
-
-
-* node3
-
-----
-auto eno1
-iface eno1 inet manual
-
-auto vmbr0
-iface vmbr0 inet static
- address 192.168.0.3
- netmask 255.255.255.0
- bridge_ports eno1 vxlan2 vxlan3
- bridge_stp off
- bridge_fd 0
- bridge_vlan_aware yes
-
-auto vxlan0
-iface vxlan0 inet manual
- vxlan-local-tunnelip 192.168.0.3
- bridge-learning off
- bridge-arp-nd-suppress on
- bridge-unicast-flood off
- bridge-multicast-flood off
- bridge-access 2
-
-
-auto vxlan3
-iface vxlan3 inet manual
- vxlan-local-tunnelip 192.168.0.3
- bridge-learning off
- bridge-arp-nd-suppress on
- bridge-unicast-flood off
- bridge-multicast-flood off
- bridge-access 3
-----
-
-
-/etc/frr/frr.conf
-----
-router bgp 1234
- no bgp default ipv4-unicast
- coalesce-time 1000
- neighbor 192.168.0.1 remote-as 1234
- neighbor 192.168.0.2 remote-as 1234
- !
- address-family l2vpn evpn
- neighbor 192.168.0.1 activate
- neighbor 192.168.0.2 activate
- advertise-all-vni
- exit-address-family
-!
-line vty
-!
-----
-
VXLAN layer3 routing with anycast gateway
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
VXLAN layer3 routing only work with FRR and non-aware bridge.
(vlan aware bridge support is buggy currently).
-
-sysctl.conf tuning
-
-----
-#enable routing
-net.ipv4.ip_forward=1
-net.ipv6.conf.all.forwarding=1
-#disable reverse path filtering
-net.ipv4.conf.default.rp_filter=0
-net.ipv4.conf.all.rp_filter=0
-#allow frr to work with vrf
-net.ipv4.tcp_l3mdev_accept=1
-----
-
asymmetric model
^^^^^^^^^^^^^^^^
image::images/vxlan-l3-asymmetric.svg["vxlan l3 asymmetric",align="center"]
+sysctl.conf tuning
+
+----
+#enable routing
+net.ipv4.ip_forward=1
+net.ipv6.conf.all.forwarding=1
+----
+
* node1
----
image::images/vxlan-l3-symmetric.svg["vxlan l3 symmetric",align="center"]
+sysctl.conf tuning
+
+----
+#enable routing
+net.ipv4.ip_forward=1
+net.ipv6.conf.all.forwarding=1
+#disable reverse path filtering
+net.ipv4.conf.default.rp_filter=0
+net.ipv4.conf.all.rp_filter=0
+#allow frr to work with vrf (kernel >4.14 bug)
+net.ipv4.tcp_l3mdev_accept=1
+----
* node1