《跟唐老师学习云网络》 - Bridge网桥

举报
tsjsdbd 发表于 2020/04/02 21:57:48 2020/04/02
【摘要】 跟唐老师学习云网络,已经进入到虚拟化的世界啦。Bridge是网络虚拟化中非常重要的一种设备,快来一起学习Linux-Bridge的作用吧。

 

1      什么是Linux-Bridge

咱们直接说人话:跟tap/tunveth-pair是模拟网线的类似,Bridge也是照着物理设备的样子,在Linux系统里面虚拟出来的一种网络设备。

因为它也是网络设备,所以可以配置 IPMAC 等。然后它模拟的物理设备叫Hub(集线器)。

 

1.1      物理集线器Hub

很多小伙可能没有见过,咱们直接上图:

image.png

上面这个东西没见过,可以参考下面这个,原理是一样一样的。

image.png

Hub的效果类似于把所有网线都焊在一起的感觉:

image.png

也就是不管信号从哪个口子进来,其他口子都能收到。“大喇叭”,“广播桶”,可以这么理解Hub

    我们以前寝室里面打小组游戏,就是大家把网线往集线器一插,然后就是一个mini小局域网了。

 

1.2      虚拟集线器Bridge

所以呢,Linux里面虚拟出来的这个Bridge也是这个效果。用户可以把很多网卡,插到这个Bridge上面,然后互相之间就能连通了,于是往Bridge发报文,所有插在上面的网卡全都收到这个报文。(目的比较单纯,就是把大家连在一起)

一般用来把 tap/tunveth-pair网线连到Bridge上面,这样可以把一组容器,或者一组虚机连在一起。比如著名的Docker就是用BridgeHost里面的容器都连在一起,使得这些容器可以互相访问。也可以把Host上面的物理网卡也加入到Bridge,这样主机的VM就可以和外界通信了。

2      容器使用Bridge

image.png

按照Docker容器举例,这里会把多个容器的veth网线的一头,插入到Bridge,使得所有容器相当于焊在一起。同时在主机上,我们可以看到的网卡会多1个叫docker0的网卡(docker0就是Bridge网桥):

image.png

Ps:这里有个有意思的地方是,没有把主机上原有的那个eth0也加入到Bridge。而虚机使用Bridge,一般会把原来Host上面的网卡加入到Bridge。(容器不加入,一是因为大量容器的IP,可能会和Host所在网络上,它那些兄弟VM们的IP冲突。二还有容器网络模式可以多种模式选择,保留灵活性。)。

    至于容器怎么通过Bridge和外面的世界进行通信,这个咱们在后续的《Docker网络实战》里面详解。

 

3      虚机使用Bridge

image.png

虚机这里不一样的是,一般会把Host自己原来的eth0网卡,也一块加入到Bridge(如果虚机想要联网的话)。相当于上面4个“人”都是兄弟了,大家在一个局域网。

通过Bridge,可以把所有的虚拟机网络连在一起。

image.png

上面这些VM以为自己的世界:

image.png

后面你可以回到原来物理网络的视角去理解更高级的怎么给VM分组问题(不明白的可以回顾早期课程)。要给VM分帮派,或者说给这些VM们分不同的子网,就需要能给这些VMVLANtag的功能,这个功能Bridge(集线器)就搞不定了,需要引入更高级的“路由器”。

Ps:物理世界也差不多,集线器的价格很便宜,和路由器的价格不是一个档次的。路由器可以设置每个端口的VLAN标记等高级功能。也就是咱们下一期的OVSOpen vSwitch)课程了。

 

4      怎么查看Bridge信息

一般我都用 brctl 这个命令行(ip命令也可以用,但是我感觉brctl更直接),比较方便:

image.png

 

4.1      查询Bridge信息

用的最多的就是,查询一个Bridge上面插了哪些网卡:也就是show这个子命令

image.png

上面这个可以看到,有四个veth网卡插在名字为docker0Bridge网桥上面(其实就是有4个容器连在一起)。

4.2      网卡插入Bridge

用的第二多的就是 把一个网卡插入一个Bridge里面。即:addif 子命令

我们可以试一下,先创建一根“网线”

ip link add tsj-0 type veth peer name tsj-1

 

然后创建一个Bridge

brctl addbr tsj-br

 

然后把网线一头插入这个Bridge

brctl addif tsj-br tsj-0

 

查询结果:

brctl show tsj-br

 

image.png

额,其实“容器世界”也是这么创建出来的。

 


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。