看完了路由表,重新回到 netif_receive_skb ()函数,在提交给上层协议处理前,会
执行下面一句,这就是网桥的相关操作,也是这篇要讲解的内容。
view plaincopy to clipboardprint?
1. skb=handle_bridge(skb,&pt_prev,&ret,4orig_dev);44
网桥可以简单理解为交换机,以下图为例,一台 linux 机器可以看作网桥和路由的结
合,网桥将物理上的两个局域网 LAN1、LAN2 当作一个局域网处理,路由连接了两个子网
1。0 和 2。0。从 eth0 和 eth1 网卡收到的报文在 Bridge 模块中会被处理成是由 Bridge 收
到的,因此 Bridge 也相当于一个虚拟网卡。
STP 五种状态
DISABLED
BLOCKING
LISTENING
LEARNING
FORWARDING
创建新的网桥 br_add_bridge [netridger_if。c]
当使用 SIOCBRADDBR 调用 ioctl 时,会创建新的网桥 br_add_bridge。
首先是创建新的网桥:
view plaincopy to clipboardprint?
1. dev=new_bridge_dev(net,name);
然后设置 dev-〉dev.type 为 br_type,而 br_type 是个全局变量,只初始化了一个名
字变量
view plaincopy to clipboardprint?