工具包

bridge-utils

what

同 tap/tun、veth-pair 一样,bridge是一种虚拟网络设备,可以配置IP、MAC,同时bridge也是一个交换机,具有交换机所有的功能.
网桥是一种在链路层实现中继,对帧进行转发的技术,根据MAC分区块,可隔离碰撞,将网络的多个网段在数据链路层连接起来的网络设备

  • 对于普通的网络设备,就像一个管道,只有两端,数据从一端进,从另一端出。而 Bridge 有多个端口,数据可以从多个端口进,从多个端口出
  • Bridge 的这个特性让它可以接入其他的网络设备,比如物理设备、虚拟设备、VLAN 设备等。Bridge 通常充当主设备,其他设备为从设备,这样的效果就等同于物理交换机的端口连接了一根网线。


  • bridge和route比较相似,都可以用来分发网络数据包,它们的本质不同在于:route在L3网络层,使用路由协议、bridge在L2数据链路层,通过学习和缓存在链路上传输的数据包中的源地址以及物理层的输入端口:
    • 收到新数据包时,记录源MAC地址和输入端口
    • 根据数据包中的目的MAC地址查找本地缓存,如果能找到对应的MAC地址记录
    • 若发现记录不在本地网络,直接丢弃数据包
    • 若发现记录存在对应的端口,则将数据包直接从该端口转发出去
    • 如果本地缓存中不存在任何记录,则在本网段中进行广播

VM同主机通信

  1. 创建bridge

    ip link add br0 type bridge

  2. 给网桥添加接口

    brctl addif br0 eth1

  3. 删除网桥

    brctl delif br0 eth1
    brctl delbr br0

  4. 建立永久网桥

    1 修改网卡配置文件,添加BRIDGE
    [root@client ~]# vim/etc/syscofig/network-scripts/ifcfg-网卡名
    内容如下:
    1 DEVICE=eth1
    2 ONBOOT=yes
    3 BOOTPROTO=none
    4 BRIDGE=br0 #桥接对象为br0
    2 建立br0 配置文件
    [root@client ~]# vim /etc/syscofig/network-scripts/ifcfg-br0
    内容如下:
    1 DEVICE=br0
    2 ONBOOT=yes
    3 BOOTPROTO=none
    4 IPADDR=172.25.151.50
    5 PREFIX=24
    6 TYPE=Bridge #类型为桥接

不同命名空间的网络通信


vm中使用网桥

docker中使用网桥

文档更新时间: 2021-01-22 05:14   作者:周国强