当前位置: 首页 > news >正文

质量好网站建设商家永兴县网站建设服务商

质量好网站建设商家,永兴县网站建设服务商,品牌建设的论文,厦门微信网站建veth实现了点对点的虚拟连接,可以通过veth连接两个namespace,如果我们需要将3个或者多个namespace接入同一个二层网络时,就不能只使用veth了。 在物理网络中,如果需要连接多个主机,我们会使用bridge(网桥&…

veth实现了点对点的虚拟连接,可以通过veth连接两个namespace,如果我们需要将3个或者多个namespace接入同一个二层网络时,就不能只使用veth了。

在物理网络中,如果需要连接多个主机,我们会使用bridge(网桥),或者又称为交换机。Linux也提供了网桥的虚拟实现。下面我们试验通过Linux bridge来连接三个namespace。

创建3个Network Namespace

$ ip netns add ns0$ ip netns add ns1$ ip netns add ns2$ ip netns list
ns2
ns1
ns0

创建3对veth pair

$ ip link add type veth$ ip link add type veth$ ip link add type veth$ ip link
23: veth0@veth1: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether 02:31:8e:3f:e3:41 brd ff:ff:ff:ff:ff:ff
24: veth1@veth0: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether a6:fa:24:af:7e:25 brd ff:ff:ff:ff:ff:ff
25: veth2@veth3: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether b6:44:af:1c:9d:34 brd ff:ff:ff:ff:ff:ff
26: veth3@veth2: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether 02:89:cd:6d:91:5e brd ff:ff:ff:ff:ff:ff
27: veth4@veth5: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether d6:44:b0:6d:f2:af brd ff:ff:ff:ff:ff:ff
28: veth5@veth4: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether 4e:9d:92:7f:97:6e brd ff:ff:ff:ff:ff:ff

创建网桥

创建名为bridge0的网桥

$ ip link add bridge0 type bridge

启动bridge0网桥:

$ ip link set dev bridge0 up

查询bridge0网桥:

$ ip addr
29: bridge0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000link/ether c2:a8:ec:6b:f5:9e brd ff:ff:ff:ff:ff:ffinet 172.16.0.1/16 brd 172.16.255.255 scope global bridge0valid_lft forever preferred_lft forever

绑定网口

Network Namespace、veth pair、bridge都创建完毕,下面通过命令将每对veth pair的一端绑定在network namespace,另一端绑定在docker0网桥上,用于实现网络互通。

配置第一个网络命名空间ns0:

// 将veth1添加进ns0
$ ip link set dev veth1 netns ns0// 为ns0中的veth1配置ip
$ ip netns exec ns0 ip addr add 172.16.0.11/16 dev veth1// 启动ns0中的veth1网卡
$ ip netns exec ns0 ip link set dev veth1 up// 将veth0添加加网桥bridge0
$ ip link set dev veth0 master bridge0// 启动veth0网卡
$ ip link set dev veth0 up$ ip netns exec ns0 ip addr
24: veth1@if23: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether a6:fa:24:af:7e:25 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 172.16.0.11/16 scope global veth1valid_lft forever preferred_lft foreverinet6 fe80::a4fa:24ff:feaf:7e25/64 scope linkvalid_lft forever preferred_lft forever

配置第二个网络命名空间ns1:

// 将veth3添加进ns1
$ ip link set dev veth3 netns ns1// 为ns1中的veth3配置ip
$ ip netns exec ns1 ip addr add 172.16.0.33/16 dev veth3// 启动ns1中的veth3网卡
$ ip netns exec ns1 ip link set dev veth3 up// 将veth2添加加网桥bridge0
$ ip link set dev veth2 master bridge0// 启动veth2网卡
$ ip link set dev veth2 up$ ip netns exec ns1 ip addr
26: veth3@if25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether 02:89:cd:6d:91:5e brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 172.16.0.33/16 scope global veth3valid_lft forever preferred_lft foreverinet6 fe80::89:cdff:fe6d:915e/64 scope linkvalid_lft forever preferred_lft forever

配置第三个网络命名空间ns2:

// 将veth5添加进ns2
$ ip link set dev veth5 netns ns2// 为ns2中的veth5配置ip
$ ip netns exec ns2 ip addr add 172.16.0.55/16 dev veth5// 启动ns2中的veth5网卡
$ ip netns exec ns2 ip link set dev veth5 up// 将veth4添加加网桥bridge0
$ ip link set dev veth4 master bridge0// 启动veth4网卡
$ ip link set dev veth4 up$ ip netns exec ns2 ip addr
28: veth5@if27: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether 4e:9d:92:7f:97:6e brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 172.16.0.55/16 scope global veth5valid_lft forever preferred_lft foreverinet6 fe80::4c9d:92ff:fe7f:976e/64 scope linkvalid_lft forever preferred_lft forever

验证多个namespace之间的通信

$ ip netns exec ns0 ping 172.16.0.33 -c 2
PING 172.16.0.33 (172.16.0.33) 56(84) bytes of data.
64 bytes from 172.16.0.33: icmp_seq=1 ttl=64 time=0.026 ms
64 bytes from 172.16.0.33: icmp_seq=2 ttl=64 time=0.038 ms--- 172.16.0.33 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.026/0.032/0.038/0.006 ms$ ip netns exec ns0 ping 172.16.0.55 -c 2
PING 172.16.0.55 (172.16.0.55) 56(84) bytes of data.
64 bytes from 172.16.0.55: icmp_seq=1 ttl=64 time=0.047 ms
64 bytes from 172.16.0.55: icmp_seq=2 ttl=64 time=0.036 ms--- 172.16.0.55 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.036/0.041/0.047/0.008 ms

通过上面的试验,我们验证了可以使用Linux bridge来将多个namespace连接到同一个二层网络中。你可能注意到,在分配IP地址的时候,我们只为veth在namespace中那一端的虚拟网卡分配了地址,而没有为加入bridge那一端分配地址。这是因为bridge是工作在二层上的,只会处理以太包,包括ARP解析,以太数据包的转发和泛洪;并不会进行三层(IP)的处理,因此不需要三层的IP地址。

使用brctl

上面我们是借助ip link来创建网桥的,要想更好的操作网桥可以使用brctl,这个命令来自bridge-utils安装包。

brctl相关的命令如下:

$ brctl help
never heard of command [help]
Usage: brctl [commands]
commands:addbr           <bridge>                add bridgedelbr           <bridge>                delete bridgeaddif           <bridge> <device>       add interface to bridgedelif           <bridge> <device>       delete interface from bridgehairpin         <bridge> <port> {on|off}        turn hairpin on/offsetageing       <bridge> <time>         set ageing timesetbridgeprio   <bridge> <prio>         set bridge prioritysetfd           <bridge> <time>         set bridge forward delaysethello        <bridge> <time>         set hello timesetmaxage       <bridge> <time>         set max message agesetpathcost     <bridge> <port> <cost>  set path costsetportprio     <bridge> <port> <prio>  set port priorityshow            [ <bridge> ]            show a list of bridgesshowmacs        <bridge>                show a list of mac addrsshowstp         <bridge>                show bridge stp infostp             <bridge> {on|off}       turn stp on/off

查看网桥绑定的端口

使用brctl show命令来查询网桥下绑定的网卡。

$ brctl show
bridge name     bridge id               STP enabled     interfaces
bridge0         8000.02318e3fe341       no              veth0veth2veth4

给bridge删除接口

使用brctl delif可以给bridge删除接口。

$ brctl delif bridge0 veth0$ brctl show bridge0
bridge name     bridge id               STP enabled     interfaces
bridge0         8000.327eef22246d       no              veth2veth4

给bridge增加接口

使用brctl addif可以给bridge增加接口。

$ brctl addif bridge0 veth0$ brctl show bridge0
bridge name     bridge id               STP enabled     interfaces
bridge0         8000.327eef22246d       no              veth0veth2veth4

创建网桥

使用brctl addbr可以创建网桥。

$ brctl addbr bridge1$ brctl show
bridge name     bridge id               STP enabled     interfaces
bridge0         8000.327eef22246d       no              veth0veth2veth4
bridge1         8000.000000000000       no

相当于命令ip link add bridge1 type bridge

删除网桥

使用brctl delbr可以删除网桥。

$ brctl delbr bridge1$ brctl show
bridge name     bridge id               STP enabled     interfaces
bridge0         8000.327eef22246d       no              veth0veth2veth4

相当于命令ip link delete bridge1

http://www.yayakq.cn/news/530986/

相关文章:

  • 广西网站开发公司wordpress 花园
  • 怎么样建网站卖东西wordpress添加小工具
  • 电白网站开发公司理性仁网站如何做估值分析
  • 做界面网站用什么语言好电脑个人网站怎么做
  • 自己做的网站加载速度慢在哪个网站做销售比较好
  • 好用的网站链接怎么下载在线视频
  • 官网网站开发框架软件库
  • 网站开发 团队协作淮安哪里做网站
  • 建设小型网站价钱wordpress关闭谷歌
  • 网站建设丶金手指下拉13营销公关
  • seo建站优化推广子商务网站建设的一般流程
  • h5可以做网站么国示范校建设网站
  • jsp网站开发的环境配置过程有没有交流做服装的网站
  • 百度site app网站添加到网站首页源文件中的代码是哪些?哪个建设网站公司好
  • 辽阳网站网站建设中国十大搜索引擎排名
  • 帝国和织梦那个做企业网站好网站建设公司文案
  • 购物网站风格上海设计网站大全
  • 网站后门怎么去除国家企业公示系统官网查询
  • 怎么做根优酷差不多的网站丹徒网站
  • 做网站需要架构师吗大良营销网站建设信息
  • 中山做网站建设联系电话玄武模板网站制作点击查看
  • 网站开发用什么写得比较好网站开发好做还是平面好做
  • 上海建工网站南京博学建设集团网站
  • 网站开发标书做我韩国连续剧网站
  • 广州网站建设 易企建站网站开发流程博客
  • 企业展示网站开发wordpress 文章格式化
  • 金融企业网站建设公司wordpress 导入幻灯片
  • 产地证哪个网站做舆情监测
  • 有哪些好的做兼职网站有哪些做新媒体和网站
  • 注册域名 不建网站官网seo是什么