说明:以单播来举例说明过程
1.二层交换的过程要点
(1).报文进入交换机后首先进行报文的Tag检查,也就是报文的VLAN检查,(因为在交换机内部,数据都是带Tag的).如果报文没有携带VLAN,那么硬件就会给报文打上端口PVID.如果端口没有配置允许某些VLAN通过,则携带这些VLAN的报文将会被丢弃.报文在交换机内部的转发是基于VLAN+DMAC的.
(2).STG检查.就是检查端口的FORWARD,BLOCK等状态(MSTP等协议在消除回环时可能会设置端口处于BLOCK),在BLCOK状态,端口不转发报文.
(3).src mac lookup.安全特性相关的检查.
(4).dst mac loopup.二层的转发就是在这里完成的,在这里根据VLAN+DMAC查找FDB表,在这个表中,记录了一个5元组,来决定数据的下一步处理.FDB表结构是:MAC--VLAN ID--PORT--L3 FLAG--static flag .如果L3 flag置1,则报文是通过三层继续转发.否则,根据MAC地址则可以找到对应的交换机的端口号,把报文从对应端口转出即可.如果在FDB中找不到对应的条目,则目的MAC没有被学习到,此时,数据被广播到报文中包含的VLAN中.
2.三层交换的过程要点
(1).在L3 flag检查后,确认进行三层转发时,会首先检查报文是不是合法.
(2).源IP的合法性检查,如果不合法,copy至cpu.
(3).目的IP的检查,如果查找到,则找到下一跳索引.
(4).如果没找到第3步目的IP条目,则查找DEF_IP_Table,如果找到则查找下一跳索引,没找到就copy到cpu处理.
阅读(2154) | 评论(0) | 转发(0) |