现在的位置: 首页 > 综合 > 正文

一次路由 多次交换[以太网正解]

2013年01月12日 ⁄ 综合 ⁄ 共 976字 ⁄ 字号 评论关闭

三层交换机的结构:ASIC芯片和CPU
ASIC芯片用于完成二层和三层的转发,内部包含用于二层转发的MAC地址表和用于IP转发的三层转发表。
CPU用于转发的控制,主要维护一些软件表项(包括路由表,ARP表),并根据软件表项的转发信息来配置ASIC的硬件三层转发表。
真正决定高速转交换转发的是ASCIC的二三层硬件表项,而ASIC的硬件表来源于CPU维护的软件表项。


假设A和B处于两个不同网段的不同VLAN,中间通过三层交换机的SVI接口(交换机虚拟接口Switch
Virtual Interface
)进行路由转发。


A ping B数据流分析如下:
主机A检查目标B的IP地址,与自己不在同一个网段,因此需通过网关转发,首先查询ARP缓存,没找到网关的MAC,所以广播ARP请求(目标MAC为全F,源MAC为A的MAC,源IP为A的IP,目标IP为网关IP),请求网关的MAC地址,三层交换机收到后,发现是广播帧,进行解封装,发现目标IP是给自己的,所以返回ARP应答,把自己的MAC告诉A,A收到ARP应答后,更新ARP缓存,再重新封装ICMP(目标MAC为网关,源MAC为A,目标IP为B,源IP为A),交换机收到以后,首先根据报文的源MAC+VID更新MAC表,根据报文的目的MAC+VID进行查MAC表,发现匹配自己的三层接口的MAC表项(说明:三层交换机给分配SVI的IP地址时,会在交换机的MAC表项中添加三层接口的MAC+VID),当报文中的目的MAC与这个三层接口的MAC表项匹配时,就进行三层转发,查找三层表项,因为第一次是空的,所以查找失败,于是将报文交给CPU进行软件处理,CPU根据目标IP进行查找路由,匹配到一个直连网段,于是查找ARP表,第一次还是空的,所以查找失败,则在目标网段进行广播ARP请求B的MAC地址,B收到后给出ARP应答,交换机收到应答,更新MAC表和ARP表,同时重新封装ICMP发送给B(目标MAC为B,源MAC为三层交换接口的MAC,目标IP为B,源IP为A)。同时,交换机的三层表项根据刚刚得到的三层转发信息添加表项(包括IP,MAC,VLAN,出接口),这样后续的报文如果匹配三层表项,就可以直接进行硬件转发了,这样就叫做“一次路由多次交换”。B收到后给出ICMP应答,就是以上过程的逆过程,所以PING通了。

抱歉!评论已关闭.