32f748decb3110c4b2eb1e60d7c1ffc64def6706
[pve-docs.git] / vxlan-and-evpn.adoc
1
2 ////
3
4 This is currently not included, because
5 - it requires ifupdown2
6 - routing needs more documentation
7
8 ////
9
10
11 VXLAN layer2 with vlan unware linux bridges
12 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13
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).
18
19 For BUM traffic (broadcast / unknown unicast traffic, multicast),
20 we have 3 differents vxlan setup modes : multicast, unicast, bgp-evpn
21
22 image::images/vxlan-l2-vlanunaware.svg["vxlan l2 bridge vlan unaware",align="center"]
23
24 multicast mode
25 ^^^^^^^^^^^^^^
26
27 This scenario relies in head end replication, meaning that end host in case
28 of not having any entry for the destination MAC address will send out an ARP
29 to other devices / VTEPs in the VXLAN network.
30 This is done by sending the request to the VXLAN multicast group,
31 remote VTEPs will get the packet and answer accordingly direct to the originating VTEP.
32
33
34 * node1
35
36 ----
37 auto eno1
38 iface eno1 inet manual
39
40 auto vmbr0
41 iface vmbr0 inet static
42         address 192.168.0.1
43         netmask  255.255.255.0
44         bridge_ports eno1
45         bridge_stp off
46         bridge_fd 0
47
48 auto vxlan2
49 iface vxlan2 inet manual
50         vxlan-svcnodeip 225.20.1.1
51         vxlan-physdev eno1
52
53 auto vmbr2
54 iface vmbr2 inet manual
55         bridge_ports vxlan2
56         bridge_stp off
57         bridge_fd 0
58
59 auto vxlan3
60 iface vxlan3 inet manual
61         vxlan-svcnodeip 225.20.1.1
62         vxlan-physdev eno1
63
64 auto vmbr3
65 iface vmbr3 inet manual
66         bridge_ports vxlan3
67         bridge_stp off
68         bridge_fd 0
69 ----
70
71
72 * node2
73
74 ----
75 auto eno1
76 iface eno1 inet manual
77
78 auto vmbr0
79 iface vmbr0 inet static
80         address 192.168.0.2
81         netmask  255.255.255.0
82         bridge_ports eno1
83         bridge_stp off
84         bridge_fd 0
85
86 auto vxlan2
87 iface vxlan2 inet manual
88         vxlan-svcnodeip 225.20.1.1
89         vxlan-physdev eno1
90
91 auto vmbr2
92 iface vmbr2 inet manual
93         bridge_ports vxlan2
94         bridge_stp off
95         bridge_fd 0
96
97
98 auto vxlan3
99 iface vxlan3 inet manual
100         vxlan-svcnodeip 225.20.1.1
101         vxlan-physdev eno1
102
103 auto vmbr3
104 iface vmbr3 inet manual
105         bridge_ports vxlan3
106         bridge_stp off
107         bridge_fd 0
108 ----
109
110
111 * node3
112
113 ----
114 auto eno1
115 iface eno1 inet manual
116
117 auto vmbr0
118 iface vmbr0 inet static
119         address 192.168.0.3
120         netmask  255.255.255.0
121         bridge_ports eno1
122         bridge_stp off
123         bridge_fd 0
124
125 auto vxlan2
126 iface vxlan2 inet manual
127         vxlan-svcnodeip 225.20.1.1
128         vxlan-physdev eno1
129
130 auto vmbr2
131 iface vmbr2 inet manual
132         bridge_ports vxlan2
133         bridge_stp off
134         bridge_fd 0
135
136
137 auto vxlan3
138 iface vxlan3 inet manual
139         vxlan-svcnodeip 225.20.1.1
140         vxlan-physdev eno1
141
142 auto vmbr3
143 iface vmbr3 inet manual
144         bridge_ports vxlan3
145         bridge_stp off
146         bridge_fd 0
147 ----
148
149
150 unicast mode
151 ^^^^^^^^^^^^
152
153 We can replace multicast by head-end replication of BUM frames to a statically configured lists of remote VTEPs.
154 The VXLAN is defined without a remote multicast group.
155 Instead, all the remote VTEPs are associated with the all-zero address:
156 a BUM frame will be duplicated to all these destinations.
157 The VXLAN device will still learn remote addresses automatically using source-address learning.
158
159 * node1
160
161 ----
162 auto eno1
163 iface eno1 inet manual
164
165 auto vmbr0
166 iface vmbr0 inet static
167         address 192.168.0.1
168         netmask  255.255.255.0
169         bridge_ports eno1
170         bridge_stp off
171         bridge_fd 0
172
173
174 auto vxlan2
175 iface vxlan2 inet manual
176         vxlan_remoteip 192.168.0.2
177         vxlan_remoteip 192.168.0.3
178
179
180 auto vmbr2
181 iface vmbr2 inet manual
182         bridge_ports vxlan2
183         bridge_stp off
184         bridge_fd 0
185
186
187 auto vxlan3
188 iface vxlan2 inet manual
189         vxlan_remoteip 192.168.0.2
190         vxlan_remoteip 192.168.0.3
191
192
193 auto vmbr3
194 iface vmbr3 inet manual
195         bridge_ports vxlan3
196         bridge_stp off
197         bridge_fd 0
198 ----
199
200
201 * node2
202
203 ----
204 auto eno1
205 iface eno1 inet manual
206
207 auto vmbr0
208 iface vmbr0 inet static
209         address 192.168.0.2
210         netmask  255.255.255.0
211         bridge_ports eno1
212         bridge_stp off
213         bridge_fd 0
214
215 auto vxlan2
216 iface vxlan2 inet manual
217         vxlan_remoteip 192.168.0.1
218         vxlan_remoteip 192.168.0.3
219
220
221
222 auto vmbr2
223 iface vmbr2 inet manual
224         bridge_ports vxlan2
225         bridge_stp off
226         bridge_fd 0
227
228 auto vxlan3
229 iface vxlan2 inet manual
230         vxlan_remoteip 192.168.0.1
231         vxlan_remoteip 192.168.0.3
232
233
234 auto vmbr3
235 iface vmbr3 inet manual
236         bridge_ports vxlan3
237         bridge_stp off
238         bridge_fd 0
239 ----
240
241
242 * node3
243
244 ----
245 auto eno1
246 iface eno1 inet manual
247
248 auto vmbr0
249 iface vmbr0 inet static
250         address 192.168.0.3
251         netmask  255.255.255.0
252         bridge_ports eno1
253         bridge_stp off
254         bridge_fd 0
255
256 auto vxlan2
257 iface vxlan2 inet manual
258         vxlan_remoteip 192.168.0.2
259         vxlan_remoteip 192.168.0.3
260
261
262
263 auto vmbr2
264 iface vmbr2 inet manual
265         bridge_ports vxlan2
266         bridge_stp off
267         bridge_fd 0
268
269 auto vxlan3
270 iface vxlan2 inet manual
271         vxlan_remoteip 192.168.0.2
272         vxlan_remoteip 192.168.0.3
273
274
275 auto vmbr3
276 iface vmbr3 inet manual
277         bridge_ports vxlan3
278         bridge_stp off
279         bridge_fd 0
280 ----
281
282
283 bgp-evpn
284 ^^^^^^^^
285
286 VTEPs use control plane learning/distribution via BGP for remote MAC addresses instead of data plane learning.
287 VTEPs have the ability to suppress ARP flooding over VXLAN tunnels.
288
289 The control plane used here is FRR, a bgp routing software.
290 Each node in the proxmox cluster peer with each others nodes.
291 For bigger networks, or multiple proxmox clusters,
292 it's possible to use external bgp route reflector servers.
293
294 * node1
295
296 ----
297 auto eno1
298 iface eno1 inet manual
299
300 auto vmbr0
301 iface vmbr0 inet static
302         address 192.168.0.1
303         netmask 255.255.255.0
304         bridge_ports eno1
305         bridge_stp off
306         bridge_fd 0
307
308 auto vxlan2
309 iface vxlan2 inet manual
310         vxlan-local-tunnelip 192.168.0.1
311         bridge-learning off
312         bridge-arp-nd-suppress on
313         bridge-unicast-flood off
314         bridge-multicast-flood off
315
316
317 auto vmbr2
318 iface vmbr2 inet manual
319         bridge_ports vxlan2
320         bridge_stp off
321         bridge_fd 0
322
323
324 auto vxlan3
325 iface vxlan3 inet manual
326         vxlan-local-tunnelip 192.168.0.1
327         bridge-learning off
328         bridge-arp-nd-suppress on
329         bridge-unicast-flood off
330         bridge-multicast-flood off
331
332
333 auto vmbr3
334 iface vmbr3 inet manual
335         bridge_ports vxlan3
336         bridge_stp off
337         bridge_fd 0
338 ----
339
340
341 /etc/frr/frr.conf
342
343 ----
344 router bgp 1234
345  no bgp default ipv4-unicast
346  coalesce-time 1000
347  neighbor 192.168.0.2 remote-as 1234
348  neighbor 192.168.0.3 remote-as 1234
349  !
350  address-family l2vpn evpn
351   neighbor 192.168.0.2 activate
352   neighbor 192.168.0.3 activate
353   advertise-all-vni
354  exit-address-family
355 !
356 line vty
357 !
358 ----
359
360
361 * node2
362
363 ----
364 auto eno1
365 iface eno1 inet manual
366
367 auto vmbr0
368 iface vmbr0 inet static
369         address 192.168.0.2
370         netmask 255.255.255.0
371         bridge_ports eno1
372         bridge_stp off
373         bridge_fd 0
374
375 auto vxlan2
376 iface vxlan2 inet manual
377         vxlan-local-tunnelip 192.168.0.2
378         bridge-learning off
379         bridge-arp-nd-suppress on
380         bridge-unicast-flood off
381         bridge-multicast-flood off
382
383
384 auto vmbr2
385 iface vmbr2 inet manual
386         bridge_ports vxlan2
387         bridge_stp off
388         bridge_fd 0
389
390 auto vxlan3
391 iface vxlan3 inet manual
392         vxlan-local-tunnelip 192.168.0.2
393         bridge-learning off
394         bridge-arp-nd-suppress on
395         bridge-unicast-flood off
396         bridge-multicast-flood off
397
398
399 auto vmbr3
400 iface vmbr3 inet manual
401         bridge_ports vxlan3
402         bridge_stp off
403         bridge_fd 0
404 ----
405
406
407 /etc/frr/frr.conf
408
409 ----
410 router bgp 1234
411  no bgp default ipv4-unicast
412  coalesce-time 1000
413  neighbor 192.168.0.1 remote-as 1234
414  neighbor 192.168.0.3 remote-as 1234
415  !
416  address-family l2vpn evpn
417   neighbor 192.168.0.1 activate
418   neighbor 192.168.0.3 activate
419   advertise-all-vni
420  exit-address-family
421 !
422 line vty
423 !
424 ----
425
426
427 * node3
428
429 ----
430 auto eno1
431 iface eno1 inet manual
432
433 auto vmbr0
434 iface vmbr0 inet static
435         address 192.168.0.2
436         netmask 255.255.255.0
437         bridge_ports eno1
438         bridge_stp off
439         bridge_fd 0
440
441 auto vxlan2
442 iface vxlan2 inet manual
443         vxlan-local-tunnelip 192.168.0.3
444         bridge-learning off
445         bridge-arp-nd-suppress on
446         bridge-unicast-flood off
447         bridge-multicast-flood off
448
449
450 auto vmbr2
451 iface vmbr2 inet manual
452         bridge_ports vxlan2
453         bridge_stp off
454         bridge_fd 0
455
456 auto vxlan3
457 iface vxlan3 inet manual
458         vxlan-local-tunnelip 192.168.0.3
459         bridge-learning off
460         bridge-arp-nd-suppress on
461         bridge-unicast-flood off
462         bridge-multicast-flood off
463
464
465 auto vmbr3
466 iface vmbr3 inet manual
467         bridge_ports vxlan3
468         bridge_stp off
469         bridge_fd 0
470 ----
471
472
473 /etc/frr/frr.conf
474
475
476 ----
477 router bgp 1234
478  no bgp default ipv4-unicast
479  coalesce-time 1000
480  neighbor 192.168.0.1 remote-as 1234
481  neighbor 192.168.0.2 remote-as 1234
482  !
483  address-family l2vpn evpn
484   neighbor 192.168.0.1 activate
485   neighbor 192.168.0.2 activate
486   advertise-all-vni
487  exit-address-family
488 !
489 line vty
490 !
491 ----
492
493 VXLAN layer3 routing with anycast gateway
494 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
495
496 With this need, each vmbr bridge will be the gateway for the vm.
497 Same vmbr on different node, will have same ip address and same mac address,
498 to have working vm live migration and no network disruption.
499
500 VXLAN layer3 routing only work with FRR and non-aware bridge. 
501 (vlan aware bridge support is buggy currently).
502
503 asymmetric model
504 ^^^^^^^^^^^^^^^^
505
506 This is the simplest mode. To get it work, all vxlan need to be defined on all nodes.
507
508 The asymmetric model allows routing and bridging on the VXLAN tunnel ingress, 
509 but only bridging on the egress. 
510 This results in bi-directional VXLAN traffic traveling on different VNIs 
511 in each direction (always the destination VNI) across the routed infrastructure.
512
513 image::images/vxlan-l3-asymmetric.svg["vxlan l3 asymmetric",align="center"]
514
515
516 sysctl.conf tuning
517
518 ----
519 #enable routing
520 net.ipv4.ip_forward=1
521 net.ipv6.conf.all.forwarding=1
522 ----
523
524 * node1
525
526 ----
527 auto eno1
528 iface eno1 inet manual
529  
530 auto vmbr0
531 iface vmbr0 inet static
532          address 192.168.0.1
533          netmask  255.255.255.0
534          bridge_ports eno1
535          bridge_stp off
536          bridge_fd 0
537  
538 auto vxlan2
539 iface vxlan2 inet manual
540         vxlan-local-tunnelip 192.168.0.1
541         bridge-learning off
542         bridge-arp-nd-suppress on
543         bridge-unicast-flood off
544         bridge-multicast-flood off
545
546
547 auto vmbr2
548 iface vmbr2 inet static
549         address 10.0.2.254
550         netmask 255.255.255.0
551         hwaddress 44:39:39:FF:40:94
552         bridge_ports vxlan2
553         bridge_stp off
554         bridge_fd 0
555
556
557 auto vxlan3
558 iface vxlan3 inet manual
559         vxlan-local-tunnelip 192.168.0.1
560         bridge-learning off
561         bridge-arp-nd-suppress on
562         bridge-unicast-flood off
563         bridge-multicast-flood off
564
565
566 auto vmbr3
567 iface vmbr3 inet static
568         address 10.0.3.254
569         netmask 255.255.255.0
570         hwaddress 44:39:39:FF:40:94
571         bridge_ports vxlan3
572         bridge_stp off
573         bridge_fd 0
574 ----
575
576
577 frr.conf
578
579 ----
580 router bgp 1234
581  bgp router-id 192.168.0.1
582  no bgp default ipv4-unicast
583  coalesce-time 1000
584  neighbor 192.168.0.2 remote-as 1234
585  neighbor 192.168.0.3 remote-as 1234
586  !
587  address-family l2vpn evpn
588   neighbor 192.168.0.2 activate
589   neighbor 192.168.0.3 activate
590   advertise-all-vni     
591  exit-address-family
592 !
593 line vty
594 !
595 ----
596
597
598 * node2
599
600 ----
601 auto eno1
602 iface eno1 inet manual
603  
604 auto vmbr0
605 iface vmbr0 inet static
606          address 192.168.0.2
607          netmask  255.255.255.0
608          bridge_ports eno1
609          bridge_stp off
610          bridge_fd 0
611  
612 auto vxlan2
613 iface vxlan2 inet manual
614         vxlan-local-tunnelip 192.168.0.2
615         bridge-learning off
616         bridge-arp-nd-suppress on
617         bridge-unicast-flood off
618         bridge-multicast-flood off
619
620
621 auto vmbr2
622 iface vmbr2 inet static
623         address 10.0.2.254
624         netmask 255.255.255.0
625         hwaddress 44:39:39:FF:40:94
626         bridge_ports vxlan2
627         bridge_stp off
628         bridge_fd 0
629
630
631 auto vxlan3
632 iface vxlan3 inet manual
633         vxlan-local-tunnelip 192.168.0.2
634         bridge-learning off
635         bridge-arp-nd-suppress on
636         bridge-unicast-flood off
637         bridge-multicast-flood off
638
639
640 auto vmbr3
641 iface vmbr3 inet static
642         address 10.0.3.254
643         netmask 255.255.255.0
644         hwaddress 44:39:39:FF:40:94
645         bridge_ports vxlan3
646         bridge_stp off
647         bridge_fd 0
648 ----
649
650
651 frr.conf
652
653 ----
654 router bgp 1234
655  bgp router-id 192.168.0.2
656  no bgp default ipv4-unicast
657  coalesce-time 1000
658  neighbor 192.168.0.1 remote-as 1234
659  neighbor 192.168.0.3 remote-as 1234
660  !
661  address-family l2vpn evpn
662   neighbor 192.168.0.1 activate
663   neighbor 192.168.0.3 activate
664   advertise-all-vni     
665  exit-address-family
666 !
667 line vty
668 !
669 ----
670
671
672 * node3
673
674 ----
675 auto eno1
676 iface eno1 inet manual
677  
678 auto vmbr0
679 iface vmbr0 inet static
680          address 192.168.0.3
681          netmask  255.255.255.0
682          bridge_ports eno1
683          bridge_stp off
684          bridge_fd 0
685  
686 auto vxlan2
687 iface vxlan2 inet manual
688         vxlan-local-tunnelip 192.168.0.3
689         bridge-learning off
690         bridge-arp-nd-suppress on
691         bridge-unicast-flood off
692         bridge-multicast-flood off
693
694
695 auto vmbr2
696 iface vmbr2 inet static
697         address 10.0.2.254
698         netmask 255.255.255.0
699         hwaddress 44:39:39:FF:40:94
700         bridge_ports vxlan2
701         bridge_stp off
702         bridge_fd 0
703
704
705 auto vxlan3
706 iface vxlan3 inet manual
707         vxlan-local-tunnelip 192.168.0.3
708         bridge-learning off
709         bridge-arp-nd-suppress on
710         bridge-unicast-flood off
711         bridge-multicast-flood off
712
713
714 auto vmbr3
715 iface vmbr3 inet static
716         address 10.0.3.254
717         netmask 255.255.255.0
718         hwaddress 44:39:39:FF:40:94
719         bridge_ports vxlan3
720         bridge_stp off
721         bridge_fd 0
722 ----
723
724
725 frr.conf
726
727 ----
728 router bgp 1234
729  bgp router-id 192.168.0.3
730  no bgp default ipv4-unicast
731  coalesce-time 1000
732  neighbor 192.168.0.1 remote-as 1234
733  neighbor 192.168.0.2 remote-as 1234
734  !
735  address-family l2vpn evpn
736   neighbor 192.168.0.1 activate
737   neighbor 192.168.0.2 activate
738   advertise-all-vni     
739  exit-address-family
740 !
741 line vty
742 !
743 ----
744
745
746 symmetric model
747 ^^^^^^^^^^^^^^^
748
749 With this model, you don't need to have all vxlan on all nodes.
750 This model will also be needed to route traffic to an external router. 
751
752 The symmetric model routes and bridges on both the ingress and the egress leafs. 
753 This results in bi-directional traffic being able to travel on the same VNI, hence the symmetric name. 
754 However, a new specialty transit VNI is used for all routed VXLAN traffic, called the L3VNI. 
755 All traffic that needs to be routed will be routed onto the L3VNI, tunneled across the layer 3 Infrastructure, 
756 routed off the L3VNI to the appropriate VLAN and ultimately bridged to the destination.
757
758 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.
759
760 image::images/vxlan-l3-symmetric.svg["vxlan l3 symmetric",align="center"]
761
762 sysctl.conf tuning
763
764 ----
765 #enable routing
766 net.ipv4.ip_forward=1
767 net.ipv6.conf.all.forwarding=1
768 #disable reverse path filtering
769 net.ipv4.conf.default.rp_filter=0
770 net.ipv4.conf.all.rp_filter=0
771 ----
772
773 * node1
774
775 ----
776 auto vrf1
777 iface vrf1
778     vrf-table auto
779
780 auto eno1
781 iface eno1 inet manual
782  
783 auto vmbr0
784 iface vmbr0 inet static
785          address 192.168.0.1
786          netmask  255.255.255.0
787          bridge_ports eno1
788          bridge_stp off
789          bridge_fd 0
790
791 auto vxlan2
792 iface vxlan2 inet manual
793         vxlan-local-tunnelip 192.168.0.1
794         bridge-learning off
795         bridge-arp-nd-suppress on
796         bridge-unicast-flood off
797         bridge-multicast-flood off
798
799 auto vmbr2
800 iface vmbr2 inet static
801         bridge_ports vxlan2
802         bridge_stp off
803         bridge_fd 0
804         address 10.0.2.254
805         netmask 255.255.255.0
806         hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
807         vrf vrf1
808
809 auto vxlan3
810 iface vxlan3 inet manual
811         vxlan-local-tunnelip 192.168.0.1
812         bridge-learning off
813         bridge-arp-nd-suppress on
814         bridge-unicast-flood off
815         bridge-multicast-flood off
816
817 auto vmbr3
818 iface vmbr3 inet static
819         bridge_ports vxlan3
820         bridge_stp off
821         bridge_fd 0
822         address 10.0.3.254
823         netmask 255.255.255.0
824         hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
825         vrf vrf1
826
827 #interconnect vxlan-vfr l3vni
828 auto vxlan4000
829 iface vxlan4000 inet manual
830         vxlan-local-tunnelip 192.168.0.1
831         bridge-learning off
832         bridge-arp-nd-suppress on
833         bridge-unicast-flood off
834         bridge-multicast-flood off
835
836
837 auto vmbr4000
838 iface vmbr4000 inet manual
839         bridge_ports vxlan4000
840         bridge_stp off
841         bridge_fd 0
842         hwaddress 44:39:39:FF:40:90  #must be different on each node
843         vrf vrf1
844 ----
845
846 frr.conf
847
848 ----
849 vrf vrf1
850  vni 4000
851 !
852 router bgp 1234
853  bgp router-id 192.168.0.1
854  no bgp default ipv4-unicast
855  coalesce-time 1000
856  neighbor 192.168.0.2 remote-as 1234
857  neighbor 192.168.0.3 remote-as 1234
858  !
859  address-family l2vpn evpn
860   neighbor 192.168.0.2 activate
861   neighbor 192.168.0.3 activate
862   advertise-all-vni
863  exit-address-family
864 !
865 router bgp 1234 vrf vrf1
866
867  bgp router-id 192.168.0.1
868  ! 
869  address-family ipv4 unicast
870   redistribute connected
871  exit-address-family
872  !
873  address-family l2vpn evpn
874   advertise ipv4 unicast
875  exit-address-family
876 !
877 line vty
878 !
879 ----
880
881
882 * node2
883
884 ----
885 auto vrf1
886 iface vrf1
887     vrf-table auto
888
889 auto eno1
890 iface eno1 inet manual
891  
892 auto vmbr0
893 iface vmbr0 inet static
894          address 192.168.0.2
895          netmask  255.255.255.0
896          bridge_ports eno1
897          bridge_stp off
898          bridge_fd 0
899
900 auto vxlan2
901 iface vxlan2 inet manual
902         vxlan-local-tunnelip 192.168.0.2
903         bridge-learning off
904         bridge-arp-nd-suppress on
905         bridge-unicast-flood off
906         bridge-multicast-flood off
907
908 auto vmbr2
909 iface vmbr2 inet static
910         bridge_ports vxlan2
911         bridge_stp off
912         bridge_fd 0
913         address 10.0.2.254
914         netmask 255.255.255.0
915         hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
916         vrf vrf1
917
918 auto vxlan3
919 iface vxlan3 inet manual
920         vxlan-local-tunnelip 192.168.0.2
921         bridge-learning off
922         bridge-arp-nd-suppress on
923         bridge-unicast-flood off
924         bridge-multicast-flood off
925
926 auto vmbr3
927 iface vmbr3 inet static
928         bridge_ports vxlan3
929         bridge_stp off
930         bridge_fd 0
931         address 10.0.3.254
932         netmask 255.255.255.0
933         hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
934         vrf vrf1
935
936 #interconnect vxlan-vfr l3vni
937 auto vxlan4000
938 iface vxlan4000 inet manual
939         vxlan-local-tunnelip 192.168.0.2
940         bridge-learning off
941         bridge-arp-nd-suppress on
942         bridge-unicast-flood off
943         bridge-multicast-flood off
944
945
946 auto vmbr4000
947 iface vmbr4000 inet manual
948         bridge_ports vxlan4000
949         bridge_stp off
950         bridge_fd 0
951         hwaddress 44:39:39:FF:40:91  #must be different on each node
952         vrf vrf1
953 ----
954
955
956 frr.conf
957
958 ----
959 vrf vrf1
960  vni 4000
961 !
962 router bgp 1234
963  bgp router-id 192.168.0.2
964  no bgp default ipv4-unicast
965  coalesce-time 1000
966  neighbor 192.168.0.1 remote-as 1234
967  neighbor 192.168.0.3 remote-as 1234
968  !
969  address-family l2vpn evpn
970   neighbor 192.168.0.1 activate
971   neighbor 192.168.0.3 activate
972   advertise-all-vni
973  exit-address-family
974 !
975 router bgp 1234 vrf vrf1
976
977  bgp router-id 192.168.0.2
978  ! 
979  address-family ipv4 unicast
980   redistribute connected
981  exit-address-family
982  !
983  address-family l2vpn evpn
984   advertise ipv4 unicast
985  exit-address-family
986 !
987 line vty
988 !
989 ----
990
991
992 * node3
993
994 ----
995 auto vrf1
996 iface vrf1
997     vrf-table auto
998
999 auto eno1
1000 iface eno1 inet manual
1001  
1002 auto vmbr0
1003 iface vmbr0 inet static
1004          address 192.168.0.3
1005          netmask  255.255.255.0
1006          bridge_ports eno1
1007          bridge_stp off
1008          bridge_fd 0
1009
1010 auto vxlan2
1011 iface vxlan2 inet manual
1012         vxlan-local-tunnelip 192.168.0.3
1013         bridge-learning off
1014         bridge-arp-nd-suppress on
1015         bridge-unicast-flood off
1016         bridge-multicast-flood off
1017
1018 auto vmbr2
1019 iface vmbr2 inet static
1020         bridge_ports vxlan2
1021         bridge_stp off
1022         bridge_fd 0
1023         address 10.0.2.254
1024         netmask 255.255.255.0
1025         hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1026         vrf vrf1
1027
1028 auto vxlan3
1029 iface vxlan3 inet manual
1030         vxlan-local-tunnelip 192.168.0.3
1031         bridge-learning off
1032         bridge-arp-nd-suppress on
1033         bridge-unicast-flood off
1034         bridge-multicast-flood off
1035
1036 auto vmbr3
1037 iface vmbr3 inet static
1038         bridge_ports vxlan3
1039         bridge_stp off
1040         bridge_fd 0
1041         address 10.0.3.254
1042         netmask 255.255.255.0
1043         hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1044         vrf vrf1
1045
1046 #interconnect vxlan-vfr l3vni
1047 auto vxlan4000
1048 iface vxlan4000 inet manual
1049         vxlan-local-tunnelip 192.168.0.3
1050         bridge-learning off
1051         bridge-arp-nd-suppress on
1052         bridge-unicast-flood off
1053         bridge-multicast-flood off
1054
1055
1056 auto vmbr4000
1057 iface vmbr4000 inet manual
1058         bridge_ports vxlan4000
1059         bridge_stp off
1060         bridge_fd 0
1061         hwaddress 44:39:39:FF:40:92  #must be different on each node
1062         vrf vrf1
1063 ----
1064
1065
1066 frr.conf
1067
1068 ----
1069 vrf vrf1
1070  vni 4000
1071 !
1072 router bgp 1234
1073  bgp router-id 192.168.0.3
1074  no bgp default ipv4-unicast
1075  coalesce-time 1000
1076  neighbor 192.168.0.1 remote-as 1234
1077  neighbor 192.168.0.2 remote-as 1234
1078  !
1079  address-family l2vpn evpn
1080   neighbor 192.168.0.1 activate
1081   neighbor 192.168.0.2 activate
1082   advertise-all-vni
1083  exit-address-family
1084 !
1085 router bgp 1234 vrf vrf1
1086
1087  bgp router-id 192.168.0.3
1088  ! 
1089  address-family ipv4 unicast
1090   redistribute connected
1091  exit-address-family
1092  !
1093  address-family l2vpn evpn
1094   advertise ipv4 unicast
1095  exit-address-family
1096 !
1097 line vty
1098 !
1099 ----
1100
1101 VXLAN layer3 routing with anycast gateway + routing to outside with external router
1102 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1103 Routing to outside need the symmetric model.
1104
1105 1 gateway node
1106 ^^^^^^^^^^^^^^
1107 In this example, we'll use only 1 proxmox node as exit gateway. (node1)
1108 This node have a simple default gw in the vrf to the external router (no bgp between router and node1)
1109 and announce this default gw to other proxmox nodes.
1110
1111
1112 *node1
1113
1114 ----
1115 auto vrf1
1116 iface vrf1
1117     vrf-table auto
1118
1119 auto eno1
1120 iface eno1 inet manual
1121
1122 auto vmbr0
1123 iface vmbr0 inet static
1124          address 192.168.0.1
1125          netmask  255.255.255.0
1126          bridge_ports eno1
1127          bridge_stp off
1128          bridge_fd 0
1129
1130 auto eno2
1131 iface eno2
1132         address 172.16.0.1
1133         netmask 255.255.255.0
1134         vrf vrf1
1135         post-up ip route add default via 172.16.0.254 dev eno2 vrf vrf1
1136         #if you have multiple external routers, you can use ecmp balancing
1137         #post-up route add default nexthop via 172.16.0.253 dev eno2 vrf vrf1 nexthop via 172.16.0.254 dev eno2 vrf vrf1
1138
1139 auto vxlan2
1140 iface vxlan2 inet manual
1141         vxlan-local-tunnelip 192.168.0.1
1142         bridge-learning off
1143         bridge-arp-nd-suppress on
1144         bridge-unicast-flood off
1145         bridge-multicast-flood off
1146
1147 auto vmbr2
1148 iface vmbr2 inet static
1149         bridge_ports vxlan2
1150         bridge_stp off
1151         bridge_fd 0
1152         address 10.0.2.254
1153         netmask 255.255.255.0
1154         hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1155         vrf vrf1
1156
1157 auto vxlan3
1158 iface vxlan3 inet manual
1159         vxlan-local-tunnelip 192.168.0.1
1160         bridge-learning off
1161         bridge-arp-nd-suppress on
1162         bridge-unicast-flood off
1163         bridge-multicast-flood off
1164
1165 auto vmbr3
1166 iface vmbr3 inet static
1167         bridge_ports vxlan3
1168         bridge_stp off
1169         bridge_fd 0
1170         address 10.0.3.254
1171         netmask 255.255.255.0
1172         hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1173         vrf vrf1
1174
1175 #interconnect vxlan-vfr l3vni
1176 auto vxlan4000
1177 iface vxlan4000 inet manual
1178         vxlan-local-tunnelip 192.168.0.1
1179         bridge-learning off
1180         bridge-arp-nd-suppress on
1181         bridge-unicast-flood off
1182         bridge-multicast-flood off
1183
1184 auto vmbr4000
1185 iface vmbr4000 inet manual
1186         bridge_ports vxlan4000
1187         bridge_stp off
1188         bridge_fd 0
1189         hwaddress 44:39:39:FF:40:90  #must be different on each node
1190         vrf vrf1
1191 ----
1192
1193
1194 frr.conf
1195
1196 ----
1197 vrf vrf1
1198  vni 4000
1199 !
1200 router bgp 1234
1201  bgp router-id 192.168.0.1
1202  no bgp default ipv4-unicast
1203  coalesce-time 1000
1204  neighbor 192.168.0.2 remote-as 1234
1205  neighbor 192.168.0.3 remote-as 1234
1206  !
1207  address-family l2vpn evpn
1208   neighbor 192.168.0.2 activate
1209   neighbor 192.168.0.3 activate
1210   advertise-all-vni
1211  exit-address-family
1212 !
1213 router bgp 1234 vrf vrf1
1214 !
1215  bgp router-id 172.16.0.1
1216  !
1217  address-family ipv4 unicast
1218   redistribute connected
1219   redistribute kernel !announce your default gw to all nodes
1220  exit-address-family
1221  !
1222  address-family l2vpn evpn
1223   advertise ipv4 unicast
1224  exit-address-family
1225 !
1226 line vty
1227 !
1228 ----
1229
1230
1231 * node2
1232
1233 ----
1234 auto vrf1
1235 iface vrf1
1236     vrf-table auto
1237
1238 auto eno1
1239 iface eno1 inet manual
1240  
1241 auto vmbr0
1242 iface vmbr0 inet static
1243          address 192.168.0.2
1244          netmask  255.255.255.0
1245          bridge_ports eno1
1246          bridge_stp off
1247          bridge_fd 0
1248
1249 auto vxlan2
1250 iface vxlan2 inet manual
1251         vxlan-local-tunnelip 192.168.0.2
1252         bridge-learning off
1253         bridge-arp-nd-suppress on
1254         bridge-unicast-flood off
1255         bridge-multicast-flood off
1256
1257 auto vmbr2
1258 iface vmbr2 inet static
1259         bridge_ports vxlan2
1260         bridge_stp off
1261         bridge_fd 0
1262         address 10.0.2.254
1263         netmask 255.255.255.0
1264         hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1265         vrf vrf1
1266
1267 auto vxlan3
1268 iface vxlan3 inet manual
1269         vxlan-local-tunnelip 192.168.0.2
1270         bridge-learning off
1271         bridge-arp-nd-suppress on
1272         bridge-unicast-flood off
1273         bridge-multicast-flood off
1274
1275 auto vmbr3
1276 iface vmbr3 inet static
1277         bridge_ports vxlan3
1278         bridge_stp off
1279         bridge_fd 0
1280         address 10.0.3.254
1281         netmask 255.255.255.0
1282         hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1283         vrf vrf1
1284
1285 #interconnect vxlan-vfr l3vni
1286 auto vxlan4000
1287 iface vxlan4000 inet manual
1288         vxlan-local-tunnelip 192.168.0.2
1289         bridge-learning off
1290         bridge-arp-nd-suppress on
1291         bridge-unicast-flood off
1292         bridge-multicast-flood off
1293
1294
1295 auto vmbr4000
1296 iface vmbr4000 inet manual
1297         bridge_ports vxlan4000
1298         bridge_stp off
1299         bridge_fd 0
1300         hwaddress 44:39:39:FF:40:91  #must be different on each node
1301         vrf vrf1
1302 ----
1303
1304
1305 frr.conf
1306
1307 ----
1308 vrf vrf1
1309  vni 4000
1310 !
1311 router bgp 1234
1312  bgp router-id 192.168.0.2
1313  no bgp default ipv4-unicast
1314  coalesce-time 1000
1315  neighbor 192.168.0.1 remote-as 1234
1316  neighbor 192.168.0.3 remote-as 1234
1317  !
1318  address-family l2vpn evpn
1319   neighbor 192.168.0.1 activate
1320   neighbor 192.168.0.3 activate
1321   advertise-all-vni
1322  exit-address-family
1323 !
1324 router bgp 1234 vrf vrf1
1325
1326  bgp router-id 192.168.0.2
1327  ! 
1328  address-family ipv4 unicast
1329   redistribute connected
1330  exit-address-family
1331  !
1332  address-family l2vpn evpn
1333   advertise ipv4 unicast
1334  exit-address-family
1335 !
1336 line vty
1337 !
1338 ----
1339
1340
1341 * node3
1342
1343 ----
1344 auto vrf1
1345 iface vrf1
1346     vrf-table auto
1347
1348 auto eno1
1349 iface eno1 inet manual
1350  
1351 auto vmbr0
1352 iface vmbr0 inet static
1353          address 192.168.0.3
1354          netmask  255.255.255.0
1355          bridge_ports eno1
1356          bridge_stp off
1357          bridge_fd 0
1358
1359 auto vxlan2
1360 iface vxlan2 inet manual
1361         vxlan-local-tunnelip 192.168.0.3
1362         bridge-learning off
1363         bridge-arp-nd-suppress on
1364         bridge-unicast-flood off
1365         bridge-multicast-flood off
1366
1367 auto vmbr2
1368 iface vmbr2 inet static
1369         bridge_ports vxlan2
1370         bridge_stp off
1371         bridge_fd 0
1372         address 10.0.2.254
1373         netmask 255.255.255.0
1374         hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1375         vrf vrf1
1376
1377 auto vxlan3
1378 iface vxlan3 inet manual
1379         vxlan-local-tunnelip 192.168.0.3
1380         bridge-learning off
1381         bridge-arp-nd-suppress on
1382         bridge-unicast-flood off
1383         bridge-multicast-flood off
1384
1385 auto vmbr3
1386 iface vmbr3 inet static
1387         bridge_ports vxlan3
1388         bridge_stp off
1389         bridge_fd 0
1390         address 10.0.3.254
1391         netmask 255.255.255.0
1392         hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1393         vrf vrf1
1394
1395 #interconnect vxlan-vfr l3vni
1396 auto vxlan4000
1397 iface vxlan4000 inet manual
1398         vxlan-local-tunnelip 192.168.0.3
1399         bridge-learning off
1400         bridge-arp-nd-suppress on
1401         bridge-unicast-flood off
1402         bridge-multicast-flood off
1403
1404
1405 auto vmbr4000
1406 iface vmbr4000 inet manual
1407         bridge_ports vxlan4000
1408         bridge_stp off
1409         bridge_fd 0
1410         hwaddress 44:39:39:FF:40:92  #must be different on each node
1411         vrf vrf1
1412 ----
1413
1414
1415 frr.conf
1416
1417 ----
1418 vrf vrf1
1419  vni 4000
1420 !
1421 router bgp 1234
1422  bgp router-id 192.168.0.3
1423  no bgp default ipv4-unicast
1424  coalesce-time 1000
1425  neighbor 192.168.0.1 remote-as 1234
1426  neighbor 192.168.0.2 remote-as 1234
1427  !
1428  address-family l2vpn evpn
1429   neighbor 192.168.0.1 activate
1430   neighbor 192.168.0.2 activate
1431   advertise-all-vni
1432  exit-address-family
1433 !
1434 router bgp 1234 vrf vrf1
1435
1436  bgp router-id 192.168.0.3
1437  ! 
1438  address-family ipv4 unicast
1439   redistribute connected
1440  exit-address-family
1441  !
1442  address-family l2vpn evpn
1443   advertise ipv4 unicast
1444  exit-address-family
1445 !
1446 line vty
1447 !
1448 ----
1449
1450 multiple gateway nodes
1451 ^^^^^^^^^^^^^^^^^^^^^^
1452 In this example, all nodes will be used as exit gateway. (But you can use only 2 nodes if you want)
1453 All nodes have a simple default gw in the vrf to the external router (no bgp between router and node1)
1454 and announce this default gw.
1455 The external router have ecmp routes to all proxmox nodes.(balancing).
1456 If the router send the packet to a wrong node (vm is not on this node), this node will route through
1457 vxlan the packet to final destination.
1458
1459 *node1
1460
1461 ----
1462 auto vrf1
1463 iface vrf1
1464     vrf-table auto
1465
1466 auto eno1
1467 iface eno1 inet manual
1468
1469 auto vmbr0
1470 iface vmbr0 inet static
1471          address 192.168.0.1
1472          netmask  255.255.255.0
1473          bridge_ports eno1
1474          bridge_stp off
1475          bridge_fd 0
1476
1477 auto eno2
1478 iface eno2
1479         address 172.16.0.1
1480         netmask 255.255.255.0
1481         vrf vrf1
1482         post-up ip route add default via 172.16.0.254 dev eno2 vrf vrf1
1483         #if you have multiple external routers, you can use ecmp balancing
1484         #post-up route add default nexthop via 172.16.0.253 dev eno2 vrf vrf1 nexthop via 172.16.0.254 dev eno2 vrf vrf1
1485
1486 auto vxlan2
1487 iface vxlan2 inet manual
1488         vxlan-local-tunnelip 192.168.0.1
1489         bridge-learning off
1490         bridge-arp-nd-suppress on
1491         bridge-unicast-flood off
1492         bridge-multicast-flood off
1493
1494 auto vmbr2
1495 iface vmbr2 inet static
1496         bridge_ports vxlan2
1497         bridge_stp off
1498         bridge_fd 0
1499         address 10.0.2.254
1500         netmask 255.255.255.0
1501         hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1502         vrf vrf1
1503
1504 auto vxlan3
1505 iface vxlan3 inet manual
1506         vxlan-local-tunnelip 192.168.0.1
1507         bridge-learning off
1508         bridge-arp-nd-suppress on
1509         bridge-unicast-flood off
1510         bridge-multicast-flood off
1511
1512 auto vmbr3
1513 iface vmbr3 inet static
1514         bridge_ports vxlan3
1515         bridge_stp off
1516         bridge_fd 0
1517         address 10.0.3.254
1518         netmask 255.255.255.0
1519         hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1520         vrf vrf1
1521
1522 #interconnect vxlan-vfr l3vni
1523 auto vxlan4000
1524 iface vxlan4000 inet manual
1525         vxlan-local-tunnelip 192.168.0.1
1526         bridge-learning off
1527         bridge-arp-nd-suppress on
1528         bridge-unicast-flood off
1529         bridge-multicast-flood off
1530
1531 auto vmbr4000
1532 iface vmbr4000 inet manual
1533         bridge_ports vxlan4000
1534         bridge_stp off
1535         bridge_fd 0
1536         hwaddress 44:39:39:FF:40:90  #must be different on each node
1537         vrf vrf1
1538 ----
1539
1540
1541 frr.conf
1542
1543 ----
1544 vrf vrf1
1545  vni 4000
1546 !
1547 router bgp 1234
1548  bgp router-id 192.168.0.1
1549  no bgp default ipv4-unicast
1550  coalesce-time 1000
1551  neighbor 192.168.0.2 remote-as 1234
1552  neighbor 192.168.0.3 remote-as 1234
1553  !
1554  address-family l2vpn evpn
1555   neighbor 192.168.0.2 activate
1556   neighbor 192.168.0.3 activate
1557   advertise-all-vni
1558  exit-address-family
1559 !
1560 router bgp 1234 vrf vrf1
1561 !
1562  bgp router-id 172.16.0.1
1563  !
1564  address-family ipv4 unicast
1565   redistribute connected
1566   redistribute kernel !announce your default gw to all nodes
1567  exit-address-family
1568  !
1569  address-family l2vpn evpn
1570   advertise ipv4 unicast
1571  exit-address-family
1572 !
1573 line vty
1574 !
1575 ----
1576
1577
1578 * node2
1579
1580 ----
1581 auto vrf1
1582 iface vrf1
1583     vrf-table auto
1584
1585 auto eno1
1586 iface eno1 inet manual
1587  
1588 auto vmbr0
1589 iface vmbr0 inet static
1590          address 192.168.0.2
1591          netmask  255.255.255.0
1592          bridge_ports eno1
1593          bridge_stp off
1594          bridge_fd 0
1595
1596 auto eno2
1597 iface eno2
1598         address 172.16.0.3
1599         netmask 255.255.255.0
1600         vrf vrf1
1601         post-up ip route add default via 172.16.0.254 dev eno2 vrf vrf1
1602         #if you have multiple external routers, you can use ecmp balancing
1603         #post-up route add default nexthop via 172.16.0.253 dev eno2 vrf vrf1 nexthop via 172.16.0.254 dev eno2 vrf vrf1
1604
1605 auto vxlan2
1606 iface vxlan2 inet manual
1607         vxlan-local-tunnelip 192.168.0.2
1608         bridge-learning off
1609         bridge-arp-nd-suppress on
1610         bridge-unicast-flood off
1611         bridge-multicast-flood off
1612
1613 auto vmbr2
1614 iface vmbr2 inet static
1615         bridge_ports vxlan2
1616         bridge_stp off
1617         bridge_fd 0
1618         address 10.0.2.254
1619         netmask 255.255.255.0
1620         hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1621         vrf vrf1
1622
1623 auto vxlan3
1624 iface vxlan3 inet manual
1625         vxlan-local-tunnelip 192.168.0.2
1626         bridge-learning off
1627         bridge-arp-nd-suppress on
1628         bridge-unicast-flood off
1629         bridge-multicast-flood off
1630
1631 auto vmbr3
1632 iface vmbr3 inet static
1633         bridge_ports vxlan3
1634         bridge_stp off
1635         bridge_fd 0
1636         address 10.0.3.254
1637         netmask 255.255.255.0
1638         hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1639         vrf vrf1
1640
1641 #interconnect vxlan-vfr l3vni
1642 auto vxlan4000
1643 iface vxlan4000 inet manual
1644         vxlan-local-tunnelip 192.168.0.2
1645         bridge-learning off
1646         bridge-arp-nd-suppress on
1647         bridge-unicast-flood off
1648         bridge-multicast-flood off
1649
1650
1651 auto vmbr4000
1652 iface vmbr4000 inet manual
1653         bridge_ports vxlan4000
1654         bridge_stp off
1655         bridge_fd 0
1656         hwaddress 44:39:39:FF:40:91  #must be different on each node
1657         vrf vrf1
1658 ----
1659
1660
1661 frr.conf
1662
1663 ----
1664 vrf vrf1
1665  vni 4000
1666 !
1667 router bgp 1234
1668  bgp router-id 192.168.0.2
1669  no bgp default ipv4-unicast
1670  coalesce-time 1000
1671  neighbor 192.168.0.1 remote-as 1234
1672  neighbor 192.168.0.3 remote-as 1234
1673  !
1674  address-family l2vpn evpn
1675   neighbor 192.168.0.1 activate
1676   neighbor 192.168.0.3 activate
1677   advertise-all-vni
1678  exit-address-family
1679 !
1680 router bgp 1234 vrf vrf1
1681 !
1682  bgp router-id 172.16.0.2
1683  !
1684  address-family ipv4 unicast
1685   redistribute connected
1686   redistribute kernel !announce your default gw to all nodes
1687  exit-address-family
1688  !
1689  address-family l2vpn evpn
1690   advertise ipv4 unicast
1691  exit-address-family
1692 !
1693 line vty
1694 !
1695 ----
1696
1697
1698 * node3
1699
1700 ----
1701 auto vrf1
1702 iface vrf1
1703     vrf-table auto
1704
1705 auto eno1
1706 iface eno1 inet manual
1707  
1708 auto vmbr0
1709 iface vmbr0 inet static
1710          address 192.168.0.3
1711          netmask  255.255.255.0
1712          bridge_ports eno1
1713          bridge_stp off
1714          bridge_fd 0
1715
1716 auto eno2
1717 iface eno2
1718         address 172.16.0.3
1719         netmask 255.255.255.0
1720         vrf vrf1
1721         post-up ip route add default via 172.16.0.254 dev eno2 vrf vrf1
1722         #if you have multiple external routers, you can use ecmp balancing
1723         #post-up route add default nexthop via 172.16.0.253 dev eno2 vrf vrf1 nexthop via 172.16.0.254 dev eno2 vrf vrf1
1724
1725 auto vxlan2
1726 iface vxlan2 inet manual
1727         vxlan-local-tunnelip 192.168.0.3
1728         bridge-learning off
1729         bridge-arp-nd-suppress on
1730         bridge-unicast-flood off
1731         bridge-multicast-flood off
1732
1733 auto vmbr2
1734 iface vmbr2 inet static
1735         bridge_ports vxlan2
1736         bridge_stp off
1737         bridge_fd 0
1738         address 10.0.2.254
1739         netmask 255.255.255.0
1740         hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1741         vrf vrf1
1742
1743 auto vxlan3
1744 iface vxlan3 inet manual
1745         vxlan-local-tunnelip 192.168.0.3
1746         bridge-learning off
1747         bridge-arp-nd-suppress on
1748         bridge-unicast-flood off
1749         bridge-multicast-flood off
1750
1751 auto vmbr3
1752 iface vmbr3 inet static
1753         bridge_ports vxlan3
1754         bridge_stp off
1755         bridge_fd 0
1756         address 10.0.3.254
1757         netmask 255.255.255.0
1758         hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1759         vrf vrf1
1760
1761 #interconnect vxlan-vfr l3vni
1762 auto vxlan4000
1763 iface vxlan4000 inet manual
1764         vxlan-local-tunnelip 192.168.0.3
1765         bridge-learning off
1766         bridge-arp-nd-suppress on
1767         bridge-unicast-flood off
1768         bridge-multicast-flood off
1769
1770
1771 auto vmbr4000
1772 iface vmbr4000 inet manual
1773         bridge_ports vxlan4000
1774         bridge_stp off
1775         bridge_fd 0
1776         hwaddress 44:39:39:FF:40:92  #must be different on each node
1777         vrf vrf1
1778 ----
1779
1780
1781 frr.conf
1782
1783 ----
1784 vrf vrf1
1785  vni 4000
1786 !
1787 router bgp 1234
1788  bgp router-id 192.168.0.3
1789  no bgp default ipv4-unicast
1790  coalesce-time 1000
1791  neighbor 192.168.0.1 remote-as 1234
1792  neighbor 192.168.0.2 remote-as 1234
1793  !
1794  address-family l2vpn evpn
1795   neighbor 192.168.0.1 activate
1796   neighbor 192.168.0.2 activate
1797   advertise-all-vni
1798  exit-address-family
1799 !
1800 router bgp 1234 vrf vrf1
1801 !
1802  bgp router-id 172.16.0.3
1803  !
1804  address-family ipv4 unicast
1805   redistribute connected
1806   redistribute kernel !announce your default gw to all nodes
1807  exit-address-family
1808  !
1809  address-family l2vpn evpn
1810   advertise ipv4 unicast
1811  exit-address-family
1812 !
1813 line vty
1814 !
1815 ----
1816
1817 Note
1818 ^^^^
1819
1820 If your external router don't support ecmp to reach multiple proxmox nodes,
1821 you can setup an HA floating vip on proxmox nodes with vrrp
1822
1823 I this example, we will setup an floating 172.16.0.10 ip on node1 and node2.
1824 Node1 is the primary and failover to node2 in case of failure.
1825
1826
1827 * node1
1828
1829 ----
1830 auto eno2
1831 iface eno2
1832         address 172.16.0.1
1833         netmask 255.255.255.0
1834         vrf vrf1
1835         post-up ip route add default via 172.16.0.254 dev eno2 vrf vrf1
1836         vrrp-id 1
1837         vrrp-priority 1
1838         vrrp-virtual-ip 172.16.0.10
1839 ----
1840
1841 * node2
1842
1843 ----
1844 auto eno2
1845 iface eno2
1846         address 172.16.0.2
1847         netmask 255.255.255.0
1848         vrf vrf1
1849         post-up ip route add default via 172.16.0.254 dev eno2 vrf vrf1
1850         vrrp-id 1
1851         vrrp-priority 2
1852         vrrp-virtual-ip 172.16.0.10
1853 ----
1854
1855