三层交换原理图解


关键词

一次路由 多次交换

摘要

在完成对收到的第一个新数据流进行路由后,产生一个MAC地址与IP地址的映射表,当具有相同地址信息的数据流再次通过时,即根据此表直接在二层完成转发。
大家常常听到的“一次路由,多次交换”,可以简单的理解为:在完成对收到的第一个新数据流进行路由后,产生一个MAC地址与IP地址的映射表,当具有相同地址信息的数据流再次通过时,即根据此表直接在二层完成转发。

下面以一个例子,解释三层交换机的转发原理。

 

如图1所示,该组网内,通信的源主机、目的主机连接在同一台三层交换机上,但它们位于不同VLAN(网段)。

对于三层交换机来说,这两台主机都位于它的直连网段内,它们的IP对应的路由都是直连路由。

                                图                           三层转发组网1

 

1中标明了两台主机(AB)MACIP地址、网关,以及三层交换机S3600MAC、不同VLAN配置的三层接口IP

源主机:    简称PC A        |      MAC地址 简称MAC A    |      IP 1.1.1.2    |      网关1.1.1.1                    

目的主机: 简称PC B        |      MAC地址 简称MAC B    |      IP 2.1.1.2    |      网关2.1.1.1                         

交换机: 简称S3600      |       MAC地址 简称MAC S   |      VLAN2三层接口IP        1.1.1.1

                                                                                    VLAN3三层接口IP        2.1.1.1

 

PC A PC B 发起ICMP请求(ping)时,数据交换的过程如下:(假设三层交换机上还未建立任何硬件转发表项,此次交换为首次)

1 根据前面的描述,PC A检查出目的IP地址2.1.1.2PC B)与自己不在同一网段,因此它发出请求:向网关地址1.1.1.1对应MACARP请求;

2 三层交换机S3600收到PC AARP请求后,检查请求报文发现被请求IP是自己的三层接口IP,因此发送ARP应答并将自己的三层接口MACMAC S)包含在其中。同时它还会把PC AIP地址与MAC地址对应(1.1.1.2<==>MAC A)关系记录到自己的ARP表项中去(因为ARP请求报文中包含了发送者的IPMAC);

3 PC A得到网关(S3600VLAN2 1.1.1.1)的ARP应答后,组装ICMP请求报文并发送,源MACMAC A、源IP1.1.1.2、报文的目的MACMAC S、目的IP2.1.1.2

4 S3600收到报文后,首先根据报文的源MAC+VID(即VLAN ID)更新MAC地址表。然后,根据报文的目的MACVID查找MAC地址表,发现匹配了自己三层接口MAC的表项。这里说明一下,三层交换机为VLAN配置三层接口IP后,会在交换芯片的MAC地址表中添加三层接口MACVID的表项,并且为表项的三层转发标志置位。当报文的目的MAC匹配这样的表项以后,说明需要作三层转发,于是继续查找交换芯片的三层表项;

5 交换芯片根据报文的目的IP去查找其三层表项,由于之前未建立任何表项,因此查找失败,于是将报文送到CPU去进行软件处理;

6 CPU根据报文的目的IP去查找其软件路由表,发现匹配了一个直连网段(PC B对应的网段),于是继续查找其软件ARP表,仍然查找失败。然后S3600会在目的网段对应的VLAN 3的所有端口发送请求地址2.1.1.2对应MACARP请求;

7 PC B收到S3600发送的ARP请求后,检查发现被请求IP是自己的IP,因此发送ARP应答并将自己的MACMAC B)包含在其中。同时,将S3600IPMAC的对应关系(2.1.1.1<==>MAC S)记录到自己的ARP表中去;

8 S3600收到PC BARP应答后,将其IPMAC对应关系(2.1.1.2<==>MAC B)记录到自己的ARP表中去,并将PC AICMP请求报文发送给PC B,报文的目的MAC修改为PC BMACMAC B),源MAC修改为自己的MACMAC S)。同时,在交换芯片的三层表项中根据刚得到的三层转发信息添加表项(内容包括IPMAC、出口VLAN、出端口),这样后续的PC A发往PC B的报文就可以通过该硬件三层表项直接转发了;

9 PC B收到S3600转发过来的ICMP请求报文以后,回应ICMP应答给PC AICMP应答报文的转发过程与前面类似,只是由于S3600在之前已经得到PC AIPMAC对应关系了,也同时在交换芯片中添加了相关三层表项,因此这个报文直接由交换芯片硬件转发给PC A

10 这样,后续的往返报文都经过查MAC=>查三层转发表的过程由交换芯片直接进行硬件转发了。

从上述流程可以看出,三层交换机正是充分利用了一次路由(首包CPU转发并建立三层硬件表项)、多次交换(后续包芯片硬件转发)的原理实现了转发性能与三层交换的完美统一。

 

 

要饭二维码

洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

文章的版权

本文属于“洪哥笔记”原创文章,转载请注明来源地址:三层交换原理图解:http://www.splaybow.com/post/switch-principle.html

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:8771947!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

« 交换机端口镜像 H3C交换机之网络故障排查方案 »

相关文章:

H3C交换机EI和SI的区别  (2014/5/23 10:44:59)

H3C与华为的关系  (2014/5/22 14:25:46)

局域网内无法连接虚拟机  (2014/5/9 10:12:27)

控制交换机端口流量  (2014/3/12 10:24:30)

快速生成树协议  (2013/9/26 22:01:36)

配置简单的静态路由  (2013/9/26 21:57:46)

H3C交换机之命名规则  (2013/8/28 17:48:11)

H3C交换机之网络故障排查方案  (2013/8/26 11:31:10)

三层交换原理图解  (2013/8/26 11:03:05)

交换机端口镜像  (2013/7/24 13:18:31)