【摘要】 跟唐老师学习云网络,已经进入到虚拟化的世界啦。Bridge是网络虚拟化中非常重要的一种设备,快来一起学习Linux-Bridge的作用吧。

一、什么是Linux-Bridge

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

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

1、物理集线器Hub

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

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

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

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

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

1.2 虚拟集线器Bridge

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

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

二、容器使用Bridge

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

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

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

三、虚机使用Bridge

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

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

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

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

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

四、怎么查看Bridge信息

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

4.1 查询Bridge信息

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

上面这个可以看到,有四个veth网卡插在名字为docker0的Bridge网桥上面(其实就是有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

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

点击这里,了解更多精彩内容

相关推荐

《跟唐老师学习云网络》 - Kubernetes网络实现

《跟唐老师学习云网络》 - Veth网线

《跟唐老师学习云网络》 — ARP你在哪

《跟唐老师学习云网络》 -第4篇 router路咋走啊

《跟唐老师学习云网络》— IP和掩码

《跟唐老师学习云网络》 - TUN/TAP网线

【华为云技术分享】《跟唐老师学习云网络》 - Bridge网桥相关推荐

  1. 【华为云技术分享】唐老师带你秒懂大数据,以及Spark和Flink在干啥咧

    [摘要] 花20分钟时间入门一个新领域,唐老师以一个生活中的例子,表达大数据框架Spark和Flink的各自特色.入门总结,请多指教. 作为网络老砖家(自封),唐老师本对大数据是一窍不通,在看完一系列 ...

  2. 【华为云技术分享】《跟唐老师学习云网络》 - 我的网络概念

    [摘要] 之前讲过该一系列文章都是入门的,保证你会对,但是精通还要靠自己进一步深入(感兴趣的话). 一.电脑主机 <--> Host 一台电脑很简单,一个壳子里面堆了很多玩意.但是你买了电 ...

  3. 【华为云技术分享】《跟唐老师学习云网络》 - Kubernetes网络实现

    当今K8s独霸天下之时,咱们站在更高的角度,好好的看看K8s的网络是以什么理念构筑的.以及一个容器集群的好保姆,是如何分别照顾 南北流量和东西流量的. 一.简单介绍下Kubernetes 略..容器集 ...

  4. 【华为云技术分享】《跟唐老师学习云网络》—我的网络概念

    [摘要] 之前讲过该一系列文章都是入门的,保证你会对,但是精通还要靠自己进一步深入(感兴趣的话). 一.电脑主机 <--> Host 一台电脑很简单,一个壳子里面堆了很多玩意.但是你买了电 ...

  5. 【华为云技术分享】《跟唐老师学习云网络》 — IP和掩码

    [摘要] 我们下面接着上次第二篇开启讲解IP和掩码知识,如有疑问点欢迎下方评论一起交流. 一.主机的门牌号(IP地址) 当接入到网络里面的主机数量越来越多,每台主机都需要的门牌号(IP地址)数量就越来 ...

  6. 【华为云技术分享】《跟唐老师学习云网络》 - TUN/TAP网线

    介绍TUN/TAP设备的概念和常见作用(即打通VM和Host间的网络),以及和Veth-pair网线的区别.这一节内部比较简单,因为主要内容已经在Veth网线里面讲了. 什么是TUN/TAP TUN/ ...

  7. 【华为云技术分享】《跟唐老师学习云网络》 - Tcpdump大杀器抓包

    [摘要] 前面章节的网络协议栈相关的信息建议大家多学习一遍,因为这些都是最基础的东西,想玩好云网络必备基本功.. 一.上帝视角 之前提到过定位问题可以开启上帝视角,那么如何开启就要依靠tcpdump这 ...

  8. 【华为云技术分享】《跟唐老师学习云网络》 - Veth网线

    [摘要] 学习Veth-pair的概念和作用,并实战使用Veth + Network Namespace新建了一个可以独立使用的网络命令空间,从而详细了解了一个完整的网络空间是如何搭建的过程. 1   ...

  9. 【华为云技术分享】《跟唐老师学习云网络》—router路咋走啊

    [摘要] 好了,到这里至少你应该能看懂路由表信息了.给你一个目的IP,你也应该知道它会使用哪一条路由了. 路怎么走就看骚年你了~ 一.路由 其实关于网络大家遇到最多的问题就是:卧 槽,为什么不通啊! ...

最新文章

  1. nginx之upsream实现负载均衡
  2. 2020.12.07.记录
  3. 浏览器中的标签切换事件
  4. 项目经理的几个重要转变
  5. Android nDrawer
  6. UA STAT675 统计计算I 随机数生成1 随机数生成器的一般理论
  7. boost::range模块heap算法相关的测试程序
  8. 拓端tecdat|R语言文本主题模型之潜在语义分析(LDA:Latent Dirichlet Allocation)
  9. 论文实录 | 毕业设计如何做需求分析?
  10. Windows系统注册表
  11. web - 前端特效和博客
  12. 二维码的实现原理和实现过程[纠错码编码]
  13. Allegro 使用一些总结
  14. shadow 文件详解
  15. Android技术开发 必备网站及使用工具
  16. android 菜单一行两列,Android RadioGroup 横向显示(两行两列)
  17. python写文件numpy_Numpy | 23 文件读写
  18. Cent OS 8安装Docker
  19. 云计算部署与管理 NSD CLOUD
  20. ZEMAX光学系统导入和CAD导出

热门文章

  1. 二倍图三倍图什么意思_为什么说我们需要软件架构图?
  2. Win8下80端口被System占用,造成Apache不能启动的解决办法
  3. nginx+tomcat+redis负载均衡,实现session共享
  4. 正则表达式基础知识,持续更新…
  5. 【机器学习】一般线性回归
  6. tab栏的切换【DOM点击事件】
  7. mysql5.6-5.7性能调优
  8. xcode--常用快捷键
  9. 线性存储(链表存储)
  10. 动态规划——买卖股票的最优时机含手续费(Leetcode 714)