Linux Bridge的工作原理

1、原理介绍

1.1 Linux 网络设备

linux用户想要实现网络设备功能,不能直接通过操作硬件完成,而是需要直接或间接操作一个linux系统为我们抽象出来的通用linux网络设备来完成。

类似于系统中有一个硬件网卡,Linux会在系统中生成一个网络设备实例,如eth0,用户可以通过对eth0发送命令或配置来使用硬件。随着硬件的增加,虚拟的硬件也会带来更多的设备实例,使情况变得复杂。

1.2 Linux Bridge

Linux Bridge(网桥)是在linux上用来TCP/IP两层协议交换的设备,类似于交换机的功能。

Bridge可以绑定其它Linux网络设备作为从设备,并将这些设备虚拟化为端口,类似于交换机和一个终端用户通过网线连接。当有数据到达时,Bridge会根据报文中的MAC信息进行广播、转发、丢弃处理。

Bridge的功能只要在内核中实现,当一个从设备连接在Bridge上时,此时内核程序中,netdev_rx_handler_register()被调用,一个用于接收数据的回调函数被注册。之后每次从设备接收到数据时都会调用该函数将数据转发到Bridge上。在Bridge接收到该收据后,调用br_handle_frame()函数,对数据进行处理,包括:判断包的类别(广播/单播),查找内部MAC端口映射表,定位目标端口号,将数据转发到目标端口号或丢弃,自动更新内部MAC端口映射表以自我学习。

2. 图例

 

 3. 图解

由图可知,Bridge设备br0绑定了实际设备eth0和eth1.对于网络协议栈的上层来说,只看到了br0,因为桥接是在数据链路层实现的,上层协议栈不关心桥接的细节。当从设备接收到数据包时,会将数据转输给br0决定数据包的去向,br0会根据MAC地址和端口的映射关系进行转发eth0或eth1。反之亦然

由于Bridge工作在数据链路层,所以绑定的eth0,eth1,不再需要设置IP,对于上层来说,它们都位于同一个子网,因此只需为br0设置IP,比如10.0.1/24,因此eth0,eth1均通过br0出入10.0.1.0/24网段。

由于br0具有自己的IP,所以br0可以直接加入路由表,并通过它来发送数据,而实际的数据的发送过程是由某个设备来完成的。

如果eth0本身有自己的IP,那么在绑定br0后,它原来的IP就会失效,用户程序不能接受到发送到这个IP的地址,只有目的地址为br0的IP地址会被Linux接受得到。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Linux bridge是一个在Linux操作系统下使用的虚拟网络设备,类似于一个简单的二层虚拟交换机。它集成在Linux中,允许不同的终端虚拟设备通过连接到bridge来实现彼此之间的通信和与外部设备的通信。Linux bridge主要由四个部分组成,这些部分是构成二层物理交换机的关键组件,可以说是虚拟化了物理交换机的基本功能。 与传统的物理交换机类似,Linux bridge具有多个端口,数据可以从任何端口进入,并通过查找目的MAC地址来决定从哪个端口出去。创建Linux bridge时,可以将多个物理或虚拟网络接口连接到它上面,从而实现不同设备之间的数据转发和互联。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [云计算网络之--linux bridge 详解](https://blog.csdn.net/wuheshi/article/details/108133097)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Linux虚拟网络设备之bridge(桥)](https://blog.csdn.net/weixin_34366546/article/details/89059434)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值