{"id":370,"date":"2023-05-06T15:25:55","date_gmt":"2023-05-06T07:25:55","guid":{"rendered":"http:\/\/idc.birk.cn\/?p=370"},"modified":"2023-05-06T15:25:55","modified_gmt":"2023-05-06T07:25:55","slug":"linux%e7%bd%91%e7%bb%9c%e4%b9%8bnamespace%e3%80%81bridge%e3%80%81veth","status":"publish","type":"post","link":"https:\/\/idc.birk.cn\/?p=370","title":{"rendered":"Linux\u7f51\u7edc\u4e4bnamespace\u3001bridge\u3001veth"},"content":{"rendered":"<h1 id=\"h1-namespace\">namespace<\/h1>\n<h2 id=\"h2-u524Du8A00\"><a class=\"reference-link\" name=\"\u524d\u8a00\"><\/a>\u524d\u8a00<\/h2>\n<p>namespace\u662fLinux\u865a\u62df\u7f51\u7edc\u7684\u4e00\u4e2a\u91cd\u8981\u6982\u5ff5\uff0c\u4f20\u7edf\u7684Linux\u7684\u8bb8\u591a\u8d44\u6e90\u662f\u5168\u5c40\u7684\uff0c\u5982\u679c\u8fdb\u7a0bid\u8d44\u6e90\u3002\u800cnamespace\u7684\u76ee\u7684\u9996\u5148\u5c31\u662f\u8bb2\u8fd9\u4e9b\u8d44\u6e90\u505a\u8d44\u6e90\u9694\u79bb\u3002Linux\u53ef\u4ee5\u5728\u4e00\u4e2aHost\u5185\u521b\u5efa\u8bb8\u591anamespace\uff0c\u4e8e\u662f\u90a3\u4e9b\u539f\u672c\u662flinux\u7684\u5168\u5c40\u8d44\u6e90\uff0c\u5c31\u53d8\u6210\u4e86namespace\u8303\u56f4\u5185\u7684\u201c\u5168\u5c40\u201d\u8d44\u6e90\uff0c\u800c\u4e14\u4e0d\u540cnamespace\u7684\u8d44\u6e90\u76f8\u4e92\u4e0d\u53ef\u89c1\uff0c\u5f7c\u6b64\u900f\u660e\u3002<\/p>\n<p>Linux namespace \u53ef\u4ee5\u9694\u79bb\u7684\u8d44\u6e90\u6709\uff1auts_ns\uff08\u5185\u5b58\u3001\u7248\u672c\u7b49\u5e95\u5c42\u4fe1\u606f\uff09\u3001ipc_ns\uff08\u6240\u6709\u4e0e\u8fdb\u7a0b\u901a\u4fe1\u7684\u4fe1\u606f\uff09\u3001 mnt_ns\uff08\u5f53\u524d\u88c5\u8f7d\u7684\u6587\u4ef6\u7cfb\u7edf\uff09\u3001 pid_ns\uff08\u6709\u5173\u8fdb\u7a0bid\u7684\u4fe1\u606f\uff09\u3001 user_ns\uff08\u8d44\u6e90\u914d\u989d\u7684\u4fe1\u606f\uff09\u3001 net_ns\uff08\u7f51\u7edc\u4fe1\u606f\uff09\u3002<\/p>\n<p>\u4e00\u4e2a\u8bbe\u5907\uff08Linux Device\uff09\u53ea\u80fd\u4f4d\u4e8e\u4e00\u4e2anamespace\u4e2d\uff0c\u4e0d\u540cnamespace\u4e2d\u7684\u8bbe\u5907\u53ef\u4ee5\u5229\u7528veth pair\u8fdb\u884c\u6865\u63a5\u3002<\/p>\n<h2 id=\"h2-u547Du4EE4u5B9Eu64CD\"><a class=\"reference-link\" name=\"\u547d\u4ee4\u5b9e\u64cd\"><\/a>\u547d\u4ee4\u5b9e\u64cd<\/h2>\n<p>Linux \u64cd\u4f5cnamespace\u7684\u547d\u4ee4\u662fip netns\u3002<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns help<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"typ\">Usage<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> ip netns list<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pln\">       ip netns add NAME<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pln\">       ip netns <\/span><span class=\"kwd\">set<\/span><span class=\"pln\"> NAME NETNSID<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"pln\">       ip <\/span><span class=\"pun\">[-<\/span><span class=\"pln\">all<\/span><span class=\"pun\">]<\/span><span class=\"pln\"> netns <\/span><span class=\"kwd\">delete<\/span> <span class=\"pun\">[<\/span><span class=\"pln\">NAME<\/span><span class=\"pun\">]<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pln\">       ip netns identify <\/span><span class=\"pun\">[<\/span><span class=\"pln\">PID<\/span><span class=\"pun\">]<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pln\">       ip netns pids NAME<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pln\">       ip <\/span><span class=\"pun\">[-<\/span><span class=\"pln\">all<\/span><span class=\"pun\">]<\/span><span class=\"pln\"> netns <\/span><span class=\"kwd\">exec<\/span> <span class=\"pun\">[<\/span><span class=\"pln\">NAME<\/span><span class=\"pun\">]<\/span><span class=\"pln\"> cmd <\/span><span class=\"pun\">...<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"pln\">       ip netns monitor<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"pln\">       ip netns list<\/span><span class=\"pun\">-<\/span><span class=\"pln\">id<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><\/code><\/li>\n<\/ol>\n<p>\u9996\u5148\u521b\u5efa\u4e00\u4e2anamespace\uff1a<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><code><span class=\"com\"># \u67e5\u770bnamespace\u5217\u8868<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns list <\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span> <\/code><\/li>\n<li class=\"L3\"><code><span class=\"com\"># \u65b0\u589e namespace ns_test<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns add ns_test<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span> <\/code><\/li>\n<li class=\"L6\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns list<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pln\">ns_test<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><\/code><\/li>\n<\/ol>\n<p>\u5f53\u521b\u5efa\u4e00\u4e2anamespace\u540e\uff0c\u5c31\u53ef\u4ee5\u5c06\u4e00\u4e9b\u865a\u62df\u8bbe\u5907\u8fc1\u79fb\u5230\u8fd9\u4e2anamespace\u4e2d\u53bb\u4e86\uff0c\u6bd4\u5982\u4e0a\u4e00\u7bc7\u4e2d\u4ecb\u7ecd\u7684tap\u3002<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><code><span class=\"com\"># \u521b\u5efatap\uff0c\u5e76\u914d\u7f6e\u5bf9\u5e94IP\uff0c\u8be6\u7ec6\u4fe1\u606f\u53ef\u770b\u4e0a\u4e00\u7bc7\u6587\u6863<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> tunctl <\/span><span class=\"pun\">-<\/span><span class=\"pln\">t tap_test<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"typ\">Set<\/span> <span class=\"str\">'tap_test'<\/span><span class=\"pln\"> persistent <\/span><span class=\"kwd\">and<\/span><span class=\"pln\"> owned <\/span><span class=\"kwd\">by<\/span><span class=\"pln\"> uid <\/span><span class=\"lit\">0<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip link list<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"lit\">1<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> lo<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">LOOPBACK<\/span><span class=\"pun\">,<\/span><span class=\"pln\">UP<\/span><span class=\"pun\">,<\/span><span class=\"pln\">LOWER_UP<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">65536<\/span><span class=\"pln\"> qdisc noqueue state UNKNOWN mode DEFAULT qlen <\/span><span class=\"lit\">1<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">loopback <\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pln\"> brd <\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"lit\">2<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> eth0<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">UP<\/span><span class=\"pun\">,<\/span><span class=\"pln\">LOWER_UP<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc pfifo_fast state UP mode DEFAULT qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">ether fa<\/span><span class=\"pun\">:<\/span><span class=\"lit\">16<\/span><span class=\"pun\">:<\/span><span class=\"lit\">3e<\/span><span class=\"pun\">:<\/span><span class=\"lit\">56<\/span><span class=\"pun\">:<\/span><span class=\"lit\">6a<\/span><span class=\"pun\">:<\/span><span class=\"lit\">87<\/span><span class=\"pln\"> brd ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"lit\">3<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> tap_test<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc noop state DOWN mode DEFAULT qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">ether <\/span><span class=\"lit\">2e<\/span><span class=\"pun\">:<\/span><span class=\"lit\">5c<\/span><span class=\"pun\">:<\/span><span class=\"lit\">3f<\/span><span class=\"pun\">:<\/span><span class=\"lit\">10<\/span><span class=\"pun\">:<\/span><span class=\"lit\">63<\/span><span class=\"pun\">:<\/span><span class=\"lit\">12<\/span><span class=\"pln\"> brd ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip addr show<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"lit\">1<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> lo<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">LOOPBACK<\/span><span class=\"pun\">,<\/span><span class=\"pln\">UP<\/span><span class=\"pun\">,<\/span><span class=\"pln\">LOWER_UP<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">65536<\/span><span class=\"pln\"> qdisc noqueue state UNKNOWN qlen <\/span><span class=\"lit\">1<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">loopback <\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pln\"> brd <\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pln\">    inet <\/span><span class=\"lit\">127.0<\/span><span class=\"pun\">.<\/span><span class=\"lit\">0.1<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">8<\/span><span class=\"pln\"> scope host lo<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"pln\">       valid_lft forever preferred_lft forever<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pln\">    inet6 <\/span><span class=\"pun\">::<\/span><span class=\"lit\">1<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">128<\/span><span class=\"pln\"> scope host <\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pln\">       valid_lft forever preferred_lft forever<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"lit\">2<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> eth0<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">UP<\/span><span class=\"pun\">,<\/span><span class=\"pln\">LOWER_UP<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc pfifo_fast state UP qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">ether fa<\/span><span class=\"pun\">:<\/span><span class=\"lit\">16<\/span><span class=\"pun\">:<\/span><span class=\"lit\">3e<\/span><span class=\"pun\">:<\/span><span class=\"lit\">56<\/span><span class=\"pun\">:<\/span><span class=\"lit\">6a<\/span><span class=\"pun\">:<\/span><span class=\"lit\">87<\/span><span class=\"pln\"> brd ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"pln\">    inet <\/span><span class=\"lit\">10.0<\/span><span class=\"pun\">.<\/span><span class=\"lit\">0.176<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">24<\/span><span class=\"pln\"> brd <\/span><span class=\"lit\">10.0<\/span><span class=\"pun\">.<\/span><span class=\"lit\">0.255<\/span><span class=\"pln\"> scope <\/span><span class=\"kwd\">global<\/span><span class=\"pln\"> noprefixroute <\/span><span class=\"kwd\">dynamic<\/span><span class=\"pln\"> eth0<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"pln\">       valid_lft <\/span><span class=\"lit\">75898sec<\/span><span class=\"pln\"> preferred_lft <\/span><span class=\"lit\">75898sec<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pln\">    inet6 fe80<\/span><span class=\"pun\">::<\/span><span class=\"pln\">f816<\/span><span class=\"pun\">:<\/span><span class=\"lit\">3eff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">fe56<\/span><span class=\"pun\">:<\/span><span class=\"lit\">6a87<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> scope link <\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pln\">       valid_lft forever preferred_lft forever<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"lit\">3<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> tap_test<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc noop state DOWN qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">ether <\/span><span class=\"lit\">2e<\/span><span class=\"pun\">:<\/span><span class=\"lit\">5c<\/span><span class=\"pun\">:<\/span><span class=\"lit\">3f<\/span><span class=\"pun\">:<\/span><span class=\"lit\">10<\/span><span class=\"pun\">:<\/span><span class=\"lit\">63<\/span><span class=\"pun\">:<\/span><span class=\"lit\">12<\/span><span class=\"pln\"> brd ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip addr add <\/span><span class=\"kwd\">local<\/span> <span class=\"lit\">10.0<\/span><span class=\"pun\">.<\/span><span class=\"lit\">0.190<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">24<\/span><span class=\"pln\"> dev tap_test<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip a show<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"lit\">1<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> lo<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">LOOPBACK<\/span><span class=\"pun\">,<\/span><span class=\"pln\">UP<\/span><span class=\"pun\">,<\/span><span class=\"pln\">LOWER_UP<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">65536<\/span><span class=\"pln\"> qdisc noqueue state UNKNOWN qlen <\/span><span class=\"lit\">1<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">loopback <\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pln\"> brd <\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"pln\">    inet <\/span><span class=\"lit\">127.0<\/span><span class=\"pun\">.<\/span><span class=\"lit\">0.1<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">8<\/span><span class=\"pln\"> scope host lo<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"pln\">       valid_lft forever preferred_lft forever<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pln\">    inet6 <\/span><span class=\"pun\">::<\/span><span class=\"lit\">1<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">128<\/span><span class=\"pln\"> scope host <\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pln\">       valid_lft forever preferred_lft forever<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"lit\">2<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> eth0<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">UP<\/span><span class=\"pun\">,<\/span><span class=\"pln\">LOWER_UP<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc pfifo_fast state UP qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">ether fa<\/span><span class=\"pun\">:<\/span><span class=\"lit\">16<\/span><span class=\"pun\">:<\/span><span class=\"lit\">3e<\/span><span class=\"pun\">:<\/span><span class=\"lit\">56<\/span><span class=\"pun\">:<\/span><span class=\"lit\">6a<\/span><span class=\"pun\">:<\/span><span class=\"lit\">87<\/span><span class=\"pln\"> brd ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pln\">    inet <\/span><span class=\"lit\">10.0<\/span><span class=\"pun\">.<\/span><span class=\"lit\">0.176<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">24<\/span><span class=\"pln\"> brd <\/span><span class=\"lit\">10.0<\/span><span class=\"pun\">.<\/span><span class=\"lit\">0.255<\/span><span class=\"pln\"> scope <\/span><span class=\"kwd\">global<\/span><span class=\"pln\"> noprefixroute <\/span><span class=\"kwd\">dynamic<\/span><span class=\"pln\"> eth0<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pln\">       valid_lft <\/span><span class=\"lit\">75813sec<\/span><span class=\"pln\"> preferred_lft <\/span><span class=\"lit\">75813sec<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pln\">    inet6 fe80<\/span><span class=\"pun\">::<\/span><span class=\"pln\">f816<\/span><span class=\"pun\">:<\/span><span class=\"lit\">3eff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">fe56<\/span><span class=\"pun\">:<\/span><span class=\"lit\">6a87<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> scope link <\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"pln\">       valid_lft forever preferred_lft forever<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"lit\">3<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> tap_test<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc noop state DOWN qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">ether <\/span><span class=\"lit\">2e<\/span><span class=\"pun\">:<\/span><span class=\"lit\">5c<\/span><span class=\"pun\">:<\/span><span class=\"lit\">3f<\/span><span class=\"pun\">:<\/span><span class=\"lit\">10<\/span><span class=\"pun\">:<\/span><span class=\"lit\">63<\/span><span class=\"pun\">:<\/span><span class=\"lit\">12<\/span><span class=\"pln\"> brd ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pln\">    inet <\/span><span class=\"lit\">10.0<\/span><span class=\"pun\">.<\/span><span class=\"lit\">0.190<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">24<\/span><span class=\"pln\"> scope <\/span><span class=\"kwd\">global<\/span><span class=\"pln\"> tap_test<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pln\">       valid_lft forever preferred_lft forever<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"com\"># \u521b\u5efanamespace\u540e\uff0c\u5c06\u524d\u9762\u521b\u5efa\u7684tap_test\u8fc1\u79fb\u5230\u8fd9\u4e2anamespace\u4e2d\u3002<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"com\"># \u8fc1\u79fb\u4e4b\u540e\uff0c\u5728\u5916\u76f4\u63a5 ip a s \u5df2\u7ecf\u770b\u4e0d\u5230\u8fd9\u4e2a\u865a\u62df\u8bbe\u5907\u4e86<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span> <\/code><\/li>\n<li class=\"L7\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip link <\/span><span class=\"kwd\">set<\/span><span class=\"pln\"> tap_test netns ns_test<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span> <\/code><\/li>\n<li class=\"L9\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns_test ip a s<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"lit\">1<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> lo<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">LOOPBACK<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">65536<\/span><span class=\"pln\"> qdisc noop state DOWN qlen <\/span><span class=\"lit\">1<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">loopback <\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pln\"> brd <\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"lit\">3<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> tap_test<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc noop state DOWN qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">ether <\/span><span class=\"lit\">2e<\/span><span class=\"pun\">:<\/span><span class=\"lit\">5c<\/span><span class=\"pun\">:<\/span><span class=\"lit\">3f<\/span><span class=\"pun\">:<\/span><span class=\"lit\">10<\/span><span class=\"pun\">:<\/span><span class=\"lit\">63<\/span><span class=\"pun\">:<\/span><span class=\"lit\">12<\/span><span class=\"pln\"> brd ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns_test ip addr add <\/span><span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.190<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">24<\/span><span class=\"pln\"> dev tap_test<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns_test ip a s<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"lit\">1<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> lo<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">LOOPBACK<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">65536<\/span><span class=\"pln\"> qdisc noop state DOWN qlen <\/span><span class=\"lit\">1<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">loopback <\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pln\"> brd <\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"lit\">3<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> tap_test<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc noop state DOWN qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">ether <\/span><span class=\"lit\">2e<\/span><span class=\"pun\">:<\/span><span class=\"lit\">5c<\/span><span class=\"pun\">:<\/span><span class=\"lit\">3f<\/span><span class=\"pun\">:<\/span><span class=\"lit\">10<\/span><span class=\"pun\">:<\/span><span class=\"lit\">63<\/span><span class=\"pun\">:<\/span><span class=\"lit\">12<\/span><span class=\"pln\"> brd ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"pln\">    inet <\/span><span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.190<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">24<\/span><span class=\"pln\"> scope <\/span><span class=\"kwd\">global<\/span><span class=\"pln\"> tap_test<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pln\">       valid_lft forever preferred_lft forever<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><\/code><\/li>\n<\/ol>\n<h1 id=\"h1-veth-pair\"><a class=\"reference-link\" name=\"veth pair\"><\/a>veth pair<\/h1>\n<h2 id=\"h2-u524Du8A00\"><a class=\"reference-link\" name=\"\u524d\u8a00\"><\/a>\u524d\u8a00<\/h2>\n<p>veth pair \u4e0d\u662f\u4e00\u4e2a\u8bbe\u5907\uff0c\u800c\u662f\u4e00\u5bf9\u8bbe\u5907\uff0c\u4ee5\u8fde\u63a5\u4e24\u4e2a\u865a\u62df\u4ee5\u592a\u7aef\u53e3\u3002\u64cd\u4f5cveth pair\uff0c\u9700\u8981\u8ddfnamespace\u4e00\u8d77\u914d\u5408\uff0c\u4e0d\u7136\u5c31\u6ca1\u6709\u610f\u4e49\u3002<\/p>\n<p>\u7b80\u5355\u7684\u62d3\u6251\u56fe\uff1a<br \/>\n<img decoding=\"async\" src=\"\/wp-content\/uploads\/replace\/f5c4171da57d3f4aa6bb10b27e71be0e.png\" alt=\"70\" \/><\/p>\n<p>\u4e24\u4e2anamespace ns1\/ns2 \u4e2d\u5404\u6709\u4e00\u4e2atap\u7ec4\u6210veth pair\uff0c\u4e24\u4e2atap \u4e0a\u914d\u7f6e\u7684ip\u8fdb\u884c\u4e92ping\u3002<\/p>\n<h2 id=\"h2-u547Du4EE4u5B9Eu64CD\"><a class=\"reference-link\" name=\"\u547d\u4ee4\u5b9e\u64cd\"><\/a>\u547d\u4ee4\u5b9e\u64cd<\/h2>\n<ol class=\"linenums\">\n<li class=\"L0\"><code><span class=\"com\"># \u521b\u5efa veth pair<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip link add tap1 type veth peer name tap2 <\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip a s<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"lit\">1<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> lo<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">LOOPBACK<\/span><span class=\"pun\">,<\/span><span class=\"pln\">UP<\/span><span class=\"pun\">,<\/span><span class=\"pln\">LOWER_UP<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">65536<\/span><span class=\"pln\"> qdisc noqueue state UNKNOWN qlen <\/span><span class=\"lit\">1<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">loopback <\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pln\"> brd <\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pln\">    inet <\/span><span class=\"lit\">127.0<\/span><span class=\"pun\">.<\/span><span class=\"lit\">0.1<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">8<\/span><span class=\"pln\"> scope host lo<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pln\">       valid_lft forever preferred_lft forever<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pln\">    inet6 <\/span><span class=\"pun\">::<\/span><span class=\"lit\">1<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">128<\/span><span class=\"pln\"> scope host <\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"pln\">       valid_lft forever preferred_lft forever<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"lit\">2<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> eth0<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">UP<\/span><span class=\"pun\">,<\/span><span class=\"pln\">LOWER_UP<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc pfifo_fast state UP qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">ether fa<\/span><span class=\"pun\">:<\/span><span class=\"lit\">16<\/span><span class=\"pun\">:<\/span><span class=\"lit\">3e<\/span><span class=\"pun\">:<\/span><span class=\"lit\">56<\/span><span class=\"pun\">:<\/span><span class=\"lit\">6a<\/span><span class=\"pun\">:<\/span><span class=\"lit\">87<\/span><span class=\"pln\"> brd ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pln\">    inet <\/span><span class=\"lit\">10.0<\/span><span class=\"pun\">.<\/span><span class=\"lit\">0.176<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">24<\/span><span class=\"pln\"> brd <\/span><span class=\"lit\">10.0<\/span><span class=\"pun\">.<\/span><span class=\"lit\">0.255<\/span><span class=\"pln\"> scope <\/span><span class=\"kwd\">global<\/span><span class=\"pln\"> noprefixroute <\/span><span class=\"kwd\">dynamic<\/span><span class=\"pln\"> eth0<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pln\">       valid_lft <\/span><span class=\"lit\">64021sec<\/span><span class=\"pln\"> preferred_lft <\/span><span class=\"lit\">64021sec<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pln\">    inet6 fe80<\/span><span class=\"pun\">::<\/span><span class=\"pln\">f816<\/span><span class=\"pun\">:<\/span><span class=\"lit\">3eff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">fe56<\/span><span class=\"pun\">:<\/span><span class=\"lit\">6a87<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> scope link <\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"pln\">       valid_lft forever preferred_lft forever<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"lit\">6<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> tap2@tap1<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">M<\/span><span class=\"pun\">-<\/span><span class=\"pln\">DOWN<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc noop state DOWN qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">ether a6<\/span><span class=\"pun\">:<\/span><span class=\"lit\">74<\/span><span class=\"pun\">:<\/span><span class=\"pln\">e9<\/span><span class=\"pun\">:<\/span><span class=\"pln\">cb<\/span><span class=\"pun\">:<\/span><span class=\"lit\">8f<\/span><span class=\"pun\">:<\/span><span class=\"pln\">f1 brd ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"lit\">7<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> tap1@tap2<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">M<\/span><span class=\"pun\">-<\/span><span class=\"pln\">DOWN<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc noop state DOWN qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">ether <\/span><span class=\"lit\">02<\/span><span class=\"pun\">:<\/span><span class=\"pln\">d1<\/span><span class=\"pun\">:<\/span><span class=\"lit\">8c<\/span><span class=\"pun\">:<\/span><span class=\"lit\">8b<\/span><span class=\"pun\">:<\/span><span class=\"lit\">44<\/span><span class=\"pun\">:<\/span><span class=\"pln\">e9 brd ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span> <\/code><\/li>\n<li class=\"L0\"><code><\/code><\/li>\n<li class=\"L1\"><code><span class=\"com\"># \u521b\u5efanamespace\uff0c\u5e76\u5c06tap\u8fc1\u79fb\u81f3namespace\u4e2d\uff1a<\/span><\/code><\/li>\n<li class=\"L2\"><code><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns add ns1<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns add ns2<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip link <\/span><span class=\"kwd\">set<\/span><span class=\"pln\"> tap1 netns ns1<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip link <\/span><span class=\"kwd\">set<\/span><span class=\"pln\"> tap2 netns ns2<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns1 ip addr add <\/span><span class=\"kwd\">local<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.200<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">24<\/span><span class=\"pln\"> dev tap1<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns2 ip addr add <\/span><span class=\"kwd\">local<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.201<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">24<\/span><span class=\"pln\"> dev tap2<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns1 ifconfig tap1 up<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns2 ifconfig tap2 up<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span> <\/code><\/li>\n<li class=\"L2\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip link list<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"lit\">1<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> lo<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">LOOPBACK<\/span><span class=\"pun\">,<\/span><span class=\"pln\">UP<\/span><span class=\"pun\">,<\/span><span class=\"pln\">LOWER_UP<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">65536<\/span><span class=\"pln\"> qdisc noqueue state UNKNOWN mode DEFAULT qlen <\/span><span class=\"lit\">1<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">loopback <\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pln\"> brd <\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"lit\">2<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> eth0<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">UP<\/span><span class=\"pun\">,<\/span><span class=\"pln\">LOWER_UP<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc pfifo_fast state UP mode DEFAULT qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">ether fa<\/span><span class=\"pun\">:<\/span><span class=\"lit\">16<\/span><span class=\"pun\">:<\/span><span class=\"lit\">3e<\/span><span class=\"pun\">:<\/span><span class=\"lit\">56<\/span><span class=\"pun\">:<\/span><span class=\"lit\">6a<\/span><span class=\"pun\">:<\/span><span class=\"lit\">87<\/span><span class=\"pln\"> brd ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns list<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"pln\">ns2<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"pln\">ns1 <\/span><span class=\"pun\">(<\/span><span class=\"pln\">id<\/span><span class=\"pun\">:<\/span> <span class=\"lit\">0<\/span><span class=\"pun\">)<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"pln\">ns_test<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span> <\/code><\/li>\n<li class=\"L2\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns1 ping <\/span><span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.201<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pln\">PING <\/span><span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.201<\/span> <span class=\"pun\">(<\/span><span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.201<\/span><span class=\"pun\">)<\/span> <span class=\"lit\">56<\/span><span class=\"pun\">(<\/span><span class=\"lit\">84<\/span><span class=\"pun\">)<\/span><span class=\"pln\"> bytes of data<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.201<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">1<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.028<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.201<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">2<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.027<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.201<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">3<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.026<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.201<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">4<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.023<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"pun\">^<\/span><span class=\"pln\">C<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"pun\">---<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.201<\/span><span class=\"pln\"> ping statistics <\/span><span class=\"pun\">---<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"lit\">4<\/span><span class=\"pln\"> packets transmitted<\/span><span class=\"pun\">,<\/span> <span class=\"lit\">4<\/span><span class=\"pln\"> received<\/span><span class=\"pun\">,<\/span> <span class=\"lit\">0<\/span><span class=\"pun\">%<\/span><span class=\"pln\"> packet loss<\/span><span class=\"pun\">,<\/span><span class=\"pln\"> time <\/span><span class=\"lit\">2999ms<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pln\">rtt min<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">avg<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">max<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">mdev <\/span><span class=\"pun\">=<\/span> <span class=\"lit\">0.023<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">0.026<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">0.028<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">0.002<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns1 ip a<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"lit\">1<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> lo<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">LOOPBACK<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">65536<\/span><span class=\"pln\"> qdisc noop state DOWN qlen <\/span><span class=\"lit\">1<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">loopback <\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pln\"> brd <\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"lit\">7<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> tap1@if6<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">UP<\/span><span class=\"pun\">,<\/span><span class=\"pln\">LOWER_UP<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc noqueue state UP qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">ether <\/span><span class=\"lit\">02<\/span><span class=\"pun\">:<\/span><span class=\"pln\">d1<\/span><span class=\"pun\">:<\/span><span class=\"lit\">8c<\/span><span class=\"pun\">:<\/span><span class=\"lit\">8b<\/span><span class=\"pun\">:<\/span><span class=\"lit\">44<\/span><span class=\"pun\">:<\/span><span class=\"pln\">e9 brd ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff link<\/span><span class=\"pun\">-<\/span><span class=\"pln\">netnsid <\/span><span class=\"lit\">1<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pln\">    inet <\/span><span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.200<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">24<\/span><span class=\"pln\"> scope <\/span><span class=\"kwd\">global<\/span><span class=\"pln\"> tap1<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"pln\">       valid_lft forever preferred_lft forever<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"pln\">    inet6 fe80<\/span><span class=\"pun\">::<\/span><span class=\"pln\">d1<\/span><span class=\"pun\">:<\/span><span class=\"lit\">8cff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">fe8b<\/span><span class=\"pun\">:<\/span><span class=\"lit\">44e9<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> scope link <\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"pln\">       valid_lft forever preferred_lft forever<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns2 ip a s<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"lit\">1<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> lo<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">LOOPBACK<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">65536<\/span><span class=\"pln\"> qdisc noop state DOWN qlen <\/span><span class=\"lit\">1<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">loopback <\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pln\"> brd <\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><span class=\"pun\">:<\/span><span class=\"lit\">00<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"lit\">6<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> tap2@if7<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">UP<\/span><span class=\"pun\">,<\/span><span class=\"pln\">LOWER_UP<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc noqueue state UP qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pln\">    link<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">ether a6<\/span><span class=\"pun\">:<\/span><span class=\"lit\">74<\/span><span class=\"pun\">:<\/span><span class=\"pln\">e9<\/span><span class=\"pun\">:<\/span><span class=\"pln\">cb<\/span><span class=\"pun\">:<\/span><span class=\"lit\">8f<\/span><span class=\"pun\">:<\/span><span class=\"pln\">f1 brd ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">ff link<\/span><span class=\"pun\">-<\/span><span class=\"pln\">netnsid <\/span><span class=\"lit\">0<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pln\">    inet <\/span><span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.201<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">24<\/span><span class=\"pln\"> scope <\/span><span class=\"kwd\">global<\/span><span class=\"pln\"> tap2<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pln\">       valid_lft forever preferred_lft forever<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"pln\">    inet6 fe80<\/span><span class=\"pun\">::<\/span><span class=\"pln\">a474<\/span><span class=\"pun\">:<\/span><span class=\"pln\">e9ff<\/span><span class=\"pun\">:<\/span><span class=\"pln\">fecb<\/span><span class=\"pun\">:<\/span><span class=\"lit\">8ff1<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> scope link <\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"pln\">       valid_lft forever preferred_lft forever<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><\/code><\/li>\n<\/ol>\n<p>\u901a\u8fc7\u4ee5\u4e0a\u7684\u6d4b\u8bd5\u7528\u4f8b\uff0c\u53ef\u4ee5\u4e86\u89e3\u901a\u8fc7veth pair\u8fde\u63a5\u4e24\u4e2anamespace\u7684\u65b9\u6cd5\u3002<\/p>\n<p>\u540e\u9762\u4f1a\u6709\u4f9d\u9760Bridge\/Switch \u5b9e\u73b0\u4e09\u4e2a\u6216\u591a\u4e2anamespace\u8fdb\u884c\u4e92\u901a\u3002<\/p>\n<h1 id=\"h1-bridge\"><a class=\"reference-link\" name=\"Bridge\"><\/a>Bridge<\/h1>\n<h2 id=\"h2-u524Du8A00\"><a class=\"reference-link\" name=\"\u524d\u8a00\"><\/a>\u524d\u8a00<\/h2>\n<p>\u5728Linux\u7684\u8bed\u5883\u4e2d\uff0cBridge\u548cSwitch\u662f\u4e00\u4e2a\u6982\u5ff5\u3002Bridge\u662f\u4e00\u4e2a\u865a\u62df\u7f51\u7edc\u8bbe\u5907\uff0c\u6240\u4ee5\u5177\u6709\u7f51\u7edc\u8bbe\u5907\u7684\u7279\u5f81\uff0c\u53ef\u4ee5\u914d\u7f6eIP\u3001MAC\u5730\u5740\u7b49\uff1bBridge\u662f\u4e00\u4e2a\u865a\u62df\u4ea4\u6362\u673a\uff0c\u548c\u7269\u7406\u4ea4\u6362\u673a\u6709\u7c7b\u4f3c\u7684\u529f\u80fd\u3002\u5bf9\u4e8e\u666e\u901a\u7684\u7f51\u7edc\u8bbe\u5907\u6765\u8bf4\uff0c\u53ea\u6709\u4e24\u7aef\uff0c\u4ece\u4e00\u7aef\u8fdb\u6765\u7684\u6570\u636e\u4f1a\u4ece\u53e6\u4e00\u7aef\u51fa\u53bb\uff0c\u5982\u7269\u7406\u7f51\u5361\u4ece\u5916\u9762\u7f51\u7edc\u4e2d\u6536\u5230\u7684\u6570\u636e\u4f1a\u8f6c\u53d1\u7ed9\u5185\u6838\u534f\u8bae\u6808\uff0c\u800c\u4ece\u534f\u8bae\u6808\u8fc7\u6765\u7684\u6570\u636e\u4f1a\u8f6c\u53d1\u5230\u5916\u9762\u7684\u7269\u7406\u7f51\u7edc\u4e2d\u3002 \u800cBridge\u4e0d\u540c\uff0cBridge\u6709\u591a\u4e2a\u7aef\u53e3\uff0c\u6570\u636e\u53ef\u4ee5\u4ece\u4efb\u4f55\u7aef\u53e3\u8fdb\u6765\uff0c\u8fdb\u6765\u4e4b\u540e\u4ece\u54ea\u4e2a\u53e3\u51fa\u53bb\u548c\u7269\u7406\u4ea4\u6362\u673a\u7684\u539f\u7406\u5dee\u4e0d\u591a\uff0c\u8981\u770bmac\u5730\u5740\u3002<\/p>\n<h2 id=\"h2-u547Du4EE4u5B9Eu64CD\"><a class=\"reference-link\" name=\"\u547d\u4ee4\u5b9e\u64cd\"><\/a>\u547d\u4ee4\u5b9e\u64cd<\/h2>\n<p>Linux\u5b9e\u73b0Bridge\u529f\u80fd\u662fbrctl\u6a21\u5757\u3002\u53ef\u4ee5\u76f4\u63a5\u5728\u547d\u4ee4\u884c\u4e0a\u67e5\u770b\uff0c\u5982\u679c\u6ca1\u6709\u56de\u663e\u7684\u8bdd\uff0c\u53ef\u76f4\u63a5\u4f7f\u7528yum\u8fdb\u884c\u5b89\u88c5\u3002<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> brctl<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pun\">-<\/span><span class=\"pln\">bash<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> brctl<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> command <\/span><span class=\"kwd\">not<\/span><span class=\"pln\"> found<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> yum <\/span><span class=\"pun\">-<\/span><span class=\"pln\">y install bridge<\/span><span class=\"pun\">-<\/span><span class=\"pln\">utils<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"typ\">Loaded<\/span><span class=\"pln\"> plugins<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> fastestmirror<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"typ\">Loading<\/span><span class=\"pln\"> mirror speeds <\/span><span class=\"kwd\">from<\/span><span class=\"pln\"> cached hostfile<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pun\">......<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"typ\">Running<\/span><span class=\"pln\"> transaction<\/span><\/code><\/li>\n<li class=\"L7\"><code>  <span class=\"typ\">Installing<\/span> <span class=\"pun\">:<\/span><span class=\"pln\"> bridge<\/span><span class=\"pun\">-<\/span><span class=\"pln\">utils<\/span><span class=\"pun\">-<\/span><span class=\"lit\">1.5<\/span><span class=\"pun\">-<\/span><span class=\"lit\">9.el7.x86<\/span><span class=\"pln\">_64                                                                                           <\/span><span class=\"lit\">1<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">1<\/span> <\/code><\/li>\n<li class=\"L8\"><code>  <span class=\"typ\">Verifying<\/span>  <span class=\"pun\">:<\/span><span class=\"pln\"> bridge<\/span><span class=\"pun\">-<\/span><span class=\"pln\">utils<\/span><span class=\"pun\">-<\/span><span class=\"lit\">1.5<\/span><span class=\"pun\">-<\/span><span class=\"lit\">9.el7.x86<\/span><span class=\"pln\">_64                                                                                           <\/span><span class=\"lit\">1<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">1<\/span> <\/code><\/li>\n<li class=\"L9\"><code><\/code><\/li>\n<li class=\"L0\"><code><span class=\"typ\">Installed<\/span><span class=\"pun\">:<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pln\">  bridge<\/span><span class=\"pun\">-<\/span><span class=\"pln\">utils<\/span><span class=\"pun\">.<\/span><span class=\"pln\">x86_64 <\/span><span class=\"lit\">0<\/span><span class=\"pun\">:<\/span><span class=\"lit\">1.5<\/span><span class=\"pun\">-<\/span><span class=\"lit\">9.el7<\/span>                                                                                                          <\/code><\/li>\n<li class=\"L2\"><code><\/code><\/li>\n<li class=\"L3\"><code><span class=\"typ\">Complete<\/span><span class=\"pun\">!<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> brctl<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"typ\">Usage<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> brctl <\/span><span class=\"pun\">[<\/span><span class=\"pln\">commands<\/span><span class=\"pun\">]<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pln\">commands<\/span><span class=\"pun\">:<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pln\">    addbr       <\/span><span class=\"str\">&lt;bridge&gt;<\/span><span class=\"pln\">        add bridge<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"pln\">    delbr       <\/span><span class=\"str\">&lt;bridge&gt;<\/span>        <span class=\"kwd\">delete<\/span><span class=\"pln\"> bridge<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"pln\">    addif       <\/span><span class=\"str\">&lt;bridge&gt;<\/span> <span class=\"str\">&lt;device&gt;<\/span><span class=\"pln\">   add <\/span><span class=\"kwd\">interface<\/span><span class=\"pln\"> to bridge<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"pln\">    delif       <\/span><span class=\"str\">&lt;bridge&gt;<\/span> <span class=\"str\">&lt;device&gt;<\/span>   <span class=\"kwd\">delete<\/span> <span class=\"kwd\">interface<\/span> <span class=\"kwd\">from<\/span><span class=\"pln\"> bridge<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pln\">    hairpin     <\/span><span class=\"str\">&lt;bridge&gt;<\/span> <span class=\"str\">&lt;port&gt;<\/span> <span class=\"pun\">{<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pln\">   on<\/span><span class=\"pun\">|<\/span><span class=\"pln\">off<\/span><span class=\"pun\">}<\/span><span class=\"pln\">    turn hairpin on<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">off<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pln\">    setageing   <\/span><span class=\"str\">&lt;bridge&gt;<\/span> <span class=\"str\">&lt;time&gt;<\/span>     <span class=\"kwd\">set<\/span><span class=\"pln\"> ageing time<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"pln\">    setbridgeprio   <\/span><span class=\"str\">&lt;bridge&gt;<\/span> <span class=\"str\">&lt;prio&gt;<\/span>     <span class=\"kwd\">set<\/span><span class=\"pln\"> bridge priority<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pln\">    setfd       <\/span><span class=\"str\">&lt;bridge&gt;<\/span> <span class=\"str\">&lt;time&gt;<\/span>     <span class=\"kwd\">set<\/span><span class=\"pln\"> bridge forward delay<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pln\">    sethello    <\/span><span class=\"str\">&lt;bridge&gt;<\/span> <span class=\"str\">&lt;time&gt;<\/span>     <span class=\"kwd\">set<\/span><span class=\"pln\"> hello time<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pln\">    setmaxage   <\/span><span class=\"str\">&lt;bridge&gt;<\/span> <span class=\"str\">&lt;time&gt;<\/span>     <span class=\"kwd\">set<\/span><span class=\"pln\"> max message age<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"pln\">    setpathcost <\/span><span class=\"str\">&lt;bridge&gt;<\/span> <span class=\"str\">&lt;port&gt;<\/span> <span class=\"str\">&lt;cost&gt;<\/span>  <span class=\"kwd\">set<\/span><span class=\"pln\"> path cost<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"pln\">    setportprio <\/span><span class=\"str\">&lt;bridge&gt;<\/span> <span class=\"str\">&lt;port&gt;<\/span> <span class=\"str\">&lt;prio&gt;<\/span>  <span class=\"kwd\">set<\/span><span class=\"pln\"> port priority<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"pln\">    show        <\/span><span class=\"pun\">[<\/span> <span class=\"str\">&lt;bridge&gt;<\/span> <span class=\"pun\">]<\/span><span class=\"pln\">        show a list of bridges<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pln\">    showmacs    <\/span><span class=\"str\">&lt;bridge&gt;<\/span><span class=\"pln\">        show a list of mac addrs<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pln\">    showstp     <\/span><span class=\"str\">&lt;bridge&gt;<\/span><span class=\"pln\">        show bridge stp info<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pln\">    stp         <\/span><span class=\"str\">&lt;bridge&gt;<\/span> <span class=\"pun\">{<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"pln\">   on<\/span><span class=\"pun\">|<\/span><span class=\"pln\">off<\/span><span class=\"pun\">}<\/span><span class=\"pln\">   turn stp on<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">off<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><\/code><\/li>\n<\/ol>\n<p>\u6839\u636e\u5982\u4e0b\u62d3\u6251\u56fe\uff0c\u6211\u4eec\u6a21\u62df\u521b\u5efa\u76f8\u5e94\u7684\u865a\u62df\u7f51\u7edc\u8bbe\u5907\uff0c\u8fdb\u884c\u5b9e\u73b0\uff1a<\/p>\n<p>\u62d3\u6251\u56fe\uff1a<br \/>\n<img decoding=\"async\" src=\"\/wp-content\/uploads\/replace\/5256952e417208e49ffdc292fc6c2f9e.png\" alt=\"70 1\" \/><\/p>\n<p>\u547d\u4ee4\u64cd\u4f5c\uff1a<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><code><span class=\"com\"># \u521b\u5efa\u5bf9\u4e8e\u8bbe\u5907<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip link add tap1 type veth peer name tap1_peer<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip link add tap2 type veth peer name tap2_peer<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip link add tap3 type veth peer name tap3_peer<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip link add tap4 type veth peer name tap4_peer<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span> <\/code><\/li>\n<li class=\"L6\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip a s <\/span><span class=\"pun\">|<\/span><span class=\"pln\"> grep tap<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"lit\">8<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> tap1_peer@tap1<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">M<\/span><span class=\"pun\">-<\/span><span class=\"pln\">DOWN<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc noop state DOWN qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"lit\">9<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> tap1@tap1_peer<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">M<\/span><span class=\"pun\">-<\/span><span class=\"pln\">DOWN<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc noop state DOWN qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"lit\">10<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> tap2_peer@tap2<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">M<\/span><span class=\"pun\">-<\/span><span class=\"pln\">DOWN<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc noop state DOWN qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"lit\">11<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> tap2@tap2_peer<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">M<\/span><span class=\"pun\">-<\/span><span class=\"pln\">DOWN<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc noop state DOWN qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"lit\">12<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> tap3_peer@tap3<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">M<\/span><span class=\"pun\">-<\/span><span class=\"pln\">DOWN<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc noop state DOWN qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"lit\">13<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> tap3@tap3_peer<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">M<\/span><span class=\"pun\">-<\/span><span class=\"pln\">DOWN<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc noop state DOWN qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"lit\">14<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> tap4_peer@tap4<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">M<\/span><span class=\"pun\">-<\/span><span class=\"pln\">DOWN<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc noop state DOWN qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"lit\">15<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> tap4@tap4_peer<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">M<\/span><span class=\"pun\">-<\/span><span class=\"pln\">DOWN<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc noop state DOWN qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span> <\/code><\/li>\n<li class=\"L6\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns list<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pln\">ns_test<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns add ns1<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns add ns2<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns add ns3<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns add ns4<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns list<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pln\">ns4<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"pln\">ns3<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pln\">ns2<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pln\">ns1<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pln\">ns_test<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span> <\/code><\/li>\n<li class=\"L9\"><code><span class=\"com\"># \u5c06\u8bbe\u5907\u8fc1\u79fb\u81f3namespace<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip link <\/span><span class=\"kwd\">set<\/span><span class=\"pln\"> tap1 netns ns1<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip link <\/span><span class=\"kwd\">set<\/span><span class=\"pln\"> tap2 netns ns2<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip link <\/span><span class=\"kwd\">set<\/span><span class=\"pln\"> tap3 netns ns3<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip link <\/span><span class=\"kwd\">set<\/span><span class=\"pln\"> tap4 netns ns4<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span> <\/code><\/li>\n<li class=\"L5\"><code><span class=\"com\"># \u521b\u5efa Bridge<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> brctl addbr br1<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip a s <\/span><span class=\"pun\">|<\/span><span class=\"pln\"> grep br1<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"lit\">17<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> br1<\/span><span class=\"pun\">:<\/span> <span class=\"pun\">&lt;<\/span><span class=\"pln\">BROADCAST<\/span><span class=\"pun\">,<\/span><span class=\"pln\">MULTICAST<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> mtu <\/span><span class=\"lit\">1500<\/span><span class=\"pln\"> qdisc noop state DOWN qlen <\/span><span class=\"lit\">1000<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span> <\/code><\/li>\n<li class=\"L0\"><code><span class=\"com\"># \u5c06tap \u6dfb\u52a0\u5230 Bridge\u4e2d<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> brctl addif br1 tap1_peer<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> brctl addif br1 tap2_peer<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> brctl addif br1 tap3_beer<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"kwd\">interface<\/span><span class=\"pln\"> tap3_beer does <\/span><span class=\"kwd\">not<\/span><span class=\"pln\"> exist<\/span><span class=\"pun\">!<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> brctl addif br1 tap3_peer<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> brctl addif br1 tap4_peer<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span> <\/code><\/li>\n<li class=\"L8\"><code><span class=\"com\"># \u914d\u7f6e tap \u5bf9\u5e94\u7684ip\u5730\u5740<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns1 ip addr add <\/span><span class=\"kwd\">local<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.200<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">24<\/span><span class=\"pln\"> dev tap1<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns2 ip addr add <\/span><span class=\"kwd\">local<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.201<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">24<\/span><span class=\"pln\"> dev tap2<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns3 ip addr add <\/span><span class=\"kwd\">local<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.202<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">24<\/span><span class=\"pln\"> dev tap3<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns4 ip addr add <\/span><span class=\"kwd\">local<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.203<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">24<\/span><span class=\"pln\"> dev tap4<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span> <\/code><\/li>\n<li class=\"L4\"><code><span class=\"com\"># \u5c06 Bridge \u4ee5\u53ca\u6240\u6709 tap \u72b6\u6001\u8bbe\u7f6e\u4e3a up<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip link <\/span><span class=\"kwd\">set<\/span><span class=\"pln\"> br1 up<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip link <\/span><span class=\"kwd\">set<\/span><span class=\"pln\"> tap1_peer up<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip link <\/span><span class=\"kwd\">set<\/span><span class=\"pln\"> tap2_peer up<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip link <\/span><span class=\"kwd\">set<\/span><span class=\"pln\"> tap3_peer up<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip link <\/span><span class=\"kwd\">set<\/span><span class=\"pln\"> tap4_peer up<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns1 ip link <\/span><span class=\"kwd\">set<\/span><span class=\"pln\"> tap1 up<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns2 ip link <\/span><span class=\"kwd\">set<\/span><span class=\"pln\"> tap2 up<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns3 ip link <\/span><span class=\"kwd\">set<\/span><span class=\"pln\"> tap3 up<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns4 ip link <\/span><span class=\"kwd\">set<\/span><span class=\"pln\"> tap4 up<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span> <\/code><\/li>\n<li class=\"L5\"><code><span class=\"com\"># \u76f8\u4e92\u8fdb\u884cip \u4e92ping \uff0c\u9a8c\u8bc1\u7f51\u7edc\u8fde\u901a<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns1 ping <\/span><span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.201<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pln\">PING <\/span><span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.201<\/span> <span class=\"pun\">(<\/span><span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.201<\/span><span class=\"pun\">)<\/span> <span class=\"lit\">56<\/span><span class=\"pun\">(<\/span><span class=\"lit\">84<\/span><span class=\"pun\">)<\/span><span class=\"pln\"> bytes of data<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.201<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">1<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.041<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.201<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">2<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.032<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.201<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">3<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.031<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.201<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">4<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.027<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pun\">^<\/span><span class=\"pln\">C<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pun\">---<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.201<\/span><span class=\"pln\"> ping statistics <\/span><span class=\"pun\">---<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"lit\">4<\/span><span class=\"pln\"> packets transmitted<\/span><span class=\"pun\">,<\/span> <span class=\"lit\">4<\/span><span class=\"pln\"> received<\/span><span class=\"pun\">,<\/span> <span class=\"lit\">0<\/span><span class=\"pun\">%<\/span><span class=\"pln\"> packet loss<\/span><span class=\"pun\">,<\/span><span class=\"pln\"> time <\/span><span class=\"lit\">2999ms<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pln\">rtt min<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">avg<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">max<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">mdev <\/span><span class=\"pun\">=<\/span> <span class=\"lit\">0.027<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">0.032<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">0.041<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">0.008<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns1 ping <\/span><span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.202<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pln\">PING <\/span><span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.202<\/span> <span class=\"pun\">(<\/span><span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.202<\/span><span class=\"pun\">)<\/span> <span class=\"lit\">56<\/span><span class=\"pun\">(<\/span><span class=\"lit\">84<\/span><span class=\"pun\">)<\/span><span class=\"pln\"> bytes of data<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.202<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">1<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.041<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.202<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">2<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.033<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.202<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">3<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.037<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.202<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">4<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.027<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pun\">^<\/span><span class=\"pln\">C<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pun\">---<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.202<\/span><span class=\"pln\"> ping statistics <\/span><span class=\"pun\">---<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"lit\">4<\/span><span class=\"pln\"> packets transmitted<\/span><span class=\"pun\">,<\/span> <span class=\"lit\">4<\/span><span class=\"pln\"> received<\/span><span class=\"pun\">,<\/span> <span class=\"lit\">0<\/span><span class=\"pun\">%<\/span><span class=\"pln\"> packet loss<\/span><span class=\"pun\">,<\/span><span class=\"pln\"> time <\/span><span class=\"lit\">2999ms<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pln\">rtt min<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">avg<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">max<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">mdev <\/span><span class=\"pun\">=<\/span> <span class=\"lit\">0.027<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">0.034<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">0.041<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">0.007<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns1 ping <\/span><span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.203<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pln\">PING <\/span><span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.203<\/span> <span class=\"pun\">(<\/span><span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.203<\/span><span class=\"pun\">)<\/span> <span class=\"lit\">56<\/span><span class=\"pun\">(<\/span><span class=\"lit\">84<\/span><span class=\"pun\">)<\/span><span class=\"pln\"> bytes of data<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.203<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">1<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.059<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.203<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">2<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.027<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.203<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">3<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.033<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.203<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">4<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.031<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"pun\">^<\/span><span class=\"pln\">C<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pun\">---<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.203<\/span><span class=\"pln\"> ping statistics <\/span><span class=\"pun\">---<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"lit\">4<\/span><span class=\"pln\"> packets transmitted<\/span><span class=\"pun\">,<\/span> <span class=\"lit\">4<\/span><span class=\"pln\"> received<\/span><span class=\"pun\">,<\/span> <span class=\"lit\">0<\/span><span class=\"pun\">%<\/span><span class=\"pln\"> packet loss<\/span><span class=\"pun\">,<\/span><span class=\"pln\"> time <\/span><span class=\"lit\">2999ms<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"pln\">rtt min<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">avg<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">max<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">mdev <\/span><span class=\"pun\">=<\/span> <span class=\"lit\">0.027<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">0.037<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">0.059<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">0.014<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span> <\/code><\/li>\n<li class=\"L7\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><span class=\"pln\"> ip netns <\/span><span class=\"kwd\">exec<\/span><span class=\"pln\"> ns4 ping <\/span><span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.200<\/span><\/code><\/li>\n<li class=\"L8\"><code><span class=\"pln\">PING <\/span><span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.200<\/span> <span class=\"pun\">(<\/span><span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.200<\/span><span class=\"pun\">)<\/span> <span class=\"lit\">56<\/span><span class=\"pun\">(<\/span><span class=\"lit\">84<\/span><span class=\"pun\">)<\/span><span class=\"pln\"> bytes of data<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L9\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.200<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">1<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.022<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L0\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.200<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">2<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.024<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L1\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.200<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">3<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.033<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L2\"><code><span class=\"lit\">64<\/span><span class=\"pln\"> bytes <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.200<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> icmp_seq<\/span><span class=\"pun\">=<\/span><span class=\"lit\">4<\/span><span class=\"pln\"> ttl<\/span><span class=\"pun\">=<\/span><span class=\"lit\">64<\/span><span class=\"pln\"> time<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0.030<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L3\"><code><span class=\"pun\">^<\/span><span class=\"pln\">X<\/span><span class=\"pun\">^<\/span><span class=\"pln\">C<\/span><\/code><\/li>\n<li class=\"L4\"><code><span class=\"pun\">---<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">10.200<\/span><span class=\"pln\"> ping statistics <\/span><span class=\"pun\">---<\/span><\/code><\/li>\n<li class=\"L5\"><code><span class=\"lit\">4<\/span><span class=\"pln\"> packets transmitted<\/span><span class=\"pun\">,<\/span> <span class=\"lit\">4<\/span><span class=\"pln\"> received<\/span><span class=\"pun\">,<\/span> <span class=\"lit\">0<\/span><span class=\"pun\">%<\/span><span class=\"pln\"> packet loss<\/span><span class=\"pun\">,<\/span><span class=\"pln\"> time <\/span><span class=\"lit\">2999ms<\/span><\/code><\/li>\n<li class=\"L6\"><code><span class=\"pln\">rtt min<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">avg<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">max<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">mdev <\/span><span class=\"pun\">=<\/span> <span class=\"lit\">0.022<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">0.027<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">0.033<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">0.005<\/span><span class=\"pln\"> ms<\/span><\/code><\/li>\n<li class=\"L7\"><code><span class=\"pun\">[<\/span><span class=\"pln\">root@virtual <\/span><span class=\"pun\">~]#<\/span><\/code><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>namespace \u524d\u8a00 namespace\u662fLinux\u865a\u62df\u7f51\u7edc\u7684\u4e00\u4e2a\u91cd\u8981\u6982\u5ff5\uff0c\u4f20\u7edf\u7684Linux\u7684\u8bb8\u591a\u8d44\u6e90\u662f\u5168\u5c40\u7684\uff0c\u5982\u679c\u8fdb\u7a0bid\u8d44\u6e90\u3002\u800cnamespace\u7684\u76ee\u7684\u9996\u5148\u5c31\u662f\u8bb2\u8fd9\u4e9b\u8d44\u6e90\u505a\u8d44\u6e90\u9694\u79bb\u3002Linux\u53ef\u4ee5\u5728\u4e00\u4e2aHost\u5185\u521b\u5efa\u8bb8\u591anamesp [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,8],"tags":[],"topic":[37,40],"class_list":["post-370","post","type-post","status-publish","format-standard","hentry","category-linux","category-8","topic-linux","topic-40"],"_links":{"self":[{"href":"https:\/\/idc.birk.cn\/index.php?rest_route=\/wp\/v2\/posts\/370","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/idc.birk.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/idc.birk.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/idc.birk.cn\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/idc.birk.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=370"}],"version-history":[{"count":1,"href":"https:\/\/idc.birk.cn\/index.php?rest_route=\/wp\/v2\/posts\/370\/revisions"}],"predecessor-version":[{"id":373,"href":"https:\/\/idc.birk.cn\/index.php?rest_route=\/wp\/v2\/posts\/370\/revisions\/373"}],"wp:attachment":[{"href":"https:\/\/idc.birk.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=370"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/idc.birk.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=370"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/idc.birk.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=370"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/idc.birk.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftopic&post=370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}