{"id":7529,"date":"2022-10-08T20:09:42","date_gmt":"2022-10-08T12:09:42","guid":{"rendered":"https:\/\/egonlin.com\/?p=7529"},"modified":"2022-10-08T20:11:26","modified_gmt":"2022-10-08T12:11:26","slug":"flannel%e7%9a%84%e4%b8%a4%e7%a7%8d%e6%a8%a1%e5%bc%8f%e8%a7%a3%e6%9e%90%ef%bc%88vxlan%e3%80%81host-gw","status":"publish","type":"post","link":"https:\/\/egonlin.com\/?p=7529","title":{"rendered":"Flannel\u7684\u4e24\u79cd\u6a21\u5f0f\u89e3\u6790\uff08VXLAN\u3001host-gw)"},"content":{"rendered":"<p>Flannel\u7684\u4e24\u79cd\u6a21\u5f0f\u89e3\u6790\uff08VXLAN\u3001host-gw) <\/p>\n<h1>\u4e00\u3001VXLAN \u7b80\u4ecb<\/h1>\n<p>VXLAN (Virtual Extensible LAN)\u662f\u4e00\u79cd\u7f51\u7edc\u865a\u62df\u5316\u6280\u672f\uff0c\u5b83\u4f7f\u7528\u4e00\u79cd\u96a7\u9053\u534f\u8bae\uff0c\u5c06\u4e8c\u5c42\u4ee5\u592a\u7f51\u5e27\u5c01\u88c5\u5728\u56db\u5c42UDP\u62a5\u6587\u4e2d\uff0c\u901a\u8fc7\u4e09\u5c42\u7f51\u7edc\u4f20\u8f93\uff0c\u7ec4\u6210\u4e00\u4e2a\u865a\u62df\u5927\u4e8c\u5c42\u7f51\u7edc\u3002VXLAN\u7684\u62a5\u6587\u683c\u5f0f\u5982\u4e0b\uff1a<br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2022\/08\/image-1665229605582.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2022\/08\/image-1665229605582.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><br \/>\n\u4f7f\u7528VTEP\uff08VXLAN Tunnel Endpoint\uff09\u6765\u8fdb\u884c\u5c01\u5305\u548c\u89e3\u5305\uff0c\u5b83\u662fVXLAN\u96a7\u9053\u7684\u8d77\u70b9\u6216\u7ec8\u70b9\uff1a<\/p>\n<p>\u5728\u53d1\u9001\u7aef\uff0c\u6e90VTEP\u5c06\u539f\u59cb\u62a5\u6587\u5c01\u88c5\u6210VXLAN\u62a5\u6587\uff0c\u901a\u8fc7UDP\u53d1\u9001\u5230\u5bf9\u7aefVTEP\u3002<br \/>\n\u5728\u63a5\u6536\u7aef\uff0cVTEP\u5c06\u89e3\u5f00VXLAN\u62a5\u6587\uff0c\u5c06\u539f\u59cb\u76842\u5c42\u6570\u636e\u5e27\u8f6c\u53d1\u7ed9\u76ee\u7684\u7684\u63a5\u6536\u65b9\u3002<\/p>\n<p>VTEP\u53ef\u4ee5\u662f\u72ec\u7acb\u7684\u7f51\u7edc\u8bbe\u5907\uff0c\u4f8b\u5982\u4ea4\u6362\u673a\uff0c\u4e5f\u53ef\u4ee5\u662f\u90e8\u7f72\u5728\u670d\u52a1\u5668\u4e0a\u7684\u865a\u62df\u8bbe\u5907\u3002\u4f8b\u5982\u4f7f\u7528\u7f6e\u9876\u4ea4\u6362\u673a\uff08TOR\uff09\u4f5c\u4e3aVTEP\u65f6\uff0cVXLAN\u7684\u7f51\u7edc\u6a21\u578b\u5982\u4e0b\u56fe\uff1a<br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2022\/08\/image-1665229505387.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2022\/08\/image-1665229505387.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><br \/>\n\u4f46\u663e\u7136\uff0c\u5728flannel\u4e2d\uff0cVTEP\u7684\u80fd\u529b\u662f\u901a\u8fc7linux\u7684\u865a\u673a\u7f51\u7edc\u8bbe\u5907\u5b9e\u73b0\u7684\u3002\u5728VXLAN\u6a21\u5f0f\u4e0b\uff0cVTEP\u7684\u89d2\u8272\u7531 flannel.1 \u865a\u62df\u7f51\u5361\u5145\u5f53\u3002<\/p>\n<h1>\u4e8c\u3001VXLAN\u6a21\u5f0f<\/h1>\n<p>VXLAN\u662fFlannel\u9ed8\u8ba4\u548c\u63a8\u8350\u7684\u6a21\u5f0f\u3002\u5f53\u6211\u4eec\u4f7f\u7528\u9ed8\u8ba4\u914d\u7f6e\u5b89\u88c5Flannel\u65f6\uff0c\u5b83\u4f1a\u4e3a\u6bcf\u4e2a\u8282\u70b9\u5206\u914d\u4e00\u4e2a24\u4f4d\u5b50\u7f51\uff0c\u5e76\u5728\u6bcf\u4e2a\u8282\u70b9\u4e0a\u521b\u5efa\u4e24\u5f20\u865a\u673a\u7f51\u5361\uff1a cni0\u00a0\u548c flannel.1\u00a0\u3002 cni0\u00a0\u662f\u4e00\u4e2a\u7f51\u6865\u8bbe\u5907\uff0c\u7c7b\u4f3c\u4e8e docker0\u00a0\uff0c\u8282\u70b9\u4e0a\u6240\u6709\u7684Pod\u90fd\u901a\u8fc7veth pair\u7684\u5f62\u5f0f\u4e0e cni0\u00a0\u76f8\u8fde\u3002 flannel.1\u00a0\u5219\u662f\u4e00\u4e2aVXLAN\u7c7b\u578b\u7684\u8bbe\u5907\uff0c\u5145\u5f53VTEP\u7684\u89d2\u8272\uff0c\u5b9e\u73b0\u5bf9VXLAN\u62a5\u6587\u7684\u5c01\u5305\u89e3\u5305\u3002<\/p>\n<p>\u4ece\u5185\u68383.7\u7248\u672c\u5f00\u59cb\uff0cLinux\u5c31\u5f00\u59cb\u652f\u6301VXLAN\uff0c\u52303.12\u7248\u672c\uff0c\u652f\u6301\u5df2\u7ecf\u5b8c\u5907\u3002<\/p>\n<h1>\u4e09\u3001\u8282\u70b9\u5185\u901a\u4fe1<\/h1>\n<p>\u663e\u7136\uff0c\u8282\u70b9\u5185\u7684\u5bb9\u5668\u95f4\u901a\u4fe1\u901a\u8fc7 cni0 \u7f51\u6865\u5c31\u80fd\u5b8c\u6210\uff0c\u4e0d\u6d89\u53ca\u4efb\u4f55VXLAN\u62a5\u6587\u7684\u5c01\u5305\u89e3\u5305\u3002\u4f8b\u5982\u5728\u4e0b\u9762\u7684\u56fe\u4f8b\u4e2d\uff0cNode1\u7684\u5b50\u7f51\u4e3a10.244.0.1\/24\uff0c PodA 10.244.0.20 \u548c PodB 10.224.0.21\u901a\u8fc7 cni0 \u7f51\u6865\u5b9e\u73b0\u4e92\u901a\u3002<br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2022\/08\/image-1665229785035.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2022\/08\/image-1665229785035.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><\/p>\n<h1>\u56db\u3001\u8de8\u8282\u70b9\u901a\u4fe1<\/h1>\n<p>\u4e0b\u9762\u91cd\u70b9\u5206\u6790\u4e00\u4e0b\u8de8\u8282\u70b9\u7684\u5bb9\u5668\u901a\u4fe1\u8fc7\u7a0b\u3002\u5047\u8bbe\u6709\u4e24\u4e2a\u8282\u70b9Node1\u548cNode2\uff0c\u5176\u4e2dNode1\u7684PodA\u8981\u8ddfNode2\u7684PodB\u901a\u4fe1\uff0c\u5219\u5b83\u4eec\u4e4b\u95f4\u7684\u901a\u4fe1\u8fc7\u7a0b\u5982\u4e0b\u56fe\u6240\u793a\uff1a<br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2022\/08\/image-1665229856379.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2022\/08\/image-1665229856379.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><br \/>\n\u5927\u81f4\u6982\u62ec\u4e00\u4e0b\u6574\u4e2a\u8fc7\u7a0b\uff1a<\/p>\n<ul>\n<li>\u53d1\u9001\u7aef\uff1a\u5728PodA\u4e2d\u53d1\u8d77 ping 10.244.1.21\u00a0\uff0cICMP\u00a0\u62a5\u6587\u7ecf\u8fc7 cni0\u00a0\u7f51\u6865\u540e\u4ea4\u7531 flannel.1\u00a0\u8bbe\u5907\u5904\u7406\u3002 flannel.1\u00a0\u8bbe\u5907\u662f\u4e00\u4e2aVXLAN\u7c7b\u578b\u7684\u8bbe\u5907\uff0c\u8d1f\u8d23VXLAN\u5c01\u5305\u89e3\u5305\u3002 \u56e0\u6b64\uff0c\u5728\u53d1\u9001\u7aef\uff0cflannel.1\u00a0\u5c06\u539f\u59cbL2\u62a5\u6587\u5c01\u88c5\u6210VXLAN UDP\u62a5\u6587\uff0c\u7136\u540e\u4ece eth0\u00a0\u53d1\u9001\u3002<\/li>\n<li>\u63a5\u6536\u7aef\uff1aNode2\u6536\u5230UDP\u62a5\u6587\uff0c\u53d1\u73b0\u662f\u4e00\u4e2aVXLAN\u7c7b\u578b\u62a5\u6587\uff0c\u4ea4\u7531 flannel.1\u00a0\u8fdb\u884c\u89e3\u5305\u3002\u6839\u636e\u89e3\u5305\u540e\u5f97\u5230\u7684\u539f\u59cb\u62a5\u6587\u4e2d\u7684\u76ee\u7684IP\uff0c\u5c06\u539f\u59cb\u62a5\u6587\u7ecf\u7531 cni0\u00a0\u7f51\u6865\u53d1\u9001\u7ed9PodB\u3002<\/li>\n<\/ul>\n<h2>4.1 \u54ea\u4e9bIP\u8981\u4ea4\u7531 flannel.1\u00a0\u5904\u7406<\/h2>\n<p>flanneld\u00a0\u4ece etcd\u00a0\u4e2d\u53ef\u4ee5\u83b7\u53d6\u6240\u6709\u8282\u70b9\u7684\u5b50\u7f51\u60c5\u51b5\uff0c\u4ee5\u6b64\u4e3a\u4f9d\u636e\u4e3a\u5404\u8282\u70b9\u914d\u7f6e\u8def\u7531\uff0c\u5c06\u5c5e\u4e8e\u975e\u672c\u8282\u70b9\u7684\u5b50\u7f51IP\u90fd\u8def\u7531\u5230 flannel.1\u00a0\u5904\u7406\uff0c\u672c\u8282\u70b9\u7684\u5b50\u7f51\u8def\u7531\u5230 cni0\u00a0\u7f51\u6865\u5904\u7406\u3002<\/p>\n<pre><code>[root@Node1 ~]# ip r\n...\n10.244.0.0\/24 dev cni0 proto kernel scope link src 10.244.0.1 # Node1\u5b50\u7f51\u4e3a10.224.0.0\/24\uff0c \u672c\u673aPodIP\u90fd\u4ea4\u7531cni0\u5904\u7406\n10.244.1.0\/24 via 10.244.1.0 dev flannel.1 onlink # Node2\u5b50\u7f51\u4e3a10.224.1.0\/24\uff0cNode2\u7684PodID\u90fd\u4ea4\u7531flannel.1\u5904\u7406\n...<\/code><\/pre>\n<p>\u5982\u679c\u8282\u70b9\u4fe1\u606f\u6709\u53d8\u5316\uff0c flanneld\u00a0\u4e5f\u4f1a\u540c\u6b65\u7684\u5bf9\u8def\u7531\u4fe1\u606f\u505a\u4fee\u6539\u3002<\/p>\n<h2>4.2 flannel.1\u00a0\u7684\u5c01\u5305\u8fc7\u7a0b<\/h2>\n<p>VXLAN\u7684\u5c01\u5305\u662f\u5c06\u4e8c\u5c42\u4ee5\u592a\u7f51\u5e27\u5c01\u88c5\u5230\u56db\u5c42UDP\u62a5\u6587\u4e2d\u7684\u8fc7\u7a0b\u3002<\/p>\n<h2>4.3 \u539f\u59cbL2\u5e27<\/h2>\n<p>\u8981\u751f\u6210\u539f\u59cb\u7684L2\u5e27\uff0c flannel.1\u00a0\u9700\u8981\u5f97\u77e5\uff1a<\/p>\n<ul>\n<li>\u5185\u5c42\u6e90\/\u76ee\u7684IP\u5730\u5740<\/li>\n<li>\u5185\u5c42\u6e90\/\u76ee\u7684MAC\u5730\u5740<\/li>\n<\/ul>\n<p>\u5185\u5c42\u7684\u6e90\/\u76ee\u7684IP\u5730\u5740\u662f\u5df2\u77e5\u7684\uff0c\u5373\u4e3aPodA\/PodB\u7684PodIP\uff0c\u5728\u56fe\u4f8b\u4e2d\uff0c\u5206\u522b\u4e3a10.224.0.20\u548c10.224.1.20\u3002<br \/>\n\u5185\u5c42\u6e90\/\u76ee\u7684MAC\u5730\u5740\u8981\u7ed3\u5408\u8def\u7531\u8868\u548cARP\u8868\u6765\u83b7\u53d6\u3002\u6839\u636e\u8def\u7531\u8868\u2460\u5f97\u77e5\uff1a<\/p>\n<ol>\n<li>\u4e0b\u4e00\u8df3\u5730\u5740\u662f10.224.1.0\uff0c\u5173\u8054ARP\u8868\u2461\uff0c\u5f97\u5230\u4e0b\u4e00\u8df3\u7684MAC\u5730\u5740\uff0c\u4e5f\u5c31\u662f\u76ee\u7684MAC\u5730\u5740\uff1aNode2_flannel.1_MAC\uff1b<\/li>\n<li>\u62a5\u6587\u8981\u4ece flannel.1 \u865a\u62df\u7f51\u5361\u53d1\u51fa\uff0c\u56e0\u6b64\u6e90MAC\u5730\u5740\u4e3a flannel.1\u00a0\u7684MAC\u5730\u5740\u3002<\/li>\n<\/ol>\n<p>\u8981\u6ce8\u610f\u7684\u662f\uff0c\u8fd9\u91ccARP\u8868\u7684\u8868\u9879\u2461\u5e76\u4e0d\u662f\u901a\u8fc7ARP\u5b66\u4e60\u5f97\u5230\u7684\uff0c\u800c\u662f flanneld\u00a0\u9884\u5148\u4e3a\u6bcf\u4e2a\u8282\u70b9\u8bbe\u7f6e\u597d\u7684\uff0c\u7531 flanneld\u8d1f\u8d23\u7ef4\u62a4\uff0c\u6ca1\u6709\u8fc7\u671f\u65f6\u95f4\u3002<\/p>\n<pre><code># \u67e5\u770bARP\u8868\n[root@Node1 ~]# ip n | grep flannel.1\n10.244.1.0 dev flannel.1 lladdr ba:74:f9:db:69:c1 PERMANENT # PERMANENT \u8868\u793a\u6c38\u4e0d\u8fc7\u671f<\/code><\/pre>\n<p>\u6709\u4e86\u4e0a\u9762\u7684\u4fe1\u606f\uff0c flannel.1\u00a0\u5c31\u53ef\u4ee5\u6784\u9020\u51fa\u5185\u5c42\u76842\u5c42\u4ee5\u592a\u7f51\u5e27\uff1a<br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2022\/10\/image-1665230437525.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2022\/10\/image-1665230437525.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><\/p>\n<h2>4.4 \u5916\u5c42VXLAN UDP\u62a5\u6587<\/h2>\n<p>\u8981\u5c06\u539f\u59cbL2\u5e27\u5c01\u88c5\u6210VXLAN UDP\u62a5\u6587\uff0c flannel.1\u00a0\u8fd8\u9700\u8981\u586b\u5145\u6e90\/\u76ee\u7684IP\u5730\u5740\u3002\u524d\u9762\u63d0\u5230\uff0cVTEP\u662fVXLAN\u96a7\u9053\u7684\u8d77\u70b9\u6216\u7ec8\u70b9\u3002\u56e0\u6b64\uff0c\u76ee\u7684IP\u5730\u5740\u5373\u4e3a\u5bf9\u7aefVTEP\u7684IP\u5730\u5740\uff0c\u901a\u8fc7FDB\u8868\u83b7\u53d6\u3002\u5728FDB\u8868\u2462\u4e2d\uff0cdst\u5b57\u6bb5\u8868\u793a\u7684\u5373\u4e3aVXLAN\u96a7\u9053\u76ee\u7684\u7aef\u70b9\uff08\u5bf9\u7aefVTEP\uff09\u7684IP\u5730\u5740\uff0c\u4e5f\u5c31\u662fVXLAN DUP\u62a5\u6587\u7684\u76ee\u7684IP\u5730\u5740\u3002FDB\u8868\u4e5f\u662f\u7531 flanneld\u00a0\u5728\u6bcf\u4e2a\u8282\u70b9\u4e0a\u9884\u8bbe\u5e76\u8d1f\u8d23\u7ef4\u62a4\u7684\u3002<\/p>\n<pre><code>FDB\u8868\uff08Forwarding database\uff09\u7528\u4e8e\u4fdd\u5b58\u4e8c\u5c42\u8bbe\u5907\u4e2dMAC\u5730\u5740\u548c\u7aef\u53e3\u7684\u5173\u8054\u5173\u7cfb\uff0c\n\u5c31\u50cf\u4ea4\u6362\u673a\u4e2d\u7684MAC\u5730\u5740\u8868\u4e00\u6837\u3002\u5728\u4e8c\u5c42\u8bbe\u5907\u8f6c\u53d1\u4e8c\u5c42\u4ee5\u592a\u7f51\u5e27\u65f6\uff0c\u6839\u636eFDB\u8868\u9879\u6765\u627e\u5230\u5bf9\u5e94\u7684\u7aef\u53e3\u3002\n\u4f8b\u5982cni0\u7f51\u6865\u4e0a\u8fde\u63a5\u4e86\u5f88\u591aveth pair\u7f51\u5361\uff0c\u5f53\u7f51\u6865\u8981\u5c06\u4ee5\u592a\u7f51\u5e27\u8f6c\u53d1\u7ed9Pod\u65f6\uff0c\nFDB\u8868\u6839\u636ePod\u7f51\u5361\u7684MAC\u5730\u5740\u67e5\u8be2FDB\u8868\uff0c\u5c31\u80fd\u627e\u5230\u5176\u5bf9\u5e94\u7684veth\u7f51\u5361\uff0c\u4ece\u800c\u5b9e\u73b0\u8054\u901a\u3002<\/code><\/pre>\n<p>\u53ef\u4ee5\u4f7f\u7528 bridge fdb show \u67e5\u770bFDB\u8868\uff1a<\/p>\n<pre><code>[root@Node1 ~]# bridge fdb show | grep flannel.1\nba:74:f9:db:69:c1 dev flannel.1 dst 192.168.50.3 self permanent<\/code><\/pre>\n<p>\u6e90IP\u5730\u5740\u4fe1\u606f\u6765\u81ea\u4e8e flannel.1 \u7f51\u5361\u8bbe\u7f6e\u672c\u8eab\uff0c\u6839\u636e local 192.168.50.2 \u53ef\u4ee5\u5f97\u77e5\u6e90IP\u5730\u5740\u4e3a192.168.50.2\u3002<\/p>\n<pre><code>[root@Node1 ~]# ip -d a show flannel.1\n6: flannel.1: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1450 qdisc noqueue state UNKNOWN group default\n    link\/ether 32:02:78:2f:02:cb brd ff:ff:ff:ff:ff:ff promiscuity 0\n    vxlan id 1 local 192.168.50.2 dev eth0 srcport 0 0 dstport 8472 nolearning ageing 300 noudpcsum noudp6zerocsumtx noudp6zerocsumrx numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535\n    inet 10.244.0.0\/32 brd 10.244.0.0 scope global flannel.1\n       valid_lft forever preferred_lft forever\n    inet6 fe80::3002:78ff:fe2f:2cb\/64 scope link\n       valid_lft forever preferred_lft forever<\/code><\/pre>\n<p>\u81f3\u6b64\uff0c flannel.1 \u5df2\u7ecf\u5f97\u5230\u4e86\u6240\u6709\u5b8c\u6210VXLAN\u5c01\u5305\u6240\u9700\u7684\u4fe1\u606f\uff0c\u6700\u7ec8\u901a\u8fc7 eth0 \u53d1\u9001\u4e00\u4e2aVXLAN UDP\u62a5\u6587\uff1a<br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2022\/10\/image-1665230529769.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2022\/10\/image-1665230529769.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><br \/>\nFlannel\u7684VXLAN\u6a21\u5f0f\u901a\u8fc7\u9759\u6001\u914d\u7f6e\u8def\u7531\u8868\uff0cARP\u8868\u548cFDB\u8868\u7684\u4fe1\u606f\uff0c\u7ed3\u5408VXLAN\u865a\u62df\u7f51\u5361 flannel.1 \uff0c\u5b9e\u73b0\u4e86\u4e00\u4e2a\u6240\u6709Pod\u540c\u5c5e\u4e00\u4e2a\u5927\u4e8c\u5c42\u7f51\u7edc\u7684VXLAN\u7f51\u7edc\u6a21\u578b\u3002<\/p>\n<h1>\u4e94\u3001host-gw\u6a21\u5f0f<\/h1>\n<p>\u5728\u4e0a\u8ff0\u7684VXLAN\u7684\u793a\u4f8b\u4e2d\uff0cNode1\u548cNode2\u5176\u5b9e\u662f\u540c\u4e00\u5bbf\u4e3b\u673a\u4e2d\u7684\u4e24\u53f0\u4f7f\u7528\u6865\u63a5\u6a21\u5f0f\u7684\u865a\u673a\uff0c\u4e5f\u5c31\u662f\u8bf4\u5b83\u4eec\u5728\u4e00\u4e2a\u4e8c\u5c42\u7f51\u7edc\u4e2d\u3002\u5728\u4e8c\u5c42\u7f51\u7edc\u4e92\u901a\u7684\u60c5\u51b5\u4e0b\uff0c\u76f4\u63a5\u914d\u7f6e\u8282\u70b9\u7684\u4e09\u5c42\u8def\u7531\u5373\u53ef\u4e92\u901a\uff0c\u4e0d\u9700\u8981\u4f7f\u7528VXLAN\u96a7\u9053\u3002\u8981\u4f7f\u7528host-gw\u6a21\u5f0f\uff0c\u9700\u8981\u4fee\u6539 ConfigMap kube-flannel-cfg\u00a0\uff0c\u5c06 Backend.Type\u00a0\u4ecevxlan\u6539\u4e3ahost-gw\uff0c\u7136\u540e\u91cd\u542f\u6240\u6709kube-flannel Pod\u5373\u53ef\uff1a<\/p>\n<pre><code>...\n  net-conf.json: |\n    {\n      &quot;Network&quot;: &quot;10.244.0.0\/16&quot;,\n      &quot;Backend&quot;: {\n        &quot;Type&quot;: &quot;host-gw&quot; \/\/ &lt;- \u6539\u6210host-gw\n      }\n    }\n ...<\/code><\/pre>\n<p>host-gw\u6a21\u5f0f\u4e0b\u7684\u901a\u4fe1\u8fc7\u7a0b\u5982\u4e0b\u56fe\u6240\u793a\uff1a<br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2022\/10\/image-1665230595509.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2022\/10\/image-1665230595509.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"file\" \/><\/div><br \/>\n\u5728host-gw\u6a21\u5f0f\u4e0b\uff0c\u7531\u4e8e\u4e0d\u6d89\u53caVXLAN\u7684\u5c01\u5305\u89e3\u5305\uff0c\u4e0d\u518d\u9700\u8981flannel.1\u865a\u673a\u7f51\u5361\u3002 flanneld \u8d1f\u8d23\u4e3a\u5404\u8282\u70b9\u8bbe\u7f6e\u8def\u7531 \uff0c\u5c06\u5bf9\u5e94\u8282\u70b9Pod\u5b50\u7f51\u7684\u4e0b\u4e00\u8df3\u5730\u5740\u6307\u5411\u5bf9\u5e94\u7684\u8282\u70b9\u7684IP\uff0c\u5982\u56fe\u4e2d\u8def\u7531\u8868\u2460\u6240\u793a\u3002<\/p>\n<pre><code>[root@Node1 ~]# ip r\n...\n10.244.0.0\/24 dev cni0 proto kernel scope link src 10.244.0.1\n10.244.1.0\/24 via 192.168.50.3 dev eth0 # Node2\u5b50\u7f51\u7684\u4e0b\u4e00\u8df3\u5730\u5740\u6307\u5411Node2\u7684public ip\u3002\n...<\/code><\/pre>\n<p>\u7531\u4e8e\u6ca1\u6709\u5c01\u5305\u89e3\u5305\u5e26\u6765\u7684\u6d88\u8017\uff0chost-gw\u662f\u6027\u80fd\u6700\u597d\u7684\u3002\u4e0d\u8fc7\u4e00\u822c\u5728\u4e91\u73af\u5883\u4e0b\uff0c\u90fd\u4e0d\u652f\u6301\u4f7f\u7528host-gw\u7684\u6a21\u5f0f\uff0c\u5728\u79c1\u6709\u5316\u90e8\u7f72\u7684\u573a\u666f\u4e0b\uff0c\u53ef\u4ee5\u8003\u8651\u3002<\/p>\n<p>\u53c2\u8003<br \/>\n<a href=\"https:\/\/link.juejin.cn\/?target=https%3A%2F%2Fsupport.huawei.com%2Fenterprise%2Fen%2Fdoc%2FEDOC1100086966%23EN-US_TOPIC_0259820545\" title=\"What is VXLAN\">What is VXLAN<\/a><br \/>\n<a href=\"https:\/\/juejin.cn\/post\/6986495816949039141\" title=\"\u6df1\u5165\u7406\u89e3CNI\">\u6df1\u5165\u7406\u89e3CNI<\/a><br \/>\n<a href=\"https:\/\/link.juejin.cn\/?target=https%3A%2F%2Fman7.org%2Flinux%2Fman-pages%2Fman8%2Fbridge.8.html\" title=\"bridge man page\">bridge man page<\/a><br \/>\n<a href=\"https:\/\/link.juejin.cn\/?target=https%3A%2F%2Fman7.org%2Flinux%2Fman-pages%2Fman8%2Fip-route.8.html\" title=\"ip-route man page\">ip-route man page<\/a><br \/>\n<a href=\"https:\/\/link.juejin.cn\/?target=https%3A%2F%2Fman7.org%2Flinux%2Fman-pages%2Fman8%2Fip-neighbour.8.html\" title=\"ip-neighbour man page\">ip-neighbour man page<\/a><br \/>\n<a href=\"https:\/\/link.juejin.cn\/?target=https%3A%2F%2Fzhuanlan.zhihu.com%2Fp%2F306623547\" title=\"flannel\u539f\u7406\u4e4bvxlan\u6a21\u5f0f\">flannel\u539f\u7406\u4e4bvxlan\u6a21\u5f0f<\/a><br \/>\nvxlan\u6a21\u5f0f\u6df1\u5165\u7406\u89e3\u63a8\u8350\u9605\u8bfb\uff1a<a href=\"https:\/\/support.huawei.com\/enterprise\/en\/doc\/EDOC1100086966#EN-US_TOPIC_0259820545\">https:\/\/support.huawei.com\/enterprise\/en\/doc\/EDOC1100086966#EN-US_TOPIC_0259820545<\/a><\/p>\n<p>\u539f\u6587\u94fe\u63a5\uff1a<a href=\"https:\/\/juejin.cn\/post\/6994825163757846565\">https:\/\/juejin.cn\/post\/6994825163757846565<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Flannel\u7684\u4e24\u79cd\u6a21\u5f0f\u89e3\u6790\uff08VXLAN\u3001host-gw) \u4e00\u3001VXLAN \u7b80\u4ecb VXLAN (Virtual [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[419,1],"tags":[],"_links":{"self":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts\/7529"}],"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=7529"}],"version-history":[{"count":0,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts\/7529\/revisions"}],"wp:attachment":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7529"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7529"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7529"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}