]> git.proxmox.com Git - pve-docs.git/blob - vxlan-and-evpn.adoc
add documentation for vxlan layer 2 network
[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
494 VXLAN layer2 with vlan aware linux bridges
495 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
496
497 We use 1 vmbr bridge, each vxlan is mapped to a vlan
498
499 image::images/vxlan-l2-vlanaware.svg["vxlan l2 bridge vlan aware",align="center"]
500
501 multicast mode
502 ^^^^^^^^^^^^^^
503
504 * node1
505
506 ----
507 auto eno1
508 iface eno1 inet manual
509
510 auto vmbr0
511 iface vmbr0 inet static
512 address 192.168.0.1
513 netmask 255.255.255.0
514 bridge_ports eno1 vxlan2 vxlan3
515 bridge_stp off
516 bridge_fd 0
517 bridge_vlan_aware yes
518
519 auto vxlan2
520 iface vxlan2 inet manual
521 vxlan-svcnodeip 225.20.1.1
522 vxlan-physdev eno1
523 bridge-access 2
524
525 auto vxlan3
526 iface vxlan3 inet manual
527 vxlan-svcnodeip 225.20.1.1
528 vxlan-physdev eno1
529 bridge-access 3
530 ----
531
532
533 * node2
534
535 ----
536 auto eno1
537 iface eno1 inet manual
538
539 auto vmbr0
540 iface vmbr0 inet static
541 address 192.168.0.2
542 netmask 255.255.255.0
543 bridge_ports eno1 vxlan2 vxlan3
544 bridge_stp off
545 bridge_fd 0
546 bridge_vlan_aware yes
547
548 auto vxlan2
549 iface vxlan2 inet manual
550 vxlan-svcnodeip 225.20.1.1
551 vxlan-physdev eno1
552 bridge-access 2
553
554 auto vxlan3
555 iface vxlan3 inet manual
556 vxlan-svcnodeip 225.20.1.1
557 vxlan-physdev eno1
558 bridge-access 3
559 ----
560
561
562 * node3
563
564 ----
565 auto eno1
566 iface eno1 inet manual
567
568 auto vmbr0
569 iface vmbr0 inet static
570 address 192.168.0.3
571 netmask 255.255.255.0
572 bridge_ports eno1 vxlan2 vxlan3
573 bridge_stp off
574 bridge_fd 0
575 bridge_vlan_aware yes
576
577 auto vxlan2
578 iface vxlan2 inet manual
579 vxlan-svcnodeip 225.20.1.1
580 vxlan-physdev eno1
581 bridge-access 2
582
583 auto vxlan3
584 iface vxlan3 inet manual
585 vxlan-svcnodeip 225.20.1.1
586 vxlan-physdev eno1
587 bridge-access 3
588 ----
589
590
591 unicast mode
592 ^^^^^^^^^^^^
593
594 * node1
595
596 ----
597 auto eno1
598 iface eno1 inet manual
599
600 auto vmbr0
601 iface vmbr0 inet static
602 address 192.168.0.1
603 netmask 255.255.255.0
604 bridge_ports eno1 vxlan2 vxlan3
605 bridge_stp off
606 bridge_fd 0
607 bridge_vlan_aware yes
608
609 auto vxlan2
610 iface vxlan2 inet manual
611 vxlan_remoteip 192.168.0.2
612 vxlan_remoteip 192.168.0.3
613 bridge-access 2
614
615 auto vxlan3
616 iface vxlan3 inet manual
617 vxlan_remoteip 192.168.0.2
618 vxlan_remoteip 192.168.0.3
619 bridge-access 3
620 ----
621
622
623 * node2
624
625 ----
626 auto eno1
627 iface eno1 inet manual
628
629 auto vmbr0
630 iface vmbr0 inet static
631 address 192.168.0.2
632 netmask 255.255.255.0
633 bridge_ports eno1 vxlan2 vxlan3
634 bridge_stp off
635 bridge_fd 0
636 bridge_vlan_aware yes
637
638 auto vxlan2
639 iface vxlan2 inet manual
640 vxlan_remoteip 192.168.0.1
641 vxlan_remoteip 192.168.0.3
642 bridge-access 2
643
644 auto vxlan3
645 iface vxlan3 inet manual
646 vxlan_remoteip 192.168.0.1
647 vxlan_remoteip 192.168.0.3
648 bridge-access 3
649 ----
650
651
652 * node3
653
654 ----
655 auto eno1
656 iface eno1 inet manual
657
658 auto vmbr0
659 iface vmbr0 inet static
660 address 192.168.0.3
661 netmask 255.255.255.0
662 bridge_ports eno1 vxlan2 vxlan3
663 bridge_stp off
664 bridge_fd 0
665 bridge_vlan_aware yes
666
667 auto vxlan2
668 iface vxlan2 inet manual
669 vxlan_remoteip 192.168.0.2
670 vxlan_remoteip 192.168.0.3
671 bridge-access 2
672
673 auto vxlan3
674 iface vxlan3 inet manual
675 vxlan_remoteip 192.168.0.2
676 vxlan_remoteip 192.168.0.3
677 bridge-access 3
678 ----
679
680
681 bgp-evpn
682 ^^^^^^^^
683
684 Note: currently FRR is working only with 1 vlan aware bridge
685
686 * node1
687
688
689 ----
690 auto eno1
691 iface eno1 inet manual
692
693 auto vmbr0
694 iface vmbr0 inet static
695 address 192.168.0.1
696 netmask 255.255.255.0
697 bridge_ports eno1 vxlan2 vxlan3
698 bridge_stp off
699 bridge_fd 0
700 bridge_vlan_aware yes
701
702 auto vxlan0
703 iface vxlan0 inet manual
704 vxlan-local-tunnelip 192.168.0.1
705 bridge-learning off
706 bridge-arp-nd-suppress on
707 bridge-unicast-flood off
708 bridge-multicast-flood off
709 bridge-access 2
710
711
712 auto vxlan3
713 iface vxlan3 inet manual
714 vxlan-local-tunnelip 192.168.0.1
715 bridge-learning off
716 bridge-arp-nd-suppress on
717 bridge-unicast-flood off
718 bridge-multicast-flood off
719 bridge-access 3
720 ----
721
722
723 /etc/frr/frr.conf
724
725 ----
726 router bgp 1234
727 no bgp default ipv4-unicast
728 coalesce-time 1000
729 neighbor 192.168.0.2 remote-as 1234
730 neighbor 192.168.0.3 remote-as 1234
731 !
732 address-family l2vpn evpn
733 neighbor 192.168.0.2 activate
734 neighbor 192.168.0.3 activate
735 advertise-all-vni
736 exit-address-family
737 !
738 line vty
739 !
740 ----
741
742
743 * node2
744
745 ----
746 auto eno1
747 iface eno1 inet manual
748
749 auto vmbr0
750 iface vmbr0 inet static
751 address 192.168.0.2
752 netmask 255.255.255.0
753 bridge_ports eno1 vxlan2 vxlan3
754 bridge_stp off
755 bridge_fd 0
756 bridge_vlan_aware yes
757
758 auto vxlan0
759 iface vxlan0 inet manual
760 vxlan-local-tunnelip 192.168.0.2
761 bridge-learning off
762 bridge-arp-nd-suppress on
763 bridge-unicast-flood off
764 bridge-multicast-flood off
765 bridge-access 2
766
767
768 auto vxlan3
769 iface vxlan3 inet manual
770 vxlan-local-tunnelip 192.168.0.2
771 bridge-learning off
772 bridge-arp-nd-suppress on
773 bridge-unicast-flood off
774 bridge-multicast-flood off
775 bridge-access 3
776 ----
777
778
779 /etc/frr/frr.conf
780
781 ----
782 router bgp 1234
783 no bgp default ipv4-unicast
784 coalesce-time 1000
785 neighbor 192.168.0.1 remote-as 1234
786 neighbor 192.168.0.3 remote-as 1234
787 !
788 address-family l2vpn evpn
789 neighbor 192.168.0.1 activate
790 neighbor 192.168.0.3 activate
791 advertise-all-vni
792 exit-address-family
793 !
794 line vty
795 !
796 ----
797
798
799 * node3
800
801 ----
802 auto eno1
803 iface eno1 inet manual
804
805 auto vmbr0
806 iface vmbr0 inet static
807 address 192.168.0.3
808 netmask 255.255.255.0
809 bridge_ports eno1 vxlan2 vxlan3
810 bridge_stp off
811 bridge_fd 0
812 bridge_vlan_aware yes
813
814 auto vxlan0
815 iface vxlan0 inet manual
816 vxlan-local-tunnelip 192.168.0.3
817 bridge-learning off
818 bridge-arp-nd-suppress on
819 bridge-unicast-flood off
820 bridge-multicast-flood off
821 bridge-access 2
822
823
824 auto vxlan3
825 iface vxlan3 inet manual
826 vxlan-local-tunnelip 192.168.0.3
827 bridge-learning off
828 bridge-arp-nd-suppress on
829 bridge-unicast-flood off
830 bridge-multicast-flood off
831 bridge-access 3
832 ----
833
834
835 /etc/frr/frr.conf
836 ----
837 router bgp 1234
838 no bgp default ipv4-unicast
839 coalesce-time 1000
840 neighbor 192.168.0.1 remote-as 1234
841 neighbor 192.168.0.2 remote-as 1234
842 !
843 address-family l2vpn evpn
844 neighbor 192.168.0.1 activate
845 neighbor 192.168.0.2 activate
846 advertise-all-vni
847 exit-address-family
848 !
849 line vty
850 !
851 ----