linux 网桥代码分析
文章平均质量分 90
1、网桥基础知识
2、linux内核协议栈网桥相关代码分析
3、内核版本3.10
老王不让用
芝兰生于幽谷,不以无人而不芳; 君子修身立德,不为穷困而改节
展开
-
linux 网桥代码分析之网桥数据转发函数分析Ⅵ
目录1 指定端口转发数据br_forward()1.1 是否允许转发should_deliver()1.2 转发函数 __br_forward()1.2.1 公共转发接口 br_forward_finish()2 所有端口发送数据br_flood_forward()3 本地数据指定端口发送br_deliver()3.1本地数据发送 __br_deliver()4 本地数据所有端口发送br_flood_deliver()网桥收到非本地的报文时需要将报文进行转发,...转载 2021-01-07 21:13:59 · 2231 阅读 · 0 评论 -
linux 网桥代码分析之网桥端口设备接收数据包处理分析Ⅴ
1 网桥处理报文概述网桥是一种2层网络互连设备,而不是一种网络协议。它在协议结构上并没有占有一席之地,因此不能通过向协议栈注册协议的方式来申请网桥数据包的处理。相反,网桥接口的数据包和一般接口(如eth0)在格式上完全是一样的,不同之处是网桥在2层上就对它进行了转了,而一般接口要在3层 才能根据路由信息来决定是否要转发,如何转发。linux内核是通过一个虚拟的网桥设备来实现桥接的。这个虚拟设备可以绑定若干个以太网接口设备,从而将它们桥接起来。如下图(摘自ULNI):网桥设备br0绑定了eth0..转载 2021-01-07 15:53:38 · 3173 阅读 · 0 评论 -
linux 网桥代码分析之网桥转发数据库的代码分析Ⅳ
1 数据库初始化br_fdb_init()该函数调用kmem_cache_create 来创建一个新缓存(这个函数并没有向缓存分配任何内存)int __init br_fdb_init(void){ br_fdb_cache = kmem_cache_create("bridge_fdb_cache", sizeof(struct net_bridge_fdb_entry), 0, SLAB_HWCACHE_ALIGN, NULL); if (!br...转载 2021-01-06 15:03:01 · 1822 阅读 · 1 评论 -
linux 网桥代码分析之网桥及网桥端口的添加与删除Ⅲ
目录1 网桥添加br_add_bridge()1.1 申请并初始化 net_device、net_bridge1.1.1 初始化网桥br_dev_setup()1.1.2 网桥操作函数集合2网桥删除br_del_bridge()3 网桥端口添加br_add_if()3.1 网桥端口创建new_nbp()4 网桥端口删除br_del_if()4.1 删除网桥端口 del_nbp()4.1.1 网桥端口销毁destroy_nbp_rcu()、destroy...转载 2021-01-05 19:19:54 · 3326 阅读 · 0 评论 -
linux 网桥代码分析之网桥初始化Ⅱ
目录1 初始化br_init()1.1 CAM 转发表初始化br_fdb_init()1.2 注册通知链struct notifier_block br_device_notifier1.3 注册用户态 ioctl 接口br_ioctl_deviceless_stub()1 初始化br_init()对于网桥初始化所需要做的功能,主要有以下几项调用 stp_proto_register 进行 stp 协议相关的初始化 调用 br_fdb_init 进行CAM表的初始化...转载 2021-01-05 15:31:48 · 1269 阅读 · 0 评论 -
linux 网桥代码分析之网桥功能及其相关数据结构Ⅰ
目录1 linux 网桥功能2 相关数据结构2.1 网桥struct net_bridge2.2 网桥端口struct net_bridge_port2.3转发表项struct net_bridge_fdb_entry2.4 嵌套关系1 linux 网桥功能《linux 网桥浅析》2 相关数据结构2.1 网桥struct net_bridgestruct net_bridge{ spinlock_t lock; //自旋锁,在向net_brid...转载 2021-01-05 11:42:19 · 1098 阅读 · 0 评论 -
linux 网桥配置命令:brctl
Linux网关模式下将有线LAN和无线LAN共享网段实现局域网内互联:思路其实很简单:就是将虚拟出一个bridge口,将对应的有线LAN和无线LAN都绑定在这个虚拟bridge口上,并给这个bridge口分配一个地址,其他子网微机配置网关为bridge口的地址便可以了。当然,因为是设备是网关模式,路由和nat也是必须的了。如果设备本身便是网桥模式,那么路由和nat便可以省掉了。brctl addbr bridgebrctl addif bridge eth0brctl addif bridg转载 2021-01-03 21:28:38 · 3473 阅读 · 0 评论 -
linux 网桥浅析
目录1 什么是桥接?2 linux的桥接实现2.1 相关模型2.2 相关数据结构2.3 接收过程2.4 发送过程2.5 生成树协议2.5.1 确定树根2.5.2 确定上行口2.5.3 确定需要被阻塞的下行口1 什么是桥接?简单来说,桥接就是把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。交换机就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。于是,与交换机相连转载 2021-01-02 23:15:24 · 2025 阅读 · 1 评论 -
集线器、交换机、网桥区别
目录1 集线器2 网桥3 交换机4 网桥和交换机的工作原理及区别?4.1 网桥的连接模式:(红点处为HUB)4.2 交换机连接模式4.3 网桥的工作原理4.4 交换机有些许不同4.5 值得注意的一些问题4.5.1 网桥需要软件辅助?4.5.2网桥用于连接不同的网段?(搜索百度时查到一个答案)4.6这里再次总结一下网桥和交换机最近一直在看网络方面的东东,先把基础的东西总结一下,注意:以下的概念现在已经不一定准确了,因为硬件发展相当迅速,集成电路的集成度越..转载 2020-12-27 18:40:26 · 1313 阅读 · 2 评论 -
网桥的工作原理
目录1功能介绍2题目分析1功能介绍网桥工作在数据链路层,起到的作用是把多个 “局域网” 连接起来,组成更大的局域网。它的功能主要有两点:过滤和转发。通常来看,网桥起到了把不同局域网连接在一起的作用,即使这些局域网使用不同的协议比如802.11和802.3。加入一个网桥连接一个802.3和一个802.11,那么网桥转发的时候首先需要把802.3的帧头拆掉,换成802.11的头,再转发给802.11使之适应无线局域网的帧格式。我们来看看网桥的过滤和转发功能:网桥连接着局域网...转载 2020-12-27 18:31:31 · 11645 阅读 · 3 评论