零入门kubernetes网络实战-27->虚拟网桥bridge介绍

《零入门kubernetes网络实战》视频专栏地址

https://www.ixigua.com/7193641905282875942

本篇文章视频地址(稍后上传)


1、网桥简介

  • bridge是一个虚拟网络交换机,具有网络设备的特性(可以配置IP、MAC地址等);跟物理交换机功能类似。
  • 可以对以太网帧进行转发。
  • bridge有多个端口,数据可以从任何端口进来,进来之后从哪个口出去原理与物理交换机类似,需要看mac地址(即,查询FDB表)。
  • 可以将虚拟网络设备(如veth pair),物理设备(如,eth0网卡)等添加到网桥bridge上,添加到网桥上后,就变成了网桥的从设备了,
    作为网桥的端口使用。
  • 这些网络设备veth pair,物理设备eth0的IP,Mac都不可用了。
  • 这些设备接收到包后,都会交由网桥来处理,如对接收到数据包进行转发,丢弃,广播等操作。

2、网桥一般用在什么地方?

单独存在的网桥是没有意义的,网桥一般是结合虚拟网络设备进行组网,构建不同的网络拓扑。

网桥可以结合虚拟网络设备,如tap/tun、veth-pair

也可以结合eth0

等,用于组网通信。

可以通过网桥将不同网络连接在一起。

3、FDB表(Forwarding database)

3.1、FDB表简介

用于保存二层设备中MAC地址和端口的关联关系,就像交换机中的MAC地址表一样。

在二层设备转发二层以太网帧时,根据FDB表项来找到对应的端口。

例如:
cni0网桥上连接了很多veth pair网卡,

当cni0网桥从外面接收到以太网帧后,cni0网桥怎么知道将接收到的以太网帧转发给哪个网卡呢?

网桥会解析以太网帧的目的MAC地址,然后,从FDB表中查询此MAC地址对应的veth网卡,

网桥找打网卡后(即找到端口),就会将接收到的以太网帧转发给此网卡,此网卡会将以太网帧发送给目的pod。

3.2、FDB表常用命令

3.2.1、查看帮助文档

bridge -h
bridge fdb help

零入门kubernetes网络实战-27->虚拟网桥bridge介绍_第1张图片

3.2.2、查看本宿主机上的所有网桥的链接情况

bridge fdb show

默认情况下,查看的是所有的。

但是并不友好,我们只想查看某个网桥的端口情况

3.2.3、查看某个网桥的端口链接情况

如,假设只查看网桥br0的端口情况。

bridge fdb show br br0

零入门kubernetes网络实战-27->虚拟网桥bridge介绍_第2张图片

4、linux bridge 网桥命令

https://www.jianshu.com/p/4a85a3e9e0b2

4.1、安装brctl命令工具

yum install -y bridge-utils

4.2、查看brctl帮助文档

brctl -h

4.3、查看网桥设备和端口

使用命令 brctl show br0 来查看网桥设备,具体如下所示:

brctl show

零入门kubernetes网络实战-27->虚拟网桥bridge介绍_第3张图片

4.4、查看MAC地址

brctl showmacs br0

零入门kubernetes网络实战-27->虚拟网桥bridge介绍_第4张图片

4.5、查看网桥stp详情

brctl showstap br0

4.6、启动、停止网桥的stp

brctl show br0
# 打开br0的stp协议,即打开生成树协议
brctl stp br0 on
# 默认情况stp的状态为no,即off
brctl stp br0 off

零入门kubernetes网络实战-27->虚拟网桥bridge介绍_第5张图片

4.7、设置网桥转发延迟时间

brctl setfd br0 30.00

零入门kubernetes网络实战-27->虚拟网桥bridge介绍_第6张图片

注意,最大值是30.00

超过后,会报错。

5、场景分析

再接下来的文章中,主要为大家分享一些案例,主要有以下几个:

  • 使用网桥链接同网段的命名空间
  • 使用网桥链接不同网段的命名空间
  • 网桥bridge内部网络如何访问本局域网的其他节点
  • 本局域网的其他节点如何访问宿主机里的内部服务
  • 使用路由技术、bridge、veth pair技术实现跨主机的通信方案
  • 使用NAT+bridge+vethpair实现跨主机的内网通信方案
  • 将eth0添加到网桥上,测试内部网络如何跟本局域网的其他节点的通信

6、总结

  • 没有单独使用网桥的,网桥必须结合其他网络设备使用,如veth pair, tun, tap等
  • 用网桥链接不同的网络命名空间,实际中,如使用网桥链接多个容器服务实例,每个容器服务实例都是不同的网络命名空间
  • 网桥,有重要的二层转发功能。

<<零入门kubernetes网络实战>>技术专栏之文章目录


你可能感兴趣的:(网络,kubernetes,容器,kubernetes网络实战,calico)