Chinaunix首页 | 论坛 | 博客
  • 博客访问: 76730
  • 博文数量: 12
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 82
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-29 15:07
文章分类

全部博文(12)

文章存档

2016年(5)

2015年(7)

我的朋友

分类: 网络与安全

2015-08-31 22:03:47

说明:以单播来举例说明过程
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处理.
阅读(2104) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~