4 This is currently not included, because
5 - it requires ifupdown2
6 - routing needs more documentation
11 VXLAN layer2 with vlan unware linux bridges
12 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14 VXLAN is an overlay network to carry Ethernet traffic over an existing IP network
15 while accommodating a very large number of tenants. It is defined in RFC 7348.
16 Each overlay network is known as a VXLAN Segment and identified by a unique
17 24-bit segment ID called a VXLAN Network Identifier (VNI).
19 VXLAN encapsulation add 50bytes overhead, so you need to increase mtu on your host
20 physical interfaces to 1550 at minimum. (or decrease mtu inside your vms to 1450)
22 For BUM traffic (broadcast / unknown unicast traffic, multicast),
23 we have 3 differents vxlan setup modes : multicast, unicast, bgp-evpn
25 image::images/vxlan-l2-vlanunaware.svg["vxlan l2 bridge vlan unaware",align="center"]
30 This scenario relies in head end replication, meaning that end host in case
31 of not having any entry for the destination MAC address will send out an ARP
32 to other devices / VTEPs in the VXLAN network.
33 This is done by sending the request to the VXLAN multicast group,
34 remote VTEPs will get the packet and answer accordingly direct to the originating VTEP.
41 iface eno1 inet manual
45 iface vmbr0 inet static
53 iface vxlan2 inet manual
55 vxlan-svcnodeip 225.20.1.1
59 iface vmbr2 inet manual
65 iface vxlan3 inet manual
67 vxlan-svcnodeip 225.20.1.1
71 iface vmbr3 inet manual
82 iface eno1 inet manual
86 iface vmbr0 inet static
94 iface vxlan2 inet manual
96 vxlan-svcnodeip 225.20.1.1
100 iface vmbr2 inet manual
107 iface vxlan3 inet manual
109 vxlan-svcnodeip 225.20.1.1
113 iface vmbr3 inet manual
124 iface eno1 inet manual
128 iface vmbr0 inet static
130 netmask 255.255.255.0
136 iface vxlan2 inet manual
138 vxlan-svcnodeip 225.20.1.1
142 iface vmbr2 inet manual
149 iface vxlan3 inet manual
151 vxlan-svcnodeip 225.20.1.1
155 iface vmbr3 inet manual
165 We can replace multicast by head-end replication of BUM frames to a statically configured lists of remote VTEPs.
166 The VXLAN is defined without a remote multicast group.
167 Instead, all the remote VTEPs are associated with the all-zero address:
168 a BUM frame will be duplicated to all these destinations.
169 The VXLAN device will still learn remote addresses automatically using source-address learning.
175 iface eno1 inet manual
179 iface vmbr0 inet static
181 netmask 255.255.255.0
188 iface vxlan2 inet manual
190 vxlan_remoteip 192.168.0.2
191 vxlan_remoteip 192.168.0.3
195 iface vmbr2 inet manual
202 iface vxlan2 inet manual
204 vxlan_remoteip 192.168.0.2
205 vxlan_remoteip 192.168.0.3
209 iface vmbr3 inet manual
220 iface eno1 inet manual
224 iface vmbr0 inet static
226 netmask 255.255.255.0
232 iface vxlan2 inet manual
234 vxlan_remoteip 192.168.0.1
235 vxlan_remoteip 192.168.0.3
240 iface vmbr2 inet manual
246 iface vxlan2 inet manual
248 vxlan_remoteip 192.168.0.1
249 vxlan_remoteip 192.168.0.3
253 iface vmbr3 inet manual
264 iface eno1 inet manual
268 iface vmbr0 inet static
270 netmask 255.255.255.0
276 iface vxlan2 inet manual
278 vxlan_remoteip 192.168.0.2
279 vxlan_remoteip 192.168.0.3
284 iface vmbr2 inet manual
290 iface vxlan2 inet manual
292 vxlan_remoteip 192.168.0.2
293 vxlan_remoteip 192.168.0.3
297 iface vmbr3 inet manual
307 VTEPs use control plane learning/distribution via BGP for remote MAC addresses instead of data plane learning.
308 VTEPs have the ability to suppress ARP flooding over VXLAN tunnels.
310 The control plane used here is FRR, a bgp routing software.
311 Each node in the proxmox cluster peer with each others nodes.
312 For bigger networks, or multiple proxmox clusters,
313 it's possible to use external bgp route reflector servers.
319 iface eno1 inet manual
323 iface vmbr0 inet static
325 netmask 255.255.255.0
331 iface vxlan2 inet manual
333 vxlan-local-tunnelip 192.168.0.1
335 bridge-arp-nd-suppress on
336 bridge-unicast-flood off
337 bridge-multicast-flood off
341 iface vmbr2 inet manual
348 iface vxlan3 inet manual
350 vxlan-local-tunnelip 192.168.0.1
352 bridge-arp-nd-suppress on
353 bridge-unicast-flood off
354 bridge-multicast-flood off
358 iface vmbr3 inet manual
369 no bgp default ipv4-unicast
370 no bgp default ipv6-unicast
372 neighbor 192.168.0.2 remote-as 1234
373 neighbor 192.168.0.3 remote-as 1234
375 address-family l2vpn evpn
376 neighbor 192.168.0.2 activate
377 neighbor 192.168.0.3 activate
390 iface eno1 inet manual
394 iface vmbr0 inet static
396 netmask 255.255.255.0
402 iface vxlan2 inet manual
404 vxlan-local-tunnelip 192.168.0.2
406 bridge-arp-nd-suppress on
407 bridge-unicast-flood off
408 bridge-multicast-flood off
412 iface vmbr2 inet manual
418 iface vxlan3 inet manual
420 vxlan-local-tunnelip 192.168.0.2
422 bridge-arp-nd-suppress on
423 bridge-unicast-flood off
424 bridge-multicast-flood off
428 iface vmbr3 inet manual
439 no bgp default ipv4-unicast
440 no bgp default ipv6-unicast
442 neighbor 192.168.0.1 remote-as 1234
443 neighbor 192.168.0.3 remote-as 1234
445 address-family l2vpn evpn
446 neighbor 192.168.0.1 activate
447 neighbor 192.168.0.3 activate
460 iface eno1 inet manual
464 iface vmbr0 inet static
466 netmask 255.255.255.0
472 iface vxlan2 inet manual
474 vxlan-local-tunnelip 192.168.0.3
476 bridge-arp-nd-suppress on
477 bridge-unicast-flood off
478 bridge-multicast-flood off
482 iface vmbr2 inet manual
488 iface vxlan3 inet manual
490 vxlan-local-tunnelip 192.168.0.3
492 bridge-arp-nd-suppress on
493 bridge-unicast-flood off
494 bridge-multicast-flood off
498 iface vmbr3 inet manual
510 no bgp default ipv4-unicast
511 no bgp default ipv6-unicast
513 neighbor 192.168.0.1 remote-as 1234
514 neighbor 192.168.0.2 remote-as 1234
516 address-family l2vpn evpn
517 neighbor 192.168.0.1 activate
518 neighbor 192.168.0.2 activate
526 VXLAN layer3 routing with anycast gateway
527 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
529 With this need, each vmbr bridge will be the gateway for the vm.
530 Same vmbr on different node, will have same ip address and same mac address,
531 to have working vm live migration and no network disruption.
533 VXLAN layer3 routing only work with FRR and non-aware bridge.
534 (vlan aware bridge support is buggy currently).
539 This is the simplest mode. To get it work, all vxlan need to be defined on all nodes.
541 The asymmetric model allows routing and bridging on the VXLAN tunnel ingress,
542 but only bridging on the egress.
543 This results in bi-directional VXLAN traffic traveling on different VNIs
544 in each direction (always the destination VNI) across the routed infrastructure.
546 image::images/vxlan-l3-asymmetric.svg["vxlan l3 asymmetric",align="center"]
552 iface eno1 inet manual
556 iface vmbr0 inet static
558 netmask 255.255.255.0
564 iface vxlan2 inet manual
566 vxlan-local-tunnelip 192.168.0.1
568 bridge-arp-nd-suppress on
569 bridge-unicast-flood off
570 bridge-multicast-flood off
574 iface vmbr2 inet static
576 netmask 255.255.255.0
577 hwaddress 44:39:39:FF:40:94
586 iface vxlan3 inet manual
588 vxlan-local-tunnelip 192.168.0.1
590 bridge-arp-nd-suppress on
591 bridge-unicast-flood off
592 bridge-multicast-flood off
596 iface vmbr3 inet static
598 netmask 255.255.255.0
599 hwaddress 44:39:39:FF:40:94
613 bgp router-id 192.168.0.1
614 no bgp default ipv4-unicast
615 no bgp default ipv6-unicast
617 neighbor 192.168.0.2 remote-as 1234
618 neighbor 192.168.0.3 remote-as 1234
620 address-family l2vpn evpn
621 neighbor 192.168.0.2 activate
622 neighbor 192.168.0.3 activate
635 iface eno1 inet manual
639 iface vmbr0 inet static
641 netmask 255.255.255.0
647 iface vxlan2 inet manual
649 vxlan-local-tunnelip 192.168.0.2
651 bridge-arp-nd-suppress on
652 bridge-unicast-flood off
653 bridge-multicast-flood off
657 iface vmbr2 inet static
659 netmask 255.255.255.0
660 hwaddress 44:39:39:FF:40:94
670 iface vxlan3 inet manual
672 vxlan-local-tunnelip 192.168.0.2
674 bridge-arp-nd-suppress on
675 bridge-unicast-flood off
676 bridge-multicast-flood off
680 iface vmbr3 inet static
682 netmask 255.255.255.0
683 hwaddress 44:39:39:FF:40:94
697 bgp router-id 192.168.0.2
698 no bgp default ipv4-unicast
699 no bgp default ipv6-unicast
701 neighbor 192.168.0.1 remote-as 1234
702 neighbor 192.168.0.3 remote-as 1234
704 address-family l2vpn evpn
705 neighbor 192.168.0.1 activate
706 neighbor 192.168.0.3 activate
719 iface eno1 inet manual
723 iface vmbr0 inet static
725 netmask 255.255.255.0
731 iface vxlan2 inet manual
733 vxlan-local-tunnelip 192.168.0.3
735 bridge-arp-nd-suppress on
736 bridge-unicast-flood off
737 bridge-multicast-flood off
741 iface vmbr2 inet static
743 netmask 255.255.255.0
744 hwaddress 44:39:39:FF:40:94
753 iface vxlan3 inet manual
755 vxlan-local-tunnelip 192.168.0.3
757 bridge-arp-nd-suppress on
758 bridge-unicast-flood off
759 bridge-multicast-flood off
762 iface vmbr3 inet static
764 netmask 255.255.255.0
765 hwaddress 44:39:39:FF:40:94
779 bgp router-id 192.168.0.3
780 no bgp default ipv4-unicast
781 no bgp default ipv6-unicast
783 neighbor 192.168.0.1 remote-as 1234
784 neighbor 192.168.0.2 remote-as 1234
786 address-family l2vpn evpn
787 neighbor 192.168.0.1 activate
788 neighbor 192.168.0.2 activate
800 With this model, you don't need to have all vxlan on all nodes.
801 This model will also be needed to route traffic to an external router.
803 The symmetric model routes and bridges on both the ingress and the egress leafs.
804 This results in bi-directional traffic being able to travel on the same VNI, hence the symmetric name.
805 However, a new specialty transit VNI is used for all routed VXLAN traffic, called the L3VNI.
806 All traffic that needs to be routed will be routed onto the L3VNI, tunneled across the layer 3 Infrastructure,
807 routed off the L3VNI to the appropriate VLAN and ultimately bridged to the destination.
809 A vrf is needed for the L3VNI, so all vmbr bridge need to be in the vrf if they want to be able to reach each others.
811 image::images/vxlan-l3-symmetric.svg["vxlan l3 symmetric",align="center"]
821 iface eno1 inet manual
825 iface vmbr0 inet static
827 netmask 255.255.255.0
833 iface vxlan2 inet manual
835 vxlan-local-tunnelip 192.168.0.1
837 bridge-arp-nd-suppress on
838 bridge-unicast-flood off
839 bridge-multicast-flood off
842 iface vmbr2 inet static
847 netmask 255.255.255.0
848 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
855 iface vxlan3 inet manual
857 vxlan-local-tunnelip 192.168.0.1
859 bridge-arp-nd-suppress on
860 bridge-unicast-flood off
861 bridge-multicast-flood off
864 iface vmbr3 inet static
869 netmask 255.255.255.0
870 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
876 #interconnect vxlan-vfr l3vni
878 iface vxlan4000 inet manual
880 vxlan-local-tunnelip 192.168.0.1
882 bridge-arp-nd-suppress on
883 bridge-unicast-flood off
884 bridge-multicast-flood off
888 iface vmbr4000 inet manual
889 bridge_ports vxlan4000
903 bgp router-id 192.168.0.1
904 no bgp default ipv4-unicast
905 no bgp default ipv6-unicast
907 neighbor 192.168.0.2 remote-as 1234
908 neighbor 192.168.0.3 remote-as 1234
910 address-family l2vpn evpn
911 neighbor 192.168.0.2 activate
912 neighbor 192.168.0.3 activate
929 iface eno1 inet manual
933 iface vmbr0 inet static
935 netmask 255.255.255.0
941 iface vxlan2 inet manual
943 vxlan-local-tunnelip 192.168.0.2
945 bridge-arp-nd-suppress on
946 bridge-unicast-flood off
947 bridge-multicast-flood off
950 iface vmbr2 inet static
955 netmask 255.255.255.0
956 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
963 iface vxlan3 inet manual
965 vxlan-local-tunnelip 192.168.0.2
967 bridge-arp-nd-suppress on
968 bridge-unicast-flood off
969 bridge-multicast-flood off
972 iface vmbr3 inet static
977 netmask 255.255.255.0
978 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
984 #interconnect vxlan-vfr l3vni
986 iface vxlan4000 inet manual
988 vxlan-local-tunnelip 192.168.0.2
990 bridge-arp-nd-suppress on
991 bridge-unicast-flood off
992 bridge-multicast-flood off
996 iface vmbr4000 inet manual
997 bridge_ports vxlan4000
1012 bgp router-id 192.168.0.2
1013 no bgp default ipv4-unicast
1014 no bgp default ipv6-unicast
1016 neighbor 192.168.0.1 remote-as 1234
1017 neighbor 192.168.0.3 remote-as 1234
1019 address-family l2vpn evpn
1020 neighbor 192.168.0.1 activate
1021 neighbor 192.168.0.3 activate
1038 iface eno1 inet manual
1042 iface vmbr0 inet static
1044 netmask 255.255.255.0
1050 iface vxlan2 inet manual
1052 vxlan-local-tunnelip 192.168.0.3
1054 bridge-arp-nd-suppress on
1055 bridge-unicast-flood off
1056 bridge-multicast-flood off
1059 iface vmbr2 inet static
1064 netmask 255.255.255.0
1065 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1072 iface vxlan3 inet manual
1074 vxlan-local-tunnelip 192.168.0.3
1076 bridge-arp-nd-suppress on
1077 bridge-unicast-flood off
1078 bridge-multicast-flood off
1081 iface vmbr3 inet static
1086 netmask 255.255.255.0
1087 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1093 #interconnect vxlan-vfr l3vni
1095 iface vxlan4000 inet manual
1097 vxlan-local-tunnelip 192.168.0.3
1099 bridge-arp-nd-suppress on
1100 bridge-unicast-flood off
1101 bridge-multicast-flood off
1105 iface vmbr4000 inet manual
1106 bridge_ports vxlan4000
1121 bgp router-id 192.168.0.3
1122 no bgp default ipv4-unicast
1123 no bgp default ipv6-unicast
1125 neighbor 192.168.0.1 remote-as 1234
1126 neighbor 192.168.0.2 remote-as 1234
1128 address-family l2vpn evpn
1129 neighbor 192.168.0.1 activate
1130 neighbor 192.168.0.2 activate
1138 VXLAN layer3 routing with anycast gateway + routing to outside with external router with static default gw
1139 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1140 Routing to outside need the symmetric model.
1144 In this example, we'll use only 1 proxmox node as exit gateway. (node1)
1145 This node announce the default gw in vrf1 (default originate) and forward to his own default gateway (192.168.0.254) (no bgp between router and node1)
1156 iface eno1 inet manual
1160 iface vmbr0 inet static
1162 netmask 255.255.255.0
1163 gateway 192.168.0.254
1171 iface vxlan2 inet manual
1173 vxlan-local-tunnelip 192.168.0.1
1175 bridge-arp-nd-suppress on
1176 bridge-unicast-flood off
1177 bridge-multicast-flood off
1180 iface vmbr2 inet static
1185 netmask 255.255.255.0
1186 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1193 iface vxlan3 inet manual
1195 vxlan-local-tunnelip 192.168.0.1
1197 bridge-arp-nd-suppress on
1198 bridge-unicast-flood off
1199 bridge-multicast-flood off
1202 iface vmbr3 inet static
1207 netmask 255.255.255.0
1208 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1214 #interconnect vxlan-vfr l3vni
1216 iface vxlan4000 inet manual
1218 vxlan-local-tunnelip 192.168.0.1
1220 bridge-arp-nd-suppress on
1221 bridge-unicast-flood off
1222 bridge-multicast-flood off
1225 iface vmbr4000 inet manual
1226 bridge_ports vxlan4000
1241 bgp router-id 192.168.0.1
1242 no bgp default ipv4-unicast
1243 no bgp default ipv6-unicast
1245 neighbor 192.168.0.2 remote-as 1234
1246 neighbor 192.168.0.3 remote-as 1234
1248 address-family ipv4 unicast
1252 address-family ipv6 unicast
1256 address-family l2vpn evpn
1257 neighbor 192.168.0.2 activate
1258 neighbor 192.168.0.3 activate
1262 router bgp 1234 vrf vrf1
1264 address-family ipv4 unicast
1265 redistribute connected
1268 address-family ipv6 unicast
1269 redistribute connected
1272 address-family l2vpn evpn
1273 default-originate ipv4
1274 default-originate ipv6
1290 iface eno1 inet manual
1294 iface vmbr0 inet static
1296 netmask 255.255.255.0
1302 iface vxlan2 inet manual
1304 vxlan-local-tunnelip 192.168.0.2
1306 bridge-arp-nd-suppress on
1307 bridge-unicast-flood off
1308 bridge-multicast-flood off
1311 iface vmbr2 inet static
1316 netmask 255.255.255.0
1317 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1324 iface vxlan3 inet manual
1326 vxlan-local-tunnelip 192.168.0.2
1328 bridge-arp-nd-suppress on
1329 bridge-unicast-flood off
1330 bridge-multicast-flood off
1333 iface vmbr3 inet static
1338 netmask 255.255.255.0
1339 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1345 #interconnect vxlan-vfr l3vni
1347 iface vxlan4000 inet manual
1349 vxlan-local-tunnelip 192.168.0.2
1351 bridge-arp-nd-suppress on
1352 bridge-unicast-flood off
1353 bridge-multicast-flood off
1357 iface vmbr4000 inet manual
1358 bridge_ports vxlan4000
1373 bgp router-id 192.168.0.2
1374 no bgp default ipv4-unicast
1375 no bgp default ipv6-unicast
1377 neighbor 192.168.0.1 remote-as 1234
1378 neighbor 192.168.0.3 remote-as 1234
1380 address-family l2vpn evpn
1381 neighbor 192.168.0.1 activate
1382 neighbor 192.168.0.3 activate
1399 iface eno1 inet manual
1403 iface vmbr0 inet static
1405 netmask 255.255.255.0
1411 iface vxlan2 inet manual
1413 vxlan-local-tunnelip 192.168.0.3
1415 bridge-arp-nd-suppress on
1416 bridge-unicast-flood off
1417 bridge-multicast-flood off
1420 iface vmbr2 inet static
1425 netmask 255.255.255.0
1426 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1433 iface vxlan3 inet manual
1435 vxlan-local-tunnelip 192.168.0.3
1437 bridge-arp-nd-suppress on
1438 bridge-unicast-flood off
1439 bridge-multicast-flood off
1442 iface vmbr3 inet static
1447 netmask 255.255.255.0
1448 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1454 #interconnect vxlan-vfr l3vni
1456 iface vxlan4000 inet manual
1458 vxlan-local-tunnelip 192.168.0.3
1460 bridge-arp-nd-suppress on
1461 bridge-unicast-flood off
1462 bridge-multicast-flood off
1466 iface vmbr4000 inet manual
1467 bridge_ports vxlan4000
1482 bgp router-id 192.168.0.3
1483 no bgp default ipv4-unicast
1484 no bgp default ipv6-unicast
1486 neighbor 192.168.0.1 remote-as 1234
1487 neighbor 192.168.0.2 remote-as 1234
1489 address-family l2vpn evpn
1490 neighbor 192.168.0.1 activate
1491 neighbor 192.168.0.2 activate
1499 multiple gateway nodes
1500 ^^^^^^^^^^^^^^^^^^^^^^
1501 In this example, all nodes will be used as exit gateway. (But you can use only 2 nodes if you want)
1502 All nodes have a a default gw to the external router (192.168.0.254) (no bgp between router and node1)
1503 and announce this default gw in the vrf (default originate)
1504 The external router have ecmp routes to all proxmox nodes.(balancing).
1505 If the router send the packet to a wrong node (vm is not on this node), this node will route through
1506 vxlan the packet to final destination.
1508 If you have multiple gateway nodes, disable rp_filter as packet could incoming in a 1 node, and outgoing
1513 net.ipv4.conf.default.rp_filter=0
1514 net.ipv4.conf.all.rp_filter=0
1526 iface eno1 inet manual
1530 iface vmbr0 inet static
1532 netmask 255.255.255.0
1533 gateway 192.168.0.254
1541 iface vxlan2 inet manual
1543 vxlan-local-tunnelip 192.168.0.1
1545 bridge-arp-nd-suppress on
1546 bridge-unicast-flood off
1547 bridge-multicast-flood off
1550 iface vmbr2 inet static
1555 netmask 255.255.255.0
1556 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1563 iface vxlan3 inet manual
1565 vxlan-local-tunnelip 192.168.0.1
1567 bridge-arp-nd-suppress on
1568 bridge-unicast-flood off
1569 bridge-multicast-flood off
1572 iface vmbr3 inet static
1577 netmask 255.255.255.0
1578 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1584 #interconnect vxlan-vfr l3vni
1586 iface vxlan4000 inet manual
1588 vxlan-local-tunnelip 192.168.0.1
1590 bridge-arp-nd-suppress on
1591 bridge-unicast-flood off
1592 bridge-multicast-flood off
1595 iface vmbr4000 inet manual
1596 bridge_ports vxlan4000
1611 bgp router-id 192.168.0.1
1612 no bgp default ipv4-unicast
1613 no bgp default ipv6-unicast
1615 neighbor 192.168.0.2 remote-as 1234
1616 neighbor 192.168.0.3 remote-as 1234
1618 address-family ipv4 unicast
1622 address-family ipv6 unicast
1626 address-family l2vpn evpn
1627 neighbor 192.168.0.2 activate
1628 neighbor 192.168.0.3 activate
1632 router bgp 1234 vrf vrf1
1634 address-family ipv4 unicast
1635 redistribute connected
1638 address-family ipv6 unicast
1639 redistribute connected
1642 address-family l2vpn evpn
1643 default-originate ipv4
1644 default-originate ipv6
1660 iface eno1 inet manual
1664 iface vmbr0 inet static
1666 netmask 255.255.255.0
1667 gateway 192.168.0.254
1675 iface vxlan2 inet manual
1677 vxlan-local-tunnelip 192.168.0.2
1679 bridge-arp-nd-suppress on
1680 bridge-unicast-flood off
1681 bridge-multicast-flood off
1684 iface vmbr2 inet static
1689 netmask 255.255.255.0
1690 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1697 iface vxlan3 inet manual
1699 vxlan-local-tunnelip 192.168.0.2
1701 bridge-arp-nd-suppress on
1702 bridge-unicast-flood off
1703 bridge-multicast-flood off
1706 iface vmbr3 inet static
1711 netmask 255.255.255.0
1712 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1718 #interconnect vxlan-vfr l3vni
1720 iface vxlan4000 inet manual
1722 vxlan-local-tunnelip 192.168.0.2
1724 bridge-arp-nd-suppress on
1725 bridge-unicast-flood off
1726 bridge-multicast-flood off
1730 iface vmbr4000 inet manual
1731 bridge_ports vxlan4000
1746 bgp router-id 192.168.0.2
1747 no bgp default ipv4-unicast
1748 no bgp default ipv6-unicast
1750 neighbor 192.168.0.1 remote-as 1234
1751 neighbor 192.168.0.3 remote-as 1234
1753 address-family ipv4 unicast
1757 address-family ipv6 unicast
1761 address-family l2vpn evpn
1762 neighbor 192.168.0.1 activate
1763 neighbor 192.168.0.3 activate
1767 address-family ipv4 unicast
1768 redistribute connected
1771 address-family ipv6 unicast
1772 redistribute connected
1775 address-family l2vpn evpn
1776 default-originate ipv4
1777 default-originate ipv6
1793 iface eno1 inet manual
1797 iface vmbr0 inet static
1799 netmask 255.255.255.0
1800 gateway 192.168.0.254
1808 iface vxlan2 inet manual
1810 vxlan-local-tunnelip 192.168.0.3
1812 bridge-arp-nd-suppress on
1813 bridge-unicast-flood off
1814 bridge-multicast-flood off
1817 iface vmbr2 inet static
1822 netmask 255.255.255.0
1823 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1830 iface vxlan3 inet manual
1832 vxlan-local-tunnelip 192.168.0.3
1834 bridge-arp-nd-suppress on
1835 bridge-unicast-flood off
1836 bridge-multicast-flood off
1839 iface vmbr3 inet static
1844 netmask 255.255.255.0
1845 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1851 #interconnect vxlan-vfr l3vni
1853 iface vxlan4000 inet manual
1855 vxlan-local-tunnelip 192.168.0.3
1857 bridge-arp-nd-suppress on
1858 bridge-unicast-flood off
1859 bridge-multicast-flood off
1863 iface vmbr4000 inet manual
1864 bridge_ports vxlan4000
1879 bgp router-id 192.168.0.3
1880 no bgp default ipv4-unicast
1881 no bgp default ipv6-unicast
1883 neighbor 192.168.0.1 remote-as 1234
1884 neighbor 192.168.0.2 remote-as 1234
1886 address-family ipv4 unicast
1890 address-family ipv6 unicast
1894 address-family l2vpn evpn
1895 neighbor 192.168.0.1 activate
1896 neighbor 192.168.0.2 activate
1900 router bgp 1234 vrf vrf1
1902 address-family ipv4 unicast
1903 redistribute connected
1906 address-family ipv6 unicast
1907 redistribute connected
1910 address-family l2vpn evpn
1911 default-originate ipv4
1912 default-originate ipv6
1922 If your external router doesn't support 'ECMP static routes' to reach multiple
1923 {pve} nodes, you can setup an HA floating vip on proxmox nodes by using the
1924 Virtual Router Redundancy Protocol (VRRP).
1926 In this example, we will setup an floating 192.168.0.10 IP on node1 and node2.
1927 Node1 is the primary with failover to node2 in case of outage.
1929 This setup currently needs 'vrrpd' package (`apt install vrrpd`).
1930 #TODO : It should be possible to do it with frr directly with last version.
1936 iface vmbr0 inet static
1938 netmask 255.255.255.0
1939 gateway 192.168.0.254
1945 vrrp-virtual-ip 192.168.0.10
1952 iface vmbr0 inet static
1954 netmask 255.255.255.0
1955 gateway 192.168.0.254
1961 vrrp-virtual-ip 192.168.0.10
1966 gateway node(s) with a upstream bgp router
1967 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1968 Setup is almost the same than with a static gateway, but we'll connect to an upstream bgp router.
1970 example with node1 as gateway (192.168.0.1) for evpn-bgp, and an upstream bgp router (running frr too) 192.168.0.254.
1981 bgp router-id 192.168.0.1
1982 no bgp default ipv4-unicast
1983 no bgp default ipv6-unicast
1985 neighbor 192.168.0.2 remote-as 1234
1986 neighbor 192.168.0.3 remote-as 1234
1987 neighbor 192.168.0.254 remote-as external
1989 address-family ipv4 unicast
1991 neighbor 192.168.0.254 activate
1994 address-family ipv6 unicast
1996 neighbor 192.168.0.254 activate
1999 address-family l2vpn evpn
2000 neighbor 192.168.0.1 activate
2001 neighbor 192.168.0.2 activate
2002 neighbor 192.168.0.254 activate
2006 router bgp 1234 vrf vrf1
2008 address-family ipv4 unicast
2009 redistribute connected
2012 address-family ipv6 unicast
2013 redistribute connected
2016 address-family l2vpn evpn
2017 default-originate ipv4
2018 default-originate ipv6
2029 ip prefix-list NO32 seq 10 permit 0.0.0.0/0 ge 8 le 24
2030 ip prefix-list NO32 seq 20 deny any
2033 bgp router-id 192.168.0.254
2034 bgp bestpath as-path multipath-relax
2035 neighbor 192.168.0.1 remote-as external
2036 neighbor 192.168.0.1 capability extended-nexthop
2038 address-family ipv4 unicast
2039 neighbor 192.168.0.1 default-originate
2040 neighbor 192.168.0.1 prefix-list NO32 in #don't import /32 route from evpn
2043 address-family ipv6 unicast
2044 neighbor 192.168.0.1 default-originate
2045 neighbor 192.168.0.1 prefix-list NO32 in #don't import /32 route from evpn
2053 If you have a lot of proxmox nodes, or multiple proxmox clusters, you may want
2054 to avoid that all node peers with each others nodes.
2055 For this, you can create dedicated route reflectors (RR) servers. As a RR is a
2056 single point of failure, a minimum of two servers acting as an RR is highly
2057 recommended for redundancy.
2059 Below is an example of configuration with 'frr', with `rrserver1
2060 (192.168.0.200)' and `rrserver2 (192.168.0.201)`.
2065 bgp router-id 192.168.0.200
2066 bgp cluster-id 1.1.1.1 #cluster-id must be the same on each route reflector
2067 bgp log-neighbor-changes
2068 no bgp default ipv4-unicast
2069 no bgp default ipv6-unicast
2070 neighbor fabric peer-group
2071 neighbor fabric remote-as 1234
2072 neighbor fabric capability extended-nexthop
2073 neighbor fabric update-source 192.168.0.200
2074 bgp listen range 192.168.0.0/24 peer-group fabric #allow any proxmoxnode client in the network range
2076 address-family l2vpn evpn
2077 neighbor fabric activate
2078 neighbor fabric route-reflector-client
2079 neighbor fabric allowas-in
2089 bgp router-id 192.168.0.201
2090 bgp cluster-id 1.1.1.1
2091 bgp log-neighbor-changes
2092 no bgp default ipv4-unicast
2093 no bgp default ipv6-unicast
2094 neighbor fabric peer-group
2095 neighbor fabric remote-as 1234
2096 neighbor fabric capability extended-nexthop
2097 neighbor fabric update-source 192.168.0.201
2098 bgp listen range 192.168.0.0/24 peer-group fabric
2100 address-family l2vpn evpn
2101 neighbor fabric activate
2102 neighbor fabric route-reflector-client
2103 neighbor fabric allowas-in
2113 bgp router-id 192.168.0.x
2114 no bgp default ipv4-unicast
2115 no bgp default ipv6-unicast
2117 neighbor 192.168.0.200 remote-as 1234
2118 neighbor 192.168.0.201 remote-as 1234
2120 address-family l2vpn evpn
2121 neighbor 192.168.0.200 activate
2122 neighbor 192.168.0.201 activate