]> git.proxmox.com Git - pve-docs.git/blob - vxlan-and-evpn.adoc
vxlan: add rp_filter sysctl for multiple gateway nodes
[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 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)
21
22 For BUM traffic (broadcast / unknown unicast traffic, multicast),
23 we have 3 differents vxlan setup modes : multicast, unicast, bgp-evpn
24
25 image::images/vxlan-l2-vlanunaware.svg["vxlan l2 bridge vlan unaware",align="center"]
26
27 multicast mode
28 ^^^^^^^^^^^^^^
29
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.
35
36
37 * node1
38
39 ----
40 auto eno1
41 iface eno1 inet manual
42 mtu 1550
43
44 auto vmbr0
45 iface vmbr0 inet static
46 address 192.168.0.1
47 netmask 255.255.255.0
48 bridge_ports eno1
49 bridge_stp off
50 bridge_fd 0
51
52 auto vxlan2
53 iface vxlan2 inet manual
54 vxlan-id 2
55 vxlan-svcnodeip 225.20.1.1
56 vxlan-physdev eno1
57
58 auto vmbr2
59 iface vmbr2 inet manual
60 bridge_ports vxlan2
61 bridge_stp off
62 bridge_fd 0
63
64 auto vxlan3
65 iface vxlan3 inet manual
66 vxlan-id 3
67 vxlan-svcnodeip 225.20.1.1
68 vxlan-physdev eno1
69
70 auto vmbr3
71 iface vmbr3 inet manual
72 bridge_ports vxlan3
73 bridge_stp off
74 bridge_fd 0
75 ----
76
77
78 * node2
79
80 ----
81 auto eno1
82 iface eno1 inet manual
83 mtu 1550
84
85 auto vmbr0
86 iface vmbr0 inet static
87 address 192.168.0.2
88 netmask 255.255.255.0
89 bridge_ports eno1
90 bridge_stp off
91 bridge_fd 0
92
93 auto vxlan2
94 iface vxlan2 inet manual
95 vxlan-id 2
96 vxlan-svcnodeip 225.20.1.1
97 vxlan-physdev eno1
98
99 auto vmbr2
100 iface vmbr2 inet manual
101 bridge_ports vxlan2
102 bridge_stp off
103 bridge_fd 0
104
105
106 auto vxlan3
107 iface vxlan3 inet manual
108 vxlan-id 3
109 vxlan-svcnodeip 225.20.1.1
110 vxlan-physdev eno1
111
112 auto vmbr3
113 iface vmbr3 inet manual
114 bridge_ports vxlan3
115 bridge_stp off
116 bridge_fd 0
117 ----
118
119
120 * node3
121
122 ----
123 auto eno1
124 iface eno1 inet manual
125 mtu 1550
126
127 auto vmbr0
128 iface vmbr0 inet static
129 address 192.168.0.3
130 netmask 255.255.255.0
131 bridge_ports eno1
132 bridge_stp off
133 bridge_fd 0
134
135 auto vxlan2
136 iface vxlan2 inet manual
137 vxlan-id 2
138 vxlan-svcnodeip 225.20.1.1
139 vxlan-physdev eno1
140
141 auto vmbr2
142 iface vmbr2 inet manual
143 bridge_ports vxlan2
144 bridge_stp off
145 bridge_fd 0
146
147
148 auto vxlan3
149 iface vxlan3 inet manual
150 vxlan-id 3
151 vxlan-svcnodeip 225.20.1.1
152 vxlan-physdev eno1
153
154 auto vmbr3
155 iface vmbr3 inet manual
156 bridge_ports vxlan3
157 bridge_stp off
158 bridge_fd 0
159 ----
160
161
162 unicast mode
163 ^^^^^^^^^^^^
164
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.
170
171 * node1
172
173 ----
174 auto eno1
175 iface eno1 inet manual
176 mtu 1550
177
178 auto vmbr0
179 iface vmbr0 inet static
180 address 192.168.0.1
181 netmask 255.255.255.0
182 bridge_ports eno1
183 bridge_stp off
184 bridge_fd 0
185
186
187 auto vxlan2
188 iface vxlan2 inet manual
189 vxlan-id 2
190 vxlan_remoteip 192.168.0.2
191 vxlan_remoteip 192.168.0.3
192
193
194 auto vmbr2
195 iface vmbr2 inet manual
196 bridge_ports vxlan2
197 bridge_stp off
198 bridge_fd 0
199
200
201 auto vxlan3
202 iface vxlan2 inet manual
203 vxlan-id 3
204 vxlan_remoteip 192.168.0.2
205 vxlan_remoteip 192.168.0.3
206
207
208 auto vmbr3
209 iface vmbr3 inet manual
210 bridge_ports vxlan3
211 bridge_stp off
212 bridge_fd 0
213 ----
214
215
216 * node2
217
218 ----
219 auto eno1
220 iface eno1 inet manual
221 mtu 1550
222
223 auto vmbr0
224 iface vmbr0 inet static
225 address 192.168.0.2
226 netmask 255.255.255.0
227 bridge_ports eno1
228 bridge_stp off
229 bridge_fd 0
230
231 auto vxlan2
232 iface vxlan2 inet manual
233 vxlan-id 2
234 vxlan_remoteip 192.168.0.1
235 vxlan_remoteip 192.168.0.3
236
237
238
239 auto vmbr2
240 iface vmbr2 inet manual
241 bridge_ports vxlan2
242 bridge_stp off
243 bridge_fd 0
244
245 auto vxlan3
246 iface vxlan2 inet manual
247 vxlan-id 3
248 vxlan_remoteip 192.168.0.1
249 vxlan_remoteip 192.168.0.3
250
251
252 auto vmbr3
253 iface vmbr3 inet manual
254 bridge_ports vxlan3
255 bridge_stp off
256 bridge_fd 0
257 ----
258
259
260 * node3
261
262 ----
263 auto eno1
264 iface eno1 inet manual
265 mtu 1550
266
267 auto vmbr0
268 iface vmbr0 inet static
269 address 192.168.0.3
270 netmask 255.255.255.0
271 bridge_ports eno1
272 bridge_stp off
273 bridge_fd 0
274
275 auto vxlan2
276 iface vxlan2 inet manual
277 vxlan-id 2
278 vxlan_remoteip 192.168.0.2
279 vxlan_remoteip 192.168.0.3
280
281
282
283 auto vmbr2
284 iface vmbr2 inet manual
285 bridge_ports vxlan2
286 bridge_stp off
287 bridge_fd 0
288
289 auto vxlan3
290 iface vxlan2 inet manual
291 vxlan-id 3
292 vxlan_remoteip 192.168.0.2
293 vxlan_remoteip 192.168.0.3
294
295
296 auto vmbr3
297 iface vmbr3 inet manual
298 bridge_ports vxlan3
299 bridge_stp off
300 bridge_fd 0
301 ----
302
303
304 bgp-evpn
305 ^^^^^^^^
306
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.
309
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.
314
315 * node1
316
317 ----
318 auto eno1
319 iface eno1 inet manual
320 mtu 1550
321
322 auto vmbr0
323 iface vmbr0 inet static
324 address 192.168.0.1
325 netmask 255.255.255.0
326 bridge_ports eno1
327 bridge_stp off
328 bridge_fd 0
329
330 auto vxlan2
331 iface vxlan2 inet manual
332 vxlan-id 2
333 vxlan-local-tunnelip 192.168.0.1
334 bridge-learning off
335 bridge-arp-nd-suppress on
336 bridge-unicast-flood off
337 bridge-multicast-flood off
338
339
340 auto vmbr2
341 iface vmbr2 inet manual
342 bridge_ports vxlan2
343 bridge_stp off
344 bridge_fd 0
345
346
347 auto vxlan3
348 iface vxlan3 inet manual
349 vxlan-id 3
350 vxlan-local-tunnelip 192.168.0.1
351 bridge-learning off
352 bridge-arp-nd-suppress on
353 bridge-unicast-flood off
354 bridge-multicast-flood off
355
356
357 auto vmbr3
358 iface vmbr3 inet manual
359 bridge_ports vxlan3
360 bridge_stp off
361 bridge_fd 0
362 ----
363
364
365 /etc/frr/frr.conf
366
367 ----
368 router bgp 1234
369 no bgp default ipv4-unicast
370 no bgp default ipv6-unicast
371 coalesce-time 1000
372 neighbor 192.168.0.2 remote-as 1234
373 neighbor 192.168.0.3 remote-as 1234
374 !
375 address-family l2vpn evpn
376 neighbor 192.168.0.2 activate
377 neighbor 192.168.0.3 activate
378 advertise-all-vni
379 exit-address-family
380 !
381 line vty
382 !
383 ----
384
385
386 * node2
387
388 ----
389 auto eno1
390 iface eno1 inet manual
391 mtu 1550
392
393 auto vmbr0
394 iface vmbr0 inet static
395 address 192.168.0.2
396 netmask 255.255.255.0
397 bridge_ports eno1
398 bridge_stp off
399 bridge_fd 0
400
401 auto vxlan2
402 iface vxlan2 inet manual
403 vxlan-id 2
404 vxlan-local-tunnelip 192.168.0.2
405 bridge-learning off
406 bridge-arp-nd-suppress on
407 bridge-unicast-flood off
408 bridge-multicast-flood off
409
410
411 auto vmbr2
412 iface vmbr2 inet manual
413 bridge_ports vxlan2
414 bridge_stp off
415 bridge_fd 0
416
417 auto vxlan3
418 iface vxlan3 inet manual
419 vxlan-id 3
420 vxlan-local-tunnelip 192.168.0.2
421 bridge-learning off
422 bridge-arp-nd-suppress on
423 bridge-unicast-flood off
424 bridge-multicast-flood off
425
426
427 auto vmbr3
428 iface vmbr3 inet manual
429 bridge_ports vxlan3
430 bridge_stp off
431 bridge_fd 0
432 ----
433
434
435 /etc/frr/frr.conf
436
437 ----
438 router bgp 1234
439 no bgp default ipv4-unicast
440 no bgp default ipv6-unicast
441 coalesce-time 1000
442 neighbor 192.168.0.1 remote-as 1234
443 neighbor 192.168.0.3 remote-as 1234
444 !
445 address-family l2vpn evpn
446 neighbor 192.168.0.1 activate
447 neighbor 192.168.0.3 activate
448 advertise-all-vni
449 exit-address-family
450 !
451 line vty
452 !
453 ----
454
455
456 * node3
457
458 ----
459 auto eno1
460 iface eno1 inet manual
461 mtu 1550
462
463 auto vmbr0
464 iface vmbr0 inet static
465 address 192.168.0.2
466 netmask 255.255.255.0
467 bridge_ports eno1
468 bridge_stp off
469 bridge_fd 0
470
471 auto vxlan2
472 iface vxlan2 inet manual
473 vxlan-id 2
474 vxlan-local-tunnelip 192.168.0.3
475 bridge-learning off
476 bridge-arp-nd-suppress on
477 bridge-unicast-flood off
478 bridge-multicast-flood off
479
480
481 auto vmbr2
482 iface vmbr2 inet manual
483 bridge_ports vxlan2
484 bridge_stp off
485 bridge_fd 0
486
487 auto vxlan3
488 iface vxlan3 inet manual
489 vxlan-id 3
490 vxlan-local-tunnelip 192.168.0.3
491 bridge-learning off
492 bridge-arp-nd-suppress on
493 bridge-unicast-flood off
494 bridge-multicast-flood off
495
496
497 auto vmbr3
498 iface vmbr3 inet manual
499 bridge_ports vxlan3
500 bridge_stp off
501 bridge_fd 0
502 ----
503
504
505 /etc/frr/frr.conf
506
507
508 ----
509 router bgp 1234
510 no bgp default ipv4-unicast
511 no bgp default ipv6-unicast
512 coalesce-time 1000
513 neighbor 192.168.0.1 remote-as 1234
514 neighbor 192.168.0.2 remote-as 1234
515 !
516 address-family l2vpn evpn
517 neighbor 192.168.0.1 activate
518 neighbor 192.168.0.2 activate
519 advertise-all-vni
520 exit-address-family
521 !
522 line vty
523 !
524 ----
525
526 VXLAN layer3 routing with anycast gateway
527 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
528
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.
532
533 VXLAN layer3 routing only work with FRR and non-aware bridge.
534 (vlan aware bridge support is buggy currently).
535
536 asymmetric model
537 ^^^^^^^^^^^^^^^^
538
539 This is the simplest mode. To get it work, all vxlan need to be defined on all nodes.
540
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.
545
546 image::images/vxlan-l3-asymmetric.svg["vxlan l3 asymmetric",align="center"]
547
548 * node1
549
550 ----
551 auto eno1
552 iface eno1 inet manual
553 mtu 1550
554
555 auto vmbr0
556 iface vmbr0 inet static
557 address 192.168.0.1
558 netmask 255.255.255.0
559 bridge_ports eno1
560 bridge_stp off
561 bridge_fd 0
562
563 auto vxlan2
564 iface vxlan2 inet manual
565 vxlan-id 2
566 vxlan-local-tunnelip 192.168.0.1
567 bridge-learning off
568 bridge-arp-nd-suppress on
569 bridge-unicast-flood off
570 bridge-multicast-flood off
571
572
573 auto vmbr2
574 iface vmbr2 inet static
575 address 10.0.2.254
576 netmask 255.255.255.0
577 hwaddress 44:39:39:FF:40:94
578 bridge_ports vxlan2
579 bridge_stp off
580 bridge_fd 0
581 ip-forward on
582 ip6-forward on
583 arp-accept on
584
585 auto vxlan3
586 iface vxlan3 inet manual
587 vxlan-id 3
588 vxlan-local-tunnelip 192.168.0.1
589 bridge-learning off
590 bridge-arp-nd-suppress on
591 bridge-unicast-flood off
592 bridge-multicast-flood off
593
594
595 auto vmbr3
596 iface vmbr3 inet static
597 address 10.0.3.254
598 netmask 255.255.255.0
599 hwaddress 44:39:39:FF:40:94
600 bridge_ports vxlan3
601 bridge_stp off
602 bridge_fd 0
603 ip-forward on
604 ip6-forward on
605 arp-accept on
606 ----
607
608
609 frr.conf
610
611 ----
612 router bgp 1234
613 bgp router-id 192.168.0.1
614 no bgp default ipv4-unicast
615 no bgp default ipv6-unicast
616 coalesce-time 1000
617 neighbor 192.168.0.2 remote-as 1234
618 neighbor 192.168.0.3 remote-as 1234
619 !
620 address-family l2vpn evpn
621 neighbor 192.168.0.2 activate
622 neighbor 192.168.0.3 activate
623 advertise-all-vni
624 exit-address-family
625 !
626 line vty
627 !
628 ----
629
630
631 * node2
632
633 ----
634 auto eno1
635 iface eno1 inet manual
636 mtu 1550
637
638 auto vmbr0
639 iface vmbr0 inet static
640 address 192.168.0.2
641 netmask 255.255.255.0
642 bridge_ports eno1
643 bridge_stp off
644 bridge_fd 0
645
646 auto vxlan2
647 iface vxlan2 inet manual
648 vxlan-id 2
649 vxlan-local-tunnelip 192.168.0.2
650 bridge-learning off
651 bridge-arp-nd-suppress on
652 bridge-unicast-flood off
653 bridge-multicast-flood off
654
655
656 auto vmbr2
657 iface vmbr2 inet static
658 address 10.0.2.254
659 netmask 255.255.255.0
660 hwaddress 44:39:39:FF:40:94
661 bridge_ports vxlan2
662 bridge_stp off
663 bridge_fd 0
664 ip-forward on
665 ip6-forward on
666 arp-accept on
667
668
669 auto vxlan3
670 iface vxlan3 inet manual
671 vxlan-id 3
672 vxlan-local-tunnelip 192.168.0.2
673 bridge-learning off
674 bridge-arp-nd-suppress on
675 bridge-unicast-flood off
676 bridge-multicast-flood off
677
678
679 auto vmbr3
680 iface vmbr3 inet static
681 address 10.0.3.254
682 netmask 255.255.255.0
683 hwaddress 44:39:39:FF:40:94
684 bridge_ports vxlan3
685 bridge_stp off
686 bridge_fd 0
687 ip-forward on
688 ip6-forward on
689 arp-accept on
690 ----
691
692
693 frr.conf
694
695 ----
696 router bgp 1234
697 bgp router-id 192.168.0.2
698 no bgp default ipv4-unicast
699 no bgp default ipv6-unicast
700 coalesce-time 1000
701 neighbor 192.168.0.1 remote-as 1234
702 neighbor 192.168.0.3 remote-as 1234
703 !
704 address-family l2vpn evpn
705 neighbor 192.168.0.1 activate
706 neighbor 192.168.0.3 activate
707 advertise-all-vni
708 exit-address-family
709 !
710 line vty
711 !
712 ----
713
714
715 * node3
716
717 ----
718 auto eno1
719 iface eno1 inet manual
720 mtu 1550
721
722 auto vmbr0
723 iface vmbr0 inet static
724 address 192.168.0.3
725 netmask 255.255.255.0
726 bridge_ports eno1
727 bridge_stp off
728 bridge_fd 0
729
730 auto vxlan2
731 iface vxlan2 inet manual
732 vxlan-id 2
733 vxlan-local-tunnelip 192.168.0.3
734 bridge-learning off
735 bridge-arp-nd-suppress on
736 bridge-unicast-flood off
737 bridge-multicast-flood off
738
739
740 auto vmbr2
741 iface vmbr2 inet static
742 address 10.0.2.254
743 netmask 255.255.255.0
744 hwaddress 44:39:39:FF:40:94
745 bridge_ports vxlan2
746 bridge_stp off
747 bridge_fd 0
748 ip-forward on
749 ip6-forward on
750 arp-accept on
751
752 auto vxlan3
753 iface vxlan3 inet manual
754 vxlan-id 3
755 vxlan-local-tunnelip 192.168.0.3
756 bridge-learning off
757 bridge-arp-nd-suppress on
758 bridge-unicast-flood off
759 bridge-multicast-flood off
760
761 auto vmbr3
762 iface vmbr3 inet static
763 address 10.0.3.254
764 netmask 255.255.255.0
765 hwaddress 44:39:39:FF:40:94
766 bridge_ports vxlan3
767 bridge_stp off
768 bridge_fd 0
769 ip-forward on
770 ip6-forward on
771 arp-accept on
772 ----
773
774
775 frr.conf
776
777 ----
778 router bgp 1234
779 bgp router-id 192.168.0.3
780 no bgp default ipv4-unicast
781 no bgp default ipv6-unicast
782 coalesce-time 1000
783 neighbor 192.168.0.1 remote-as 1234
784 neighbor 192.168.0.2 remote-as 1234
785 !
786 address-family l2vpn evpn
787 neighbor 192.168.0.1 activate
788 neighbor 192.168.0.2 activate
789 advertise-all-vni
790 exit-address-family
791 !
792 line vty
793 !
794 ----
795
796
797 symmetric model
798 ^^^^^^^^^^^^^^^
799
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.
802
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.
808
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.
810
811 image::images/vxlan-l3-symmetric.svg["vxlan l3 symmetric",align="center"]
812
813 * node1
814
815 ----
816 auto vrf1
817 iface vrf1
818 vrf-table auto
819
820 auto eno1
821 iface eno1 inet manual
822 mtu 1550
823
824 auto vmbr0
825 iface vmbr0 inet static
826 address 192.168.0.1
827 netmask 255.255.255.0
828 bridge_ports eno1
829 bridge_stp off
830 bridge_fd 0
831
832 auto vxlan2
833 iface vxlan2 inet manual
834 vxlan-id 2
835 vxlan-local-tunnelip 192.168.0.1
836 bridge-learning off
837 bridge-arp-nd-suppress on
838 bridge-unicast-flood off
839 bridge-multicast-flood off
840
841 auto vmbr2
842 iface vmbr2 inet static
843 bridge_ports vxlan2
844 bridge_stp off
845 bridge_fd 0
846 address 10.0.2.254
847 netmask 255.255.255.0
848 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
849 vrf vrf1
850 ip-forward on
851 ip6-forward on
852 arp-accept on
853
854 auto vxlan3
855 iface vxlan3 inet manual
856 vxlan-id 3
857 vxlan-local-tunnelip 192.168.0.1
858 bridge-learning off
859 bridge-arp-nd-suppress on
860 bridge-unicast-flood off
861 bridge-multicast-flood off
862
863 auto vmbr3
864 iface vmbr3 inet static
865 bridge_ports vxlan3
866 bridge_stp off
867 bridge_fd 0
868 address 10.0.3.254
869 netmask 255.255.255.0
870 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
871 vrf vrf1
872 ip-forward on
873 ip6-forward on
874 arp-accept on
875
876 #interconnect vxlan-vfr l3vni
877 auto vxlan4000
878 iface vxlan4000 inet manual
879 vxlan-id 4000
880 vxlan-local-tunnelip 192.168.0.1
881 bridge-learning off
882 bridge-arp-nd-suppress on
883 bridge-unicast-flood off
884 bridge-multicast-flood off
885
886
887 auto vmbr4000
888 iface vmbr4000 inet manual
889 bridge_ports vxlan4000
890 bridge_stp off
891 bridge_fd 0
892 vrf vrf1
893 ----
894
895 frr.conf
896
897 ----
898 vrf vrf1
899 vni 4000
900 exit-vrf
901 !
902 router bgp 1234
903 bgp router-id 192.168.0.1
904 no bgp default ipv4-unicast
905 no bgp default ipv6-unicast
906 coalesce-time 1000
907 neighbor 192.168.0.2 remote-as 1234
908 neighbor 192.168.0.3 remote-as 1234
909 !
910 address-family l2vpn evpn
911 neighbor 192.168.0.2 activate
912 neighbor 192.168.0.3 activate
913 advertise-all-vni
914 exit-address-family
915 !
916 line vty
917 !
918 ----
919
920
921 * node2
922
923 ----
924 auto vrf1
925 iface vrf1
926 vrf-table auto
927
928 auto eno1
929 iface eno1 inet manual
930 mtu 1550
931
932 auto vmbr0
933 iface vmbr0 inet static
934 address 192.168.0.2
935 netmask 255.255.255.0
936 bridge_ports eno1
937 bridge_stp off
938 bridge_fd 0
939
940 auto vxlan2
941 iface vxlan2 inet manual
942 vxlan-id 2
943 vxlan-local-tunnelip 192.168.0.2
944 bridge-learning off
945 bridge-arp-nd-suppress on
946 bridge-unicast-flood off
947 bridge-multicast-flood off
948
949 auto vmbr2
950 iface vmbr2 inet static
951 bridge_ports vxlan2
952 bridge_stp off
953 bridge_fd 0
954 address 10.0.2.254
955 netmask 255.255.255.0
956 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
957 vrf vrf1
958 ip-forward on
959 ip6-forward on
960 arp-accept on
961
962 auto vxlan3
963 iface vxlan3 inet manual
964 vxlan-id 3
965 vxlan-local-tunnelip 192.168.0.2
966 bridge-learning off
967 bridge-arp-nd-suppress on
968 bridge-unicast-flood off
969 bridge-multicast-flood off
970
971 auto vmbr3
972 iface vmbr3 inet static
973 bridge_ports vxlan3
974 bridge_stp off
975 bridge_fd 0
976 address 10.0.3.254
977 netmask 255.255.255.0
978 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
979 vrf vrf1
980 ip-forward on
981 ip6-forward on
982 arp-accept on
983
984 #interconnect vxlan-vfr l3vni
985 auto vxlan4000
986 iface vxlan4000 inet manual
987 vxlan-id 4000
988 vxlan-local-tunnelip 192.168.0.2
989 bridge-learning off
990 bridge-arp-nd-suppress on
991 bridge-unicast-flood off
992 bridge-multicast-flood off
993
994
995 auto vmbr4000
996 iface vmbr4000 inet manual
997 bridge_ports vxlan4000
998 bridge_stp off
999 bridge_fd 0
1000 vrf vrf1
1001 ----
1002
1003
1004 frr.conf
1005
1006 ----
1007 vrf vrf1
1008 vni 4000
1009 exit-vrf
1010 !
1011 router bgp 1234
1012 bgp router-id 192.168.0.2
1013 no bgp default ipv4-unicast
1014 no bgp default ipv6-unicast
1015 coalesce-time 1000
1016 neighbor 192.168.0.1 remote-as 1234
1017 neighbor 192.168.0.3 remote-as 1234
1018 !
1019 address-family l2vpn evpn
1020 neighbor 192.168.0.1 activate
1021 neighbor 192.168.0.3 activate
1022 advertise-all-vni
1023 exit-address-family
1024 !
1025 line vty
1026 !
1027 ----
1028
1029
1030 * node3
1031
1032 ----
1033 auto vrf1
1034 iface vrf1
1035 vrf-table auto
1036
1037 auto eno1
1038 iface eno1 inet manual
1039 mtu 1550
1040
1041 auto vmbr0
1042 iface vmbr0 inet static
1043 address 192.168.0.3
1044 netmask 255.255.255.0
1045 bridge_ports eno1
1046 bridge_stp off
1047 bridge_fd 0
1048
1049 auto vxlan2
1050 iface vxlan2 inet manual
1051 vxlan-id 2
1052 vxlan-local-tunnelip 192.168.0.3
1053 bridge-learning off
1054 bridge-arp-nd-suppress on
1055 bridge-unicast-flood off
1056 bridge-multicast-flood off
1057
1058 auto vmbr2
1059 iface vmbr2 inet static
1060 bridge_ports vxlan2
1061 bridge_stp off
1062 bridge_fd 0
1063 address 10.0.2.254
1064 netmask 255.255.255.0
1065 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1066 vrf vrf1
1067 ip-forward on
1068 ip6-forward on
1069 arp-accept on
1070
1071 auto vxlan3
1072 iface vxlan3 inet manual
1073 vxlan-id 3
1074 vxlan-local-tunnelip 192.168.0.3
1075 bridge-learning off
1076 bridge-arp-nd-suppress on
1077 bridge-unicast-flood off
1078 bridge-multicast-flood off
1079
1080 auto vmbr3
1081 iface vmbr3 inet static
1082 bridge_ports vxlan3
1083 bridge_stp off
1084 bridge_fd 0
1085 address 10.0.3.254
1086 netmask 255.255.255.0
1087 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1088 vrf vrf1
1089 ip-forward on
1090 ip6-forward on
1091 arp-accept on
1092
1093 #interconnect vxlan-vfr l3vni
1094 auto vxlan4000
1095 iface vxlan4000 inet manual
1096 vxlan-id 4000
1097 vxlan-local-tunnelip 192.168.0.3
1098 bridge-learning off
1099 bridge-arp-nd-suppress on
1100 bridge-unicast-flood off
1101 bridge-multicast-flood off
1102
1103
1104 auto vmbr4000
1105 iface vmbr4000 inet manual
1106 bridge_ports vxlan4000
1107 bridge_stp off
1108 bridge_fd 0
1109 vrf vrf1
1110 ----
1111
1112
1113 frr.conf
1114
1115 ----
1116 vrf vrf1
1117 vni 4000
1118 exit-vrf
1119 !
1120 router bgp 1234
1121 bgp router-id 192.168.0.3
1122 no bgp default ipv4-unicast
1123 no bgp default ipv6-unicast
1124 coalesce-time 1000
1125 neighbor 192.168.0.1 remote-as 1234
1126 neighbor 192.168.0.2 remote-as 1234
1127 !
1128 address-family l2vpn evpn
1129 neighbor 192.168.0.1 activate
1130 neighbor 192.168.0.2 activate
1131 advertise-all-vni
1132 exit-address-family
1133 !
1134 line vty
1135 !
1136 ----
1137
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.
1141
1142 1 gateway node
1143 ^^^^^^^^^^^^^^
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)
1146
1147
1148 *node1
1149
1150 ----
1151 auto vrf1
1152 iface vrf1
1153 vrf-table auto
1154
1155 auto eno1
1156 iface eno1 inet manual
1157 mtu 1550
1158
1159 auto vmbr0
1160 iface vmbr0 inet static
1161 address 192.168.0.1
1162 netmask 255.255.255.0
1163 gateway 192.168.0.254
1164 bridge_ports eno1
1165 bridge_stp off
1166 bridge_fd 0
1167 ip-forward on
1168 ip6-forward on
1169
1170 auto vxlan2
1171 iface vxlan2 inet manual
1172 vxlan-id 2
1173 vxlan-local-tunnelip 192.168.0.1
1174 bridge-learning off
1175 bridge-arp-nd-suppress on
1176 bridge-unicast-flood off
1177 bridge-multicast-flood off
1178
1179 auto vmbr2
1180 iface vmbr2 inet static
1181 bridge_ports vxlan2
1182 bridge_stp off
1183 bridge_fd 0
1184 address 10.0.2.254
1185 netmask 255.255.255.0
1186 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1187 vrf vrf1
1188 ip-forward on
1189 ip6-forward on
1190 arp-accept on
1191
1192 auto vxlan3
1193 iface vxlan3 inet manual
1194 vxlan-id 3
1195 vxlan-local-tunnelip 192.168.0.1
1196 bridge-learning off
1197 bridge-arp-nd-suppress on
1198 bridge-unicast-flood off
1199 bridge-multicast-flood off
1200
1201 auto vmbr3
1202 iface vmbr3 inet static
1203 bridge_ports vxlan3
1204 bridge_stp off
1205 bridge_fd 0
1206 address 10.0.3.254
1207 netmask 255.255.255.0
1208 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1209 vrf vrf1
1210 ip-forward on
1211 ip6-forward on
1212 arp-accept on
1213
1214 #interconnect vxlan-vfr l3vni
1215 auto vxlan4000
1216 iface vxlan4000 inet manual
1217 vxlan-id 4000
1218 vxlan-local-tunnelip 192.168.0.1
1219 bridge-learning off
1220 bridge-arp-nd-suppress on
1221 bridge-unicast-flood off
1222 bridge-multicast-flood off
1223
1224 auto vmbr4000
1225 iface vmbr4000 inet manual
1226 bridge_ports vxlan4000
1227 bridge_stp off
1228 bridge_fd 0
1229 vrf vrf1
1230 ----
1231
1232
1233 frr.conf
1234
1235 ----
1236 vrf vrf1
1237 vni 4000
1238 exit-vrf
1239 !
1240 router bgp 1234
1241 bgp router-id 192.168.0.1
1242 no bgp default ipv4-unicast
1243 no bgp default ipv6-unicast
1244 coalesce-time 1000
1245 neighbor 192.168.0.2 remote-as 1234
1246 neighbor 192.168.0.3 remote-as 1234
1247 !
1248 address-family ipv4 unicast
1249 import vrf vrf1
1250 exit-address-family
1251 !
1252 address-family ipv6 unicast
1253 import vrf vrf1
1254 exit-address-family
1255 !
1256 address-family l2vpn evpn
1257 neighbor 192.168.0.2 activate
1258 neighbor 192.168.0.3 activate
1259 advertise-all-vni
1260 exit-address-family
1261 !
1262 router bgp 1234 vrf vrf1
1263 !
1264 address-family ipv4 unicast
1265 redistribute connected
1266 exit-address-family
1267 !
1268 address-family ipv6 unicast
1269 redistribute connected
1270 exit-address-family
1271 !
1272 address-family l2vpn evpn
1273 default-originate ipv4
1274 default-originate ipv6
1275 exit-address-family
1276 !
1277 line vty
1278 !
1279 ----
1280
1281
1282 * node2
1283
1284 ----
1285 auto vrf1
1286 iface vrf1
1287 vrf-table auto
1288
1289 auto eno1
1290 iface eno1 inet manual
1291 mtu 1550
1292
1293 auto vmbr0
1294 iface vmbr0 inet static
1295 address 192.168.0.2
1296 netmask 255.255.255.0
1297 bridge_ports eno1
1298 bridge_stp off
1299 bridge_fd 0
1300
1301 auto vxlan2
1302 iface vxlan2 inet manual
1303 vxlan-id 2
1304 vxlan-local-tunnelip 192.168.0.2
1305 bridge-learning off
1306 bridge-arp-nd-suppress on
1307 bridge-unicast-flood off
1308 bridge-multicast-flood off
1309
1310 auto vmbr2
1311 iface vmbr2 inet static
1312 bridge_ports vxlan2
1313 bridge_stp off
1314 bridge_fd 0
1315 address 10.0.2.254
1316 netmask 255.255.255.0
1317 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1318 vrf vrf1
1319 ip-forward on
1320 ip6-forward on
1321 arp-accept on
1322
1323 auto vxlan3
1324 iface vxlan3 inet manual
1325 vxlan-id 3
1326 vxlan-local-tunnelip 192.168.0.2
1327 bridge-learning off
1328 bridge-arp-nd-suppress on
1329 bridge-unicast-flood off
1330 bridge-multicast-flood off
1331
1332 auto vmbr3
1333 iface vmbr3 inet static
1334 bridge_ports vxlan3
1335 bridge_stp off
1336 bridge_fd 0
1337 address 10.0.3.254
1338 netmask 255.255.255.0
1339 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1340 vrf vrf1
1341 ip-forward on
1342 ip6-forward on
1343 arp-accept on
1344
1345 #interconnect vxlan-vfr l3vni
1346 auto vxlan4000
1347 iface vxlan4000 inet manual
1348 vxlan-id 4000
1349 vxlan-local-tunnelip 192.168.0.2
1350 bridge-learning off
1351 bridge-arp-nd-suppress on
1352 bridge-unicast-flood off
1353 bridge-multicast-flood off
1354
1355
1356 auto vmbr4000
1357 iface vmbr4000 inet manual
1358 bridge_ports vxlan4000
1359 bridge_stp off
1360 bridge_fd 0
1361 vrf vrf1
1362 ----
1363
1364
1365 frr.conf
1366
1367 ----
1368 vrf vrf1
1369 vni 4000
1370 exit-vrf
1371 !
1372 router bgp 1234
1373 bgp router-id 192.168.0.2
1374 no bgp default ipv4-unicast
1375 no bgp default ipv6-unicast
1376 coalesce-time 1000
1377 neighbor 192.168.0.1 remote-as 1234
1378 neighbor 192.168.0.3 remote-as 1234
1379 !
1380 address-family l2vpn evpn
1381 neighbor 192.168.0.1 activate
1382 neighbor 192.168.0.3 activate
1383 advertise-all-vni
1384 exit-address-family
1385 !
1386 line vty
1387 !
1388 ----
1389
1390
1391 * node3
1392
1393 ----
1394 auto vrf1
1395 iface vrf1
1396 vrf-table auto
1397
1398 auto eno1
1399 iface eno1 inet manual
1400 mtu 1550
1401
1402 auto vmbr0
1403 iface vmbr0 inet static
1404 address 192.168.0.3
1405 netmask 255.255.255.0
1406 bridge_ports eno1
1407 bridge_stp off
1408 bridge_fd 0
1409
1410 auto vxlan2
1411 iface vxlan2 inet manual
1412 vxlan-id 2
1413 vxlan-local-tunnelip 192.168.0.3
1414 bridge-learning off
1415 bridge-arp-nd-suppress on
1416 bridge-unicast-flood off
1417 bridge-multicast-flood off
1418
1419 auto vmbr2
1420 iface vmbr2 inet static
1421 bridge_ports vxlan2
1422 bridge_stp off
1423 bridge_fd 0
1424 address 10.0.2.254
1425 netmask 255.255.255.0
1426 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1427 vrf vrf1
1428 ip-forward on
1429 ip6-forward on
1430 arp-accept on
1431
1432 auto vxlan3
1433 iface vxlan3 inet manual
1434 vxlan-id 3
1435 vxlan-local-tunnelip 192.168.0.3
1436 bridge-learning off
1437 bridge-arp-nd-suppress on
1438 bridge-unicast-flood off
1439 bridge-multicast-flood off
1440
1441 auto vmbr3
1442 iface vmbr3 inet static
1443 bridge_ports vxlan3
1444 bridge_stp off
1445 bridge_fd 0
1446 address 10.0.3.254
1447 netmask 255.255.255.0
1448 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1449 vrf vrf1
1450 ip-forward on
1451 ip6-forward on
1452 arp-accept on
1453
1454 #interconnect vxlan-vfr l3vni
1455 auto vxlan4000
1456 iface vxlan4000 inet manual
1457 vxlan-id 4000
1458 vxlan-local-tunnelip 192.168.0.3
1459 bridge-learning off
1460 bridge-arp-nd-suppress on
1461 bridge-unicast-flood off
1462 bridge-multicast-flood off
1463
1464
1465 auto vmbr4000
1466 iface vmbr4000 inet manual
1467 bridge_ports vxlan4000
1468 bridge_stp off
1469 bridge_fd 0
1470 vrf vrf1
1471 ----
1472
1473
1474 frr.conf
1475
1476 ----
1477 vrf vrf1
1478 vni 4000
1479 exit-vrf
1480 !
1481 router bgp 1234
1482 bgp router-id 192.168.0.3
1483 no bgp default ipv4-unicast
1484 no bgp default ipv6-unicast
1485 coalesce-time 1000
1486 neighbor 192.168.0.1 remote-as 1234
1487 neighbor 192.168.0.2 remote-as 1234
1488 !
1489 address-family l2vpn evpn
1490 neighbor 192.168.0.1 activate
1491 neighbor 192.168.0.2 activate
1492 advertise-all-vni
1493 exit-address-family
1494 !
1495 line vty
1496 !
1497 ----
1498
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.
1507
1508 If you have multiple gateway nodes, disable rp_filter as packet could incoming in a 1 node, and outgoing
1509 to another node.
1510
1511 sysctl.conf tuning
1512 -----
1513 net.ipv4.conf.default.rp_filter=0
1514 net.ipv4.conf.all.rp_filter=0
1515 -----
1516
1517
1518 *node1
1519
1520 ----
1521 auto vrf1
1522 iface vrf1
1523 vrf-table auto
1524
1525 auto eno1
1526 iface eno1 inet manual
1527 mtu 1550
1528
1529 auto vmbr0
1530 iface vmbr0 inet static
1531 address 192.168.0.1
1532 netmask 255.255.255.0
1533 gateway 192.168.0.254
1534 bridge_ports eno1
1535 bridge_stp off
1536 bridge_fd 0
1537 ip-forward on
1538 ip6-forward on
1539
1540 auto vxlan2
1541 iface vxlan2 inet manual
1542 vxlan-id 2
1543 vxlan-local-tunnelip 192.168.0.1
1544 bridge-learning off
1545 bridge-arp-nd-suppress on
1546 bridge-unicast-flood off
1547 bridge-multicast-flood off
1548
1549 auto vmbr2
1550 iface vmbr2 inet static
1551 bridge_ports vxlan2
1552 bridge_stp off
1553 bridge_fd 0
1554 address 10.0.2.254
1555 netmask 255.255.255.0
1556 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1557 vrf vrf1
1558 ip-forward on
1559 ip6-forward on
1560 arp-accept on
1561
1562 auto vxlan3
1563 iface vxlan3 inet manual
1564 vxlan-id 3
1565 vxlan-local-tunnelip 192.168.0.1
1566 bridge-learning off
1567 bridge-arp-nd-suppress on
1568 bridge-unicast-flood off
1569 bridge-multicast-flood off
1570
1571 auto vmbr3
1572 iface vmbr3 inet static
1573 bridge_ports vxlan3
1574 bridge_stp off
1575 bridge_fd 0
1576 address 10.0.3.254
1577 netmask 255.255.255.0
1578 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1579 vrf vrf1
1580 ip-forward on
1581 ip6-forward on
1582 arp-accept on
1583
1584 #interconnect vxlan-vfr l3vni
1585 auto vxlan4000
1586 iface vxlan4000 inet manual
1587 vxlan-id 4000
1588 vxlan-local-tunnelip 192.168.0.1
1589 bridge-learning off
1590 bridge-arp-nd-suppress on
1591 bridge-unicast-flood off
1592 bridge-multicast-flood off
1593
1594 auto vmbr4000
1595 iface vmbr4000 inet manual
1596 bridge_ports vxlan4000
1597 bridge_stp off
1598 bridge_fd 0
1599 vrf vrf1
1600 ----
1601
1602
1603 frr.conf
1604
1605 ----
1606 vrf vrf1
1607 vni 4000
1608 exit-vrf
1609 !
1610 router bgp 1234
1611 bgp router-id 192.168.0.1
1612 no bgp default ipv4-unicast
1613 no bgp default ipv6-unicast
1614 coalesce-time 1000
1615 neighbor 192.168.0.2 remote-as 1234
1616 neighbor 192.168.0.3 remote-as 1234
1617 !
1618 address-family ipv4 unicast
1619 import vrf vrf1
1620 exit-address-family
1621 !
1622 address-family ipv6 unicast
1623 import vrf vrf1
1624 exit-address-family
1625 !
1626 address-family l2vpn evpn
1627 neighbor 192.168.0.2 activate
1628 neighbor 192.168.0.3 activate
1629 advertise-all-vni
1630 exit-address-family
1631 !
1632 router bgp 1234 vrf vrf1
1633 !
1634 address-family ipv4 unicast
1635 redistribute connected
1636 exit-address-family
1637 !
1638 address-family ipv6 unicast
1639 redistribute connected
1640 exit-address-family
1641 !
1642 address-family l2vpn evpn
1643 default-originate ipv4
1644 default-originate ipv6
1645 exit-address-family
1646 !
1647 line vty
1648 !
1649 ----
1650
1651
1652 * node2
1653
1654 ----
1655 auto vrf1
1656 iface vrf1
1657 vrf-table auto
1658
1659 auto eno1
1660 iface eno1 inet manual
1661 mtu 1550
1662
1663 auto vmbr0
1664 iface vmbr0 inet static
1665 address 192.168.0.2
1666 netmask 255.255.255.0
1667 gateway 192.168.0.254
1668 bridge_ports eno1
1669 bridge_stp off
1670 bridge_fd 0
1671 ip-forward on
1672 ip6-forward on
1673
1674 auto vxlan2
1675 iface vxlan2 inet manual
1676 vxlan-id 2
1677 vxlan-local-tunnelip 192.168.0.2
1678 bridge-learning off
1679 bridge-arp-nd-suppress on
1680 bridge-unicast-flood off
1681 bridge-multicast-flood off
1682
1683 auto vmbr2
1684 iface vmbr2 inet static
1685 bridge_ports vxlan2
1686 bridge_stp off
1687 bridge_fd 0
1688 address 10.0.2.254
1689 netmask 255.255.255.0
1690 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1691 vrf vrf1
1692 ip-forward on
1693 ip6-forward on
1694 arp-accept on
1695
1696 auto vxlan3
1697 iface vxlan3 inet manual
1698 vxlan-id 3
1699 vxlan-local-tunnelip 192.168.0.2
1700 bridge-learning off
1701 bridge-arp-nd-suppress on
1702 bridge-unicast-flood off
1703 bridge-multicast-flood off
1704
1705 auto vmbr3
1706 iface vmbr3 inet static
1707 bridge_ports vxlan3
1708 bridge_stp off
1709 bridge_fd 0
1710 address 10.0.3.254
1711 netmask 255.255.255.0
1712 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1713 vrf vrf1
1714 ip-forward on
1715 ip6-forward on
1716 arp-accept on
1717
1718 #interconnect vxlan-vfr l3vni
1719 auto vxlan4000
1720 iface vxlan4000 inet manual
1721 vxlan-id 4000
1722 vxlan-local-tunnelip 192.168.0.2
1723 bridge-learning off
1724 bridge-arp-nd-suppress on
1725 bridge-unicast-flood off
1726 bridge-multicast-flood off
1727
1728
1729 auto vmbr4000
1730 iface vmbr4000 inet manual
1731 bridge_ports vxlan4000
1732 bridge_stp off
1733 bridge_fd 0
1734 vrf vrf1
1735 ----
1736
1737
1738 frr.conf
1739
1740 ----
1741 vrf vrf1
1742 vni 4000
1743 exit-vrf
1744 !
1745 router bgp 1234
1746 bgp router-id 192.168.0.2
1747 no bgp default ipv4-unicast
1748 no bgp default ipv6-unicast
1749 coalesce-time 1000
1750 neighbor 192.168.0.1 remote-as 1234
1751 neighbor 192.168.0.3 remote-as 1234
1752 !
1753 address-family ipv4 unicast
1754 import vrf vrf1
1755 exit-address-family
1756 !
1757 address-family ipv6 unicast
1758 import vrf vrf1
1759 exit-address-family
1760 !
1761 address-family l2vpn evpn
1762 neighbor 192.168.0.1 activate
1763 neighbor 192.168.0.3 activate
1764 advertise-all-vni
1765 exit-address-family
1766 !
1767 address-family ipv4 unicast
1768 redistribute connected
1769 exit-address-family
1770 !
1771 address-family ipv6 unicast
1772 redistribute connected
1773 exit-address-family
1774 !
1775 address-family l2vpn evpn
1776 default-originate ipv4
1777 default-originate ipv6
1778 exit-address-family
1779 !
1780 line vty
1781 !
1782 ----
1783
1784
1785 * node3
1786
1787 ----
1788 auto vrf1
1789 iface vrf1
1790 vrf-table auto
1791
1792 auto eno1
1793 iface eno1 inet manual
1794 mtu 1550
1795
1796 auto vmbr0
1797 iface vmbr0 inet static
1798 address 192.168.0.3
1799 netmask 255.255.255.0
1800 gateway 192.168.0.254
1801 bridge_ports eno1
1802 bridge_stp off
1803 bridge_fd 0
1804 ip-forward on
1805 ip6-forward on
1806
1807 auto vxlan2
1808 iface vxlan2 inet manual
1809 vxlan-id 2
1810 vxlan-local-tunnelip 192.168.0.3
1811 bridge-learning off
1812 bridge-arp-nd-suppress on
1813 bridge-unicast-flood off
1814 bridge-multicast-flood off
1815
1816 auto vmbr2
1817 iface vmbr2 inet static
1818 bridge_ports vxlan2
1819 bridge_stp off
1820 bridge_fd 0
1821 address 10.0.2.254
1822 netmask 255.255.255.0
1823 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
1824 vrf vrf1
1825 ip-forward on
1826 ip6-forward on
1827 arp-accept on
1828
1829 auto vxlan3
1830 iface vxlan3 inet manual
1831 vxlan-id 3
1832 vxlan-local-tunnelip 192.168.0.3
1833 bridge-learning off
1834 bridge-arp-nd-suppress on
1835 bridge-unicast-flood off
1836 bridge-multicast-flood off
1837
1838 auto vmbr3
1839 iface vmbr3 inet static
1840 bridge_ports vxlan3
1841 bridge_stp off
1842 bridge_fd 0
1843 address 10.0.3.254
1844 netmask 255.255.255.0
1845 hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
1846 vrf vrf1
1847 ip-forward on
1848 ip6-forward on
1849 arp-accept on
1850
1851 #interconnect vxlan-vfr l3vni
1852 auto vxlan4000
1853 iface vxlan4000 inet manual
1854 vxlan-id 4000
1855 vxlan-local-tunnelip 192.168.0.3
1856 bridge-learning off
1857 bridge-arp-nd-suppress on
1858 bridge-unicast-flood off
1859 bridge-multicast-flood off
1860
1861
1862 auto vmbr4000
1863 iface vmbr4000 inet manual
1864 bridge_ports vxlan4000
1865 bridge_stp off
1866 bridge_fd 0
1867 vrf vrf1
1868 ----
1869
1870
1871 frr.conf
1872
1873 ----
1874 vrf vrf1
1875 vni 4000
1876 exit-vrf
1877 !
1878 router bgp 1234
1879 bgp router-id 192.168.0.3
1880 no bgp default ipv4-unicast
1881 no bgp default ipv6-unicast
1882 coalesce-time 1000
1883 neighbor 192.168.0.1 remote-as 1234
1884 neighbor 192.168.0.2 remote-as 1234
1885 !
1886 address-family ipv4 unicast
1887 import vrf vrf1
1888 exit-address-family
1889 !
1890 address-family ipv6 unicast
1891 import vrf vrf1
1892 exit-address-family
1893 !
1894 address-family l2vpn evpn
1895 neighbor 192.168.0.1 activate
1896 neighbor 192.168.0.2 activate
1897 advertise-all-vni
1898 exit-address-family
1899 !
1900 router bgp 1234 vrf vrf1
1901 !
1902 address-family ipv4 unicast
1903 redistribute connected
1904 exit-address-family
1905 !
1906 address-family ipv6 unicast
1907 redistribute connected
1908 exit-address-family
1909 !
1910 address-family l2vpn evpn
1911 default-originate ipv4
1912 default-originate ipv6
1913 exit-address-family
1914 !
1915 line vty
1916 !
1917 ----
1918
1919 Note
1920 ^^^^
1921
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).
1925
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.
1928
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.
1931
1932 * node1
1933
1934 ----
1935 auto vmbr0
1936 iface vmbr0 inet static
1937 address 192.168.0.1
1938 netmask 255.255.255.0
1939 gateway 192.168.0.254
1940 bridge_ports eno1
1941 bridge_stp off
1942 bridge_fd 0
1943 vrrp-id 1
1944 vrrp-priority 1
1945 vrrp-virtual-ip 192.168.0.10
1946 ----
1947
1948 * node2
1949
1950 ----
1951 auto vmbr0
1952 iface vmbr0 inet static
1953 address 192.168.0.2
1954 netmask 255.255.255.0
1955 gateway 192.168.0.254
1956 bridge_ports eno1
1957 bridge_stp off
1958 bridge_fd 0
1959 vrrp-id 1
1960 vrrp-priority 2
1961 vrrp-virtual-ip 192.168.0.10
1962 ----
1963
1964
1965
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.
1969
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.
1971
1972 * node1
1973
1974 frr.conf
1975 ----
1976 vrf vrf1
1977 vni 4000
1978 exit-vrf
1979 !
1980 router bgp 1234
1981 bgp router-id 192.168.0.1
1982 no bgp default ipv4-unicast
1983 no bgp default ipv6-unicast
1984 coalesce-time 1000
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
1988 !
1989 address-family ipv4 unicast
1990 import vrf vrf1
1991 neighbor 192.168.0.254 activate
1992 exit-address-family
1993 !
1994 address-family ipv6 unicast
1995 import vrf vrf1
1996 neighbor 192.168.0.254 activate
1997 exit-address-family
1998 !
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
2003 advertise-all-vni
2004 exit-address-family
2005 !
2006 router bgp 1234 vrf vrf1
2007 !
2008 address-family ipv4 unicast
2009 redistribute connected
2010 exit-address-family
2011 !
2012 address-family ipv6 unicast
2013 redistribute connected
2014 exit-address-family
2015 !
2016 address-family l2vpn evpn
2017 default-originate ipv4
2018 default-originate ipv6
2019 exit-address-family
2020 !
2021 line vty
2022 !
2023 ----
2024
2025 * bgp router
2026
2027 frr.conf
2028 ----
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
2031 !
2032 router bgp 25253
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
2037 !
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
2041 exit-address-family
2042 !
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
2046 exit-address-family
2047 !
2048 !
2049 ---
2050
2051 Route Reflectors
2052 ^^^^^^^^^^^^^^^^
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.
2058
2059 Below is an example of configuration with 'frr', with `rrserver1
2060 (192.168.0.200)' and `rrserver2 (192.168.0.201)`.
2061
2062 rrserver1
2063 ----
2064 router bgp 1234
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
2075 !
2076 address-family l2vpn evpn
2077 neighbor fabric activate
2078 neighbor fabric route-reflector-client
2079 neighbor fabric allowas-in
2080 exit-address-family
2081 !
2082 exit
2083 !
2084 ---
2085
2086 rrserver2
2087 ----
2088 router bgp 1234
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
2099 !
2100 address-family l2vpn evpn
2101 neighbor fabric activate
2102 neighbor fabric route-reflector-client
2103 neighbor fabric allowas-in
2104 exit-address-family
2105 !
2106 exit
2107 !
2108 ---
2109
2110 proxmoxnode(s)
2111 ----
2112 router bgp 1234
2113 bgp router-id 192.168.0.x
2114 no bgp default ipv4-unicast
2115 no bgp default ipv6-unicast
2116 coalesce-time 1000
2117 neighbor 192.168.0.200 remote-as 1234
2118 neighbor 192.168.0.201 remote-as 1234
2119 !
2120 address-family l2vpn evpn
2121 neighbor 192.168.0.200 activate
2122 neighbor 192.168.0.201 activate
2123 advertise-all-vni
2124 exit-address-family
2125 !
2126 ----