环路

http://blog.csdn.net/lickylin/article/details/20401535

网桥转发数据库的代码分析

对于函数br_fdb_update来说,提供的有效信息并不是简单的更新fdb entry那么简单。

首先对于fdb entry建立的分类,我们分析一下:

1、local标签的fdb entry添加

我们知道,在添加网桥端口时,我们会调用br_fdb_insert创建一个local的fdb entry。如果

一个网桥下有4个网桥端口,而4个网桥端口的mac地址是相同的,则在执行brctl addif

时,只会将第一个网桥端口与该本地mac地址对应的fdb entry相关联。

 

2、非local标签的fdb entry添加

这类fdb entry是通过网桥的mac地址学习得到的。是由处理入口流量的br_handle_frame

间接调用生成的。

 

然后,我们再回到br_fdb_update,在该函数里,若发现要update的mac地址所对应的

fdb entry已经存在,函数还会判断这个fdb entry是否是local的。若是local的,说明什么了

呢?说明br_handle_frame处理的入口数据包的mac地址是属于网桥端口的,这就说明了

该网桥下的桥接端口出现了环路。这就是该函数的另一大功能,通过该函数

我们能判断网桥下的端口是否环路了。

http://blog.csdn.net/linyt/article/details/5191512

posted @ 2017-10-16 23:42  cnchengv  阅读(380)  评论(0编辑  收藏  举报