![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux桥模式系列
不留你的名字
敢想敢做什么时候都不晚
展开
-
桥初始化(一)
注:章节中的源代码,基于linux内核4.7.4网桥的背景到处都有,在这里就不浪费的时间说废话了。桥接程序的初始化,桥接程序既可以集成在内核中,也可以编译成独立模块。初始化函数br_init和清理函数br_deinit的定义在/net/bridge/br.c中在网桥设备初始化的时候,主要是做一些注册和初始化的操作。static int __init br_init(void){ int原创 2017-07-13 10:53:04 · 1506 阅读 · 0 评论 -
添加一个桥设备——br_add_bridge(二)
上一节,讲述桥模式初始化时需要做的一些事情,这一节,我们一起来看看如何添加一个网桥设备。 我们先来看一个命令: **brctl addbr br1** 上节我们提到一个用来处理ioctl命令的函数br_ioctl_deviceless_stub通过调用brioctl_set,将br_ioctl_deviceless_stub赋值给回调函数br_ioctl_hook,而br_i原创 2017-07-13 18:41:55 · 1751 阅读 · 0 评论 -
给网桥添加端口——br_add_if(三)
上一节,我们了解如何,添加一个桥设备的大致步骤,现在我们看看如何在桥设备上添加一个端口。 我们先来看一个命令 brctrl addif br0 eth1 这个命令的作用是在br0上添加一个eth1的接口,内核实现的相关函数是br_add_if. 那么如何调用到这个接口呢? 上节我们在将添加一个桥设备的时候,有一个参数br_netdev_ops,我们当时说这里面有很多原创 2017-07-21 15:24:42 · 5411 阅读 · 0 评论 -
桥设备及端口的开启和关闭(四)
关于设备的添加删除的基本动作,我们已经知道。这节,我们看看关于网桥设备以及桥设备上的端口的启动和关闭。我们说过,在初始化一个桥设备的时候有这样一个操作:dev->netdev_ops = &br_netdev_ops;br_netdev_ops这个参数,注册了很多函数,其中包括网桥设备的启动和关闭函数br_dev_open和br_dev_stop,这两个函数的工作主要是初始化桥设备的一些队列和原创 2017-07-24 16:16:34 · 1213 阅读 · 0 评论 -
桥数据包处理函数——br_handle_frame_finish(七)
上一节我们了解到,数据包如何走进桥,这一节我们简单看看,入口帧处理函数br_handle_frame_finish.作用:br_handle_frame_finish函数主要是决策将不同类别的数据包做不同的分发路径。其函数处理的过程如下图所示:首先判断该数据包是否符合桥转发的条件: (1)桥端口状态是否是开启状态,如果没有开启则丢掉数据包 (原创 2017-08-04 11:56:49 · 8196 阅读 · 1 评论 -
skb桥转发蓝图(五)
在前几节中,对于桥设备,桥端口的添加删除,初始化等等做了简单的介绍,这节开始我们开始看看数据在桥上是怎么转发的 话不多说,先看一张桥转发时函数调用的一个基本蓝图。这张图中,简单的展示了,数据的接收和发送,其中还包括ebtables的钩子点所处的位置。需要说明的是: 1.我们先暂时忽略数据包从一开始是怎么从驱动进原创 2017-07-26 17:06:31 · 2464 阅读 · 3 评论 -
桥数据包接收----br_handle_frame(六)
从这节开始,我们看看数据包如何在桥中进行转发的一些动作。首先,上节的大蓝图中,标识除了,数据包是如何进入桥的,有一个很重要的函数br_handle_frame这个函数的初始注册地点是在桥添加接口的时候,注册在桥某一个接口上int br_add_if(struct net_bridge *br, struct net_device *dev){ ........ /*注册设备接收帧函原创 2017-07-27 16:08:31 · 4995 阅读 · 0 评论 -
桥数据包转发(八)
上一节,通过流程图以及源代码结合,我们了解到,数据处理函数br_handle_frame_finsh大致的数据包分类发送的过程这节,简单看一下,数据包的转发过程:无论是在发往本地还是转发,有一个函数的功能是不能忽略的,就是br_handle_vlan函数struct sk_buff *br_handle_vlan(struct net_bridge *br,原创 2017-08-05 11:04:03 · 1734 阅读 · 1 评论