]> git.proxmox.com Git - pve-docs.git/commitdiff
add vxlan l3 routing
authorAlexandre Derumier <aderumier@odiso.com>
Fri, 10 Aug 2018 08:39:14 +0000 (10:39 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Sat, 11 Aug 2018 09:18:09 +0000 (11:18 +0200)
This add documentation for inter vxlan routing, with frr and anycast gateway.

images/vxlan-l3-asymmetric.svg [new file with mode: 0644]
images/vxlan-l3-symmetric.svg [new file with mode: 0644]
vxlan-and-evpn.adoc

diff --git a/images/vxlan-l3-asymmetric.svg b/images/vxlan-l3-asymmetric.svg
new file mode 100644 (file)
index 0000000..f511ff4
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:lucid="lucid" width="1870.4" height="1323.2"><g transform="translate(0 0)" lucid:page-tab-id="0_0"><path d="M180 520h420v500H180z" stroke="#000" stroke-width="2" fill="#fff"/><path d="M280 520h180v60H280z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#a" transform="matrix(1,0,0,1,285,525) translate(67.5 28.6)"/><path d="M220 761h140v60H220z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#b" transform="matrix(1,0,0,1,225,766) translate(40.05 17.799999999999997)"/><use xlink:href="#c" transform="matrix(1,0,0,1,225,766) translate(10 39.4)"/><path d="M240 641.6h100v40H240z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#d" transform="matrix(1,0,0,1,245,646.5999999999999) translate(19.025 18.6)"/><path d="M290 760v-77.4" stroke="#000" stroke-width="2" fill="none"/><path d="M291 761h-2v-1h2zM291 682.6h-2v-1h2z"/><path d="M440 761.4h140v60H440z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#e" transform="matrix(1,0,0,1,445,766.4000000000001) translate(40.05 17.799999999999997)"/><use xlink:href="#f" transform="matrix(1,0,0,1,445,766.4000000000001) translate(10 39.4)"/><path d="M460 642h100v40H460z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#g" transform="matrix(1,0,0,1,465,647) translate(19.025 18.6)"/><path d="M500 760v-77" stroke="#000" stroke-width="2" fill="none"/><path d="M501 683h-2v-1h2z"/><path d="M250 540h240v60H250z" stroke="#000" stroke-opacity="0" stroke-width="2" fill="#fff" fill-opacity="0"/><use xlink:href="#h" transform="matrix(1,0,0,1,255,545) translate(67.5 28.6)"/><path d="M240 860h100v80H240z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#i" transform="matrix(1,0,0,1,245,865) translate(28.025 27.799999999999997)"/><use xlink:href="#j" transform="matrix(1,0,0,1,245,865) translate(0 49.4)"/><path d="M460 860h100v80H460z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#k" transform="matrix(1,0,0,1,465,865) translate(28.025 27.799999999999997)"/><use xlink:href="#l" transform="matrix(1,0,0,1,465,865) translate(0 49.4)"/><path d="M280 820v39" stroke="#000" stroke-width="2" fill="none"/><path d="M281 860h-2v-1h2z"/><path d="M520 820v39" stroke="#000" stroke-width="2" fill="none"/><path d="M521 860h-2v-1h2z"/><path d="M250 1020h240v60H250z" stroke="#000" stroke-opacity="0" stroke-width="2" fill="#fff" fill-opacity="0"/><use xlink:href="#m" transform="matrix(1,0,0,1,255,1025) translate(75.55 28.6)"/><path d="M725.2 520h420v500h-420z" stroke="#000" stroke-width="2" fill="#fff"/><path d="M825.2 520h180v60h-180z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#a" transform="matrix(1,0,0,1,830.1999999999999,525) translate(67.5 28.6)"/><path d="M765.2 761h140v60h-140z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#b" transform="matrix(1,0,0,1,770.1999999999999,766) translate(40.05 17.799999999999997)"/><use xlink:href="#c" transform="matrix(1,0,0,1,770.1999999999999,766) translate(10 39.4)"/><path d="M785.2 641.6h100v40h-100z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#d" transform="matrix(1,0,0,1,790.1999999999999,646.5999999999999) translate(19.025 18.6)"/><path d="M835.2 760v-77.4" stroke="#000" stroke-width="2" fill="none"/><path d="M836.2 761h-2v-1h2zM836.2 682.6h-2v-1h2z"/><path d="M985 761h140v60H985z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#e" transform="matrix(1,0,0,1,990,766) translate(40.05 17.799999999999997)"/><use xlink:href="#f" transform="matrix(1,0,0,1,990,766) translate(10 39.4)"/><path d="M1005.2 642h100v40h-100z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#g" transform="matrix(1,0,0,1,1010.1999999999998,647) translate(19.025 18.6)"/><path d="M1055 760v-38.5h-9.8V683" stroke="#000" stroke-width="2" fill="none"/><path d="M1056 761h-2v-1h2zM1046.2 683h-2v-1h2z"/><path d="M795.2 540h240v60h-240z" stroke="#000" stroke-opacity="0" stroke-width="2" fill="#fff" fill-opacity="0"/><use xlink:href="#n" transform="matrix(1,0,0,1,800.1999999999999,545) translate(67.5 28.6)"/><path d="M785.2 860h100v80h-100z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#o" transform="matrix(1,0,0,1,790.1999999999999,865) translate(28.025 27.799999999999997)"/><use xlink:href="#p" transform="matrix(1,0,0,1,790.1999999999999,865) translate(0 49.4)"/><path d="M1005.2 860h100v80h-100z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#q" transform="matrix(1,0,0,1,1010.1999999999998,865) translate(28.025 27.799999999999997)"/><use xlink:href="#r" transform="matrix(1,0,0,1,1010.1999999999998,865) translate(0 49.4)"/><path d="M835.2 822v18.5h-10V859" stroke="#000" stroke-width="2" fill="none"/><path d="M836.2 822h-2v-1h2zM826.2 860h-2v-1h2z"/><path d="M1055 822v18.5h10.2V859" stroke="#000" stroke-width="2" fill="none"/><path d="M1056 822h-2v-1h2zM1066.2 860h-2v-1h2z"/><path d="M795.2 1020h240v60h-240z" stroke="#000" stroke-opacity="0" stroke-width="2" fill="#fff" fill-opacity="0"/><use xlink:href="#s" transform="matrix(1,0,0,1,800.1999999999999,1025) translate(75.55 28.6)"/><path d="M1300 520h420v500h-420z" stroke="#000" stroke-width="2" fill="#fff"/><path d="M1400 520h180v60h-180z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#a" transform="matrix(1,0,0,1,1405,525) translate(67.5 28.6)"/><path d="M1340 761h140v60h-140z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#b" transform="matrix(1,0,0,1,1345,766) translate(40.05 17.799999999999997)"/><use xlink:href="#c" transform="matrix(1,0,0,1,1345,766) translate(10 39.4)"/><path d="M1360 641.6h100v40h-100z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#d" transform="matrix(1,0,0,1,1365,646.5999999999999) translate(19.025 18.6)"/><path d="M1410 760v-77.4" stroke="#000" stroke-width="2" fill="none"/><path d="M1411 761h-2v-1h2zM1411 682.6h-2v-1h2z"/><path d="M1560 761.4h140v60h-140z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#e" transform="matrix(1,0,0,1,1565,766.4000000000001) translate(40.05 17.799999999999997)"/><use xlink:href="#f" transform="matrix(1,0,0,1,1565,766.4000000000001) translate(10 39.4)"/><path d="M1580 642h100v40h-100z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#g" transform="matrix(1,0,0,1,1585,647) translate(19.025 18.6)"/><path d="M1630 760.4v-38.7h-10V683" stroke="#000" stroke-width="2" fill="none"/><path d="M1631 761.4h-2v-1h2zM1621 683h-2v-1h2z"/><path d="M1370 540h240v60h-240z" stroke="#000" stroke-opacity="0" stroke-width="2" fill="#fff" fill-opacity="0"/><use xlink:href="#t" transform="matrix(1,0,0,1,1375,545) translate(67.5 28.6)"/><path d="M1360 860h100v80h-100z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#u" transform="matrix(1,0,0,1,1365,865) translate(28.025 27.799999999999997)"/><use xlink:href="#v" transform="matrix(1,0,0,1,1365,865) translate(0 49.4)"/><path d="M1580 860h100v80h-100z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#w" transform="matrix(1,0,0,1,1585,865) translate(28.025 27.799999999999997)"/><use xlink:href="#x" transform="matrix(1,0,0,1,1585,865) translate(0 49.4)"/><path d="M1410 822v18.5h-10V859" stroke="#000" stroke-width="2" fill="none"/><path d="M1411 822h-2v-1h2zM1401 860h-2v-1h2z"/><path d="M1630 822.4v18.3h10V859" stroke="#000" stroke-width="2" fill="none"/><path d="M1631 822.4h-2v-1h2zM1641 860h-2v-1h2z"/><path d="M1370 1020h240v60h-240z" stroke="#000" stroke-opacity="0" stroke-width="2" fill="#fff" fill-opacity="0"/><use xlink:href="#y" transform="matrix(1,0,0,1,1375,1025) translate(75.55 28.6)"/><path d="M260 400h1150v240.6" stroke="#c92d39" stroke-width="2" fill="none"/><path d="M1411 641.6h-2v-1h2z" fill="#c92d39"/><path d="M840 640V400M260 622.36V400" stroke="#c92d39" stroke-width="2" fill="none"/><path d="M260 637.36l-4.64-14.27h9.28z" fill="#c92d39"/><path d="M260 640.6l-6-18.5h12zm-3.26-16.5L260 634.1l3.26-10.03z" fill="#c92d39"/><path d="M510 641V440" stroke="#7ab648" stroke-width="3" fill="none"/><path d="M511.5 642h-3v-1h3z" fill="#7ab648"/><path d="M1073.17 622.76L1071.52 440" stroke="#7ab648" stroke-width="2" fill="none"/><path d="M1073.3 637.76l-4.76-14.22 9.27-.08z" fill="#7ab648"/><path d="M1073.33 641l-6.18-18.45 12.03-.1zm-3.4-16.47l3.34 10 3.17-10.06z" fill="#7ab648"/><path d="M1640 641V440" stroke="#7ab648" stroke-width="2" fill="none"/><path d="M1641 642h-2v-1h2z" fill="#7ab648"/><path d="M500 440h1140" stroke="#7ab648" stroke-width="2" fill="none"/><path d="M360 760c0 11.05-8.95 20-20 20s-20-8.95-20-20 8.95-20 20-20 20 8.95 20 20zm-34.14-14.14l28.28 28.28m-28.28 0l28.28-28.28" stroke="#0c7cba" stroke-width="2" fill="#fff"/><path d="M1020 760c0 11.05-8.95 20-20 20s-20-8.95-20-20 8.95-20 20-20 20 8.95 20 20zm-34.14-14.14l28.28 28.28m-28.28 0l28.28-28.28" stroke="#ef8d22" stroke-width="2" fill="#fff"/><path d="M320 860l1.34-13.1 2.3-40.7 1.16-6.97.7-3" stroke="#0c7cba" stroke-width="2" fill="none"/><path d="M330.13 796.9l-8.86-2.74 8.66-12.25z" fill="#0c7cba"/><path d="M331.14 798.27l-11.48-3.56 11.23-15.88zm-8.26-4.66l6.23 1.95-.13-10.55z" fill="#0c7cba"/><path d="M340 740l4.55-2.78 5.18-3.48 6.03-4.42 7.23-5.78 9.12-7.96 12.94-12.3 59.5-60.52 6.64-5.8 4.98-3.97 3.96-2.92 3.3-2.2 2.78-1.72 2.43-1.34 2.14-1.08 1.9-.86 1.72-.7 1.58-.54 1.44-.45 1.35-.36 1.24-.27 1.17-.2 1.12-.15 1.06-.1 1-.04h.97l.93.03.9.1.87.1.86.13.84.18.82.22.8.24.82.27.8.32.8.35.8.4.8.43.8.48.82.55.83.6.85.67.87.75.2.2" stroke="#0c7cba" stroke-width="2" fill="none"/><path d="M508.17 638.33l-11.9-9.14 7.65-5.26z" fill="#0c7cba"/><path d="M510 641l-15.42-11.86 9.9-6.8zm-12.02-11.77l8.36 6.43-3-10.1z" fill="#0c7cba"/><path d="M1055.2 859l-.08-2.5-.22-2.35-.36-2.2-.48-2.1-.6-2.03-.73-1.98-.87-1.97-1.03-1.98-1.23-2.02-1.46-2.1-1.8-2.24-2.24-2.48-3-2.9-4.6-3.9-21.98-16.97-3.06-2.97-2.3-2.53-1.85-2.3-1.5-2.17-.64-1.05" stroke="#ef8d22" stroke-width="2" fill="none"/><path d="M1056.43 860h-2.04l-.18-.8 1.96-.4zM1009.45 796.44l-8.88 2.66.36-15z" fill="#ef8d22"/><path d="M1011.06 797l-11.52 3.45.46-19.45zm-9.46.74l6.25-1.86-6-8.68z" fill="#ef8d22"/><path d="M979 760l-2.7.05-2.53-.06-2.4-.16-2.32-.25-2.22-.34-2.13-.4-2.08-.5-2-.57-2-.66-1.93-.72-1.93-.8-1.9-.9-1.9-1-1.9-1.12-1.93-1.22-1.94-1.36-1.98-1.5-2.03-1.7-2.12-1.9-2.2-2.16-2.32-2.5-2.5-2.9-2.72-3.44-3.07-4.26-3.68-5.58-5.06-8.4-21.75-38.7-3.74-5.66-3.14-4.34-2.8-3.54-2.54-2.97-2.38-2.55-2.26-2.22-2.17-1.96-2.1-1.75-2.05-1.57-2-1.4-2-1.27-1.97-1.14-1.98-1.04-1.98-.94-2-.84-2.03-.76-.73-.24" stroke="#ef8d22" stroke-width="2" fill="none"/><path d="M980.1 759.1l-.1.9.04 1.1-1.13-.1.18-2z" fill="#ef8d22"/><path d="M843.2 640.5l14.8-2.38-1.42 9.16z" stroke="#ef8d22" stroke-width="2" fill="#ef8d22"/><path d="M663.02 221H538.24v-2h124.78zM880 221H736.96v-2H880zM537.5 224.64L523.24 220l14.26-4.64z" fill="#ef8d22"/><path d="M538.5 226l-18.5-6 18.5-6zm-12.03-6l10.03 3.26v-6.52z" fill="#ef8d22"/><use xlink:href="#z" transform="matrix(1,0,0,1,663.0223000269999,209.2) translate(0 14.4)"/><path d="M650.02 159.92l-130 1.08-.03-2L650 157.92zm211.75-1.04v2l-151.8-1v-2zM876.76 159.98l-14.3 4.54.07-9.27z" fill="#0c7cba"/><path d="M880 160l-18.54 5.9.08-12.03zm-16.52 3.15l10.05-3.2-10-3.32z" fill="#0c7cba"/><g><use xlink:href="#A" transform="matrix(1,0,0,1,650.0250000937488,147.86667791643035) translate(0 14.4)"/></g><path d="M1073.33 641v199.76" stroke="#0c7cba" stroke-width="2" fill="none"/><path d="M1073.33 855.76l-4.63-14.26h9.27z" fill="#0c7cba"/><path d="M1073.33 859l-6-18.5h12.02zm-3.26-16.5l3.26 10.03 3.26-10.03z" fill="#0c7cba"/><path d="M260 840.76V640.6" stroke="#ef8d22" stroke-width="2" fill="none"/><path d="M260 855.76l-4.64-14.26h9.28z" fill="#ef8d22"/><path d="M260 859l-6-18.5h12zm-3.26-16.5l3.26 10.03 3.26-10.03z" fill="#ef8d22"/><path fill="#ef8d22"/><defs><path d="M100-194c63 0 86 42 84 106H49c0 40 14 67 53 68 26 1 43-12 49-29l28 8c-11 28-37 45-77 45C44 4 14-33 15-96c1-61 26-98 85-98zm52 81c6-60-76-77-97-28-3 7-6 17-6 28h103" id="B"/><path d="M59-47c-2 24 18 29 38 22v24C64 9 27 4 27-40v-127H5v-23h24l9-43h21v43h35v23H59v120" id="C"/><path d="M106-169C34-169 62-67 57 0H25v-261h32l-1 103c12-21 28-36 61-36 89 0 53 116 60 194h-32v-121c2-32-8-49-39-48" id="D"/><path d="M101-251c68 0 85 55 85 127S166 4 100 4C33 4 14-52 14-124c0-73 17-127 87-127zm-1 229c47 0 54-49 54-102s-4-102-53-102c-51 0-55 48-55 102 0 53 5 102 54 102" id="E"/><g id="a"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#B"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#C"/><use transform="matrix(0.05,0,0,0.05,15,0)" xlink:href="#D"/><use transform="matrix(0.05,0,0,0.05,25,0)" xlink:href="#E"/></g><path d="M108 0H70L1-190h34L89-25l56-165h34" id="F"/><path d="M210-169c-67 3-38 105-44 169h-31v-121c0-29-5-50-35-48C34-165 62-65 56 0H25l-1-190h30c1 10-1 24 2 32 10-44 99-50 107 0 11-21 27-35 58-36 85-2 47 119 55 194h-31v-121c0-29-5-49-35-48" id="G"/><path d="M115-194c53 0 69 39 70 98 0 66-23 100-70 100C84 3 66-7 56-30L54 0H23l1-261h32v101c10-23 28-34 59-34zm-8 174c40 0 45-34 45-75 0-40-5-75-45-74-42 0-51 32-51 76 0 43 10 73 51 73" id="H"/><path d="M114-163C36-179 61-72 57 0H25l-1-190h30c1 12-1 29 2 39 6-27 23-49 58-41v29" id="I"/><path d="M101-251c82-7 93 87 43 132L82-64C71-53 59-42 53-27h129V0H18c2-99 128-94 128-182 0-28-16-43-45-43s-46 15-49 41l-32-3c6-41 34-60 81-64" id="J"/><g id="b"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#F"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,23.950000000000003,0)" xlink:href="#H"/><use transform="matrix(0.05,0,0,0.05,33.95,0)" xlink:href="#I"/><use transform="matrix(0.05,0,0,0.05,39.900000000000006,0)" xlink:href="#J"/></g><path d="M27 0v-27h64v-190l-56 39v-29l58-41h29v221h61V0H27" id="K"/><path d="M33 0v-38h34V0H33" id="L"/><path d="M54-142c48-35 137-8 131 61C196 18 31 33 14-55l32-4c7 23 22 37 52 37 35-1 51-22 54-58 4-55-73-65-99-34H22l8-134h141v27H59" id="M"/><path d="M155-56V0h-30v-56H8v-25l114-167h33v167h35v25h-35zm-30-156c-27 46-58 90-88 131h88v-131" id="N"/><path d="M0 4l72-265h28L28 4H0" id="O"/><g id="c"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,25,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,40,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,50,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#M"/><use transform="matrix(0.05,0,0,0.05,75,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,85,0)" xlink:href="#O"/><use transform="matrix(0.05,0,0,0.05,90,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,100,0)" xlink:href="#N"/></g><path d="M141 0L90-78 38 0H4l68-98-65-92h35l48 74 47-74h35l-64 92 68 98h-35" id="P"/><path d="M24 0v-261h32V0H24" id="Q"/><path d="M141-36C126-15 110 5 73 4 37 3 15-17 15-53c-1-64 63-63 125-63 3-35-9-54-41-54-24 1-41 7-42 31l-33-3c5-37 33-52 76-52 45 0 72 20 72 64v82c-1 20 7 32 28 27v20c-31 9-61-2-59-35zM48-53c0 20 12 33 32 33 41-3 63-29 60-74-43 2-92-5-92 41" id="R"/><path d="M117-194c89-4 53 116 60 194h-32v-121c0-31-8-49-39-48C34-167 62-67 57 0H25l-1-190h30c1 10-1 24 2 32 11-22 29-35 61-36" id="S"/><g id="d"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#F"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#P"/><use transform="matrix(0.05,0,0,0.05,18,0)" xlink:href="#Q"/><use transform="matrix(0.05,0,0,0.05,21.95,0)" xlink:href="#R"/><use transform="matrix(0.05,0,0,0.05,31.950000000000003,0)" xlink:href="#S"/><use transform="matrix(0.05,0,0,0.05,41.95,0)" xlink:href="#J"/></g><path d="M126-127c33 6 58 20 58 59 0 88-139 92-164 29-3-8-5-16-6-25l32-3c6 27 21 44 54 44 32 0 52-15 52-46 0-38-36-46-79-43v-28c39 1 72-4 72-42 0-27-17-43-46-43-28 0-47 15-49 41l-32-3c6-42 35-63 81-64 48-1 79 21 79 65 0 36-21 52-52 59" id="T"/><g id="e"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#F"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,23.950000000000003,0)" xlink:href="#H"/><use transform="matrix(0.05,0,0,0.05,33.95,0)" xlink:href="#I"/><use transform="matrix(0.05,0,0,0.05,39.900000000000006,0)" xlink:href="#T"/></g><g id="f"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,25,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,40,0)" xlink:href="#T"/><use transform="matrix(0.05,0,0,0.05,50,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#M"/><use transform="matrix(0.05,0,0,0.05,75,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,85,0)" xlink:href="#O"/><use transform="matrix(0.05,0,0,0.05,90,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,100,0)" xlink:href="#N"/></g><g id="g"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#F"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#P"/><use transform="matrix(0.05,0,0,0.05,18,0)" xlink:href="#Q"/><use transform="matrix(0.05,0,0,0.05,21.95,0)" xlink:href="#R"/><use transform="matrix(0.05,0,0,0.05,31.950000000000003,0)" xlink:href="#S"/><use transform="matrix(0.05,0,0,0.05,41.95,0)" xlink:href="#T"/></g><path d="M99-251c64 0 84 50 84 122C183-37 130 33 47-8c-14-7-20-23-25-40l30-5c6 39 69 39 84 7 9-19 16-44 16-74-10 22-31 35-62 35-49 0-73-33-73-83 0-54 28-83 82-83zm-1 141c31-1 51-18 51-49 0-36-14-67-51-67-34 0-49 23-49 58 0 34 15 58 49 58" id="U"/><path d="M110-160c48 1 74 30 74 79 0 53-28 85-80 85-65 0-83-55-86-122-5-90 50-162 133-122 14 7 22 21 27 39l-31 6c-5-40-67-38-82-6-9 19-15 44-15 74 11-20 30-34 60-33zm-7 138c34 0 49-23 49-58s-16-56-50-56c-29 0-50 16-49 49 1 36 15 65 50 65" id="V"/><path d="M134-131c28 9 52 24 51 62-1 50-34 73-85 73S17-19 16-69c0-36 21-54 49-61-75-25-45-126 34-121 46 3 78 18 79 63 0 33-17 51-44 57zm-34-11c31 1 46-15 46-44 0-28-17-43-47-42-29 0-46 13-45 42 1 28 16 44 46 44zm1 122c35 0 51-18 51-52 0-30-18-46-53-46-33 0-51 17-51 47 0 34 19 51 53 51" id="W"/><g id="h"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#U"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,30,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,45,0)" xlink:href="#V"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#W"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,70,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,80,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,85,0)" xlink:href="#K"/></g><g id="i"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#F"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,23.950000000000003,0)" xlink:href="#K"/></g><g id="j"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,25,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,40,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,50,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#O"/><use transform="matrix(0.05,0,0,0.05,70,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,80,0)" xlink:href="#N"/></g><g id="k"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#F"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,23.950000000000003,0)" xlink:href="#J"/></g><g id="l"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,25,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,40,0)" xlink:href="#T"/><use transform="matrix(0.05,0,0,0.05,50,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#O"/><use transform="matrix(0.05,0,0,0.05,70,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,80,0)" xlink:href="#N"/></g><path d="M115-194c55 1 70 41 70 98S169 2 115 4C84 4 66-9 55-30l1 105H24l-1-265h31l2 30c10-21 28-34 59-34zm-8 174c40 0 45-34 45-75s-6-73-45-74c-42 0-51 32-51 76 0 43 10 73 51 73" id="X"/><path d="M100-194c62-1 85 37 85 99 1 63-27 99-86 99S16-35 15-95c0-66 28-99 85-99zM99-20c44 1 53-31 53-75 0-43-8-75-51-75s-53 32-53 75 10 74 51 75" id="Y"/><g id="m"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#X"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#I"/><use transform="matrix(0.05,0,0,0.05,15.949999999999998,0)" xlink:href="#Y"/><use transform="matrix(0.05,0,0,0.05,25.950000000000003,0)" xlink:href="#P"/><use transform="matrix(0.05,0,0,0.05,34.95,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,49.900000000000006,0)" xlink:href="#Y"/><use transform="matrix(0.05,0,0,0.05,59.900000000000006,0)" xlink:href="#P"/><use transform="matrix(0.05,0,0,0.05,68.9,0)" xlink:href="#K"/></g><g id="n"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#U"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,30,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,45,0)" xlink:href="#V"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#W"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,70,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,80,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,85,0)" xlink:href="#J"/></g><g id="o"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#F"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,23.950000000000003,0)" xlink:href="#T"/></g><g id="p"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,25,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,40,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,50,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#T"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#O"/><use transform="matrix(0.05,0,0,0.05,70,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,80,0)" xlink:href="#N"/></g><g id="q"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#F"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,23.950000000000003,0)" xlink:href="#N"/></g><g id="r"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,25,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,40,0)" xlink:href="#T"/><use transform="matrix(0.05,0,0,0.05,50,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#O"/><use transform="matrix(0.05,0,0,0.05,70,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,80,0)" xlink:href="#N"/></g><g id="s"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#X"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#I"/><use transform="matrix(0.05,0,0,0.05,15.949999999999998,0)" xlink:href="#Y"/><use transform="matrix(0.05,0,0,0.05,25.950000000000003,0)" xlink:href="#P"/><use transform="matrix(0.05,0,0,0.05,34.95,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,49.900000000000006,0)" xlink:href="#Y"/><use transform="matrix(0.05,0,0,0.05,59.900000000000006,0)" xlink:href="#P"/><use transform="matrix(0.05,0,0,0.05,68.9,0)" xlink:href="#J"/></g><g id="t"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#U"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,30,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,45,0)" xlink:href="#V"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#W"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,70,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,80,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,85,0)" xlink:href="#T"/></g><g id="u"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#F"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,23.950000000000003,0)" xlink:href="#M"/></g><g id="v"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,25,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,40,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,50,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#M"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#O"/><use transform="matrix(0.05,0,0,0.05,70,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,80,0)" xlink:href="#N"/></g><g id="w"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#F"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,23.950000000000003,0)" xlink:href="#V"/></g><g id="x"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,25,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,40,0)" xlink:href="#T"/><use transform="matrix(0.05,0,0,0.05,50,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#V"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#O"/><use transform="matrix(0.05,0,0,0.05,70,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,80,0)" xlink:href="#N"/></g><g id="y"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#X"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#I"/><use transform="matrix(0.05,0,0,0.05,15.949999999999998,0)" xlink:href="#Y"/><use transform="matrix(0.05,0,0,0.05,25.950000000000003,0)" xlink:href="#P"/><use transform="matrix(0.05,0,0,0.05,34.95,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,49.900000000000006,0)" xlink:href="#Y"/><use transform="matrix(0.05,0,0,0.05,59.900000000000006,0)" xlink:href="#P"/><use transform="matrix(0.05,0,0,0.05,68.9,0)" xlink:href="#T"/></g><path d="M135-143c-3-34-86-38-87 0 15 53 115 12 119 90S17 21 10-45l28-5c4 36 97 45 98 0-10-56-113-15-118-90-4-57 82-63 122-42 12 7 21 19 24 35" id="Z"/><g id="z"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#I"/><use transform="matrix(0.05,0,0,0.05,5.95,0)" xlink:href="#B"/><use transform="matrix(0.05,0,0,0.05,15.949999999999998,0)" xlink:href="#Z"/><use transform="matrix(0.05,0,0,0.05,24.95,0)" xlink:href="#X"/><use transform="matrix(0.05,0,0,0.05,34.95,0)" xlink:href="#Y"/><use transform="matrix(0.05,0,0,0.05,44.95,0)" xlink:href="#S"/><use transform="matrix(0.05,0,0,0.05,54.95,0)" xlink:href="#Z"/><use transform="matrix(0.05,0,0,0.05,63.95,0)" xlink:href="#B"/></g><path d="M145-31C134-9 116 4 85 4 32 4 16-35 15-94c0-59 17-99 70-100 32-1 48 14 60 33 0-11-1-24 2-32h30l-1 268h-32zM93-21c41 0 51-33 51-76s-8-73-50-73c-40 0-46 35-46 75s5 74 45 74" id="aa"/><path d="M84 4C-5 8 30-112 23-190h32v120c0 31 7 50 39 49 72-2 45-101 50-169h31l1 190h-30c-1-10 1-25-2-33-11 22-28 36-60 37" id="ab"/><g id="A"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#I"/><use transform="matrix(0.05,0,0,0.05,5.95,0)" xlink:href="#B"/><use transform="matrix(0.05,0,0,0.05,15.949999999999998,0)" xlink:href="#aa"/><use transform="matrix(0.05,0,0,0.05,25.950000000000003,0)" xlink:href="#ab"/><use transform="matrix(0.05,0,0,0.05,35.95,0)" xlink:href="#B"/><use transform="matrix(0.05,0,0,0.05,45.95,0)" xlink:href="#Z"/><use transform="matrix(0.05,0,0,0.05,54.95,0)" xlink:href="#C"/></g></defs></g></svg>
\ No newline at end of file
diff --git a/images/vxlan-l3-symmetric.svg b/images/vxlan-l3-symmetric.svg
new file mode 100644 (file)
index 0000000..ac2f211
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:lucid="lucid" width="1870.4" height="1323.2"><g transform="translate(0 0)" lucid:page-tab-id="0_0"><path d="M0 0h1870.4v1323.2H0z" fill="#fff"/><path d="M180 520h420v500H180z" stroke="#000" stroke-width="2" fill="#fff"/><path d="M280 520h180v60H280z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#a" transform="matrix(1,0,0,1,285,525) translate(67.5 28.6)"/><path d="M220 761h140v60H220z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#b" transform="matrix(1,0,0,1,225,766) translate(40.05 17.799999999999997)"/><use xlink:href="#c" transform="matrix(1,0,0,1,225,766) translate(10 39.4)"/><path d="M240 641.6h100v40H240z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#d" transform="matrix(1,0,0,1,245,646.5999999999999) translate(19.025 18.6)"/><path d="M290 760v-77.4" stroke="#000" stroke-width="2" fill="none"/><path d="M291 761h-2v-1h2zM291 682.6h-2v-1h2z"/><path d="M440 761.4h140v60H440z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#e" transform="matrix(1,0,0,1,445,766.4000000000001) translate(40.05 17.799999999999997)"/><use xlink:href="#f" transform="matrix(1,0,0,1,445,766.4000000000001) translate(10 39.4)"/><path d="M460 642h100v40H460z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#g" transform="matrix(1,0,0,1,465,647) translate(19.025 18.6)"/><path d="M510 760.4v-38.7h-10V683" stroke="#000" stroke-width="2" fill="none"/><path d="M511 761.4h-2v-1h2zM501 683h-2v-1h2z"/><path d="M250 540h240v60H250z" stroke="#000" stroke-opacity="0" stroke-width="2" fill="#fff" fill-opacity="0"/><use xlink:href="#h" transform="matrix(1,0,0,1,255,545) translate(67.5 28.6)"/><path d="M240 860h100v80H240z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#i" transform="matrix(1,0,0,1,245,865) translate(28.025 27.799999999999997)"/><use xlink:href="#j" transform="matrix(1,0,0,1,245,865) translate(0 49.4)"/><path d="M460 860h100v80H460z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#k" transform="matrix(1,0,0,1,465,865) translate(28.025 27.799999999999997)"/><use xlink:href="#l" transform="matrix(1,0,0,1,465,865) translate(0 49.4)"/><path d="M280 820v39" stroke="#000" stroke-width="2" fill="none"/><path d="M281 860h-2v-1h2z"/><path d="M520 820v39" stroke="#000" stroke-width="2" fill="none"/><path d="M521 860h-2v-1h2z"/><path d="M250 1020h240v60H250z" stroke="#000" stroke-opacity="0" stroke-width="2" fill="#fff" fill-opacity="0"/><use xlink:href="#m" transform="matrix(1,0,0,1,255,1025) translate(75.55 28.6)"/><path d="M725.2 520h420v500h-420z" stroke="#000" stroke-width="2" fill="#fff"/><path d="M825.2 520h180v60h-180z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#a" transform="matrix(1,0,0,1,830.1999999999999,525) translate(67.5 28.6)"/><path d="M765.2 761h140v60h-140z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#b" transform="matrix(1,0,0,1,770.1999999999999,766) translate(40.05 17.799999999999997)"/><use xlink:href="#c" transform="matrix(1,0,0,1,770.1999999999999,766) translate(10 39.4)"/><path d="M785 641.6h100v40H785z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#d" transform="matrix(1,0,0,1,790,646.5999999999999) translate(19.025 18.6)"/><path d="M835.2 760v-38.7h-.2v-38.7" stroke="#000" stroke-width="2" fill="none"/><path d="M836.2 761h-2v-1h2zM836 682.6h-2v-1h2z"/><path d="M985 761h140v60H985z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#e" transform="matrix(1,0,0,1,990,766) translate(40.05 17.799999999999997)"/><use xlink:href="#f" transform="matrix(1,0,0,1,990,766) translate(10 39.4)"/><path d="M1005.2 642h100v40h-100z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#g" transform="matrix(1,0,0,1,1010.1999999999998,647) translate(19.025 18.6)"/><path d="M1055 760v-38.5h-9.8V683" stroke="#000" stroke-width="2" fill="none"/><path d="M1056 761h-2v-1h2zM1046.2 683h-2v-1h2z"/><path d="M795.2 540h240v60h-240z" stroke="#000" stroke-opacity="0" stroke-width="2" fill="#fff" fill-opacity="0"/><use xlink:href="#n" transform="matrix(1,0,0,1,800.1999999999999,545) translate(67.5 28.6)"/><path d="M785.2 860h100v80h-100z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#o" transform="matrix(1,0,0,1,790.1999999999999,865) translate(28.025 27.799999999999997)"/><use xlink:href="#p" transform="matrix(1,0,0,1,790.1999999999999,865) translate(0 49.4)"/><path d="M1005.2 860h100v80h-100z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#q" transform="matrix(1,0,0,1,1010.1999999999998,865) translate(28.025 27.799999999999997)"/><use xlink:href="#r" transform="matrix(1,0,0,1,1010.1999999999998,865) translate(0 49.4)"/><path d="M835.2 822v18.5h-10V859" stroke="#000" stroke-width="2" fill="none"/><path d="M836.2 822h-2v-1h2zM826.2 860h-2v-1h2z"/><path d="M1055 822v18.5h10.2V859" stroke="#000" stroke-width="2" fill="none"/><path d="M1056 822h-2v-1h2zM1066.2 860h-2v-1h2z"/><path d="M795.2 1020h240v60h-240z" stroke="#000" stroke-opacity="0" stroke-width="2" fill="#fff" fill-opacity="0"/><use xlink:href="#s" transform="matrix(1,0,0,1,800.1999999999999,1025) translate(75.55 28.6)"/><path d="M1300 520h420v500h-420z" stroke="#000" stroke-width="2" fill="#fff"/><path d="M1400 520h180v60h-180z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#a" transform="matrix(1,0,0,1,1405,525) translate(67.5 28.6)"/><path d="M1340 761h140v60h-140z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#b" transform="matrix(1,0,0,1,1345,766) translate(40.05 17.799999999999997)"/><use xlink:href="#c" transform="matrix(1,0,0,1,1345,766) translate(10 39.4)"/><path d="M1360 641.6h100v40h-100z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#d" transform="matrix(1,0,0,1,1365,646.5999999999999) translate(19.025 18.6)"/><path d="M1410 760v-77.4" stroke="#000" stroke-width="2" fill="none"/><path d="M1411 761h-2v-1h2zM1411 682.6h-2v-1h2z"/><path d="M1560 761.4h140v60h-140z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#e" transform="matrix(1,0,0,1,1565,766.4000000000001) translate(40.05 17.799999999999997)"/><use xlink:href="#f" transform="matrix(1,0,0,1,1565,766.4000000000001) translate(10 39.4)"/><path d="M1580 642h100v40h-100z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#g" transform="matrix(1,0,0,1,1585,647) translate(19.025 18.6)"/><path d="M1630 760.4v-38.7h-10V683" stroke="#000" stroke-width="2" fill="none"/><path d="M1631 761.4h-2v-1h2zM1621 683h-2v-1h2z"/><path d="M1370 540h240v60h-240z" stroke="#000" stroke-opacity="0" stroke-width="2" fill="#fff" fill-opacity="0"/><use xlink:href="#t" transform="matrix(1,0,0,1,1375,545) translate(67.5 28.6)"/><path d="M1360 860h100v80h-100z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#u" transform="matrix(1,0,0,1,1365,865) translate(28.025 27.799999999999997)"/><use xlink:href="#v" transform="matrix(1,0,0,1,1365,865) translate(0 49.4)"/><path d="M1580 860h100v80h-100z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#w" transform="matrix(1,0,0,1,1585,865) translate(28.025 27.799999999999997)"/><use xlink:href="#x" transform="matrix(1,0,0,1,1585,865) translate(0 49.4)"/><path d="M1410 822v18.5h-10V859" stroke="#000" stroke-width="2" fill="none"/><path d="M1411 822h-2v-1h2zM1401 860h-2v-1h2z"/><path d="M1630 822.4v18.3h10V859" stroke="#000" stroke-width="2" fill="none"/><path d="M1631 822.4h-2v-1h2zM1641 860h-2v-1h2z"/><path d="M1370 1020h240v60h-240z" stroke="#000" stroke-opacity="0" stroke-width="2" fill="#fff" fill-opacity="0"/><use xlink:href="#y" transform="matrix(1,0,0,1,1375,1025) translate(75.55 28.6)"/><path d="M260 400h1150v240.6" stroke="#c92d39" stroke-width="2" fill="none"/><path d="M1411 641.6h-2v-1h2z" fill="#c92d39"/><path d="M835 640.6L833.33 400" stroke="#c92d39" stroke-width="2" fill="none"/><path d="M836 641.6h-2v-1h2z" fill="#c92d39"/><path d="M260 640.6V400" stroke="#c92d39" stroke-width="2" fill="none"/><path d="M261 641.6h-2v-1h2z" fill="#c92d39"/><path d="M510 641V440" stroke="#7ab648" stroke-width="3" fill="none"/><path d="M511.5 642h-3v-1h3z" fill="#7ab648"/><path d="M1073.33 641l-1.8-201" stroke="#7ab648" stroke-width="2" fill="none"/><path d="M1074.34 642h-2v-1h2z" fill="#7ab648"/><path d="M1640 641V440" stroke="#7ab648" stroke-width="2" fill="none"/><path d="M1641 642h-2v-1h2z" fill="#7ab648"/><path d="M500 440h1140" stroke="#7ab648" stroke-width="2" fill="none"/><path d="M360 760c0 11.05-8.95 20-20 20s-20-8.95-20-20 8.95-20 20-20 20 8.95 20 20zm-34.14-14.14l28.28 28.28m-28.28 0l28.28-28.28" stroke="#0c7cba" stroke-width="2" fill="#fff"/><path d="M1020 760c0 11.05-8.95 20-20 20s-20-8.95-20-20 8.95-20 20-20 20 8.95 20 20zm-34.14-14.14l28.28 28.28m-28.28 0l28.28-28.28" stroke="#ef8d22" stroke-width="2" fill="#fff"/><path d="M320 860l1.34-13.1 2.3-40.7 1.16-6.97.7-3" stroke="#0c7cba" stroke-width="2" fill="none"/><path d="M330.13 796.9l-8.86-2.74 8.66-12.25z" fill="#0c7cba"/><path d="M331.14 798.27l-11.48-3.56 11.23-15.88zm-8.26-4.66l6.23 1.95-.13-10.55z" fill="#0c7cba"/><path d="M1055.2 859l-.08-2.5-.22-2.35-.36-2.2-.48-2.1-.6-2.03-.73-1.98-.87-1.97-1.03-1.98-1.23-2.02-1.46-2.1-1.8-2.24-2.24-2.48-3-2.9-4.6-3.9-21.98-16.97-3.06-2.97-2.3-2.53-1.85-2.3-1.5-2.17-.64-1.05" stroke="#ef8d22" stroke-width="2" fill="none"/><path d="M1056.43 860h-2.04l-.18-.8 1.96-.4zM1009.45 796.44l-8.88 2.66.36-15z" fill="#ef8d22"/><path d="M1011.06 797l-11.52 3.45.46-19.45zm-9.46.74l6.25-1.86-6-8.68z" fill="#ef8d22"/><path d="M979 760l-2.34.02-2.1-.12-1.9-.23-1.74-.33-1.63-.42-1.53-.5-1.44-.58-1.37-.66-1.32-.74-1.27-.83-1.25-.92-1.22-1.04-1.2-1.17-1.2-1.33-1.2-1.5-1.2-1.76-1.2-2.02-1.23-2.4-1.24-2.86-1.26-3.5-1.25-4.4-1.23-5.7-1.18-7.8-.98-11.9-.1-6.07" stroke="#ef8d22" stroke-width="2" fill="none"/><path d="M980.1 759.2l-.1.8.04 1.24-1.25-.26.4-1.96zM950.05 700.4l-9.27.18 4.38-14.34z" fill="#ef8d22"/><path d="M951.45 701.4l-12.02.2 5.67-18.6zm-9.3-1.84l6.5-.12-3.43-9.97zM663.02 221H538.24v-2h124.78zM880 221H736.96v-2H880zM537.5 224.64L523.24 220l14.26-4.64z" fill="#ef8d22"/><path d="M538.5 226l-18.5-6 18.5-6zm-12.03-6l10.03 3.26v-6.52z" fill="#ef8d22"/><use xlink:href="#z" transform="matrix(1,0,0,1,663.0223000269999,209.2) translate(0 14.4)"/><path d="M650.02 159.92l-130 1.08-.03-2L650 157.92zm211.75-1.04v2l-151.8-1v-2zM876.76 159.98l-14.3 4.54.07-9.27z" fill="#0c7cba"/><path d="M880 160l-18.54 5.9.08-12.03zm-16.52 3.15l10.05-3.2-10-3.32z" fill="#0c7cba"/><use xlink:href="#A" transform="matrix(1,0,0,1,650.0250000937488,147.86667791643035) translate(0 14.4)"/><path d="M945.1 683l43.25 43.25" stroke="#0c7cba" stroke-width="2" fill="none"/><path d="M998.96 736.86l-13.37-6.8 6.55-6.57z" fill="#0c7cba"/><path d="M1001.25 739.15l-17.34-8.83 8.52-8.5zm-13.97-9.37l9.4 4.8-4.8-9.4z" fill="#0c7cba"/><path d="M367.24 731.76L416 683" stroke="#ef8d22" stroke-width="2" fill="none"/><path d="M370 735.56l-13.37 6.8 6.8-13.36z" fill="#ef8d22"/><path d="M371.68 735.83l-17.34 8.83 8.83-17.34zm-12.76 4.25l9.4-4.8-4.6-4.6zM416.7 683.7l-1.4-1.4.3-.3h2.8z" fill="#ef8d22"/><path d="M350 642h100v40H350z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#B" transform="matrix(1,0,0,1,355,647) translate(4.024999999999999 18.6)"/><path d="M340 740l4.73-4.35 6.33-4.85 14.36-8.94 14.17-8.7 4.44-3.4 3-2.76 2.25-2.46 1.78-2.34 1.1-1.77" stroke="#0c7cba" stroke-width="2" fill="none"/><path d="M396.8 701.1l-8.97-2.3 8.06-12.67z" fill="#0c7cba"/><path d="M397.9 702.42l-11.65-3L396.7 683zm-8.48-4.26l6.3 1.63-.64-10.53z" fill="#0c7cba"/><path d="M895.1 642h100v40h-100z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#B" transform="matrix(1,0,0,1,900.0999999999999,647) translate(4.024999999999999 18.6)"/><path d="M1014.66 774.92l20.26 25.1 5.2 7.5 3.55 5.83 2.7 5.1 2.14 4.74 1.8 4.6 1.46 4.66 1.22 4.83.68 3.55" stroke="#0c7cba" stroke-width="2" fill="none"/><path d="M1015.43 774.3l-1.55 1.25-.62-.77 1.38-1.15.12-.17zM1054.93 855.78l-5.83-13.83 9.24-.78z" fill="#0c7cba"/><path d="M1055.2 859l-7.56-17.93 12-1zm-4.64-16.17l4.1 9.72 2.4-10.27z" fill="#0c7cba"/><path d="M340 780l-4.3 21-6.76 30.3-1.3 9.5" stroke="#ef8d22" stroke-width="2" fill="none"/><path d="M332.23 841.77l-5.4 14-3.86-14.5z" fill="#ef8d22"/><path d="M333.65 840.84L326.67 859l-5.02-18.8zm-6.64 11.7l3.8-9.84-6.5-.35z" fill="#ef8d22"/><path d="M400 640V320" stroke="#834187" stroke-width="2" fill="none"/><path d="M1470 641.6h100v40h-100z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#B" transform="matrix(1,0,0,1,1475,646.5999999999999) translate(4.024999999999999 18.6)"/><path d="M400 320h1100M1490 519V320" stroke="#834187" stroke-width="2" fill="none"/><path d="M1491 520h-2v-1h2z" fill="#834187"/><path d="M940 320v321" stroke="#834187" stroke-width="2" fill="none"/><path d="M941 642h-2v-1h2z" fill="#834187"/><path d="M410 702.8h80V740h-80z" stroke="#000" stroke-width="2" fill="#fff"/><g><use xlink:href="#C" transform="matrix(1,0,0,1,415,707.8000000000002) translate(-4.950000000000003 17.6)"/></g><path d="M440 680v21.8" stroke="#000" stroke-width="2" fill="none"/><path d="M441 702.8h-2v-1h2z"/><path d="M860 702.8h80V740h-80z" stroke="#000" stroke-width="2" fill="#fff"/><g><use xlink:href="#C" transform="matrix(1,0,0,1,865,707.8000000000002) translate(-4.950000000000003 17.6)"/></g><path d="M1480 702.4h80v37.2h-80z" stroke="#000" stroke-width="2" fill="#fff"/><g><use xlink:href="#C" transform="matrix(1,0,0,1,1485,707.4000000000001) translate(-4.950000000000003 17.6)"/></g><path d="M1520 680v21.4" stroke="#000" stroke-width="2" fill="none"/><path d="M1521 702.4h-2v-1h2z"/><path d="M920 680v21.8" stroke="#000" stroke-width="2" fill="none"/><path d="M921 702.8h-2v-1h2z"/><defs><path d="M100-194c63 0 86 42 84 106H49c0 40 14 67 53 68 26 1 43-12 49-29l28 8c-11 28-37 45-77 45C44 4 14-33 15-96c1-61 26-98 85-98zm52 81c6-60-76-77-97-28-3 7-6 17-6 28h103" id="D"/><path d="M59-47c-2 24 18 29 38 22v24C64 9 27 4 27-40v-127H5v-23h24l9-43h21v43h35v23H59v120" id="E"/><path d="M106-169C34-169 62-67 57 0H25v-261h32l-1 103c12-21 28-36 61-36 89 0 53 116 60 194h-32v-121c2-32-8-49-39-48" id="F"/><path d="M101-251c68 0 85 55 85 127S166 4 100 4C33 4 14-52 14-124c0-73 17-127 87-127zm-1 229c47 0 54-49 54-102s-4-102-53-102c-51 0-55 48-55 102 0 53 5 102 54 102" id="G"/><g id="a"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#D"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#E"/><use transform="matrix(0.05,0,0,0.05,15,0)" xlink:href="#F"/><use transform="matrix(0.05,0,0,0.05,25,0)" xlink:href="#G"/></g><path d="M108 0H70L1-190h34L89-25l56-165h34" id="H"/><path d="M210-169c-67 3-38 105-44 169h-31v-121c0-29-5-50-35-48C34-165 62-65 56 0H25l-1-190h30c1 10-1 24 2 32 10-44 99-50 107 0 11-21 27-35 58-36 85-2 47 119 55 194h-31v-121c0-29-5-49-35-48" id="I"/><path d="M115-194c53 0 69 39 70 98 0 66-23 100-70 100C84 3 66-7 56-30L54 0H23l1-261h32v101c10-23 28-34 59-34zm-8 174c40 0 45-34 45-75 0-40-5-75-45-74-42 0-51 32-51 76 0 43 10 73 51 73" id="J"/><path d="M114-163C36-179 61-72 57 0H25l-1-190h30c1 12-1 29 2 39 6-27 23-49 58-41v29" id="K"/><path d="M101-251c82-7 93 87 43 132L82-64C71-53 59-42 53-27h129V0H18c2-99 128-94 128-182 0-28-16-43-45-43s-46 15-49 41l-32-3c6-41 34-60 81-64" id="L"/><g id="b"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#H"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#I"/><use transform="matrix(0.05,0,0,0.05,23.950000000000003,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,33.95,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,39.900000000000006,0)" xlink:href="#L"/></g><path d="M27 0v-27h64v-190l-56 39v-29l58-41h29v221h61V0H27" id="M"/><path d="M33 0v-38h34V0H33" id="N"/><path d="M54-142c48-35 137-8 131 61C196 18 31 33 14-55l32-4c7 23 22 37 52 37 35-1 51-22 54-58 4-55-73-65-99-34H22l8-134h141v27H59" id="O"/><path d="M155-56V0h-30v-56H8v-25l114-167h33v167h35v25h-35zm-30-156c-27 46-58 90-88 131h88v-131" id="P"/><path d="M0 4l72-265h28L28 4H0" id="Q"/><g id="c"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#M"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,25,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,40,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,50,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#O"/><use transform="matrix(0.05,0,0,0.05,75,0)" xlink:href="#P"/><use transform="matrix(0.05,0,0,0.05,85,0)" xlink:href="#Q"/><use transform="matrix(0.05,0,0,0.05,90,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,100,0)" xlink:href="#P"/></g><path d="M141 0L90-78 38 0H4l68-98-65-92h35l48 74 47-74h35l-64 92 68 98h-35" id="R"/><path d="M24 0v-261h32V0H24" id="S"/><path d="M141-36C126-15 110 5 73 4 37 3 15-17 15-53c-1-64 63-63 125-63 3-35-9-54-41-54-24 1-41 7-42 31l-33-3c5-37 33-52 76-52 45 0 72 20 72 64v82c-1 20 7 32 28 27v20c-31 9-61-2-59-35zM48-53c0 20 12 33 32 33 41-3 63-29 60-74-43 2-92-5-92 41" id="T"/><path d="M117-194c89-4 53 116 60 194h-32v-121c0-31-8-49-39-48C34-167 62-67 57 0H25l-1-190h30c1 10-1 24 2 32 11-22 29-35 61-36" id="U"/><g id="d"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#H"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#R"/><use transform="matrix(0.05,0,0,0.05,18,0)" xlink:href="#S"/><use transform="matrix(0.05,0,0,0.05,21.95,0)" xlink:href="#T"/><use transform="matrix(0.05,0,0,0.05,31.950000000000003,0)" xlink:href="#U"/><use transform="matrix(0.05,0,0,0.05,41.95,0)" xlink:href="#L"/></g><path d="M126-127c33 6 58 20 58 59 0 88-139 92-164 29-3-8-5-16-6-25l32-3c6 27 21 44 54 44 32 0 52-15 52-46 0-38-36-46-79-43v-28c39 1 72-4 72-42 0-27-17-43-46-43-28 0-47 15-49 41l-32-3c6-42 35-63 81-64 48-1 79 21 79 65 0 36-21 52-52 59" id="V"/><g id="e"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#H"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#I"/><use transform="matrix(0.05,0,0,0.05,23.950000000000003,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,33.95,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,39.900000000000006,0)" xlink:href="#V"/></g><g id="f"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#M"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,25,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,40,0)" xlink:href="#V"/><use transform="matrix(0.05,0,0,0.05,50,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#O"/><use transform="matrix(0.05,0,0,0.05,75,0)" xlink:href="#P"/><use transform="matrix(0.05,0,0,0.05,85,0)" xlink:href="#Q"/><use transform="matrix(0.05,0,0,0.05,90,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,100,0)" xlink:href="#P"/></g><g id="g"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#H"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#R"/><use transform="matrix(0.05,0,0,0.05,18,0)" xlink:href="#S"/><use transform="matrix(0.05,0,0,0.05,21.95,0)" xlink:href="#T"/><use transform="matrix(0.05,0,0,0.05,31.950000000000003,0)" xlink:href="#U"/><use transform="matrix(0.05,0,0,0.05,41.95,0)" xlink:href="#V"/></g><path d="M99-251c64 0 84 50 84 122C183-37 130 33 47-8c-14-7-20-23-25-40l30-5c6 39 69 39 84 7 9-19 16-44 16-74-10 22-31 35-62 35-49 0-73-33-73-83 0-54 28-83 82-83zm-1 141c31-1 51-18 51-49 0-36-14-67-51-67-34 0-49 23-49 58 0 34 15 58 49 58" id="W"/><path d="M110-160c48 1 74 30 74 79 0 53-28 85-80 85-65 0-83-55-86-122-5-90 50-162 133-122 14 7 22 21 27 39l-31 6c-5-40-67-38-82-6-9 19-15 44-15 74 11-20 30-34 60-33zm-7 138c34 0 49-23 49-58s-16-56-50-56c-29 0-50 16-49 49 1 36 15 65 50 65" id="X"/><path d="M134-131c28 9 52 24 51 62-1 50-34 73-85 73S17-19 16-69c0-36 21-54 49-61-75-25-45-126 34-121 46 3 78 18 79 63 0 33-17 51-44 57zm-34-11c31 1 46-15 46-44 0-28-17-43-47-42-29 0-46 13-45 42 1 28 16 44 46 44zm1 122c35 0 51-18 51-52 0-30-18-46-53-46-33 0-51 17-51 47 0 34 19 51 53 51" id="Y"/><g id="h"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#M"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#W"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,30,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#M"/><use transform="matrix(0.05,0,0,0.05,45,0)" xlink:href="#X"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#Y"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,70,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,80,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,85,0)" xlink:href="#M"/></g><g id="i"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#H"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#I"/><use transform="matrix(0.05,0,0,0.05,23.950000000000003,0)" xlink:href="#M"/></g><g id="j"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#M"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,25,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,40,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,50,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#M"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#Q"/><use transform="matrix(0.05,0,0,0.05,70,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,80,0)" xlink:href="#P"/></g><g id="k"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#H"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#I"/><use transform="matrix(0.05,0,0,0.05,23.950000000000003,0)" xlink:href="#L"/></g><g id="l"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#M"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,25,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,40,0)" xlink:href="#V"/><use transform="matrix(0.05,0,0,0.05,50,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#Q"/><use transform="matrix(0.05,0,0,0.05,70,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,80,0)" xlink:href="#P"/></g><path d="M115-194c55 1 70 41 70 98S169 2 115 4C84 4 66-9 55-30l1 105H24l-1-265h31l2 30c10-21 28-34 59-34zm-8 174c40 0 45-34 45-75s-6-73-45-74c-42 0-51 32-51 76 0 43 10 73 51 73" id="Z"/><path d="M100-194c62-1 85 37 85 99 1 63-27 99-86 99S16-35 15-95c0-66 28-99 85-99zM99-20c44 1 53-31 53-75 0-43-8-75-51-75s-53 32-53 75 10 74 51 75" id="aa"/><g id="m"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#Z"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,15.949999999999998,0)" xlink:href="#aa"/><use transform="matrix(0.05,0,0,0.05,25.950000000000003,0)" xlink:href="#R"/><use transform="matrix(0.05,0,0,0.05,34.95,0)" xlink:href="#I"/><use transform="matrix(0.05,0,0,0.05,49.900000000000006,0)" xlink:href="#aa"/><use transform="matrix(0.05,0,0,0.05,59.900000000000006,0)" xlink:href="#R"/><use transform="matrix(0.05,0,0,0.05,68.9,0)" xlink:href="#M"/></g><g id="n"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#M"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#W"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,30,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#M"/><use transform="matrix(0.05,0,0,0.05,45,0)" xlink:href="#X"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#Y"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,70,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,80,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,85,0)" xlink:href="#L"/></g><g id="o"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#H"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#I"/><use transform="matrix(0.05,0,0,0.05,23.950000000000003,0)" xlink:href="#V"/></g><g id="p"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#M"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,25,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,40,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,50,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#V"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#Q"/><use transform="matrix(0.05,0,0,0.05,70,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,80,0)" xlink:href="#P"/></g><g id="q"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#H"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#I"/><use transform="matrix(0.05,0,0,0.05,23.950000000000003,0)" xlink:href="#P"/></g><g id="r"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#M"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,25,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,40,0)" xlink:href="#V"/><use transform="matrix(0.05,0,0,0.05,50,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#P"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#Q"/><use transform="matrix(0.05,0,0,0.05,70,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,80,0)" xlink:href="#P"/></g><g id="s"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#Z"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,15.949999999999998,0)" xlink:href="#aa"/><use transform="matrix(0.05,0,0,0.05,25.950000000000003,0)" xlink:href="#R"/><use transform="matrix(0.05,0,0,0.05,34.95,0)" xlink:href="#I"/><use transform="matrix(0.05,0,0,0.05,49.900000000000006,0)" xlink:href="#aa"/><use transform="matrix(0.05,0,0,0.05,59.900000000000006,0)" xlink:href="#R"/><use transform="matrix(0.05,0,0,0.05,68.9,0)" xlink:href="#L"/></g><g id="t"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#M"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#W"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,30,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#M"/><use transform="matrix(0.05,0,0,0.05,45,0)" xlink:href="#X"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#Y"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,70,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,80,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,85,0)" xlink:href="#V"/></g><g id="u"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#H"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#I"/><use transform="matrix(0.05,0,0,0.05,23.950000000000003,0)" xlink:href="#O"/></g><g id="v"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#M"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,25,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,40,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,50,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#O"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#Q"/><use transform="matrix(0.05,0,0,0.05,70,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,80,0)" xlink:href="#P"/></g><g id="w"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#H"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#I"/><use transform="matrix(0.05,0,0,0.05,23.950000000000003,0)" xlink:href="#X"/></g><g id="x"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#M"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,25,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,40,0)" xlink:href="#V"/><use transform="matrix(0.05,0,0,0.05,50,0)" xlink:href="#N"/><use transform="matrix(0.05,0,0,0.05,55,0)" xlink:href="#X"/><use transform="matrix(0.05,0,0,0.05,65,0)" xlink:href="#Q"/><use transform="matrix(0.05,0,0,0.05,70,0)" xlink:href="#L"/><use transform="matrix(0.05,0,0,0.05,80,0)" xlink:href="#P"/></g><g id="y"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#Z"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,15.949999999999998,0)" xlink:href="#aa"/><use transform="matrix(0.05,0,0,0.05,25.950000000000003,0)" xlink:href="#R"/><use transform="matrix(0.05,0,0,0.05,34.95,0)" xlink:href="#I"/><use transform="matrix(0.05,0,0,0.05,49.900000000000006,0)" xlink:href="#aa"/><use transform="matrix(0.05,0,0,0.05,59.900000000000006,0)" xlink:href="#R"/><use transform="matrix(0.05,0,0,0.05,68.9,0)" xlink:href="#V"/></g><path d="M135-143c-3-34-86-38-87 0 15 53 115 12 119 90S17 21 10-45l28-5c4 36 97 45 98 0-10-56-113-15-118-90-4-57 82-63 122-42 12 7 21 19 24 35" id="ab"/><g id="z"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,5.95,0)" xlink:href="#D"/><use transform="matrix(0.05,0,0,0.05,15.949999999999998,0)" xlink:href="#ab"/><use transform="matrix(0.05,0,0,0.05,24.95,0)" xlink:href="#Z"/><use transform="matrix(0.05,0,0,0.05,34.95,0)" xlink:href="#aa"/><use transform="matrix(0.05,0,0,0.05,44.95,0)" xlink:href="#U"/><use transform="matrix(0.05,0,0,0.05,54.95,0)" xlink:href="#ab"/><use transform="matrix(0.05,0,0,0.05,63.95,0)" xlink:href="#D"/></g><path d="M145-31C134-9 116 4 85 4 32 4 16-35 15-94c0-59 17-99 70-100 32-1 48 14 60 33 0-11-1-24 2-32h30l-1 268h-32zM93-21c41 0 51-33 51-76s-8-73-50-73c-40 0-46 35-46 75s5 74 45 74" id="ac"/><path d="M84 4C-5 8 30-112 23-190h32v120c0 31 7 50 39 49 72-2 45-101 50-169h31l1 190h-30c-1-10 1-25-2-33-11 22-28 36-60 37" id="ad"/><g id="A"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,5.95,0)" xlink:href="#D"/><use transform="matrix(0.05,0,0,0.05,15.949999999999998,0)" xlink:href="#ac"/><use transform="matrix(0.05,0,0,0.05,25.950000000000003,0)" xlink:href="#ad"/><use transform="matrix(0.05,0,0,0.05,35.95,0)" xlink:href="#D"/><use transform="matrix(0.05,0,0,0.05,45.95,0)" xlink:href="#ab"/><use transform="matrix(0.05,0,0,0.05,54.95,0)" xlink:href="#E"/></g><g id="B"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#H"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#R"/><use transform="matrix(0.05,0,0,0.05,18,0)" xlink:href="#S"/><use transform="matrix(0.05,0,0,0.05,21.95,0)" xlink:href="#T"/><use transform="matrix(0.05,0,0,0.05,31.950000000000003,0)" xlink:href="#U"/><use transform="matrix(0.05,0,0,0.05,41.95,0)" xlink:href="#P"/><use transform="matrix(0.05,0,0,0.05,51.95,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,61.95,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,71.95,0)" xlink:href="#G"/></g><g id="C"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#H"/><use transform="matrix(0.05,0,0,0.05,9,0)" xlink:href="#I"/><use transform="matrix(0.05,0,0,0.05,23.950000000000003,0)" xlink:href="#J"/><use transform="matrix(0.05,0,0,0.05,33.95,0)" xlink:href="#K"/><use transform="matrix(0.05,0,0,0.05,39.900000000000006,0)" xlink:href="#P"/><use transform="matrix(0.05,0,0,0.05,49.900000000000006,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,59.900000000000006,0)" xlink:href="#G"/><use transform="matrix(0.05,0,0,0.05,69.9,0)" xlink:href="#G"/></g></defs></g></svg>
\ No newline at end of file
index 73ae4a6b3c41aec54c924f52fcd7e107b4efc7c5..703cd8b0242774bedac67fa0e8f920c10c24e793 100644 (file)
@@ -849,3 +849,607 @@ router bgp 1234
 line vty
 !
 ----
 line vty
 !
 ----
+
+VXLAN layer3 routing with anycast gateway
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+With this need, each vmbr bridge will be the gateway for the vm.
+Same vmbr on different node, will have same ip address and same mac address,
+to have working vm live migration and no network disruption.
+
+VXLAN layer3 routing only work with FRR and non-aware bridge. 
+(vlan aware bridge support is buggy currently).
+
+
+sysctl.conf tuning
+
+----
+#enable routing
+net.ipv4.ip_forward=1
+net.ipv6.conf.all.forwarding=1
+#disable reverse path filtering
+net.ipv4.conf.default.rp_filter=0
+net.ipv4.conf.all.rp_filter=0
+#allow frr to work with vrf
+net.ipv4.tcp_l3mdev_accept=1
+----
+
+asymmetric model
+^^^^^^^^^^^^^^^^
+
+This is the simplest mode. To get it work, all vxlan need to be defined on all nodes.
+
+The asymmetric model allows routing and bridging on the VXLAN tunnel ingress, 
+but only bridging on the egress. 
+This results in bi-directional VXLAN traffic traveling on different VNIs 
+in each direction (always the destination VNI) across the routed infrastructure.
+
+image::images/vxlan-l3-asymmetric.svg["vxlan l3 asymmetric",align="center"]
+
+
+* node1
+
+----
+auto eno1
+iface eno1 inet manual
+auto vmbr0
+iface vmbr0 inet static
+         address 192.168.0.1
+         netmask  255.255.255.0
+         bridge_ports eno1
+         bridge_stp off
+         bridge_fd 0
+auto vxlan2
+iface vxlan2 inet manual
+        vxlan-local-tunnelip 192.168.0.1
+        bridge-learning off
+        bridge-arp-nd-suppress on
+        bridge-unicast-flood off
+        bridge-multicast-flood off
+
+
+auto vmbr2
+iface vmbr2 inet static
+        address 10.0.2.254
+        netmask 255.255.255.0
+        hwaddress 44:39:39:FF:40:94
+        bridge_ports vxlan2
+        bridge_stp off
+        bridge_fd 0
+
+
+auto vxlan3
+iface vxlan3 inet manual
+        vxlan-local-tunnelip 192.168.0.1
+        bridge-learning off
+        bridge-arp-nd-suppress on
+        bridge-unicast-flood off
+        bridge-multicast-flood off
+
+
+auto vmbr3
+iface vmbr3 inet static
+        address 10.0.3.254
+        netmask 255.255.255.0
+        hwaddress 44:39:39:FF:40:94
+        bridge_ports vxlan3
+        bridge_stp off
+        bridge_fd 0
+----
+
+
+frr.conf
+
+----
+router bgp 1234
+ bgp router-id 192.168.0.1
+ no bgp default ipv4-unicast
+ coalesce-time 1000
+ neighbor 192.168.0.2 remote-as 1234
+ neighbor 192.168.0.3 remote-as 1234
+ !
+ address-family l2vpn evpn
+  neighbor 192.168.0.2 activate
+  neighbor 192.168.0.3 activate
+  advertise-all-vni    
+ exit-address-family
+!
+line vty
+!
+----
+
+
+* node2
+
+----
+auto eno1
+iface eno1 inet manual
+auto vmbr0
+iface vmbr0 inet static
+         address 192.168.0.2
+         netmask  255.255.255.0
+         bridge_ports eno1
+         bridge_stp off
+         bridge_fd 0
+auto vxlan2
+iface vxlan2 inet manual
+        vxlan-local-tunnelip 192.168.0.2
+        bridge-learning off
+        bridge-arp-nd-suppress on
+        bridge-unicast-flood off
+        bridge-multicast-flood off
+
+
+auto vmbr2
+iface vmbr2 inet static
+        address 10.0.2.254
+        netmask 255.255.255.0
+        hwaddress 44:39:39:FF:40:94
+        bridge_ports vxlan2
+        bridge_stp off
+        bridge_fd 0
+
+
+auto vxlan3
+iface vxlan3 inet manual
+        vxlan-local-tunnelip 192.168.0.2
+        bridge-learning off
+        bridge-arp-nd-suppress on
+        bridge-unicast-flood off
+        bridge-multicast-flood off
+
+
+auto vmbr3
+iface vmbr3 inet static
+        address 10.0.3.254
+        netmask 255.255.255.0
+        hwaddress 44:39:39:FF:40:94
+        bridge_ports vxlan3
+        bridge_stp off
+        bridge_fd 0
+----
+
+
+frr.conf
+
+----
+router bgp 1234
+ bgp router-id 192.168.0.2
+ no bgp default ipv4-unicast
+ coalesce-time 1000
+ neighbor 192.168.0.1 remote-as 1234
+ neighbor 192.168.0.3 remote-as 1234
+ !
+ address-family l2vpn evpn
+  neighbor 192.168.0.1 activate
+  neighbor 192.168.0.3 activate
+  advertise-all-vni    
+ exit-address-family
+!
+line vty
+!
+----
+
+
+* node3
+
+----
+auto eno1
+iface eno1 inet manual
+auto vmbr0
+iface vmbr0 inet static
+         address 192.168.0.3
+         netmask  255.255.255.0
+         bridge_ports eno1
+         bridge_stp off
+         bridge_fd 0
+auto vxlan2
+iface vxlan2 inet manual
+        vxlan-local-tunnelip 192.168.0.3
+        bridge-learning off
+        bridge-arp-nd-suppress on
+        bridge-unicast-flood off
+        bridge-multicast-flood off
+
+
+auto vmbr2
+iface vmbr2 inet static
+        address 10.0.2.254
+        netmask 255.255.255.0
+        hwaddress 44:39:39:FF:40:94
+        bridge_ports vxlan2
+        bridge_stp off
+        bridge_fd 0
+
+
+auto vxlan3
+iface vxlan3 inet manual
+        vxlan-local-tunnelip 192.168.0.3
+        bridge-learning off
+        bridge-arp-nd-suppress on
+        bridge-unicast-flood off
+        bridge-multicast-flood off
+
+
+auto vmbr3
+iface vmbr3 inet static
+        address 10.0.3.254
+        netmask 255.255.255.0
+        hwaddress 44:39:39:FF:40:94
+        bridge_ports vxlan3
+        bridge_stp off
+        bridge_fd 0
+----
+
+
+frr.conf
+
+----
+router bgp 1234
+ bgp router-id 192.168.0.3
+ no bgp default ipv4-unicast
+ coalesce-time 1000
+ neighbor 192.168.0.1 remote-as 1234
+ neighbor 192.168.0.2 remote-as 1234
+ !
+ address-family l2vpn evpn
+  neighbor 192.168.0.1 activate
+  neighbor 192.168.0.2 activate
+  advertise-all-vni    
+ exit-address-family
+!
+line vty
+!
+----
+
+
+symmetric model
+^^^^^^^^^^^^^^^
+
+With this model, you don't need to have all vxlan on all nodes.
+This model will also be needed to route traffic to an external router. 
+
+The symmetric model routes and bridges on both the ingress and the egress leafs. 
+This results in bi-directional traffic being able to travel on the same VNI, hence the symmetric name. 
+However, a new specialty transit VNI is used for all routed VXLAN traffic, called the L3VNI. 
+All traffic that needs to be routed will be routed onto the L3VNI, tunneled across the layer 3 Infrastructure, 
+routed off the L3VNI to the appropriate VLAN and ultimately bridged to the destination.
+
+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.
+
+image::images/vxlan-l3-symmetric.svg["vxlan l3 symmetric",align="center"]
+
+
+* node1
+
+----
+auto vrf1
+iface vrf1
+    vrf-table auto
+
+auto eno1
+iface eno1 inet manual
+auto vmbr0
+iface vmbr0 inet static
+         address 192.168.0.1
+         netmask  255.255.255.0
+         bridge_ports eno1
+         bridge_stp off
+         bridge_fd 0
+
+auto vxlan2
+iface vxlan2 inet manual
+        vxlan-local-tunnelip 192.168.0.1
+        bridge-learning off
+        bridge-arp-nd-suppress on
+        bridge-unicast-flood off
+        bridge-multicast-flood off
+
+auto vmbr2
+iface vmbr2 inet static
+        bridge_ports vxlan2
+        bridge_stp off
+        bridge_fd 0
+        address 10.0.2.254
+        netmask 255.255.255.0
+        hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
+        vrf vrf1
+
+auto vxlan3
+iface vxlan3 inet manual
+        vxlan-local-tunnelip 192.168.0.1
+        bridge-learning off
+        bridge-arp-nd-suppress on
+        bridge-unicast-flood off
+        bridge-multicast-flood off
+
+auto vmbr3
+iface vmbr3 inet static
+        bridge_ports vxlan3
+        bridge_stp off
+        bridge_fd 0
+        address 10.0.3.254
+        netmask 255.255.255.0
+        hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
+        vrf vrf1
+
+#interconnect vxlan-vfr l3vni
+auto vxlan4000
+iface vxlan4000 inet manual
+        vxlan-local-tunnelip 192.168.0.1
+        bridge-learning off
+        bridge-arp-nd-suppress on
+        bridge-unicast-flood off
+        bridge-multicast-flood off
+
+
+auto vmbr4000
+iface vmbr4000 inet manual
+        bridge_ports vxlan4000
+        bridge_stp off
+        bridge_fd 0
+        hwaddress 44:39:39:FF:40:90  #must be different on each node
+        vrf vrf1
+----
+
+frr.conf
+
+----
+vrf vrf1
+ vni 4000
+!
+router bgp 1234
+ bgp router-id 192.168.0.1
+ no bgp default ipv4-unicast
+ coalesce-time 1000
+ neighbor 192.168.0.2 remote-as 1234
+ neighbor 192.168.0.3 remote-as 1234
+ !
+ address-family l2vpn evpn
+  neighbor 192.168.0.2 activate
+  neighbor 192.168.0.3 activate
+  advertise-all-vni
+ exit-address-family
+!
+router bgp 1234 vrf vrf1
+! 
+ bgp router-id 192.168.0.1
+ ! 
+ address-family ipv4 unicast
+  redistribute connected
+ exit-address-family
+ !
+ address-family l2vpn evpn
+  advertise ipv4 unicast
+ exit-address-family
+!
+line vty
+!
+----
+
+
+* node2
+
+----
+auto vrf1
+iface vrf1
+    vrf-table auto
+
+auto eno1
+iface eno1 inet manual
+auto vmbr0
+iface vmbr0 inet static
+         address 192.168.0.2
+         netmask  255.255.255.0
+         bridge_ports eno1
+         bridge_stp off
+         bridge_fd 0
+
+auto vxlan2
+iface vxlan2 inet manual
+        vxlan-local-tunnelip 192.168.0.2
+        bridge-learning off
+        bridge-arp-nd-suppress on
+        bridge-unicast-flood off
+        bridge-multicast-flood off
+
+auto vmbr2
+iface vmbr2 inet static
+        bridge_ports vxlan2
+        bridge_stp off
+        bridge_fd 0
+        address 10.0.2.254
+        netmask 255.255.255.0
+        hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
+        vrf vrf1
+
+auto vxlan3
+iface vxlan3 inet manual
+        vxlan-local-tunnelip 192.168.0.2
+        bridge-learning off
+        bridge-arp-nd-suppress on
+        bridge-unicast-flood off
+        bridge-multicast-flood off
+
+auto vmbr3
+iface vmbr3 inet static
+        bridge_ports vxlan3
+        bridge_stp off
+        bridge_fd 0
+        address 10.0.3.254
+        netmask 255.255.255.0
+        hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
+        vrf vrf1
+
+#interconnect vxlan-vfr l3vni
+auto vxlan4000
+iface vxlan4000 inet manual
+        vxlan-local-tunnelip 192.168.0.2
+        bridge-learning off
+        bridge-arp-nd-suppress on
+        bridge-unicast-flood off
+        bridge-multicast-flood off
+
+
+auto vmbr4000
+iface vmbr4000 inet manual
+        bridge_ports vxlan4000
+        bridge_stp off
+        bridge_fd 0
+        hwaddress 44:39:39:FF:40:91  #must be different on each node
+        vrf vrf1
+----
+
+
+frr.conf
+
+----
+vrf vrf1
+ vni 4000
+!
+router bgp 1234
+ bgp router-id 192.168.0.2
+ no bgp default ipv4-unicast
+ coalesce-time 1000
+ neighbor 192.168.0.1 remote-as 1234
+ neighbor 192.168.0.3 remote-as 1234
+ !
+ address-family l2vpn evpn
+  neighbor 192.168.0.1 activate
+  neighbor 192.168.0.3 activate
+  advertise-all-vni
+ exit-address-family
+!
+router bgp 1234 vrf vrf1
+! 
+ bgp router-id 192.168.0.2
+ ! 
+ address-family ipv4 unicast
+  redistribute connected
+ exit-address-family
+ !
+ address-family l2vpn evpn
+  advertise ipv4 unicast
+ exit-address-family
+!
+line vty
+!
+----
+
+
+* node3
+
+----
+auto vrf1
+iface vrf1
+    vrf-table auto
+
+auto eno1
+iface eno1 inet manual
+auto vmbr0
+iface vmbr0 inet static
+         address 192.168.0.3
+         netmask  255.255.255.0
+         bridge_ports eno1
+         bridge_stp off
+         bridge_fd 0
+
+auto vxlan2
+iface vxlan2 inet manual
+        vxlan-local-tunnelip 192.168.0.3
+        bridge-learning off
+        bridge-arp-nd-suppress on
+        bridge-unicast-flood off
+        bridge-multicast-flood off
+
+auto vmbr2
+iface vmbr2 inet static
+        bridge_ports vxlan2
+        bridge_stp off
+        bridge_fd 0
+        address 10.0.2.254
+        netmask 255.255.255.0
+        hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr2
+        vrf vrf1
+
+auto vxlan3
+iface vxlan3 inet manual
+        vxlan-local-tunnelip 192.168.0.3
+        bridge-learning off
+        bridge-arp-nd-suppress on
+        bridge-unicast-flood off
+        bridge-multicast-flood off
+
+auto vmbr3
+iface vmbr3 inet static
+        bridge_ports vxlan3
+        bridge_stp off
+        bridge_fd 0
+        address 10.0.3.254
+        netmask 255.255.255.0
+        hwaddress 44:39:39:FF:40:94 #must be same on each node vmbr3
+        vrf vrf1
+
+#interconnect vxlan-vfr l3vni
+auto vxlan4000
+iface vxlan4000 inet manual
+        vxlan-local-tunnelip 192.168.0.3
+        bridge-learning off
+        bridge-arp-nd-suppress on
+        bridge-unicast-flood off
+        bridge-multicast-flood off
+
+
+auto vmbr4000
+iface vmbr4000 inet manual
+        bridge_ports vxlan4000
+        bridge_stp off
+        bridge_fd 0
+        hwaddress 44:39:39:FF:40:92  #must be different on each node
+        vrf vrf1
+----
+
+
+frr.conf
+
+----
+vrf vrf1
+ vni 4000
+!
+router bgp 1234
+ bgp router-id 192.168.0.3
+ no bgp default ipv4-unicast
+ coalesce-time 1000
+ neighbor 192.168.0.1 remote-as 1234
+ neighbor 192.168.0.2 remote-as 1234
+ !
+ address-family l2vpn evpn
+  neighbor 192.168.0.1 activate
+  neighbor 192.168.0.2 activate
+  advertise-all-vni
+ exit-address-family
+!
+router bgp 1234 vrf vrf1
+! 
+ bgp router-id 192.168.0.3
+ ! 
+ address-family ipv4 unicast
+  redistribute connected
+ exit-address-family
+ !
+ address-family l2vpn evpn
+  advertise ipv4 unicast
+ exit-address-family
+!
+line vty
+!
+----