{"id":8280,"date":"2024-01-03T18:04:24","date_gmt":"2024-01-03T10:04:24","guid":{"rendered":"https:\/\/egonlin.com\/?p=8280"},"modified":"2024-05-03T11:22:24","modified_gmt":"2024-05-03T03:22:24","slug":"gre%e4%b8%8evxlan","status":"publish","type":"post","link":"https:\/\/egonlin.com\/?p=8280","title":{"rendered":"GRE\u4e0eVXLAN"},"content":{"rendered":"<h1>\u4e00 GRE<\/h1>\n<h2>1.1 \u6982\u5ff5<\/h2>\n<p>GRE\u5168\u79f0\u662fGeneric Routing Encapsulation\uff0c\u662f\u4e00\u79cd\u534f\u8bae\u5c01\u88c5\u7684\u683c\u5f0f\uff0c\u5177\u4f53\u683c\u5f0f\u5185\u5bb9\u89c1\uff1a<a href=\"https:\/\/tools.ietf.org\/html\/rfc2784\">https:\/\/tools.ietf.org\/html\/rfc2784<\/a><\/p>\n<p>\u534f\u8bae\u5c01\u88c5\u6307\u7684\u662f\u7528\u4e00\u79cd\u683c\u5f0f\u7684\u534f\u8bae\u5c01\u88c5\u53e6\u4e00\u79cd\u683c\u5f0f\u7684\u534f\u8bae\u3002\u5982<\/p>\n<ol>\n<li>TCP\/IP\u534f\u8bae\u53ef\u4ee5\u770b\u6210\u662f\u4e00\u79cd\u5c01\u88c5\uff1aTCP\u4f20\u8f93\u5c42\u534f\u8bae\u88ab\u7f51\u7edc\u5c42\u7684IP\u534f\u8bae\u5c01\u88c5\uff0c\u901a\u8fc7IP\u534f\u8bae\u6765\u8fdb\u884c\u4f20\u8f93\u3002\uff08\u8fd9\u79cd\u5c01\u88c5\u7684\u76ee\u7684\u4e3b\u8981\u662f\u901a\u8fc7\u5206\u5c42\u6765\u4e25\u683c\u7684\u533a\u5206\u534f\u8bae\u7684\u8bbe\u8ba1\uff0c\u4f7f\u5f97\u5177\u4f53\u7684\u534f\u8bae\u8bbe\u8ba1\u7684\u65f6\u5019\u53ef\u4ee5\u66f4\u52a0\u7684\u6e05\u6670\uff09<\/li>\n<li>IP SAN\uff0c\u5c31\u662f\u901a\u8fc7IP\u534f\u8bae\u5c01\u88c5scsi\u534f\u8bae\uff0c\u4f7f\u5f97\u6211\u4eec\u53ef\u4ee5\u76f4\u63a5\u901a\u8fc7IP\u7f51\u7edc\u6765\u8fdb\u884c\u78c1\u76d8\u6570\u636e\u7684\u4f20\u8f93\u3002\uff08\u8fd9\u79cd\u5c01\u88c5\u4e3b\u8981\u662f\u4e3a\u4e86\u4f7f\u7528\u73b0\u6709\u7684\u8bbe\u65bd\uff0c\u65b9\u4fbf\u5382\u5546\u63a8\u5e7f\u81ea\u5df1\u7684\u4ea7\u54c1\uff0c\u540c\u65f6\u901a\u8fc7\u4e24\u79cd\u534f\u8bae\u7684\u7ed3\u5408\u4ea7\u751f\u66f4\u591a\u7684\u529f\u80fd\u3002\u5bf9\u4e8eGRE\u6765\u8bf4\uff0c\u66f4\u8d8b\u5411\u4e8e\u8fd9\u79cd\u5c01\u88c5\uff09<\/li>\n<\/ol>\n<p>\u5f3a\u8c03\uff1a<\/p>\n<p><span style=\"background-color: #ff0000;\">1\u3001\u4f46\u51e1\u4f60\u60f3\u589e\u52a0\u4e00\u79cd\u65b0\u534f\u8bae\uff0c\u90fd\u5fc5\u987b\u6709\u7f51\u7edc\u8bbe\u5907\u6765\u8d1f\u8d23\u5c01\u5305\u89e3\u5305<\/span><\/p>\n<p><span style=\"background-color: #ff0000;\">2\u3001\u4e92\u8054\u7f51\u5df2\u7ecf\u6784\u5efa\u5b8c\u6bd5\uff0c\u5404\u4e2a\u7f51\u7edc\u8bbe\u5907\u80fd\u8bc6\u522b\u7684\u534f\u8bae\u90fd\u56fa\u5b9a\u4e0b\u6765\u4e86\uff0c\u4f60\u65b0\u589e\u7684\u534f\u8bae\u60f3\u8981\u88ab\u76f4\u63a5\u8bc6\u522b\u662f\u4e0d\u53ef\u80fd\u7684<\/span><\/p>\n<p><span style=\"background-color: #ff0000;\">\u90a3\u5982\u4f55\u80fd\u5728\u73b0\u6709\u7684\u4e92\u8054\u7f51\u4e16\u754c\u91cc\u8dd1\u6211\u4eec\u7684\u65b0\u534f\u8bae\u5305\u5462\uff1f\u7b54\u6848\u5c31\u662f\u534f\u8bae\u5c01\u88c5\uff0c\u7528\u5df2\u77e5\u7684\u3001\u53ef\u4ee5\u88ab\u8bc6\u522b\u7684\u534f\u8bae\u628a\u4f60\u7684\u65b0\u534f\u8bae\u5305\u5728\u5185\u5c42<\/span><\/p>\n<p><span style=\"background-color: #ff0000;\">\u7b49\u5305\u9001\u8fbe\u5bf9\u7aef\u65f6\uff0c\u518d\u7528\u4e13\u95e8\u4e13\u95e8\u4e13\u95e8\u5904\u7406\u65b0\u534f\u8bae\u7684\u7f51\u7edc\u8bbe\u5907\uff08\u53ef\u80fd\u662f\u865a\u62df\u8bbe\u5907\uff09\u6765\u89e3\u6790\u65b0\u534f\u8bae\u5373\u53ef\u3002\u53d1\u5305\u8fc7\u7a0b\u4e5f\u662f\u5982\u6b64<\/span><\/p>\n<h2>1.2 GRE\u5c01\u88c5\u683c\u5f0f<\/h2>\n<p>GRE\u7684\u76ee\u7684\u662f\u8bbe\u8ba1\u4e00\u79cd\u901a\u7528\u7684\u5c01\u88c5\u683c\u5f0f\uff0c\u6240\u4ee5\u5982\u679c\u5c06\u5b83\u4e0e\u4e00\u4e9b\u4e3a\u7279\u5b9a\u76ee\u7684\u8fdb\u884c\u8bbe\u8ba1\u7684\u5c01\u88c5\u534f\u8bae\u6bd4\u8f83\uff0c\u90a3\u4e48GRE\u662f\u6ca1\u6709\u592a\u591a\u4f18\u52bf\u7684\u3002<\/p>\n<p>A GRE encapsulated packet has the form:<br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276412891.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276412891.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><\/p>\n<ol>\n<li>Delivery Header: \u5728GRE\u4e2d\uff0c\u9700\u8981\u88ab\u4f20\u8f93\u548c\u5c01\u88c5\u7684\u62a5\u6587\u79f0\u4e4b\u4e3apayload packet\uff0c\u800c\u7528\u4e8e\u5c01\u88c5\u548c\u4f20\u8f93\u7684\u534f\u8bae\u5219\u6210\u4e3adelivery protocol\u3002<\/li>\n<\/ol>\n<ol start=\"2\">\n<li>GRE header: GRE\u5728\u5c01\u88c5\u7684\u65f6\u5019\uff0c\u9664\u4e86payload packet\u5916\uff0c\u4f1a\u751f\u6210\u4e00\u4e2aGRE header\u3002<\/li>\n<li>payload packet: \u6211\u4eec\u771f\u5b9e\u8981\u53d1\u9001\u7684\u6570\u636e\u5305GRE header + payload\u4e00\u8d77\u88abdelivery\u534f\u8bae\u5c01\u88c5\u7528\u4e8e\u4f20\u8f93\uff0cGRE header\u4f1a\u5305\u542bpayload\u7684\u4e00\u4e9b\u4fe1\u606f\uff0c\u5305\u62ecchecksum\u3001version\u3001payload\u7684\u534f\u8bae\u7c7b\u578b\u7b49\u3002\u53ef\u4ee5\u770b\u5230\uff0c\u901a\u8fc7\u8fd9\u4e2aGRE header\u7684\u534f\u8bae\u7c7b\u578b\u5b57\u6bb5\uff0c\u6211\u4eec\u53ef\u4ee5\u505a\u5f88\u591a\u7684\u4e8b\u60c5\u3002\u65e2\u7136\u5e95\u5c42\u7684delivery\u534f\u8bae\u662f\u7528\u4e8e\u4f20\u8f93\u7684\uff0c\u90a3\u4e48A\u548cB\u901a\u4fe1\u7684\u65f6\u5019delivery\u534f\u8bae\u53ef\u4ee5\u770b\u6210\u662f\u4e2a\u90ae\u5c40\u9001\u4fe1\u706b\u8f66\uff0c\u867d\u7136\u5f88\u91cd\u8981\uff0c\u4f46\u662f\u5bf9\u4e8e\u4e1a\u52a1\u7406\u89e3\u6765\u8bf4\u6ca1\u6709\u5176\u8fd0\u9001\u7684\u4fe1\u91cd\u8981\u3002\u5f53\u8131\u53d6\u8fd9\u4e00\u5c42delivery\u5c42\u540e\uff0c\u6211\u4eec\u600e\u4e48\u77e5\u9053\u4fe1\u7684\u683c\u5f0f\u5462\uff1f\u901a\u8fc7GRE header\u4e2d\u7684\u534f\u8bae\u7c7b\u578b\u6211\u4eec\u5c31\u80fd\u77e5\u9053\u534f\u8bae\u7c7b\u578b\u4e86\uff0c\u65e2\u7136\u77e5\u9053\u4e86\u534f\u8bae\u7c7b\u578b\uff0c\u90a3\u4e48\u5c31\u6709\u80fd\u529b\u89e3\u6790\u4e86\u3002\u7531\u4e8eGRE\u662f\u4e00\u79cd\u901a\u7528\u7684\u683c\u5f0f\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528GRE\u8fdb\u884c\u5f88\u591a\u4e0d\u540c\u79cd\u7c7b\u7684\u5c01\u88c5\u3002\u6bd4\u5982\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528PPTP\u534f\u8bae\u6765\u8fdb\u884cVPN\uff0c\u53ef\u4ee5\u4f7f\u7528IPv4\u6765\u5305\u88f9IPv6\u3002\u6bd4\u8f83\u5e38\u89c1\u7684delivery\u534f\u8bae\u4e00\u822c\u662fIP\u534f\u8bae\u3002\u4e0d\u8fc7GRE\u5728\u8bbe\u8ba1\u7684\u65f6\u5019\u6709\u4e00\u4e2a\u95ee\u9898\uff0c\u90a3\u5c31\u662f\u6ca1\u6709\u8003\u8651\u52a0\u5bc6\u3002\u56e0\u6b64\u73b0\u5728\u5e38\u89c1\u7684\u9700\u8981\u52a0\u5bc6\u7684\u5c01\u88c5\u4e00\u822c\u662f\u7528\u7684IPsec\u534f\u8bae\u3002\u4f8b\uff1aA\u4e3b\u673a\u662f\u5728\u516c\u53f8\uff0cB\u4e3b\u673a\u662f\u5728\u5bb6\uff0cA\u7f51\u7edc\u7684\u5730\u5740\u4e3a192.168.1.1\uff0cB\u7f51\u7edc\u7684\u5730\u5740\u4e3a192.168.2.1\uff0cA\u5982\u679c\u8981\u548cB\u901a\u4fe1\uff0c\u5219\u9700\u8981\u901a\u8fc7\u4e92\u8054\u7f51\uff0c\u6240\u4ee5\u5728A\u8fde\u63a5\u7684\u8def\u7531\u5668RA\u4e0a\uff0c\u4f1a\u914d\u7f6e\u4e00\u4e2atunnel\u53e3\uff0ctunnel\u53e3\u7684\u4fe1\u606f\u662f\uff081.1.1.1 -&gt; 2.2.2.2\uff09\uff0c\u5728B\u8fde\u63a5\u7684\u8def\u7531\u5668RB\u4e0a\u4e5f\u4f1a\u914d\u7f6e\u4e00\u4e2atunnel\u53e3\uff0ctunnel\u53e3\u7684\u4fe1\u606f\u662f\uff082.2.2.2 -&gt; 1.1.1.1\uff09\u3002\u540c\u65f6\u5728\u8bbe\u7f6e\u597d\u8def\u7531\u7684\u60c5\u51b5\u4e0b\uff0cA\u53d1\u9001\u4e00\u4e2a\u62a5\u6587\u7ed9B\uff0c\u62a5\u6587\u4f1a\u9996\u5148\u5230RA\uff0cRA\u53d1\u73b0\u62a5\u6587\u9700\u8981\u8d70\u4e92\u8054\u7f51\uff0c\u4e8e\u662f\u901a\u8fc7tunnel\u53e3\u5c01\u88c5\uff0c\u5c01\u88c5\u7684delivery\u534f\u8bae\u7684\u76ee\u7684\u5730\u5740\u5199\u7684\u662f\u914d\u7f6e\u7684RB\u7684\u5730\u57402.2.2.2\u3002\u62a5\u6587\u5230\u4e86RB\u540edelivery\u534f\u8bae\u88ab\u8131\u53bb\uff0c\u7136\u540eRB\u6839\u636e\u8def\u7531\u4fe1\u606f\u8f6c\u53d1\u7ed9B\u3002<br \/>\n\uff08<a href=\"http:\/\/assafmuller.com\/2013\/10\/10\/gre-tunnels\/\">http:\/\/assafmuller.com\/2013\/10\/10\/gre-tunnels\/<\/a>\uff09<br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276464359.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276464359.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><br \/>\n\u5f53A\uff08192.168.1.1\uff09 ping B\uff08192.168.2.1\uff09\u65f6\uff0c\u62a5\u6587\u662f\u5982\u4e0b\u5f62\u5f0f\u7684\uff1a<br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276472689.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276472689.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276475417.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276475417.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><\/li>\n<\/ol>\n<p>1.2 Neutron\u4e2d\u7684GRE<br \/>\n\uff08<a href=\"http:\/\/assafmuller.com\/2013\/10\/14\/gre-tunnels-in-openstack-neutron\/\">http:\/\/assafmuller.com\/2013\/10\/14\/gre-tunnels-in-openstack-neutron\/<\/a>\uff09<\/p>\n<p>br-tun\u7f51\u6865\u4fe1\u606f\uff1a<\/p>\n<pre><code>[root@NextGen1 ~]# ovs-vsctl show\r\n911ff1ca-590a-4efd-a066-568fbac8c6fb\r\n[... Bridge br-int omitted ...]\r\n    Bridge br-tun\r\n        Port patch-int\r\n            Interface patch-int\r\n                type: patch\r\n                options: {peer=patch-tun}\r\n        Port br-tun\r\n            Interface br-tun\r\n                type: internal\r\n        Port \"gre-2\"\r\n            Interface \"gre-2\"\r\n                type: gre\r\n                options: {in_key=flow, local_ip=\"192.168.1.100\", out_key=flow, remote_ip=\"192.168.1.101\"}\r\n        Port \"gre-1\"\r\n            Interface \"gre-1\"\r\n                type: gre\r\n                options: {in_key=flow, local_ip=\"192.168.1.100\", out_key=flow, remote_ip=\"192.168.1.102\"}<\/code><\/pre>\n<p>VM1(10.0.0.1) pings VM2(10.0.0.2) in different nodes :<br \/>\nBefore VM1 can create an ICMP echo request message, VM1 must send out an ARP request for VM2\u2019s MAC address. A quick reminder about ARP encapsulation \u2013 It is encapsulated directly in an Ethernet frame \u2013 No IP involved (There exists a base assumption that states that ARP requests never leave a broadcast domain therefor IP packets are not needed). The Ethernet frame leaves VM1\u2019s tap device into the host\u2019s br-int. br-int, acting as a normal switch, sees that the destination MAC address in the Ethernet frame is FF:FF:FF:FF:FF:FF \u2013 The broadcast address. Because of that it floods it out all ports, including the patch cable linked to br-tun. br-tun receives the frame from the patch cable port and sees that the destination MAC address is the broadcast address. Because of that it will send the message out all GRE tunnels (Essentially flooding the message). But before that, it will encapsulate the message in a GRE header and an IP packet. In fact, two new packets are created: One from 192.168.1.100 to 192.168.1.101, and the other from 192.168.1.100 to 192.168.1.102. The encapsulation over the GRE tunnels looks like this:<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276528924.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276528924.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><\/p>\n<p>To summarize, we can conclude that the flow logic on br-tun implements a learning switch but with a GRE twist. If the message is to a multicast, broadcast, or unknown unicast address it is forwarded out all GRE tunnels. Otherwise if it learned the destination MAC address via earlier messages (By observing the source MAC address, tunnel ID and incoming GRE port) then it forwards it to the correct GRE tunnel.<\/p>\n<p>br-tun\u6d41\u8868\uff1a<\/p>\n<pre><code>[root@NextGen1 ~]# ovs-ofctl dump-flows br-tun\r\nNXST_FLOW reply (xid=0x4):\r\n cookie=0x0, duration=182369.287s, table=0, n_packets=5996, n_bytes=1481720, idle_age=52, hard_age=65534, priority=1,in_port=3 actions=resubmit(,2)\r\n cookie=0x0, duration=182374.574s, table=0, n_packets=14172, n_bytes=3908726, idle_age=5, hard_age=65534, priority=1,in_port=1 actions=resubmit(,1)\r\n cookie=0x0, duration=182370.094s, table=0, n_packets=0, n_bytes=0, idle_age=65534, hard_age=65534, priority=1,in_port=2 actions=resubmit(,2)\r\n cookie=0x0, duration=182374.078s, table=0, n_packets=3, n_bytes=230, idle_age=65534, hard_age=65534, priority=0 actions=drop\r\n cookie=0x0, duration=182373.435s, table=1, n_packets=3917, n_bytes=797884, idle_age=52, hard_age=65534, priority=0,dl_dst=00:00:00:00:00:00\/01:00:00:00:00:00 actions=resubmit(,20)\r\n cookie=0x0, duration=182372.888s, table=1, n_packets=10255, n_bytes=3110842, idle_age=5, hard_age=65534, priority=0,dl_dst=01:00:00:00:00:00\/01:00:00:00:00:00 actions=resubmit(,21)\r\n cookie=0x0, duration=182103.664s, table=2, n_packets=5982, n_bytes=1479916, idle_age=52, hard_age=65534, priority=1,tun_id=0x1388 actions=mod_vlan_vid:1,resubmit(,10)\r\n cookie=0x0, duration=182372.476s, table=2, n_packets=14, n_bytes=1804, idle_age=65534, hard_age=65534, priority=0 actions=drop\r\n cookie=0x0, duration=182372.099s, table=3, n_packets=0, n_bytes=0, idle_age=65534, hard_age=65534, priority=0 actions=drop\r\n cookie=0x0, duration=182371.777s, table=10, n_packets=5982, n_bytes=1479916, idle_age=52, hard_age=65534, priority=1 actions=learn(table=20,hard_timeout=300,priority=1,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:0-&gt;NXM_OF_VLAN_TCI[],load:NXM_NX_TUN_ID[]-&gt;NXM_NX_TUN_ID[],output:NXM_OF_IN_PORT[]),output:1\r\n cookie=0x0, duration=116255.067s, table=20, n_packets=3917, n_bytes=797884, hard_timeout=300, idle_age=52, hard_age=52, priority=1,vlan_tci=0x0001\/0x0fff,dl_dst=fa:16:3e:1f:19:55 actions=load:0-&gt;NXM_OF_VLAN_TCI[],load:0x1388-&gt;NXM_NX_TUN_ID[],output:3\r\n cookie=0x0, duration=182371.623s, table=20, n_packets=0, n_bytes=0, idle_age=65534, hard_age=65534, priority=0 actions=resubmit(,21)\r\n cookie=0x0, duration=182103.777s, table=21, n_packets=10235, n_bytes=3109310, idle_age=5, hard_age=65534, priority=1,dl_vlan=1 actions=strip_vlan,set_tunnel:0x1388,output:3,output:2\r\n cookie=0x0, duration=182371.507s, table=21, n_packets=20, n_bytes=1532, idle_age=65534, hard_age=65534, priority=0 actions=drop<\/code><\/pre>\n<p>table\u8868\u6d41\u7a0b<br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276661746.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276661746.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><br \/>\n\u5728openstack\u4e2d\u4e3b\u8981\u662f\u901a\u8fc7ovs\uff0covs\u652f\u6301GRE\u3002\u901a\u8fc7GRE\uff0cVM\u4e4b\u95f4\u7684ARP\u3001IP\u62a5\u6587\u90fd\u80fd\u5728GRE\u7684\u5c01\u88c5\u4e0b\u901a\u8fc7IP\u7f51\u7edc\u8fdb\u884c\u4f20\u9012\u3002\u4e0d\u540c\u7684\u7f51\u7edc\u901a\u8fc7GRE header\u4e2d\u7684tunnel id\u53f7\u533a\u522b\u3002\u7531\u4e8eovs\u652f\u6301openflow\u534f\u8bae\uff0c\u4e3a\u4e86\u6548\u7387\u548c\u6027\u80fd\uff0cmac\u548cGRE\u7684\u8def\u7531\u5173\u7cfb\u4f1a\u5b58\u653e\u5728ovs\u7684\u6d41\u8868\u4e2d\u3002\u4ece\u94fe\u63a5\u4e2d\u7684\u6587\u7ae0\u53ef\u4ee5\u770b\u51fa\uff0cGRE\u6709\u4e00\u4e2a\u7f3a\u70b9\uff0c\u90a3\u5c31\u662f\u6bcf\u65b0\u589e\u4e00\u4e2a\u8ba1\u7b97\u8282\u70b9\uff0c\u90fd\u9700\u8981\u5176\u548c\u6240\u6709\u5176\u4ed6\u8ba1\u7b97\u8282\u70b9\u4ee5\u53canetwork\u63a7\u5236\u5668\u5efa\u7acbGRE\u94fe\u63a5\u3002\u5728\u8ba1\u7b97\u8282\u70b9\u5f88\u591a\u7684\u65f6\u5019\u4f1a\u6709\u6027\u80fd\u95ee\u9898\u3002<br \/>\nGRE \u6280\u672f\u672c\u8eab\u8fd8\u662f\u5b58\u5728\u4e00\u4e9b\u4e0d\u8db3\u4e4b\u5904\uff1a<\/p>\n<p>\uff081\uff09Tunnel \u7684\u6570\u91cf\u95ee\u9898<\/p>\n<pre><code>GRE \u662f\u4e00\u79cd\u70b9\u5bf9\u70b9\uff08point to point\uff09\u6807\u51c6\u3002Neutron \u4e2d\uff0c\u6240\u6709\u8ba1\u7b97\u548c\u7f51\u7edc\u8282\u70b9\u4e4b\u95f4\u90fd\u4f1a\u5efa\u7acb GRE Tunnel\u3002\u5f53\u8282\u70b9\u4e0d\u591a\u7684\u65f6\u5019\uff0c\u8fd9\u79cd\u7ec4\u7f51\u65b9\u6cd5\u6ca1\u4ec0\u4e48\u95ee\u9898\u3002\u4f46\u662f\uff0c\u5f53\u4f60\u5728\u4f60\u7684\u5f88\u5927\u7684\u6570\u636e\u4e2d\u5fc3\u4e2d\u6709 40000 \u4e2a\u8282\u70b9\u7684\u65f6\u5019\uff0c\u53c8\u4f1a\u662f\u600e\u6837\u4e00\u79cd\u60c5\u5f62\u5462\uff1f\u4f7f\u7528\u6807\u51c6 GRE\u7684\u8bdd\uff0c\u5c06\u4f1a\u6709 780 millions \u4e2a tunnels\u3002<\/code><\/pre>\n<p>\uff082\uff09\u6269\u5927\u7684\u5e7f\u64ad\u57df<\/p>\n<p>GRE \u4e0d\u652f\u6301\u7ec4\u64ad\uff0c\u56e0\u6b64\u4e00\u4e2a\u7f51\u7edc\uff08\u540c\u4e00\u4e2a GRE Tunnel ID\uff09\u4e2d\u7684\u4e00\u4e2a\u865a\u673a\u53d1\u51fa\u4e00\u4e2a\u5e7f\u64ad\u5e27\u540e\uff0cGRE \u4f1a\u5c06\u5176\u5e7f\u64ad\u5230\u6240\u6709\u4e0e\u8be5\u8282\u70b9\u6709\u96a7\u9053\u8fde\u63a5\u7684\u8282\u70b9\u3002<\/p>\n<p>\uff083\uff09GRE \u5c01\u88c5\u7684IP\u5305\u7684\u8fc7\u6ee4\u548c\u8d1f\u8f7d\u5747\u8861\u95ee\u9898<\/p>\n<pre><code>\u76ee\u524d\u8fd8\u662f\u6709\u5f88\u591a\u7684\u9632\u706b\u5899\u548c\u4e09\u5c42\u7f51\u7edc\u8bbe\u5907\u65e0\u6cd5\u89e3\u6790 GRE Header\uff0c\u56e0\u6b64\u5b83\u4eec\u65e0\u6cd5\u5bf9 GRE \u5c01\u88c5\u5305\u505a\u5408\u9002\u7684\u8fc7\u6ee4\u548c\u8d1f\u8f7d\u5747\u8861\u3002 <\/code><\/pre>\n<h1>\u4e8c vxlan<\/h1>\n<div  class='collapse-block shadow-sm collapse-block-transparent collapsed hide-border-left'><div class='collapse-block-title'><span class='collapse-block-title-inner'>\u5728\u4e91\u5e73\u53f0\u4e2d\u4e0e\u5728k8s\u4e2d\u5e94\u7528vxlan\u6709\u4f55\u533a\u522b\uff1f<\/span><i class='collapse-icon fa fa-angle-down'><\/i><\/div><div class='collapse-block-body' style='display:none;'><\/p>\n<p>gre\u4e5f\u597d\u3001vxlan\u4e5f\u597d\uff0c\u672c\u8eab\u7684\u8bbe\u8ba1\u90fd\u662f\u4e3a\u4e86\u4e91\u5e73\u53f0\u6784\u5efa\u5927\u4e8c\u5c42\u7f51\u7edc\u800c\u751f<\/p>\n<p>\u6709\u4e86gre\u6216vxlan\u534f\u8bae\u7684\u52a0\u6301\uff0c\u5c31\u76f8\u5f53\u4e8e\u521b\u5efa\u4e00\u4e86\u4e00\u53f0\u8d85\u7ea7\u5927\u4e8c\u5c42\u4ea4\u6362\u673a<\/p>\n<p>\u7136\u540e\u6211\u4eec\u53ef\u4ee5\u5728\u8fd9\u53f0\u8d85\u7ea7\u5927\u4e8c\u5c42\u4ea4\u4e92\u673a\u4e0a\u7ee7\u7eed\u5206\u51fa\u6765\u4e00\u4e2a\u4e2a\u5c0flan\uff08\u7c7b\u4f3c\u4e8e\u5728\u7269\u7406\u4e8c\u5c42\u4ea4\u6362\u673a\u4e0a\u5212\u5206\u51favlan\uff09\uff0c\u7528\u4e8e\u9488\u5bf9\u4e0d\u540c\u7684\u516c\u53f8\u6216\u90e8\u95e8\u6765\u8d2d\u4e70\u6216\u4f7f\u7528\u4e91\u4e3b\u673a\uff0c\u4e0d\u540c\u7684\u516c\u53f8\u6216\u90e8\u95e8\u81ea\u5df1\u7684\u673a\u5668\u5fc5\u7136\u8981\u5728\u81ea\u5df1\u4e00\u4e2a\u5355\u72ec\u9694\u79bb\u5f00\u7684\u5c0f\u5c40\u57df\u7f51\u5185\u4e0d\u80fd\u4e0e\u5176\u4ed6\u516c\u53f8\u6216\u90e8\u95e8\u6df7\u5728 \u4e00\u8d77\u5bf9\u5427\uff01<\/p>\n<p>\u6240\u4ee5gre\u4e0evlxan\u90fd\u9700\u8981\u6709\u4e00\u4e2aid\u8868\u793a\u6765\u5145\u5f53\u7c7b\u4f3c\u4e8evlan id\u7684\u4f5c\u7528\uff0c\u7528\u4e8e\u533a\u5206\u4e0d\u540c\u7684\u7f51\u7edc<\/p>\n<p>&nbsp;<\/p>\n<p>\u800c\u5728k8s\u4e2d\u6240\u6709pod\u5c31\u662f\u6574\u4f53\u5728\u4e00\u4e2alan\u4e2d\uff0c\u8fd9\u4e2alan\u7684id\u5c31\u662f1\uff0c\u5373\u4e0d\u9700\u8981\u5206\u51fa\u591a\u4e2a\u4e0d\u540c\u7684\u5c40\u57df\u7f51lan\u3002<\/p>\n<p>\u8fd9\u5c31\u53eb\u672f\u4e1a\u6709\u4e13\u653b\uff0c\u5728\u5927\u516c\u53f8\u91cc\u5e95\u5c42\u7684\u57fa\u7840\u8bbe\u65bd\u53ef\u4ee5\u662f\u4e91\u5e73\u53f0\u63d0\u4f9b\u7684\uff08\u4e91\u4e3b\u673a\u3001\u7f51\u7edc\u7b49\uff09\uff0c\u7136\u540e\u5728\u4e91\u5e73\u53f0\u4e0a\u518d\u6784\u5efak8s<\/p>\n<p><\/div><\/div>\n<h2>2.1 \u6982\u5ff5<\/h2>\n<p>\u76f8\u6bd4\u4e8eGRE\u7684\u901a\u7528\u6027\uff0cVXLAN\u4e3b\u8981\u7528\u4e8e\u5c01\u88c5\u3001\u8f6c\u53d12\u5c42\u62a5\u6587\u3002VXLAN\u5168\u79f0Virtual eXtensible Local Area Network\uff0c\u7b80\u5355\u7684\u8bf4\u5c31\u662f\u6269\u5145\u4e86\u7684VLAN\uff0c\u5176\u4f7f\u5f97\u591a\u4e2a\u901a\u8fc7\u4e09\u5c42\u8fde\u63a5\u7684\u7f51\u7edc\u53ef\u4ee5\u8868\u73b0\u7684\u548c\u76f4\u63a5\u901a\u8fc7\u4e00\u53f0\u4e00\u53f0\u7269\u7406\u4ea4\u6362\u673a\u8fde\u63a5\u914d\u7f6e\u800c\u6210\u7684\u7f51\u7edc\u4e00\u6837\u5904\u5728\u4e00\u4e2aLAN\u4e2d\u3002\u5176\u5c06\u4e8c\u5c42\u62a5\u6587\u52a0\u4e0a\u4e2avxlan header\uff0c\u5c01\u88c5\u5728\u4e00\u4e2aUDP\u5305\u4e2d\u8fdb\u884c\u4f20\u8f93\u3002vxlan header\u4f1a\u5305\u62ec\u4e00\u4e2a24\u4f4d\u7684ID\uff08\u79f0\u4e3aVNI\uff09\uff0c\u542b\u4e49\u7c7b\u4f3c\u4e8eVLAN id\u6216\u8005\u4e0a\u9762\u63d0\u5230\u7684GRE\u7684tunnel id\u3002 \u5728\u4e0a\u9762GRE\u7684\u4f8b\u5b50\u4e2d\uff0c\u662f\u901a\u8fc7\u8def\u7531\u5668\u6765\u8fdb\u884cGRE\u534f\u8bae\u7684\u5c01\u88c5\u548c\u89e3\u5c01\u7684\uff0c\u5728VXLAN\u4e2d\u8fd9\u7c7b\u5c01\u88c5\u548c\u89e3\u5c01\u7684\u7ec4\u4ef6\u6709\u4e2a\u4e13\u6709\u7684\u540d\u5b57\u53eb\u505aVTEP\u3002\u76f8\u6bd4\u8d77VLAN\u6765\u8bf4\uff0c\u597d\u5904\u5728\u4e8e\u5176\u7a81\u7834\u4e86VLAN\u53ea\u67094094\u5b50\u7f51\u7684\u9650\u5236\uff0c\u540c\u65f6\u67b6\u8bbe\u5728UDP\u534f\u8bae\u4e0a\u540e\u5176\u6269\u5c55\u6027\u63d0\u9ad8\u4e86\u4e0d\u5c11\uff08\u56e0\u4e3aUDP\u662f\u9ad8\u5c42\u534f\u8bae\uff0c\u5c4f\u853d\u4e86\u5e95\u5c42\u7684\u5dee\u5f02\uff0c\u6362\u53e5\u8bdd\u8bf4\u5c4f\u853d\u4e86\u4e8c\u5c42\u7684\u5dee\u5f02\uff09\u3002<\/p>\n<p>\u8868\u9762\u4e0a\u770bVXLAN\u548cGRE\u533a\u522b\u4e0d\u5927\uff0c\u53ea\u662f\u5bf9delivery\u534f\u8bae\u505a\u4e86\u9650\u5b9a\uff0c\u4f7f\u7528UDP\u3002\u4f46\u662f\u5b9e\u9645\u4e0a\u5728\u534f\u8bae\u7684\u4ea4\u4e92\u52a8\u4f5c\u4e0a\u9762\u8fd8\u662f\u6709\u533a\u522b\u7684\u3002\u548c\u4e0a\u9762\u7684\u4f8b\u5b50\u4e00\u6837\uff0c\u5047\u5982\u4e3b\u673aA\u548c\u4e3b\u673aB\u60f3\u901a\u4fe1\uff0c\u90a3\u4e48A\u7684\u62a5\u6587\u4f1a\u7684\u88abVTEP\u5c01\u88c5\uff0c\u7136\u540e\u53d1\u5f80\u8fde\u63a5B\u7684VTEP\u3002\u5728\u4e0a\u9762\u7684\u4f8b\u5b50\u4e2d\u7c7b\u4f3c\u4e8eVTEP\u7684\u89d2\u8272\u662f\u7531\u8def\u7531\u5668\u6765\u5145\u5f53\u7684\uff0c\u800c\u4e14\u8def\u7531\u5668\u7684\u4e24\u7aef\u7684\u5730\u5740\u662f\u914d\u7f6e\u597d\u7684\uff0c\u6240\u4ee5RA\u77e5\u9053RB\u7684\u5730\u5740\uff0c\u76f4\u63a5\u5c06\u62a5\u6587\u53d1\u7ed9RB\u5373\u53ef\u3002\u4f46\u662f\u5728VXLAN\u4e2d\uff0cA\u7684VTEP\u5e76\u4e0d\u77e5\u9053B\u7684VTEP\u5728\u54ea\uff0c\u6240\u4ee5\u9700\u8981\u4e00\u4e2a\u53d1\u73b0\u7684\u8fc7\u7a0b\u3002\u5982\u4f55\u53d1\u73b0\u5462\uff1fVXLAN\u8981\u6c42\u6bcf\u4e2aVNI\u90fd\u5173\u8054\u4e00\u4e2a\u7ec4\u64ad\u5730\u5740\u3002\u6240\u4ee5\u5bf9\u4e8e\u4e00\u6b21ARP\u8bf7\u6c42\uff0cA\u7684VTEP\u4f1a\u7684\u53d1\u9001\u4e00\u4e2a\u7ec4\u64adIGMP\u62a5\u6587\u7ed9\u6240\u6709\u540c\u5728\u8fd9\u4e2a\u7f51\u7edc\u7ec4\u4e2d\u7684\u5176\u4ed6VTEP\u3002\u6240\u6709\u7684\u8ba2\u9605\u4e86\u8fd9\u4e2a\u7ec4\u64ad\u5730\u5740\u7684VTEP\u4f1a\u7684\u6536\u5230\u8fd9\u4e2a\u62a5\u6587\uff0c\u5b66\u4e60\u53d1\u9001\u7aef\u7684A\u7684MAC\u548cVTEP\u5730\u5740\u7528\u4e8e\u4ee5\u540e\u4f7f\u7528\uff0c\u540c\u65f6VTEP\u4f1a\u5c06\u62a5\u6587\u89e3\u6790\u540e\u6bd4\u8f83VNI\uff0c\u53d1\u9001\u7ed9\u540cVNI\u7684\u4e3b\u673a\u3002\u5f53\u67d0\u4e2a\u4e3b\u673aB\u7684IP\u548cARP\u4e2d\u7684\u4e00\u6837\u65f6\uff0c\u5176\u4f1a\u7684\u53d1\u9001ARP\u5e94\u7b54\u62a5\u6587\uff0c\u5e94\u7b54\u62a5\u6587\u901a\u8fc7B\u7684VTEP\u6309\u7167\u7c7b\u4f3c\u7684\u6d41\u7a0b\u53d1\u9001\u7ed9A\uff0c\u4f46\u662f\u7531\u4e8eB\u7684VTEP\u5df2\u7ecf\u5b66\u4e60\u5230\u4e86A\u7684MAC\u5730\u5740\uff0c\u56e0\u6b64B\u7684VTEP\u76f4\u63a5\u5c31\u53ef\u4ee5\u53d1\u9001\u7ed9A\u7684VTEP\uff0c\u800c\u4e0d\u9700\u8981\u518d\u8d70\u4e00\u904d\u901a\u8fc7IGMP\u7684\u7ec4\u64ad\u8fc7\u7a0b\u4e86\u3002<\/p>\n<p>\u4ece\u8fd9\u4e2a\u4f8b\u5b50\u53ef\u4ee5\u770b\u51fa\uff0cVXLAN\u5c4f\u853d\u4e86UDP\u7684\u5b58\u5728\uff0c\u4e0a\u5c42\u57fa\u672c\u4e0a\u4e0d\u611f\u77e5\u8fd9\u5c42\u5c01\u88c5\u3002\u540c\u65f6VXLAN\u907f\u514d\u4e86GRE\u7684\u70b9\u5bf9\u70b9\u5fc5\u987b\u6709\u8fde\u63a5\u7684\u7f3a\u70b9\u3002\u7531\u4e8e\u9700\u8981IGMP\uff0c\u5bf9\u4e8e\u7269\u7406\u4ea4\u6362\u673a\u548c\u8def\u7531\u5668\u9700\u8981\u505a\u4e00\u4e9b\u914d\u7f6e\uff0c\u8fd9\u70b9\u5728GRE\u662f\u4e0d\u9700\u8981\u7684\u3002<\/p>\n<p>vxlan\u62a5\u6587\u683c\u5f0f\uff1a<\/p>\n<p>\uff08<a href=\"http:\/\/www.borgcube.com\/blogs\/2011\/11\/vxlan-primer-part-1\/\">http:\/\/www.borgcube.com\/blogs\/2011\/11\/vxlan-primer-part-1\/<\/a>\uff09<\/p>\n<p>\uff08<a href=\"http:\/\/www.borgcube.com\/blogs\/2012\/03\/vxlan-primer-part-2-lets-get-physical\/\">http:\/\/www.borgcube.com\/blogs\/2012\/03\/vxlan-primer-part-2-lets-get-physical\/<\/a>\uff09<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/\u5fae\u4fe1\u56fe\u7247_20240503103000.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" class=\"alignnone size-full wp-image-10807\" data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/\u5fae\u4fe1\u56fe\u7247_20240503103000.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" width=\"1099\" height=\"527\"  sizes=\"(max-width: 1099px) 100vw, 1099px\" \/><\/div><br \/>\n\u542b\u4e49\uff1a<\/p>\n<p>Outer MAC destination address (MAC address of the tunnel endpoint VTEP)<br \/>\nOuter MAC source address (MAC address of the tunnel source VTEP)<br \/>\nOuter IP destination address (IP address of the tunnel endpoint VTEP)<br \/>\nOuter IP source address (IP address of the tunnel source VTEP)<br \/>\nOuter UDP header\uff1aSrc port \u5f80\u5f80\u7528\u4e8e load balancing\uff0c\u4e0b\u6587\u6709\u63d0\u5230\uff1bDst port \u5373 VXLAN Port\uff0c\u9ed8\u8ba4\u503c\u4e3a 4789.<br \/>\nVNID\uff1a\u8868\u793a\u8be5\u5e27\u7684\u6765\u6e90\u865a\u673a\u6240\u5728\u7684 VXLAN \u7f51\u6bb5\u7684 ID<br \/>\n\u7279\u70b9\uff1a<\/p>\n<p>VNID\uff1a 24-bits\uff0c\u6700\u5927 16777216\u3002\u6bcf\u4e2a\u4e0d\u540c\u7684 24-bits VNI \u4ee3\u8868\u4e00\u4e2a VXLAN \u7f51\u6bb5\u3002\u53ea\u6709\u540c\u4e00\u4e2a\u7f51\u6bb5\u4e2d\u7684\u865a\u673a\u624d\u80fd\u4e92\u76f8\u901a\u4fe1\u3002<br \/>\nVXLAN Port\uff1a\u76ee\u7684 UDP \u7aef\u53e3\uff0c\u9ed8\u8ba4\u4f7f\u7528 4789 \u7aef\u53e3\u3002\u7528\u6237\u53ef\u4ee5\u81ea\u5df1\u914d\u7f6e\u3002<br \/>\n\u4e24\u4e2a VTEP \u4e4b\u95f4\u7684 VXLAN tunnels \u662f\u65e0\u72b6\u6001\u7684\u3002<br \/>\nVTEP \u53ef\u4ee5\u5728\u865a\u62df\u4ea4\u6362\u673a\u4e0a\uff0c\u7269\u7406\u4ea4\u6362\u673a\u6216\u8005\u7269\u7406\u670d\u52a1\u5668\u4e0a\u901a\u8fc7\u8f6f\u4ef6\u6216\u8005\u786c\u4ef6\u5b9e\u73b0\u3002<br \/>\n\u4f7f\u7528\u591a\u64ad\u6765\u4f20\u9001\u672a\u77e5\u76ee\u7684\u7684\u3001\u5e7f\u64ad\u6216\u8005\u591a\u64ad\u5e27\u3002<br \/>\nVTEP \u4e0d\u53ef\u4ee5\u5bf9 VXLAN \u5305\u5206\u6bb5\u3002<\/p>\n<h2>2.2 VTEP \u5bfb\u5740<\/h2>\n<pre><code>\u4e00\u4e2a VTEP \u53ef\u4ee5\u7ba1\u7406\u591a\u4e2a VXLAN \u96a7\u9053\uff0c\u6bcf\u4e2a\u96a7\u9053\u901a\u5411\u4e0d\u540c\u7684\u76ee\u6807\u3002\u90a3 VTEP \u63a5\u6536\u5230\u4e00\u4e2a\u4e8c\u5c42\u5e27\u540e\uff0c\u5b83\u600e\u4e48\u6839\u636e\u4e8c\u5c42\u5e27\u4e2d\u7684\u76ee\u7684 MAC \u5730\u5740\u627e\u5230\u5bf9\u5e94\u7684 VXLAN \u96a7\u9053\u5462\uff1f\r\nVXLAN \u5229\u7528\u4e86\u591a\u64ad\u548c MAC \u5730\u5740\u5b66\u4e60\u6280\u672f\u3002\u5982\u679c\u5b83\u6536\u5230\u7684\u5e27\u662f\u4e2a\u5e7f\u64ad\u5e27\u6bd4\u5982 ARP \u5e27\uff0c\u4e5f\u4f1a\u7ecf\u8fc7\u540c\u6837\u7684\u8fc7\u7a0b\u3002\r\n\r\n\u4ee5\u4e0b\u56fe\u4e3a\u4f8b\uff0c\u6bcf\u4e2a VTEP \u5305\u542b\u4e24\u4e2a VXLAN \u96a7\u9053\u3002\r\n1\u3001VTEP-1 \u6536\u5230\u4e8c\u5c42 ARP \u5e271\uff08A \u8981\u67e5\u627e B \u7684 MAC\uff09 \u540e\uff0c\u53d1\u51fa\u4e00\u4e2a Dst IP \u5730\u5740\u4e3aVTEP\u591a\u64ad\u7ec4 239.1.1.1 \u7684 VXLAN \u5c01\u88c5 UDP \u5305\u3002\r\n2\u3001\u8be5\u5305\u4f1a\u8fbe\u5230 VTEP-2 \u548c VTEP-3\u3002VTEP-3 \u6536\u5230\u540e\uff0c\u56e0\u4e3a\u76ee\u7684 IP \u5730\u5740\u4e0d\u5728\u5b83\u7684\u8303\u56f4\u5185\uff0c\u4e22\u5f03\u8be5\u5305\uff0c\u4f46\u662f\u5b66\u4e60\u5230\u4e86\u4e00\u6761\u8def\u5f84\uff1aMAC-A,VNI 10,VTEP-1-IP\uff0c\u5b83\u77e5\u9053\u8981\u5230\u8fbe A \u9700\u8981\u7ecf\u8fc7 VTEP-1 \u4e86\u3002\r\n3\u3001VTEP-2 \u6536\u5230\u540e\uff0c\u53d1\u73b0\u76ee\u7684 IP \u5730\u5740\u662f\u673a\u5668 B\uff0c\u4ea4\u7ed9 B\uff0c\u540c\u65f6\u6dfb\u52a0\u5b66\u4e60\u5230\u7684\u89c4\u5219 MAC-A,VNI 10,VTEP-1-IP\u3002\r\n4\u3001B \u53d1\u56de\u54cd\u5e94\u5e27\u540e\uff0cVTEP-2 \u76f4\u63a5\u4f7f\u7528 VTEP-1 \u7684 IP \u76f4\u63a5\u5c06\u5b83\u5c01\u88c5\u6210\u4e09\u5c42\u5305\uff0c\u901a\u8fc7\u7269\u7406\u7f51\u7edc\u76f4\u63a5\u5230\u8fbe VTEP-1\uff0c\u518d\u7531\u5b83\u4ea4\u7ed9 A\u3002VTEP-1 \u4e5f\u5b66\u4e60\u5230\u4e86\u4e00\u6761\u89c4\u5219 MAC-B,VNI 10,VTEP-2-IP\u3002<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/\u5fae\u4fe1\u56fe\u7247_20240503102803.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" class=\"alignnone size-full wp-image-10805\" data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/\u5fae\u4fe1\u56fe\u7247_20240503102803.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" width=\"1153\" height=\"732\"  sizes=\"(max-width: 1153px) 100vw, 1153px\" \/><\/div><\/p>\n<h2>2.3 \u6570\u636e\u6d41\u5411<\/h2>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/\u5fae\u4fe1\u56fe\u7247_20240503102850.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" class=\"alignnone size-full wp-image-10806\" data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/\u5fae\u4fe1\u56fe\u7247_20240503102850.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" width=\"1123\" height=\"743\"  sizes=\"(max-width: 1123px) 100vw, 1123px\" \/><\/div><br \/>\n\u53d1\u9001\u7aef\uff1a<\/p>\n<p>\u8ba1\u7b97\u76ee\u7684\u5730\u5740\uff1aLinux \u5185\u6838\u5728\u53d1\u9001\u4e4b\u524d\u4f1a\u68c0\u67e5\u6570\u636e\u5e27\u7684\u76ee\u7684MAC\u5730\u5740\uff0c\u9700\u8981\u9009\u62e9\u76ee\u7684 VTEP\u3002<br \/>\n\u5982\u679c\u662f\u5e7f\u64ad\u6216\u8005\u591a\u64ad\u5730\u5740\uff0c\u5219\u4f7f\u7528\u5176 VNI \u5bf9\u5e94\u7684 VXLAN group \u7ec4\u64ad\u5730\u5740\uff0c\u8be5\u591a\u64ad\u7ec4\u5185\u6240\u6709\u7684 VTEP \u5c06\u6536\u5230\u8be5\u591a\u64ad\u5305\uff1b<br \/>\n\u5982\u679c\u662f\u5355\u64ad\u5730\u5740\uff0c\u5982\u679c Linux \u7684 MAC \u8868\u4e2d\u5305\u542b\u8be5 MAC \u5730\u5740\u5bf9\u5e94\u7684\u76ee\u7684 VTEP \u5730\u5740\uff0c\u5219\u4f7f\u7528\u5b83\uff1b<br \/>\n\u5982\u679c\u662f\u5355\u64ad\u5730\u5740\uff0c\u4f46\u662f LInux \u7684 MAC \u8868\u4e2d\u4e0d\u5305\u542b\u8be5 MAC \u5730\u5740\u5bf9\u5e94\u7684\u76ee\u7684 VTEP IP\uff0c\u90a3\u4e48\u4f7f\u7528\u8be5 VNI \u5bf9\u5e94\u7684\u7ec4\u64ad\u5730\u5740\u3002<br \/>\n\u6dfb\u52a0Headers\uff1a\u4f9d\u6b21\u6dfb\u52a0 VXLAN header\uff0cUDP header\uff0cIP header\u3002<br \/>\n\u63a5\u6536\u7aef\uff1a<\/p>\n<p>UDP\u76d1\u542c\uff1a\u56e0\u4e3a VXLAN \u5229\u7528\u4e86 UDP\uff0c\u6240\u4ee5\u5b83\u5728\u63a5\u6536\u7684\u65f6\u5019\u52bf\u5fc5\u987b\u8981\u6709\u4e00\u4e2a UDP server \u5728\u76d1\u542c\u67d0\u4e2a\u7aef\u53e3\uff0c\u8fd9\u4e2a\u662f\u5728 VXLAN \u521d\u59cb\u5316\u7684\u65f6\u5019\u5b8c\u6210\u7684\u3002<br \/>\nIP\u5305\u5265\u79bb\uff1a\u4e00\u5c42\u4e00\u5c42\u5265\u79bb\u51fa\u539f\u59cb\u7684\u6570\u636e\u5e27\uff0c\u4ea4\u7ed9 TCP\/IP \u6808\uff0c\u7531\u5b83\u4ea4\u7ed9\u865a\u673a\u3002<\/p>\n<p>2.2 Neutron\u4e2d\u7684vxlan<\/p>\n<p>(<a href=\"http:\/\/www.opencloudblog.com\/?p=300\">http:\/\/www.opencloudblog.com\/?p=300<\/a>)<\/p>\n<p>vxlan\u7684br-tun\u6d41\u8868\u4e0e\u4e0a\u9762GRE\u7c7b\u4f3c\u3002<\/p>\n<h1>\u4e09 GRE\u4e0eVXLAN\u5bf9\u6bd4<\/h1>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276742294.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276742294.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><br \/>\n\u5bf9\u4e8eGRE\u548cVXLAN\u7f51\u7edc\u6a21\u5f0f\u800c\u8a00\uff0c\u53ef\u4ee5\u62bd\u8c61\u5730\u5c06\u6bcf\u4e2abr-tun\u770b\u6210\u96a7\u9053\u7aef\u70b9\uff0c\u6709\u72b6\u6001\u7684\u96a7\u9053\u70b9\u5bf9\u70b9\u8fde\u63a5\u5373\u4e3aGRE\uff1b\u65e0\u72b6\u6001\u7684\u96a7\u9053\u4f7f\u7528UDP\u534f\u8bae\u8fde\u63a5\u5219\u4e3aVXLAN\u3002<\/p>\n<h1>\u56db \uff1aNeutron\u4f7f\u7528OVS\u652f\u6301GRE\u4e0eVXLAN<\/h1>\n<pre><code>\u56e0\u4e3a OVS \u5bf9\u4e24\u79cd\u534f\u8bae\u7684\u5b9e\u73b0\u673a\u5236\uff0cNeutron \u5bf9\u4e24\u4e2a\u534f\u8bae\u7684\u652f\u6301\u7684\u4ee3\u7801\u548c\u914d\u7f6e\u51e0\u4e4e\u662f\u5b8c\u5168\u4e00\u81f4\u7684\uff0c\u9664\u4e86\u4e00\u4e9b\u7ec6\u5c0f\u5dee\u522b\uff0c\u6bd4\u5982\u540d\u79f0\uff0c\u4ee5\u53ca\u4e2a\u522b\u914d\u7f6e\u6bd4\u5982VXLAN\u7684UDP\u7aef\u53e3\u7b49\u3002OVS \u5728\u8ba1\u7b97\u6216\u8005\u7f51\u7edc\u8282\u70b9\u4e0a\u7684 br-tun \u4e0a\u5efa\u7acb\u591a\u4e2a tunnel port\uff0c\u548c\u522b\u7684\u8282\u70b9\u4e0a\u7684 tunnel port \u4e4b\u95f4\u5efa\u7acb\u70b9\u5bf9\u70b9\u7684 GRE\/VXLAN Tunnel\u3002Neutron GRE\/VXLAN network \u4f7f\u7528 segmentation_id \uff08VNI \u6216\u8005 GRE tunnel id\uff09 \u4f5c\u4e3a\u5176\u7f51\u7edc\u6807\u8bc6\uff0c\u7c7b\u4f3c\u4e8e VLAN ID\uff0c\u6765\u5b9e\u73b0\u4e0d\u540c\u7f51\u7edc\u5185\u7f51\u7edc\u6d41\u91cf\u4e4b\u95f4\u7684\u9694\u79bb\u3002<\/code><\/pre>\n<h2>4.1 open vswitch\u5b9e\u73b0\u7684VXLAN VTEP<\/h2>\n<p>\u4ece\u4e0a\u9762\u7684\u57fa\u7840\u77e5\u8bc6\u90e8\u5206\uff0c\u6211\u4eec\u77e5\u9053 VTEP \u4e0d\u53ea\u662f\u5b9e\u73b0\u5305\u7684\u5c01\u88c5\u548c\u89e3\u5305\uff0c\u8fd8\u5305\u62ec\uff1a<\/p>\n<p>\uff081\uff09ARP \u89e3\u6790\uff1a\u9700\u8981\u5c3d\u91cf\u9ad8\u6548\u7684\u65b9\u5f0f\u54cd\u5e94\u672c\u5730\u865a\u673a\u7684 ARP \u8bf7\u6c42<\/p>\n<p>\uff082\uff09\u76ee\u7684 VTEP \u5730\u5740\u641c\u7d22\uff1a\u6839\u636e\u76ee\u7684\u865a\u673a\u7684 MAC \u5730\u5740\uff0c\u627e\u5230\u5b83\u6240\u5728\u673a\u5668\u7684 VTEP \u7684 IP \u5730\u5740<\/p>\n<p>\u901a\u5e38\u7684\u5b9e\u73b0\u65b9\u5f0f\u5305\u62ec\uff1a<\/p>\n<p>\uff081\uff09\u4f7f\u7528 L3 \u591a\u64ad<br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276759640.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276759640.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><br \/>\n\uff082\uff09\u4f7f\u7528 SDN \u63a7\u5236\u5668\uff08controller\uff09\u6765\u63d0\u4f9b\u96c6\u4e2d\u5f0f\u7684 MAC\/IP \u5bf9\u7167\u8868<br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276767731.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276767731.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276770670.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276770670.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><br \/>\n\uff08\u4e00\u4e2a\u57fa\u4e8e Linuxbrige + VxLAN + Service Node \u7684\u96c6\u4e2d\u5f0f Controller node \u89e3\u51b3 VNI-VTEP_IPs \u6620\u5c04\u7684\u63d0\u8bae\uff0c\u66ff\u4ee3L3\u591a\u64ad\u548c\u5e7f\u64ad\uff0c\u6765\u6e90\uff1a 20140520-dlapsley-openstack-summit-vancouver-vxlan-v0-150520174345-lva1-app6891.pptx\uff09<\/p>\n<p>\uff083\uff09\u5728VTEP\u672c\u5730\u8fd0\u884c\u4e00\u4e2a\u4ee3\u7406\uff08agent\uff09\uff0c\u63a5\u6536\uff08MAC, IP, VTEP IP\uff09\u6570\u636e\uff0c\u5e76\u63d0\u4f9b\u7ed9 VTEP<\/p>\n<p>\u90a3 Open vSwitch \u662f\u5982\u4f55\u5b9e\u73b0\u8fd9\u4e9b\u529f\u80fd\u9700\u6c42\u7684\u5462\uff1f<\/p>\n<p>\uff081\uff09\u5728\u6ca1\u6709\u542f\u7528 l2population \u7684\u60c5\u51b5\u4e0b\uff0c\u914d\u7f6e\u4e86\u591a\u64ad\u5c31\u4f7f\u7528\u591a\u64ad\uff0c\u6ca1\u7684\u8bdd\u5c31\u4f7f\u7528\u5e7f\u64ad<\/p>\n<p>\uff082\uff09\u5728\u542f\u7528 l2population \u7684\u60c5\u51b5\u4e0b\uff0c\u5728\u865a\u673a boot \u4ee5\u540e\uff0c\u901a\u8fc7 MQ \u5411\u7528\u4e8e\u540c\u7f51\u7edc\u865a\u673a\u7684\u8282\u70b9\u4e0a\u7684 l2population driver \u53d1\u9001\u4e24\u79cd\u6570\u636e\uff0c\u518d\u5c06\u6570\u636e\u52a0\u5165\u5230 OVS \u6d41\u8868<\/p>\n<p>\uff082.1\uff09FDB (forwarding database): \u76ee\u7684\u5730\u5740-\u6240\u5728 VTEP IP \u5730\u5740\u7684\u5bf9\u7167\u8868\uff0c\u7528\u4e8e\u67e5\u627e\u76ee\u7684\u865a\u673a\u6240\u5728\u7684 VTEP \u7684 IP \u5730\u5740<\/p>\n<p>\uff082.2\uff09\u865a\u673a IP \u5730\u5740 &#8211; MAC \u5730\u5740\u7684\u5bf9\u7167\u8868\uff0c\u7528\u4e8e\u54cd\u5e94\u672c\u5730\u865a\u673a\u7684 ARP \u8bf7\u6c42<br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276783114.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276783114.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><\/p>\n<h2>4.2 \u5728\u4e0d\u4f7f\u7528l2population\u65f6\u7684\u96a7\u9053\u5efa\u7acb\u8fc7\u7a0b<\/h2>\n<p><a href=\"https:\/\/wiki.openstack.org\/wiki\/L2population_blueprint\">https:\/\/wiki.openstack.org\/wiki\/L2population_blueprint<\/a><\/p>\n<p>\u8981\u4f7f\u7528 GRE \u548c VXLAN\uff0c\u7ba1\u7406\u5458\u9700\u8981\u5728 ml2 \u914d\u7f6e\u6587\u4ef6\u4e2d\u914d\u7f6e local_ip\uff08\u6bd4\u5982\u8be5\u7269\u7406\u670d\u52a1\u5668\u7684\u516c\u7f51 IP\uff09\uff0c\u5e76\u4f7f\u7528\u914d\u7f6e\u9879 tunnel_types \u6307\u5b9a\u8981\u4f7f\u7528\u7684\u96a7\u9053\u7c7b\u578b\uff0c\u5373 GRE \u6216\u8005 VXLAN\u3002\u5f53 enable_tunneling = true \u65f6\uff0cNeutorn ML2 Agent \u5728\u542f\u52a8\u65f6\u4f1a\u5efa\u7acb tunnel bridge\uff0c\u9ed8\u8ba4\u4e3a br-tun\u3002\u63a5\u7740\uff0cML2 Agent \u4f1a\u5728 br-tun \u4e0a\u5efa\u7acb tunnel ports\uff0c\u4f5c\u4e3a GRE\/VXLAN tunnel \u7684\u4e00\u7aef\u3002\u5177\u4f53\u8fc7\u7a0b\u5982\u56fe\u6240\u793a\uff1a<br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276819064.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276819064.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><br \/>\nOVS \u9ed8\u8ba4\u4f7f\u7528 4789 \u4f5c\u4e3a VXLAN port\u3002\u4e0b\u8868\u4e2d\u53ef\u4ee5\u770b\u51fa Neutron \u8282\u70b9\u5728\u8be5\u7aef\u53e3\u4e0a\u76d1\u542c\u6765\u81ea\u6240\u6709\u6e90\u7684UDP\u5305\uff1a<\/p>\n<p>root@compute1:\/home\/s1# netstat -lnup<br \/>\nActive Internet connections (only servers)<br \/>\nProto Recv-Q Send-Q Local Address Foreign Address State PID\/Program name<br \/>\nudp 3840 0 0.0.0.0:4789 0.0.0.0:*<\/p>\n<p>l2pop \u7684\u539f\u7406\u4e5f\u4e0d\u590d\u6742\u3002Neutron \u4e2d\u4fdd\u5b58\u6bcf\u4e00\u4e2a\u7aef\u53e3\u7684\u72b6\u6001\uff0c\u800c\u7aef\u53e3\u4fdd\u5b58\u4e86\u7f51\u7edc\u76f8\u5173\u7684\u6570\u636e\u3002\u865a\u673a\u542f\u52a8\u8fc7\u7a0b\u4e2d\uff0c\u5176\u7aef\u53e3\u72b6\u6001\u4f1a\u4ece down \u5230build \u5230 active\u3002\u56e0\u6b64\uff0c\u5728\u6bcf\u6b21\u7aef\u53e3\u53d1\u751f\u72b6\u6001\u53d8\u5316\u65f6\uff0c\u51fd\u6570 update_port_postcommit \u90fd\u5c06\u4f1a\u88ab\u8c03\u7528\uff0c\u4fdd\u8bc1\u6bcf\u4e2a\u8282\u70b9\u4e0a\u7684\u5982\u4e0b\u6570\u636e\u5f97\u5230\u4e86\u5b9e\u65f6\u66f4\u65b0\uff0c\u4ece\u800c\u907f\u514d\u4e86\u4e0d\u5fc5\u8981\u7684\u96a7\u9053\u8fde\u63a5\u548c\u5e7f\u64ad\u3002<\/p>\n<p>\u6709\u548c\u6ca1\u6709 l2pop \u7684\u6548\u679c\uff1a<br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276834735.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2024\/01\/image-1704276834735.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><\/p>\n<h2>4.3 MTU \u95ee\u9898<\/h2>\n<p>VXLAN \u6a21\u5f0f\u4e0b\u865a\u62df\u673a\u4e2d\u7684 mtu \u6700\u5927\u503c\u4e3a1450\uff0c\u4e5f\u5c31\u662f\u53ea\u80fd\u5c0f\u4e8e1450\uff0c\u5927\u4e8e\u8fd9\u4e2a\u503c\u4f1a\u5bfc\u81f4 openvswitch \u4f20\u8f93\u5206\u7247\uff0c\u8fdb\u800c\u5bfc\u81f4\u865a\u62df\u673a\u4e2d\u6570\u636e\u5305\u6570\u636e\u91cd\u4f20\uff0c\u4ece\u800c\u5bfc\u81f4\u7f51\u7edc\u6027\u80fd\u4e0b\u964d\u3002GRE \u6a21\u5f0f\u4e0b\u865a\u62df\u673a mtu \u6700\u5927\u4e3a1462\u3002<\/p>\n<p>\u8ba1\u7b97\u65b9\u6cd5\u5982\u4e0b\uff1a<\/p>\n<p>vxlan mtu = 1450 = 1500 \u2013 20(ip\u5934) \u2013 8(udp\u5934) \u2013 8(vxlan\u5934) \u2013 14(\u4ee5\u592a\u7f51\u5934)<br \/>\ngre mtu = 1458 = 1500 \u2013 20(ip\u5934) \u2013 8(gre\u5934) \u2013 14(\u4ee5\u592a\u7f51\u5934)<br \/>\n\u53ef\u4ee5\u914d\u7f6e Neutron DHCP \u7ec4\u4ef6\uff0c\u8ba9\u865a\u62df\u673a\u81ea\u52a8\u914d\u7f6e mtu\uff0c\u5b98\u65b9\u6587\u6863\u94fe\u63a5 <a href=\"http:\/\/docs.openstack.org\/juno\/install-guide\/install\/yum\/content\/neutron-network-node.html\">http:\/\/docs.openstack.org\/juno\/install-guide\/install\/yum\/content\/neutron-network-node.html<\/a><\/p>\n<pre><code>#\/etc\/neutron\/dhcp_agent.ini\r\n[DEFAULT]\r\ndnsmasq_config_file = \/etc\/neutron\/dnsmasq-neutron.conf\r\n\r\n#\/etc\/neutron\/dnsmasq-neutron.conf\r\ndhcp-option-force=26,1450\u62161458 #26\u4ee3\u8868\u8981\u8bbe\u7f6e\u7684\u662fmtu\u503c<\/code><\/pre>\n<p>dhcp-option-force\u9009\u9879<\/p>\n<pre><code>Tag     Name     Data Length     Meaning     Reference \r\n0    Pad    0    None    [RFC2132]\r\n1    Subnet Mask    4    Subnet Mask Value    [RFC2132]\r\n2    Time Offset    4    Time Offset in Seconds from UTC (note: deprecated by 100 and 101)    [RFC2132]\r\n3    Router    N    N\/4 Router addresses    [RFC2132]\r\n4    Time Server    N    N\/4 Timeserver addresses    [RFC2132]\r\n5    Name Server    N    N\/4 IEN-116 Server addresses    [RFC2132]\r\n6    Domain Server    N    N\/4 DNS Server addresses    [RFC2132]\r\n7    Log Server    N    N\/4 Logging Server addresses    [RFC2132]\r\n8    Quotes Server    N    N\/4 Quotes Server addresses    [RFC2132]\r\n9    LPR Server    N    N\/4 Printer Server addresses    [RFC2132]\r\n10    Impress Server    N    N\/4 Impress Server addresses    [RFC2132]\r\n11    RLP Server    N    N\/4 RLP Server addresses    [RFC2132]\r\n12    Hostname    N    Hostname string    [RFC2132]\r\n13    Boot File Size    2    Size of boot file in 512 byte chunks    [RFC2132]\r\n14    Merit Dump File    N    Client to dump and name the file to dump it to    [RFC2132]\r\n15    Domain Name    N    The DNS domain name of the client    [RFC2132]\r\n16    Swap Server    N    Swap Server address    [RFC2132]\r\n17    Root Path    N    Path name for root disk    [RFC2132]\r\n18    Extension File    N    Path name for more BOOTP info    [RFC2132]\r\n19    Forward On\/Off    1    Enable\/Disable IP Forwarding    [RFC2132]\r\n20    SrcRte On\/Off    1    Enable\/Disable Source Routing    [RFC2132]\r\n21    Policy Filter    N    Routing Policy Filters    [RFC2132]\r\n22    Max DG Assembly    2    Max Datagram Reassembly Size    [RFC2132]\r\n23    Default IP TTL    1    Default IP Time to Live    [RFC2132]\r\n24    MTU Timeout    4    Path MTU Aging Timeout    [RFC2132]\r\n25    MTU Plateau    N    Path MTU Plateau Table    [RFC2132]\r\n26    MTU Interface    2    Interface MTU Size    [RFC2132]\r\n27    MTU Subnet    1    All Subnets are Local    [RFC2132]\r\n28    Broadcast Address    4    Broadcast Address    [RFC2132]\r\n29    Mask Discovery    1    Perform Mask Discovery    [RFC2132]\r\n30    Mask Supplier    1    Provide Mask to Others    [RFC2132]\r\n31    Router Discovery    1    Perform Router Discovery    [RFC2132]\r\n32    Router Request    4    Router Solicitation Address    [RFC2132]\r\n33    Static Route    N    Static Routing Table    [RFC2132]\r\n34    Trailers    1    Trailer Encapsulation    [RFC2132]\r\n35    ARP Timeout    4    ARP Cache Timeout    [RFC2132]\r\n36    Ethernet    1    Ethernet Encapsulation    [RFC2132]\r\n37    Default TCP TTL    1    Default TCP Time to Live    [RFC2132]\r\n38    Keepalive Time    4    TCP Keepalive Interval    [RFC2132]\r\n39    Keepalive Data    1    TCP Keepalive Garbage    [RFC2132]\r\n40    NIS Domain    N    NIS Domain Name    [RFC2132]\r\n41    NIS Servers    N    NIS Server Addresses    [RFC2132]\r\n42    NTP Servers    N    NTP Server Addresses    [RFC2132]\r\n43    Vendor Specific    N    Vendor Specific Information    [RFC2132]\r\n44    NETBIOS Name Srv    N    NETBIOS Name Servers    [RFC2132]\r\n45    NETBIOS Dist Srv    N    NETBIOS Datagram Distribution    [RFC2132]\r\n46    NETBIOS Node Type    1    NETBIOS Node Type    [RFC2132]\r\n47    NETBIOS Scope    N    NETBIOS Scope    [RFC2132]\r\n48    X Window Font    N    X Window Font Server    [RFC2132]\r\n49    X Window Manager    N    X Window Display Manager    [RFC2132]\r\n50    Address Request    4    Requested IP Address    [RFC2132]\r\n51    Address Time    4    IP Address Lease Time    [RFC2132]\r\n52    Overload    1    Overload \"sname\" or \"file\"    [RFC2132]\r\n53    DHCP Msg Type    1    DHCP Message Type    [RFC2132]\r\n54    DHCP Server Id    4    DHCP Server Identification    [RFC2132]\r\n55    Parameter List    N    Parameter Request List    [RFC2132]\r\n56    DHCP Message    N    DHCP Error Message    [RFC2132]\r\n57    DHCP Max Msg Size    2    DHCP Maximum Message Size    [RFC2132]\r\n58    Renewal Time    4    DHCP Renewal (T1) Time    [RFC2132]\r\n59    Rebinding Time    4    DHCP Rebinding (T2) Time    [RFC2132]\r\n60    Class Id    N    Class Identifier    [RFC2132]\r\n61    Client Id    N    Client Identifier    [RFC2132]\r\n62    NetWare\/IP Domain    N    NetWare\/IP Domain Name    [RFC2242]\r\n63    NetWare\/IP Option    N    NetWare\/IP sub Options    [RFC2242]\r\n64    NIS-Domain-Name    N    NIS+ v3 Client Domain Name    [RFC2132]\r\n65    NIS-Server-Addr    N    NIS+ v3 Server Addresses    [RFC2132]\r\n66    Server-Name    N    TFTP Server Name    [RFC2132]\r\n67    Bootfile-Name    N    Boot File Name    [RFC2132]\r\n68    Home-Agent-Addrs    N    Home Agent Addresses    [RFC2132]\r\n69    SMTP-Server    N    Simple Mail Server Addresses    [RFC2132]\r\n70    POP3-Server    N    Post Office Server Addresses    [RFC2132]\r\n71    NNTP-Server    N    Network News Server Addresses    [RFC2132]\r\n72    WWW-Server    N    WWW Server Addresses    [RFC2132]\r\n73    Finger-Server    N    Finger Server Addresses    [RFC2132]\r\n74    IRC-Server    N    Chat Server Addresses    [RFC2132]\r\n75    StreetTalk-Server    N    StreetTalk Server Addresses    [RFC2132]\r\n76    STDA-Server    N    ST Directory Assist. Addresses    [RFC2132]\r\n77    User-Class    N    User Class Information    [RFC3004]\r\n78    Directory Agent    N    directory agent information    [RFC2610]\r\n79    Service Scope    N    service location agent scope    [RFC2610]\r\n80    Rapid Commit    0    Rapid Commit    [RFC4039]\r\n81    Client FQDN    N    Fully Qualified Domain Name    [RFC4702]\r\n82    Relay Agent Information    N    Relay Agent Information    [RFC3046]\r\n83    iSNS    N    Internet Storage Name Service    [RFC4174]\r\n84    REMOVED\/Unassigned              [RFC3679]\r\n85    NDS Servers    N    Novell Directory Services    [RFC2241]\r\n86    NDS Tree Name    N    Novell Directory Services    [RFC2241]\r\n87    NDS Context    N    Novell Directory Services    [RFC2241]\r\n88    BCMCS Controller Domain Name list              [RFC4280]\r\n89    BCMCS Controller IPv4 address option              [RFC4280]\r\n90    Authentication    N    Authentication    [RFC3118]\r\n91    client-last-transaction-time option              [RFC4388]\r\n92    associated-ip option              [RFC4388]\r\n93    Client System    N    Client System Architecture    [RFC4578]\r\n94    Client NDI    N    Client Network Device Interface    [RFC4578]\r\n95    LDAP    N    Lightweight Directory Access Protocol    [RFC3679]\r\n96    REMOVED\/Unassigned              [RFC3679]\r\n97    UUID\/GUID    N    UUID\/GUID-based Client Identifier    [RFC4578]\r\n98    User-Auth    N    Open Group's User Authentication    [RFC2485]\r\n99    GEOCONF_CIVIC              [RFC4776]\r\n100    PCode    N    IEEE 1003.1 TZ String    [RFC4833]\r\n101    TCode    N    Reference to the TZ Database    [RFC4833]\r\n102-107    REMOVED\/Unassigned              [RFC3679]\r\n108    REMOVED\/Unassigned              [RFC3679]\r\n109    Unassigned              [RFC3679]\r\n110    REMOVED\/Unassigned              [RFC3679]\r\n111    Unassigned              [RFC3679]\r\n112    Netinfo Address    N    NetInfo Parent Server Address    [RFC3679]\r\n113    Netinfo Tag    N    NetInfo Parent Server Tag    [RFC3679]\r\n114    URL    N    URL    [RFC3679]\r\n115    REMOVED\/Unassigned              [RFC3679]\r\n116    Auto-Config    N    DHCP Auto-Configuration    [RFC2563]\r\n117    Name Service Search    N    Name Service Search    [RFC2937]\r\n118    Subnet Selection Option    4    Subnet Selection Option    [RFC3011]\r\n119    Domain Search    N    DNS domain search list    [RFC3397]\r\n120    SIP Servers DHCP Option    N    SIP Servers DHCP Option    [RFC3361]\r\n121    Classless Static Route Option    N    Classless Static Route Option    [RFC3442]\r\n122    CCC    N    CableLabs Client Configuration    [RFC3495]\r\n123    GeoConf Option    16    GeoConf Option    [RFC6225]\r\n124    V-I Vendor Class         Vendor-Identifying Vendor Class    [RFC3925]\r\n125    V-I Vendor-Specific Information         Vendor-Identifying Vendor-Specific Information    [RFC3925]\r\n126    Removed\/Unassigned              [RFC3679]\r\n127    Removed\/Unassigned              [RFC3679]\r\n128    PXE - undefined (vendor specific)              [RFC4578]\r\n128    Etherboot signature. 6 bytes: E4:45:74:68:00:00               \r\n128    DOCSIS \"full security\" server IP address               \r\n128    TFTP Server IP address (for IP Phone software load)               \r\n129    PXE - undefined (vendor specific)              [RFC4578]\r\n129    Kernel options. Variable length string               \r\n129    Call Server IP address               \r\n130    PXE - undefined (vendor specific)              [RFC4578]\r\n130    Ethernet interface. Variable length string.               \r\n130    Discrimination string (to identify vendor)               \r\n131    PXE - undefined (vendor specific)              [RFC4578]\r\n131    Remote statistics server IP address               \r\n132    PXE - undefined (vendor specific)              [RFC4578]\r\n132    IEEE 802.1Q VLAN ID               \r\n133    PXE - undefined (vendor specific)              [RFC4578]\r\n133    IEEE 802.1D\/p Layer 2 Priority               \r\n134    PXE - undefined (vendor specific)              [RFC4578]\r\n134    Diffserv Code Point (DSCP) for VoIP signalling and media streams               \r\n135    PXE - undefined (vendor specific)              [RFC4578]\r\n135    HTTP Proxy for phone-specific applications               \r\n136    OPTION_PANA_AGENT              [RFC5192]\r\n137    OPTION_V4_LOST              [RFC5223]\r\n138    OPTION_CAPWAP_AC_V4    N    CAPWAP Access Controller addresses    [RFC5417]\r\n139    OPTION-IPv4_Address-MoS    N    a series of suboptions    [RFC5678]\r\n140    OPTION-IPv4_FQDN-MoS    N    a series of suboptions    [RFC5678]\r\n141    SIP UA Configuration Service Domains    N    List of domain names to search for SIP User Agent Configuration    [RFC6011]\r\n142    OPTION-IPv4_Address-ANDSF    N    ANDSF IPv4 Address Option for DHCPv4    [RFC6153]\r\n143    OPTION-IPv6_Address-ANDSF    N    ANDSF IPv6 Address Option for DHCPv6    [RFC6153]\r\n144    GeoLoc    16    Geospatial Location with Uncertainty    [RFC6225]\r\n145    FORCERENEW_NONCE_CAPABLE    1    Forcerenew Nonce Capable    [RFC-ietf-dhc-forcerenew-nonce-07]\r\n146-149    Unassigned              [RFC3942]\r\n150    TFTP server address              [RFC5859]\r\n150    Etherboot               \r\n150    GRUB configuration path name               \r\n151-174    Unassigned              [RFC3942]\r\n175    Etherboot (Tentatively Assigned - 2005-06-23)               \r\n176    IP Telephone (Tentatively Assigned - 2005-06-23)               \r\n177    Etherboot (Tentatively Assigned - 2005-06-23)               \r\n177    PacketCable and CableHome (replaced by 122)               \r\n178-207    Unassigned              [RFC3942]\r\n208    PXELINUX Magic    4    magic string = F1:00:74:7E    [RFC5071][Deprecated]\r\n209    Configuration File    N    Configuration file    [RFC5071]\r\n210    Path Prefix    N    Path Prefix Option    [RFC5071]\r\n211    Reboot Time    4    Reboot Time    [RFC5071]\r\n212    OPTION_6RD    18 + N    OPTION_6RD with N\/4 6rd BR addresses    [RFC5969]\r\n213    OPTION_V4_ACCESS_DOMAIN    N    Access Network Domain Name    [RFC5986]\r\n214-219    Unassigned               \r\n220    Subnet Allocation Option    N    Subnet Allocation Option    [draft-ietf-dhc-subnet-alloc-13]\r\n221    Virtual Subnet Selection (VSS) Option              [RFC6607]\r\n222-223    Unassigned              [RFC3942]\r\n224-254    Reserved (Private Use)               \r\n255    End    0    None    [RFC2132]<\/code><\/pre>\n<p>\u91cd\u542f DHCP Agent\uff0c\u8ba9\u865a\u62df\u673a\u91cd\u65b0\u83b7\u53d6 IP\uff0c\u7136\u540e\u4f7f\u7528 ifconfig \u67e5\u770b\u662f\u5426\u6b63\u786e\u914d\u7f6e mtu\u3002<\/p>\n<h1>\u4e94 \u603b\u7ed3<\/h1>\n<p>vxlan\u7f51\u7edc\u6307\u5b9a\u7684segment id \u5c31\u662fvxlan\u7684tunnel id\uff0clocal vlan\u53f7\u5219\u7531neutron\u4ee3\u7801\u6309\u5e8f\u751f\u6210\uff0ctunnel id \u4e0e local vlan \u7531br-tun\u6d41\u8868\u6765\u4fdd\u8bc1\u4e00\u4e00\u5bf9\u5e94\u3002<br \/>\n\u800c\u7531\u4e8ebr-tun\u7684port\u4e0etrunk0\u7684tunnel-bearing\u5b50\u63a5\u53e3\u76f8\u8fde\uff0ctunnel-bearing\u5b50\u63a5\u53e3\u4e5f\u5e26vlan id\uff0c\u8be5vlan id\u653e\u5728Delivery Header\u7684vlan id\u4e2d\uff0c\u662f\u4e3a\u4e86\u4e0e\u7ba1\u7406\u7f51\u7edc\u9694\u79bb\u3002<\/p>\n<p>local vlan \u4e0e \u5916\u90e8 vlan \u533a\u522b<br \/>\n\u4e24\u4e2aVM\u6240\u5c5esegment id \u4e00\u6837\uff0c\u4f4d\u4e8e\u4e0d\u540cserver\u4e0a\u65f6\uff0clocal vlan id \u4e0d\u4e00\u5b9a\u4e00\u6837\u3002local vlan\u53ea\u662f\u4f5c\u7528\u4e8e\u5f53\u524dserver\u4e0a\uff0c\u7528\u4e8e\u9694\u79bb\u8be5server\u4e0a\u7684\u5176\u4ed6VM\u3002<\/p>\n<p>br-tun\u4e2d\u6709\u5173GRE\/Vxlan\u7684port\u662f\u5982\u4f55\u751f\u6210\u7684\uff1f<br \/>\novs-agent\u542f\u52a8\u65f6\uff0c\u4f1a\u4e0a\u62a5\u81ea\u5df1\u7684tunnel local ip \u7ed9neutron server \uff0c\u7136\u540eneutron server \u4f1a\u53d1rpc\u6d88\u606f\u7ed9\u5176\u4ed6\u6240\u6709 ovs-agent \uff0c\u5728br-tun\u4e0a\u5efa\u7acb\u76f8\u5173\u8054\u7684port\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00 GRE 1.1 \u6982\u5ff5 GRE\u5168\u79f0\u662fGeneric Routing Encapsulation\uff0c\u662f\u4e00\u79cd\u534f\u8bae\u5c01 [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts\/8280"}],"collection":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8280"}],"version-history":[{"count":6,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts\/8280\/revisions"}],"predecessor-version":[{"id":10809,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts\/8280\/revisions\/10809"}],"wp:attachment":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}