1. MAC MOVE
SMAC 相同的报文从VPN 不同PORT 进来,如果一定周期内重复次数过于频繁,就认为产生了MAC MOVE ,也就是VSI ID+Session ID+SMAC 表中的Result 结果中出口信息不停的变化,要采取相应措施
2. 静态 Unicast 和Multicast


3. FIB Quota
VSIINTERFACE 表:
KEY :VSIID+VSI Interface
RESULT :Quota 数目,BSC 抑制,FIB 最后一次FLUSH 的Session ,动态MAC Counter 的寄存器号(永远储存学习到的FIB 数目)
FIB 表:
KEY :VSI ID+Session ID+SMAC
RESULT :PORT ,出口VSIINTERFACE (组播的时候=GROUPID ),Static
VSIINTERFACE 表是查FIB 表之前确定KEY 的必查表,FIB quota 数目是最后一次FLUSH 的VSI ID+Session ID 的值为索引,最多FIB 条目数,也就是说VSI ID+Session ID+SMAC 最多有Quota 的数目
4. FIB BSC
对于所有的广播和未知单播报文在广播时需要对其转发速率进行限制
5. FIB 查表流程
FIB 表的KEY 中Session 是0-0xF 来循环的,最后一次FLUSH 的Session 为最终FIB 表
组播时候是通过GROUPID 找到PORTNUM 表和PORTLIST 表找到PORT 和VSI Interface
广播报文---- 根据DMAC 判断是广播,走PORTNUM 表和PORTLIST 表,找到出口信息
UNKOWN 单播---- 根据DMAC 查FIB ,命中SMAC ,找到出口信息
UNKOWN 单播---- 根据DMAC 查FIB 表,无法命中,直接广播
如果没有配置静态组播---- 那么组播报文发生的端口和广播报文发生的端口相同
如果配置静态组播---- 根据DMAC 查FIB 表,组播根据SMAC 获得GROUPID,查PORTNUM表+PORTLIST表,得到出口信息
6. FIB FLUSH
FLUSH 就是强制老化,首先VSIINTERFACE 表中的MAC Counter 的寄存器和Session 更换为新的,不管是静态还是动态MAC ,同一个VPN 的Session 是一样的
也就是说FLUSH 的过程是静态(自动加1)和动态FIB 表(如果FLUSH 过后马上又学到的话)的Session 值都要+1(如果没学到得当然不会+1) , 之前Session 的表现不关心,老化时间到了后NP 会清除的
7. FIB Aging Time
老化时间到了后,首先VSIINTERFACE 表中的MAC Counter 的寄存器和Session 更换为新的,不管静态还是动态MAC ,MAC Counter 的寄存器中是学习到数目,减去老化的数目(一个VPN 专门分配MAC Counter 的寄存器记录老化掉的数目),就是剩下的FIB 数目,也就是FIB Counter
8. MAC LEARNING
VSIINTERFACE 表RESULT 有MAC 学习的使能标识,报文查VSIINTERFACE 表后,根据此标识决定学习
学习到MAC 后,FIB 表增加一项,并将MAC Counter 的寄存器+1
9. FIB Aging&FLUSH实例
存在这种情况,VPN 两个入口报文(DA+SA 双向)一直在发,FIB 学习到了后就一直在命中FIB 表,FLUSH 两次后的现象是
Key[ VsiID VsiSesn MAC
0 46 A 210100000000
1 46 B 210100000000
2 46 C 210100000000
VSIINTERFACE 表中Session 值改为了C ,为什么A 和B 的FIB 表还在呢?因为他们已经不需要关心了,C 存在的原因是最新学习到的
如果这个时候入口报文停止发,不命中了,再FLUSH
Key[ VsiID VsiSesn MAC
0 46 A 210100000000
1 46 B 210100000000
2 46 C 210100000000
VSIINTERFACE 表中Session 值改为了D ,ABC 表等到老化时间到了后NP 会清除的
--------
| |
| |P1<-0x00000000000A 0x00000000000B(learn B,direct to down port)
| |
| |P2<-0x00000000000B 0x00000000000A
| |
| |P3<-0x00000000000B 0x00000000000A
| |
--------
P1和P2对发
0x0B P1
0x0A P2
P2 down
0x0B P1
0x0A P2
P2 发0x00000000000B 0x00000000000C
0x0B P1
0x0A P2
0x0C P2
0x0A FIB不马上更新(数据依然知道从P2出),等到老化时间到了FLUSH以下,就为空了
(
MSTP&ERPS PORT down会flush FIB,担心FIB表还在
)
P2 down
P3 发0x00000000000B 0x00000000000A
0x0B P1
0x0A P3
0x0A FIB马上更新了,知道从P3出了
沒有留言:
張貼留言