三层交换机——一次路由,多次转发
之单臂路由
一、序
? 首先,想要理解三层交换机相关知识,我们需要理解(二层设备)交换机(数据链路层)和(三层设备)路由器(网络层)的相关知识,对二层(数据帧)转发和三层(数据包)转发原理理解的基础上,理解MAC地址表、ARP缓存表和路由表的相关知识。
? 如果谈到三层交换机必然离不开对VLAN划分和Trunk链路的理解,简单来说,VLAN划分的目的主要是为了解决网络中广播风暴的产生,其导致的结果是属于同一网段不同VLAN的主机是无法正常通信的;而Trunk链路的由来是为了实现不同交换机之间相同VLAN的主机相互通信,那么我们会考虑这样的一个问题:在局域网划分VLAN后,局域网中不同VLAN的主机之间是如何进行互相通信的呢?
? 这就需要三层交换技术来帮我们解决这样的问题。
? 说到三层交换就不得不谈一下它的前身:单臂路由——单臂路由(router-on-a-stick)是指在路由器的一个接口上通过配置子接口(或“逻辑接口”,并不存在真正物理接口)的方式,实现原来隔离的不同VLAN(虚拟局域网)之间的互联互通。
那么单臂路由的原理是什么呢?
? 逻辑子接口的概念:路由器的物理接口可以被划分成多个逻辑接口(或者认为是虚接口),这些被划分后的逻辑接口被形象的称为子接口。值得注意的是这些逻辑子接口不能被单独的开启或关闭,也就是说,当物理接口被开启或关闭时,所有的该接口的子接口也随之被开启或关闭。
二、下面结合一个具体的单臂路由的拓扑图来说明:
? (1)对交换机进行配置:VLAN划分和Trunk链路搭建
(2)对路由器进行相关配置
(3)配置pc机IP地址,使用wireshark软件抓包分析并进行测试,先给出结果然后看抓包来分析这个过程
抓包结果(选择其中一次ping包数据的(基于ICMP协议)抓包信息来讲述这个过程):
我选择的是上述发送ping包的最后一次ping通时的结果,即截取出序列号为100-103的一层一层讲述这个过程
(1)首先源IP地址是PC1的,目标IP地址是PC2,发送出去时首先经过交换机,那么此时交换机发现是从vlan10过来的就会标记一个标签,VLAN-ID为10,上图中的ID信息(灰色部分)的确是10,然后将数据发给R1;
(2)此时R1收到后查询路由表,然后发现是自己的直连网段,随即转发出去,其实是回来,但是此时的VLAN-ID转换为20,因为路由器根据自己的逻辑子接口和PC1发送的数据包是可以确定出将要发往哪个VLAN-ID的。所以上图中ID转换为20.从Trunk链路回到交换机,交换机接收到信息后知道是发往VLAN20 ,然后解除标记的ID
(3)当PC2收到信息时,会给出回应,此时源IP地址是PC2,目标IP地址是PC1,而经过交换机时,又被打上标签所以是VLAN20,即上图中ID为20
(4)交换机收到信息后通过Trunk链路发送给路由器,路由器开始匹配路由表,将VLAN ID进行转换在将信息转发出去,所以此时的ID为10.
三、总结:上述实验重点是理解什么是逻辑子接口,而后就是通过抓包来理解单臂路由的原理,其实在单臂路由中,交换机主要负责封装和拆除标签,而路由器主要是负责路由转发和VLAN转换。
其实单臂路由是有其瓶颈的,可以参看下一博客文章,我们将进入三层交换机的世界!
原文地址:https://blog.51cto.com/14557673/2443942