{"id":163,"date":"2025-09-05T10:19:46","date_gmt":"2025-09-05T02:19:46","guid":{"rendered":"https:\/\/www.mooloco.com\/?p=163"},"modified":"2025-12-09T11:21:04","modified_gmt":"2025-12-09T03:21:04","slug":"macvlan","status":"publish","type":"post","link":"https:\/\/www.mooloco.com\/?p=163","title":{"rendered":"MacVLAN"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>Linux \u5185\u6838\u539f\u751f\u652f\u6301 Macvlan<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Macvlan \u662f Linux \u5185\u6838\u63d0\u4f9b\u7684\u4e00\u79cd\u7f51\u7edc\u865a\u62df\u5316\u6280\u672f\uff0c\u5b83\u5141\u8bb8\u5728\u540c\u4e00\u4e2a\u7269\u7406\u7f51\u5361\u4e0a\u521b\u5efa\u591a\u4e2a\u865a\u62df\u7f51\u7edc\u63a5\u53e3\uff0c\u6bcf\u4e2a\u865a\u62df\u63a5\u53e3\u53ef\u4ee5\u6709\u81ea\u5df1\u7684 MAC \u5730\u5740\u3002\u8fd9\u6837\u505a\u7684\u597d\u5904\u662f\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6bcf\u4e2a\u865a\u62df\u63a5\u53e3\u53ef\u4ee5\u50cf\u72ec\u7acb\u7f51\u5361\u4e00\u6837\u76f4\u63a5\u5728\u4e8c\u5c42\u7f51\u7edc\u901a\u4fe1\u3002<\/li>\n\n\n\n<li>\u53ef\u4ee5\u7528\u6765\u9694\u79bb\u6d41\u91cf\u3001\u521b\u5efa\u5bb9\u5668\u7f51\u7edc\uff08Docker\u3001LXC \u7b49\u5e38\u7528\uff09\u3002<\/li>\n\n\n\n<li>\u6027\u80fd\u63a5\u8fd1\u539f\u751f\u7f51\u5361\uff0c\u56e0\u4e3a\u5927\u90e8\u5206\u6d41\u91cf\u76f4\u63a5\u5728\u5185\u6838\u5c42\u8f6c\u53d1\uff0c\u4e0d\u7ecf\u8fc7\u989d\u5916\u7684\u7528\u6237\u6001\u5904\u7406\u3002<\/li>\n\n\n\n<li>Macvlan \u652f\u6301\u4ece <strong>Linux \u5185\u6838 2.6.24<\/strong> \u5f00\u59cb\u5f15\u5165\u3002<\/li>\n\n\n\n<li>\u73b0\u4ee3 Linux \u53d1\u884c\u7248\uff08\u5982 CentOS 7\/8\u3001Ubuntu 20.04\/22.04\u3001Debian 12 \u7b49\uff09\u5185\u6838\u90fd\u539f\u751f\u96c6\u6210\u4e86 macvlan \u9a71\u52a8\u3002<\/li>\n\n\n\n<li>\u6a21\u5757\u540d\u4e3a <code>macvlan<\/code>\uff0c\u901a\u5e38\u662f\u5185\u7f6e\u7684\u6216\u53ef\u4ee5\u901a\u8fc7 <code>modprobe macvlan<\/code> \u52a0\u8f7d\u3002<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>lsmod | grep macvlan\n# \u6216\u8005\nmodprobe macvlan \n#\u52a0\u8f7dmacvlan\u6a21\u5757<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">lsmod <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\"> grep macvlan<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># \u6216\u8005<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">modprobe macvlan <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">#\u52a0\u8f7dmacvlan\u6a21\u5757<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_75 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.mooloco.com\/?p=163\/#Macvlan_%E7%9A%84%E5%9B%9B%E4%B8%AA%E6%A8%A1%E5%BC%8F\" >Macvlan \u7684\u56db\u4e2a\u6a21\u5f0f<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.mooloco.com\/?p=163\/#private_%E6%A8%A1%E5%BC%8F\" >private \u6a21\u5f0f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.mooloco.com\/?p=163\/#vepa_%E6%A8%A1%E5%BC%8F_Virtual_Ethernet_Port_Aggregator\" >vepa \u6a21\u5f0f (Virtual Ethernet Port Aggregator)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.mooloco.com\/?p=163\/#bridge_%E6%A8%A1%E5%BC%8F\" >bridge \u6a21\u5f0f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.mooloco.com\/?p=163\/#passthru_%E6%A8%A1%E5%BC%8F\" >passthru \u6a21\u5f0f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.mooloco.com\/?p=163\/#%E5%B0%8F%E7%BB%93\" >\u5c0f\u7ed3<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.mooloco.com\/?p=163\/#%E5%88%9B%E5%BB%BAMacVLAN\" >\u521b\u5efaMacVLAN<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.mooloco.com\/?p=163\/#%E4%B8%B4%E6%97%B6%E9%85%8D%E7%BD%AE%EF%BC%88%E4%BD%BF%E7%94%A8_ip_%E5%91%BD%E4%BB%A4%EF%BC%89\" >\u4e34\u65f6\u914d\u7f6e\uff08\u4f7f\u7528 ip \u547d\u4ee4\uff09<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.mooloco.com\/?p=163\/#%E6%B0%B8%E4%B9%85%E9%85%8D%E7%BD%AE%EF%BC%88%E5%BC%80%E6%9C%BA%E8%87%AA%E5%8A%A8%E7%94%9F%E6%95%88%EF%BC%89\" >\u6c38\u4e45\u914d\u7f6e\uff08\u5f00\u673a\u81ea\u52a8\u751f\u6548\uff09<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.mooloco.com\/?p=163\/#%E7%94%A8_nmcli_%E5%88%9B%E5%BB%BA_macvlan_%E6%8E%A5%E5%8F%A3\" >\u7528 nmcli \u521b\u5efa macvlan \u63a5\u53e3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.mooloco.com\/?p=163\/#RHEL%E9%80%9A%E8%BF%87%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%88%9B%E5%BB%BA\" >RHEL\u901a\u8fc7\u914d\u7f6e\u6587\u4ef6\u521b\u5efa<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.mooloco.com\/?p=163\/#%E5%B0%8F%E7%BB%93-2\" >\u5c0f\u7ed3<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.mooloco.com\/?p=163\/#%E8%84%9A%E6%9C%AC%EF%BC%9A%E5%88%9B%E5%BB%BAMacVLAN%E7%9A%84%E4%BA%A4%E4%BA%92%E5%BC%8F%E6%93%8D%E4%BD%9C\" >\u811a\u672c\uff1a\u521b\u5efaMacVLAN\u7684\u4ea4\u4e92\u5f0f\u64cd\u4f5c<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Macvlan_%E7%9A%84%E5%9B%9B%E4%B8%AA%E6%A8%A1%E5%BC%8F\"><\/span>Macvlan \u7684\u56db\u4e2a\u6a21\u5f0f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"private_%E6%A8%A1%E5%BC%8F\"><\/span>private \u6a21\u5f0f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u63cf\u8ff0<\/strong>\uff1a\u540c\u4e00\u7269\u7406\u7f51\u5361\u4e0a\u7684 Macvlan \u63a5\u53e3\u5f7c\u6b64\u9694\u79bb\uff0c\u4e0d\u80fd\u76f4\u63a5\u4e92\u76f8\u901a\u4fe1\uff0c\u4f46\u53ef\u4ee5\u548c\u5916\u90e8\u7f51\u7edc\u901a\u4fe1\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u7279\u70b9<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u63a5\u53e3\u4e4b\u95f4\u5b8c\u5168\u9694\u79bb\u3002<\/li>\n\n\n\n<li>\u9002\u5408\u5bb9\u5668\u4e4b\u95f4\u9700\u8981\u72ec\u7acb IP\uff0c\u4f46\u4e0d\u4e92\u901a\u7684\u573a\u666f\u3002<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>&lt;pre class=\"wp-block-syntaxhighlighter-code\">macvlan0   macvlan1   macvlan2&lt;br>   |          |          |&lt;br>   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500> \u5916\u90e8\u7f51\u7edc&lt;br>&lt;\/pre><\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9FF\">pre class<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">wp-block-syntaxhighlighter-code<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\">macvlan0   macvlan1   macvlan2<\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9FF\">br<\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\">          <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\">          <\/span><span style=\"color: #81A1C1\">|&lt;<\/span><span style=\"color: #D8DEE9FF\">br<\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\">   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\"> \u5916\u90e8\u7f51\u7edc<\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9FF\">br<\/span><span style=\"color: #81A1C1\">&gt;&lt;\/<\/span><span style=\"color: #D8DEE9FF\">pre<\/span><span style=\"color: #81A1C1\">&gt;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"vepa_%E6%A8%A1%E5%BC%8F_Virtual_Ethernet_Port_Aggregator\"><\/span>vepa \u6a21\u5f0f (Virtual Ethernet Port Aggregator)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u63cf\u8ff0<\/strong>\uff1a\u540c\u4e00\u7269\u7406\u7f51\u5361\u4e0a\u7684\u63a5\u53e3\u901a\u4fe1\u5fc5\u987b\u901a\u8fc7\u5916\u90e8\u4ea4\u6362\u673a\u8f6c\u53d1\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u7279\u70b9<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5185\u90e8\u63a5\u53e3\u4e0d\u80fd\u76f4\u63a5\u4e92\u901a\u3002<\/li>\n\n\n\n<li>\u9002\u5408\u4f01\u4e1a\u4ea4\u6362\u673a\u73af\u5883\uff0c\u901a\u8fc7\u4ea4\u6362\u673a\u7edf\u4e00\u8f6c\u53d1\u6d41\u91cf<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>macvlan0   macvlan1\n   |          |\n   \u2514\u2500\u2500\u2500> \u4ea4\u6362\u673a &lt;\u2500\u2500\u2500\u2518<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">macvlan0   macvlan1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\">          <\/span><span style=\"color: #81A1C1\">|<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">   \u2514\u2500\u2500\u2500<\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\"> \u4ea4\u6362\u673a <\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9FF\">\u2500\u2500\u2500\u2518<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"bridge_%E6%A8%A1%E5%BC%8F\"><\/span>bridge \u6a21\u5f0f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u63cf\u8ff0<\/strong>\uff1a\u540c\u4e00\u7269\u7406\u7f51\u5361\u4e0a\u7684 Macvlan \u63a5\u53e3\u53ef\u4ee5\u4e92\u76f8\u901a\u4fe1\uff0c\u4e5f\u80fd\u8bbf\u95ee\u5916\u90e8\u7f51\u7edc\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u7279\u70b9<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5185\u90e8\u63a5\u53e3\u4e92\u901a\u3002<\/li>\n\n\n\n<li>\u6700\u5e38\u7528\u6a21\u5f0f\uff0c\u5bb9\u5668\u4e92\u901a\u548c\u5916\u90e8\u8bbf\u95ee\u90fd\u65b9\u4fbf\u3002<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>macvlan0 &lt;--> macvlan1 &lt;--> macvlan2\n       \\                \/\n        ---> \u5916\u90e8\u7f51\u7edc &lt;---<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">macvlan0 <\/span><span style=\"color: #81A1C1\">&lt;--&gt;<\/span><span style=\"color: #D8DEE9FF\"> macvlan1 <\/span><span style=\"color: #81A1C1\">&lt;--&gt;<\/span><span style=\"color: #D8DEE9FF\"> macvlan2<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">       \\                <\/span><span style=\"color: #81A1C1\">\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">--<\/span><span style=\"color: #8FBCBB\">-&gt;<\/span><span style=\"color: #D8DEE9FF\"> \u5916\u90e8\u7f51\u7edc <\/span><span style=\"color: #81A1C1\">&lt;---<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"passthru_%E6%A8%A1%E5%BC%8F\"><\/span>passthru \u6a21\u5f0f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u63cf\u8ff0<\/strong>\uff1a\u6bcf\u4e2a Macvlan \u63a5\u53e3\u72ec\u5360\u7269\u7406\u7f51\u5361\uff0c\u53ea\u6709\u4e00\u4e2a\u63a5\u53e3\u53ef\u4ee5\u4f7f\u7528\u7269\u7406\u7f51\u5361\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u7279\u70b9<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u9ad8\u6027\u80fd\uff0c\u7c7b\u4f3c SR-IOV\u3002<\/li>\n\n\n\n<li>\u4e00\u4e2a\u7269\u7406\u7f51\u5361\u53ea\u80fd\u7ed1\u5b9a\u4e00\u4e2a passthru \u63a5\u53e3\u3002<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>&#91;eth0&#93; ---> macvlan0 (\u72ec\u5360)<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">eth0<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">--<\/span><span style=\"color: #8FBCBB\">-&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">macvlan0<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">\u72ec\u5360<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%B0%8F%E7%BB%93\"><\/span>\u5c0f\u7ed3<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u6a21\u5f0f<\/th><th>\u5185\u90e8\u63a5\u53e3\u4e92\u901a<\/th><th>\u5916\u90e8\u7f51\u7edc\u8bbf\u95ee<\/th><th>\u5178\u578b\u5e94\u7528<\/th><\/tr><\/thead><tbody><tr><td>private<\/td><td>\u274c<\/td><td>\u2705<\/td><td>\u5bb9\u5668\u9694\u79bb<\/td><\/tr><tr><td>vepa<\/td><td>\u274c<\/td><td>\u2705<\/td><td>\u4f01\u4e1a\u4ea4\u6362\u673a<\/td><\/tr><tr><td>bridge<\/td><td>\u2705<\/td><td>\u2705<\/td><td>\u5bb9\u5668\u4e92\u901a<\/td><\/tr><tr><td>passthru<\/td><td>\u274c<\/td><td>\u2705<\/td><td>\u9ad8\u6027\u80fd\u76f4\u901a<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%88%9B%E5%BB%BAMacVLAN\"><\/span>\u521b\u5efaMacVLAN<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u6ce8\u610f\uff1a<br><code>nmcli<\/code> \u521b\u5efa\u7684 macvlan \u63a5\u53e3\u4f1a\u88ab NetworkManager \u63a5\u7ba1\uff08\u6c38\u4e45\u751f\u6548\uff09<br>\u548c\u7528 <code>ip link<\/code> \u4e34\u65f6\u521b\u5efa\u7684\u63a5\u53e3\u662f\u4e24\u5957\u673a\u5236\uff08\u4e34\u65f6\u751f\u6548\uff09<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E4%B8%B4%E6%97%B6%E9%85%8D%E7%BD%AE%EF%BC%88%E4%BD%BF%E7%94%A8_ip_%E5%91%BD%E4%BB%A4%EF%BC%89\"><\/span>\u4e34\u65f6\u914d\u7f6e\uff08\u4f7f\u7528 <code>ip<\/code> \u547d\u4ee4\uff09<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5047\u8bbe\u7269\u7406\u7f51\u5361\u662f <code>eth0<\/code>\uff0c\u6211\u4eec\u5148\u521b\u5efa\u4e00\u4e2a macvlan \u63a5\u53e3\uff0c\u518d\u7ed9\u5b83\u5206\u914d IP\uff1a<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># \u521b\u5efa macvlan \u63a5\u53e3\nip link add link eth0 name macvlan0 type macvlan mode bridge\n# \u542f\u52a8\u63a5\u53e3\nip link set macvlan0 up\n# \u5206\u914d IP \u5730\u5740\nip addr add 192.168.1.198\/24 dev macvlan0\n# \u8bbe\u7f6e\u9ed8\u8ba4\u7f51\u5173\uff08\u5982\u9700\u8981\uff09\nip route add default via 192.168.1.1 dev macvlan0<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\"># \u521b\u5efa macvlan \u63a5\u53e3<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">ip link add link eth0 name macvlan0 type macvlan mode bridge<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># \u542f\u52a8\u63a5\u53e3<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">ip link set macvlan0 up<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># \u5206\u914d IP \u5730\u5740<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">ip addr add <\/span><span style=\"color: #B48EAD\">192.168<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">1<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">198<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> dev macvlan0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># \u8bbe\u7f6e\u9ed8\u8ba4\u7f51\u5173\uff08\u5982\u9700\u8981\uff09<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">ip route add <\/span><span style=\"color: #81A1C1\">default<\/span><span style=\"color: #D8DEE9FF\"> via <\/span><span style=\"color: #B48EAD\">192.168<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">1<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">1<\/span><span style=\"color: #D8DEE9FF\"> dev macvlan0<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u6837 <code>macvlan0<\/code> \u5c31\u6709\u4e86 IP\uff0c\u53ef\u4ee5 <code>ping<\/code> \u7f51\u5173\u6216\u5916\u7f51\u4e86\u3002<br>\u26a0\ufe0f \u6ce8\u610f\uff1a\u5982\u679c\u4f60\u7ed9\u7269\u7406\u7f51\u5361 <code>eth0<\/code> \u548c <code>macvlan0<\/code> \u914d\u7f6e\u4e86\u540c\u4e00\u7f51\u6bb5\u7684 IP\uff0c\u5b83\u4eec\u4e4b\u95f4\u53ef\u80fd\u65e0\u6cd5\u76f4\u63a5\u4e92\u901a\uff08\u8fd9\u662f macvlan \u7684\u7279\u6027\uff09\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%B0%B8%E4%B9%85%E9%85%8D%E7%BD%AE%EF%BC%88%E5%BC%80%E6%9C%BA%E8%87%AA%E5%8A%A8%E7%94%9F%E6%95%88%EF%BC%89\"><\/span>\u6c38\u4e45\u914d\u7f6e\uff08\u5f00\u673a\u81ea\u52a8\u751f\u6548\uff09<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E7%94%A8_nmcli_%E5%88%9B%E5%BB%BA_macvlan_%E6%8E%A5%E5%8F%A3\"><\/span>\u7528 <code>nmcli<\/code> \u521b\u5efa macvlan \u63a5\u53e3<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u6bd4\u5982\u5728\u7269\u7406\u7f51\u5361 <code>eth0<\/code> \u4e0a\u521b\u5efa\u4e00\u4e2a macvlan \u63a5\u53e3 <code>macvlan0<\/code>\uff1a<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>nmcli connection add type macvlan \\\n    ifname macvlan0 \\\n    dev eth0 \\\n    mode bridge \\\n    ip4 192.168.1.100\/24 \\\n    gw4 192.168.1.1\nnmcli connection up macvlan0\n#\u542f\u7528\u63a5\u53e3<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">nmcli connection add type macvlan \\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    ifname macvlan0 \\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    dev eth0 \\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    mode bridge \\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    ip4 <\/span><span style=\"color: #B48EAD\">192.168<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">1<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">100<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> \\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    gw4 <\/span><span style=\"color: #B48EAD\">192.168<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">1<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">nmcli connection up macvlan0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">#\u542f\u7528\u63a5\u53e3<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u53c2\u6570\u8bf4\u660e\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>ifname macvlan0<\/code> \u2192 \u65b0\u63a5\u53e3\u540d<\/li>\n\n\n\n<li><code>dev eth0<\/code> \u2192 \u7ed1\u5b9a\u7684\u7269\u7406\u7f51\u5361<\/li>\n\n\n\n<li><code>mode bridge<\/code> \u2192 macvlan \u6a21\u5f0f\uff08\u53ef\u9009\uff1a<code>private<\/code>\u3001<code>vepa<\/code>\u3001<code>bridge<\/code>\u3001<code>passthru<\/code>\uff09<\/li>\n\n\n\n<li><code>ip4<\/code> \u2192 IPv4 \u5730\u5740\u548c\u63a9\u7801<\/li>\n\n\n\n<li><code>gw4<\/code> \u2192 \u7f51\u5173<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u6837 <code>macvlan0<\/code> \u5c31\u5e26 IP \u4e0a\u7ebf\u4e86\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u56e0\u4e3a <code>nmcli<\/code> \u914d\u7f6e\u4f1a\u5199\u5165 NetworkManager \u7684\u914d\u7f6e\u76ee\u5f55\uff08\u901a\u5e38 <code>\/etc\/NetworkManager\/system-connections\/<\/code>\uff09\uff0c\u6240\u4ee5\u91cd\u542f\u540e\u63a5\u53e3\u4f9d\u7136\u5b58\u5728\uff0c\u4e0d\u9700\u8981\u989d\u5916\u64cd\u4f5c\u3002<\/strong><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"RHEL%E9%80%9A%E8%BF%87%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%88%9B%E5%BB%BA\"><\/span>RHEL\u901a\u8fc7\u914d\u7f6e\u6587\u4ef6\u521b\u5efa<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u521b\u5efa\u6587\u4ef6 <code>\/etc\/sysconfig\/network-scripts\/ifcfg-macvlan0<\/code><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>DEVICE=macvlan0\nDEVICETYPE=Macvlan\nPHYSDEV=eth0\nONBOOT=yes\nBOOTPROTO=static\nIPADDR=192.168.1.100\nPREFIX=24\nGATEWAY=192.168.1.1\nMACVLAN_MODE=bridge<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">DEVICE<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">macvlan0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">DEVICETYPE<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #8FBCBB\">Macvlan<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">PHYSDEV<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">eth0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">ONBOOT<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">yes<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">BOOTPROTO<\/span><span style=\"color: #81A1C1\">=static<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">IPADDR<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">192.168<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">1<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">100<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">PREFIX<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">24<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">GATEWAY<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">192.168<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">1<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">MACVLAN_MODE<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">bridge<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u7136\u540e\u91cd\u542f\u7f51\u7edc\uff1a<code>systemctl restart network<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%B0%8F%E7%BB%93-2\"><\/span>\u5c0f\u7ed3<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>ip link add<\/code> \u2192 \u4e34\u65f6\u63a5\u53e3\uff08\u91cd\u542f\u540e\u6d88\u5931\uff09\u3002<\/li>\n\n\n\n<li><code>nmcli<\/code> \u2192 \u6c38\u4e45\u63a5\u53e3\uff08\u7531 NetworkManager \u7ba1\u7406\uff09\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E8%84%9A%E6%9C%AC%EF%BC%9A%E5%88%9B%E5%BB%BAMacVLAN%E7%9A%84%E4%BA%A4%E4%BA%92%E5%BC%8F%E6%93%8D%E4%BD%9C\"><\/span>\u811a\u672c\uff1a\u521b\u5efaMacVLAN\u7684\u4ea4\u4e92\u5f0f\u64cd\u4f5c<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>#!\/bin\/bash\n# CentOS7 Macvlan \u7ba1\u7406\u811a\u672c\n# \u81ea\u52a8\u52a0\u8f7d macvlan \u6a21\u5757\necho \">>> \u68c0\u67e5 macvlan \u6a21\u5757...\"\nif ! lsmod | grep -q macvlan; then\n    echo \"\u672a\u52a0\u8f7d macvlan \u6a21\u5757\uff0c\u6b63\u5728\u52a0\u8f7d...\"\n    modprobe macvlan\n    if &#91; $? -eq 0 &#93;; then\n        echo \"macvlan \u6a21\u5757\u5df2\u6210\u529f\u52a0\u8f7d\"\n    else\n        echo \"\u52a0\u8f7d macvlan \u6a21\u5757\u5931\u8d25\uff0c\u8bf7\u68c0\u67e5\u5185\u6838\u662f\u5426\u652f\u6301\"\n        exit 1\n    fi\nelse\n    echo \"macvlan \u6a21\u5757\u5df2\u52a0\u8f7d\"\nfi\n# \u6ce8\u610f\u4e8b\u9879\ncat &lt;&lt;EOF\n================ \u6ce8\u610f\u4e8b\u9879 ================\n1. Macvlan \u63a5\u53e3\u4e0e\u5bbf\u4e3b\u673a\u9ed8\u8ba4\u4e0d\u80fd\u4e92\u901a\n2. \u8bf7\u786e\u4fdd\u76ee\u6807\u7269\u7406\u7f51\u5361\u5df2\u8fde\u63a5\u7f51\u7edc\n3. DNS \u9ed8\u8ba4\u4e3a 223.5.5.5\n4. \u5b50\u7f51\u63a9\u7801\u9ed8\u8ba4 255.255.255.0\n==========================================\nEOF\n# \u9009\u62e9\u7269\u7406\u7f51\u5361\nfunction select_parent_if() {\n    echo \">>> \u68c0\u6d4b\u53ef\u7528\u7269\u7406\u7f51\u5361...\"\n    IFACES=($(ls \/sys\/class\/net | grep -Ev '^(lo|docker.*|veth.*|macvlan.*|virbr.*)$'))\n    if [ ${#IFACES&#91;@&#93;} -eq 0 ]; then\n        echo \"\u672a\u627e\u5230\u53ef\u7528\u7269\u7406\u7f51\u5361\"\n        exit 1\n    fi\n    echo \"\u53ef\u7528\u7269\u7406\u7f51\u5361\u5217\u8868\uff1a\"\n    for i in \"${!IFACES&#91;@&#93;}\"; do\n        echo \"$((i+1))) ${IFACES&#91;$i&#93;}\"\n    done\n    while true; do\n        read -p \"\u8bf7\u9009\u62e9\u7269\u7406\u7f51\u5361\u7f16\u53f7 [1-${#IFACES&#91;@&#93;}]: \" choice\n        if [[ \"$choice\" =~ ^&#91;0-9&#93;+$ ]] &amp;&amp; &#91; $choice -ge 1 &#93; &amp;&amp; [ $choice -le ${#IFACES&#91;@&#93;} ]; then\n            PARENT_IF=${IFACES&#91;$((choice-1))&#93;}\n            echo \"\u5df2\u9009\u62e9\u7269\u7406\u7f51\u5361: $PARENT_IF\"\n            break\n        else\n            echo \"\u65e0\u6548\u8f93\u5165\uff0c\u8bf7\u91cd\u65b0\u9009\u62e9\"\n        fi\n    done\n}\n# \u83b7\u53d6\u7528\u6237\u8f93\u5165\u51fd\u6570\nfunction get_network_config() {\n    select_parent_if\n    read -p \"\u8bf7\u8f93\u5165\u65b0\u5efa macvlan \u63a5\u53e3\u540d\u79f0 (\u4f8b\u5982 macvlan0): \" VLAN_IF\n    echo \"\u8bf7\u9009\u62e9 macvlan \u6a21\u5f0f (\u56de\u8f66\u9ed8\u8ba4 bridge):\"\n    echo \"1) bridge\"\n    echo \"2) private\"\n    echo \"3) vepa\"\n    echo \"4) passthru\"\n    read -p \"\u8bf7\u8f93\u5165\u9009\u9879 &#91;1-4&#93;: \" MODE_CHOICE\n    case $MODE_CHOICE in\n        2) VLAN_MODE=\"private\" ;;\n        3) VLAN_MODE=\"vepa\" ;;\n        4) VLAN_MODE=\"passthru\" ;;\n        *) VLAN_MODE=\"bridge\" ;;\n    esac\n    read -p \"\u8bf7\u8f93\u5165 IP \u5730\u5740 (\u4f8b\u5982 192.168.1.100): \" IP_ADDR\n    read -p \"\u8bf7\u8f93\u5165\u5b50\u7f51\u63a9\u7801 (\u9ed8\u8ba4 24 \u8bf7\u4f7f\u7528CIDR\u683c\u5f0f): \" NETMASK\n    NETMASK=${NETMASK:-255.255.255.0}\n    read -p \"\u8bf7\u8f93\u5165\u7f51\u5173 (\u53ef\u7559\u7a7a): \" GATEWAY\n    read -p \"\u8bf7\u8f93\u5165 DNS (\u9ed8\u8ba4 223.5.5.5): \" DNS\n    DNS=${DNS:-223.5.5.5}\n}\n# \u4f7f\u7528 ip \u547d\u4ee4\u521b\u5efa macvlan\nfunction create_with_ip() {\n    get_network_config\n    echo \">>> \u6b63\u5728\u521b\u5efa macvlan \u63a5\u53e3 $VLAN_IF (\u6a21\u5f0f: $VLAN_MODE)...\"\n    ip link add $VLAN_IF link $PARENT_IF type macvlan mode $VLAN_MODE\n    ip addr add $IP_ADDR\/$NETMASK dev $VLAN_IF\n    ip link set $VLAN_IF up\n    &#91; -n \"$GATEWAY\" &#93; &amp;&amp; ip route add default via $GATEWAY dev $VLAN_IF\n    echo \"nameserver $DNS\" > \/etc\/resolv.conf\n    echo \">>> \u521b\u5efa\u5b8c\u6210\uff01\"\n    show_summary\n}\n# \u4f7f\u7528 nmcli \u547d\u4ee4\u521b\u5efa macvlan\nfunction create_with_nmcli() {\n    get_network_config\n    echo \">>> \u6b63\u5728\u4f7f\u7528 nmcli \u521b\u5efa macvlan \u63a5\u53e3 $VLAN_IF (\u6a21\u5f0f: $VLAN_MODE)...\"\n    nmcli connection add type macvlan ifname $VLAN_IF dev $PARENT_IF mode $VLAN_MODE ip4 $IP_ADDR\/$NETMASK gw4 $GATEWAY\n    nmcli connection modify $VLAN_IF ipv4.dns \"$DNS\"\n    nmcli connection up $VLAN_IF\n    echo \">>> \u521b\u5efa\u5b8c\u6210\uff01\"\n    show_summary\n}\n# \u5220\u9664\u6240\u6709 macvlan \u63a5\u53e3\nfunction delete_all_macvlan() {\n    echo \">>> \u6b63\u5728\u5220\u9664\u6240\u6709 macvlan \u63a5\u53e3...\"\n    for IF in $(ip -o link show | awk -F': ' '{print $2}' | grep macvlan); do\n        ip link delete $IF\n        echo \"\u5df2\u5220\u9664\u63a5\u53e3: $IF\"\n    done\n    echo \">>> \u6240\u6709 macvlan \u63a5\u53e3\u5df2\u5220\u9664\"\n}\n# \u603b\u7ed3\u4fe1\u606f\nfunction show_summary() {\n    echo\n    echo \"================ \u914d\u7f6e\u4fe1\u606f\u603b\u7ed3 ================\"\n    echo \"\u7269\u7406\u7f51\u5361:   $PARENT_IF\"\n    echo \"macvlan\u63a5\u53e3: $VLAN_IF\"\n    echo \"\u6a21\u5f0f:       $VLAN_MODE\"\n    echo \"IP \u5730\u5740:    $IP_ADDR\"\n    echo \"\u5b50\u7f51\u63a9\u7801:   $NETMASK\"\n    echo \"\u7f51\u5173:       ${GATEWAY:-\u65e0}\"\n    echo \"DNS:        $DNS\"\n    echo \"============================================\"\n}\n# \u83dc\u5355\nwhile true; do\n    echo\n    echo \"========= Macvlan \u7ba1\u7406\u83dc\u5355 =========\"\n    echo \"1) \u4f7f\u7528 ip \u521b\u5efa macvlan\"\n    echo \"2) \u4f7f\u7528 nmcli \u521b\u5efa macvlan\"\n    echo \"3) \u5220\u9664\u6240\u6709 macvlan \u63a5\u53e3\"\n    echo \"4) \u9000\u51fa\"\n    echo \"===================================\"\n    read -p \"\u8bf7\u9009\u62e9\u64cd\u4f5c &#91;1-4&#93;: \" choice\n    case $choice in\n        1) create_with_ip ;;\n        2) create_with_nmcli ;;\n        3) delete_all_macvlan ;;\n        4) echo \"\u9000\u51fa\u7a0b\u5e8f\"; exit 0 ;;\n        *) echo \"\u65e0\u6548\u9009\u9879\uff0c\u8bf7\u91cd\u65b0\u8f93\u5165\" ;;\n    esac\ndone<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">#<\/span><span style=\"color: #81A1C1\">!\/<\/span><span style=\"color: #D8DEE9FF\">bin<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">bash<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #8FBCBB\">CentOS7<\/span><span style=\"color: #D8DEE9FF\"> Macvlan \u7ba1\u7406\u811a\u672c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># \u81ea\u52a8\u52a0\u8f7d macvlan \u6a21\u5757<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">&gt;&gt;&gt; \u68c0\u67e5 macvlan \u6a21\u5757...<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">!<\/span><span style=\"color: #D8DEE9FF\"> lsmod <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\"> grep <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">q macvlan<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\"> then<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u672a\u52a0\u8f7d macvlan \u6a21\u5757\uff0c\u6b63\u5728\u52a0\u8f7d...<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    modprobe macvlan<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\"> $<\/span><span style=\"color: #81A1C1\">?<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">eq <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\"> then<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">macvlan \u6a21\u5757\u5df2\u6210\u529f\u52a0\u8f7d<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u52a0\u8f7d macvlan \u6a21\u5757\u5931\u8d25\uff0c\u8bf7\u68c0\u67e5\u5185\u6838\u662f\u5426\u652f\u6301<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        exit <\/span><span style=\"color: #B48EAD\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    fi<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">macvlan \u6a21\u5757\u5df2\u52a0\u8f7d<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">fi<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># \u6ce8\u610f\u4e8b\u9879<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">cat <\/span><span style=\"color: #81A1C1\">&lt;&lt;<\/span><span style=\"color: #8FBCBB\">EOF<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">================<\/span><span style=\"color: #D8DEE9FF\"> \u6ce8\u610f\u4e8b\u9879 <\/span><span style=\"color: #81A1C1\">================<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B48EAD\">1.<\/span><span style=\"color: #D8DEE9FF\"> Macvlan \u63a5\u53e3\u4e0e\u5bbf\u4e3b\u673a\u9ed8\u8ba4\u4e0d\u80fd\u4e92\u901a<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B48EAD\">2.<\/span><span style=\"color: #D8DEE9FF\"> \u8bf7\u786e\u4fdd\u76ee\u6807\u7269\u7406\u7f51\u5361\u5df2\u8fde\u63a5\u7f51\u7edc<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B48EAD\">3.<\/span><span style=\"color: #D8DEE9FF\"> DNS \u9ed8\u8ba4\u4e3a <\/span><span style=\"color: #B48EAD\">223.5<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">5<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">5<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B48EAD\">4.<\/span><span style=\"color: #D8DEE9FF\"> \u5b50\u7f51\u63a9\u7801\u9ed8\u8ba4 <\/span><span style=\"color: #B48EAD\">255.255<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">255<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">==========================================<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">EOF<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># \u9009\u62e9\u7269\u7406\u7f51\u5361<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">function <\/span><span style=\"color: #88C0D0\">select_parent_if<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">&gt;&gt;&gt; \u68c0\u6d4b\u53ef\u7528\u7269\u7406\u7f51\u5361...<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    IFACES<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">$<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">ls <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">sys<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">class<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">net <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\"> grep <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">Ev <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">^(lo|docker.*|veth.*|macvlan.*|virbr.*)$<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #D8DEE9FF\"> $<\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9FF\">#<\/span><span style=\"color: #8FBCBB\">IFACES<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">@<\/span><span style=\"color: #ECEFF4\">&#93;}<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">eq <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\"> then<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u672a\u627e\u5230\u53ef\u7528\u7269\u7406\u7f51\u5361<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        exit <\/span><span style=\"color: #B48EAD\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    fi<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u53ef\u7528\u7269\u7406\u7f51\u5361\u5217\u8868\uff1a<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> i in <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">${!IFACES&#91;@&#93;}<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">do<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">$((i+1))) ${IFACES&#91;$i&#93;}<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    done<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">while<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">true;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">do<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        read <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">p <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u8bf7\u9009\u62e9\u7269\u7406\u7f51\u5361\u7f16\u53f7 [1-${#IFACES&#91;@&#93;}]: <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> choice<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">[[<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">$choice<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=~<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">^<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #B48EAD\">9<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\">$ <\/span><span style=\"color: #ECEFF4\">]]<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&amp;&amp;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\"> $choice <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">ge <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&amp;&amp;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #D8DEE9FF\"> $choice <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">le $<\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9FF\">#<\/span><span style=\"color: #8FBCBB\">IFACES<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">@<\/span><span style=\"color: #ECEFF4\">&#93;}<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\"> then<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            PARENT_IF<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">$<\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #8FBCBB\">IFACES<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #88C0D0\">$<\/span><span style=\"color: #ECEFF4\">((<\/span><span style=\"color: #D8DEE9FF\">choice<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">))&#93;}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u5df2\u9009\u62e9\u7269\u7406\u7f51\u5361: $PARENT_IF<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #81A1C1\">break<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u65e0\u6548\u8f93\u5165\uff0c\u8bf7\u91cd\u65b0\u9009\u62e9<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        fi<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    done<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># \u83b7\u53d6\u7528\u6237\u8f93\u5165\u51fd\u6570<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">function <\/span><span style=\"color: #88C0D0\">get_network_config<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    select_parent_if<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    read <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">p <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u8bf7\u8f93\u5165\u65b0\u5efa macvlan \u63a5\u53e3\u540d\u79f0 (\u4f8b\u5982 macvlan0): <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">VLAN_IF<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u8bf7\u9009\u62e9 macvlan \u6a21\u5f0f (\u56de\u8f66\u9ed8\u8ba4 bridge):<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">1) bridge<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">2) private<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">3) vepa<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">4) passthru<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    read <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">p <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u8bf7\u8f93\u5165\u9009\u9879 &#91;1-4&#93;: <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">MODE_CHOICE<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">case<\/span><span style=\"color: #D8DEE9FF\"> $<\/span><span style=\"color: #8FBCBB\">MODE_CHOICE<\/span><span style=\"color: #D8DEE9FF\"> in<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #D8DEE9FF\">) VLAN_MODE<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">private<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">;;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #D8DEE9FF\">) VLAN_MODE<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">vepa<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">;;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #B48EAD\">4<\/span><span style=\"color: #D8DEE9FF\">) VLAN_MODE<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">passthru<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">;;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">*<\/span><span style=\"color: #D8DEE9FF\">) VLAN_MODE<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">bridge<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">;;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    esac<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    read <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">p <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u8bf7\u8f93\u5165 IP \u5730\u5740 (\u4f8b\u5982 192.168.1.100): <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">IP_ADDR<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    read <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">p <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u8bf7\u8f93\u5165\u5b50\u7f51\u63a9\u7801 (\u9ed8\u8ba4 24 \u8bf7\u4f7f\u7528CIDR\u683c\u5f0f): <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">NETMASK<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    NETMASK<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">$<\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9FF\">NETMASK<\/span><span style=\"color: #81A1C1\">:-<\/span><span style=\"color: #B48EAD\">255.255<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">255<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">0<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    read <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">p <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u8bf7\u8f93\u5165\u7f51\u5173 (\u53ef\u7559\u7a7a): <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">GATEWAY<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    read <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">p <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u8bf7\u8f93\u5165 DNS (\u9ed8\u8ba4 223.5.5.5): <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">DNS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    DNS<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">$<\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9FF\">DNS<\/span><span style=\"color: #81A1C1\">:-<\/span><span style=\"color: #B48EAD\">223.5<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">5<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">5<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># \u4f7f\u7528 ip \u547d\u4ee4\u521b\u5efa macvlan<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">function <\/span><span style=\"color: #88C0D0\">create_with_ip<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    get_network_config<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">&gt;&gt;&gt; \u6b63\u5728\u521b\u5efa macvlan \u63a5\u53e3 $VLAN_IF (\u6a21\u5f0f: $VLAN_MODE)...<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    ip link add $<\/span><span style=\"color: #8FBCBB\">VLAN_IF<\/span><span style=\"color: #D8DEE9FF\"> link $<\/span><span style=\"color: #8FBCBB\">PARENT_IF<\/span><span style=\"color: #D8DEE9FF\"> type macvlan mode $<\/span><span style=\"color: #8FBCBB\">VLAN_MODE<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    ip addr add $IP_ADDR<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">$<\/span><span style=\"color: #8FBCBB\">NETMASK<\/span><span style=\"color: #D8DEE9FF\"> dev $<\/span><span style=\"color: #8FBCBB\">VLAN_IF<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    ip link set $<\/span><span style=\"color: #8FBCBB\">VLAN_IF<\/span><span style=\"color: #D8DEE9FF\"> up<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">n <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">$GATEWAY<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&amp;&amp;<\/span><span style=\"color: #D8DEE9FF\"> ip route add <\/span><span style=\"color: #81A1C1\">default<\/span><span style=\"color: #D8DEE9FF\"> via $<\/span><span style=\"color: #8FBCBB\">GATEWAY<\/span><span style=\"color: #D8DEE9FF\"> dev $<\/span><span style=\"color: #8FBCBB\">VLAN_IF<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">nameserver $DNS<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">etc<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">resolv<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">conf<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">&gt;&gt;&gt; \u521b\u5efa\u5b8c\u6210\uff01<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    show_summary<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># \u4f7f\u7528 nmcli \u547d\u4ee4\u521b\u5efa macvlan<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">function <\/span><span style=\"color: #88C0D0\">create_with_nmcli<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    get_network_config<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">&gt;&gt;&gt; \u6b63\u5728\u4f7f\u7528 nmcli \u521b\u5efa macvlan \u63a5\u53e3 $VLAN_IF (\u6a21\u5f0f: $VLAN_MODE)...<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nmcli connection add type macvlan ifname $<\/span><span style=\"color: #8FBCBB\">VLAN_IF<\/span><span style=\"color: #D8DEE9FF\"> dev $<\/span><span style=\"color: #8FBCBB\">PARENT_IF<\/span><span style=\"color: #D8DEE9FF\"> mode $<\/span><span style=\"color: #8FBCBB\">VLAN_MODE<\/span><span style=\"color: #D8DEE9FF\"> ip4 $IP_ADDR<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">$<\/span><span style=\"color: #8FBCBB\">NETMASK<\/span><span style=\"color: #D8DEE9FF\"> gw4 $<\/span><span style=\"color: #8FBCBB\">GATEWAY<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nmcli connection modify $<\/span><span style=\"color: #8FBCBB\">VLAN_IF<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ipv4<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">dns<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">$DNS<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nmcli connection up $<\/span><span style=\"color: #8FBCBB\">VLAN_IF<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">&gt;&gt;&gt; \u521b\u5efa\u5b8c\u6210\uff01<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    show_summary<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># \u5220\u9664\u6240\u6709 macvlan \u63a5\u53e3<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">function <\/span><span style=\"color: #88C0D0\">delete_all_macvlan<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">&gt;&gt;&gt; \u6b63\u5728\u5220\u9664\u6240\u6709 macvlan \u63a5\u53e3...<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">IF<\/span><span style=\"color: #D8DEE9FF\"> in <\/span><span style=\"color: #88C0D0\">$<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">ip <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">o link show <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\"> awk <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">F<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">: <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">{print $2}<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\"> grep macvlan<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">do<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        ip link delete $<\/span><span style=\"color: #8FBCBB\">IF<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u5df2\u5220\u9664\u63a5\u53e3: $IF<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    done<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">&gt;&gt;&gt; \u6240\u6709 macvlan \u63a5\u53e3\u5df2\u5220\u9664<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># \u603b\u7ed3\u4fe1\u606f<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">function <\/span><span style=\"color: #88C0D0\">show_summary<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">================ \u914d\u7f6e\u4fe1\u606f\u603b\u7ed3 ================<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u7269\u7406\u7f51\u5361:   $PARENT_IF<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">macvlan\u63a5\u53e3: $VLAN_IF<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u6a21\u5f0f:       $VLAN_MODE<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">IP \u5730\u5740:    $IP_ADDR<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u5b50\u7f51\u63a9\u7801:   $NETMASK<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u7f51\u5173:       ${GATEWAY:-\u65e0}<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">DNS:        $DNS<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">============================================<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># \u83dc\u5355<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">while<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">true;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">do<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">========= Macvlan \u7ba1\u7406\u83dc\u5355 =========<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">1) \u4f7f\u7528 ip \u521b\u5efa macvlan<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">2) \u4f7f\u7528 nmcli \u521b\u5efa macvlan<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">3) \u5220\u9664\u6240\u6709 macvlan \u63a5\u53e3<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">4) \u9000\u51fa<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">===================================<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    read <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">p <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u8bf7\u9009\u62e9\u64cd\u4f5c &#91;1-4&#93;: <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> choice<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">case<\/span><span style=\"color: #D8DEE9FF\"> $choice in<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #D8DEE9FF\">) create_with_ip <\/span><span style=\"color: #81A1C1\">;;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #D8DEE9FF\">) create_with_nmcli <\/span><span style=\"color: #81A1C1\">;;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #D8DEE9FF\">) delete_all_macvlan <\/span><span style=\"color: #81A1C1\">;;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #B48EAD\">4<\/span><span style=\"color: #D8DEE9FF\">) echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u9000\u51fa\u7a0b\u5e8f<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\"> exit <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">;;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">*<\/span><span style=\"color: #D8DEE9FF\">) echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u65e0\u6548\u9009\u9879\uff0c\u8bf7\u91cd\u65b0\u8f93\u5165<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">;;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    esac<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">done<\/span><\/span><\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Linux \u5185\u6838\u539f\u751f\u652f\u6301 Macvlan Macvlan \u662f Linux \u5185\u6838\u63d0\u4f9b\u7684\u4e00\u79cd\u7f51\u7edc\u865a\u62df\u5316\u6280\u672f\uff0c\u5b83\u5141\u8bb8<\/p>\n<div class=\"more-link\">\n\t\t\t\t <a href=\"https:\/\/www.mooloco.com\/?p=163\" class=\"link-btn theme-btn\"><span>Read More <\/span> <i class=\"fa fa-caret-right\"><\/i><\/a>\n\t\t\t<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-163","post","type-post","status-publish","format-standard","hentry","category-main_contents"],"_links":{"self":[{"href":"https:\/\/www.mooloco.com\/index.php?rest_route=\/wp\/v2\/posts\/163","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mooloco.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mooloco.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mooloco.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mooloco.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=163"}],"version-history":[{"count":4,"href":"https:\/\/www.mooloco.com\/index.php?rest_route=\/wp\/v2\/posts\/163\/revisions"}],"predecessor-version":[{"id":234,"href":"https:\/\/www.mooloco.com\/index.php?rest_route=\/wp\/v2\/posts\/163\/revisions\/234"}],"wp:attachment":[{"href":"https:\/\/www.mooloco.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=163"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mooloco.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=163"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mooloco.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=163"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}