前言:
今天小伙伴们对“交换网络的特点”都比较注重,大家都需要知道一些“交换网络的特点”的相关知识。那么小编同时在网络上收集了一些有关“交换网络的特点””的相关内容,希望你们能喜欢,看官们快快来了解一下吧!在正式介绍三层交换原理之前,先要让大家明白一个许多人至今都不明白的三个事实:
“三层交换”仅三层交换机才有的功能,路由器没有,其中的原因是交换机中除了有具备基本路由功能的CPU外,还有专门的三层交换芯片,路由器有更加强大路由功能的CPU,但却没有三层交换芯片。基于交换芯片的三层转发属于硬件转发,而基于CPU中路由功能的三层转发属于软件转发。“三层交换”功能仅针对连接在同一三层交换机上的不同IP网段之间的主机之间互访,连接在不同三层交换上的不同IP网段互访仍需要利用到路由功能实现。“三层交换”功能不能完全脱离路由转发功能,因为在交换机中首次的网络间报文转发仍是通过路由(直连路由)功能实现的,三层交换需要根据报文的首次路由转发过程而建立三层转发表项。
1. 三层交换机出现的背景
早期的网络中一般使用二层交换机来搭建局域网,而不同局域网之间的网络互通由路由器来完成。那时的网络流量,局域网内部的流量占了绝大部分,而网络间的通信访问量比较少,使用少量路由器已经足够应付了。但是,随着数据通信网络范围的不断扩大,网络业务的不断丰富,网络间互访的需求越来越大,而路由器由于自身成本高、转发性能低、接口数量少等特点无法很好的满足网络发展的需求。因此出现了三层交换机这样一种能实现高速三层转发的设备。
当然,三层交换机并不能完全替代路由器,路由器所具备的丰富的接口类型、良好的流量服务等级控制、强大的路由能力等仍然是三层交换机的薄弱环节。
2. 三层转发的原理
目前的三层交换机一般是通过VLAN来划分二层网络并实现二层交换,同时能够实现不同VLAN间的三层IP网络间的互访。不同网络的主机之间互访的基本规则如下:
(1)源主机在发起通信之前,将自己的IP地址与目的主机的IP地址进行比较,如果两者位于同一IP网段,则源主机直接向目的主机发送ARP请求报文,在收到目的主机的ARP应答报文后获得对方的物理层(MAC)地址,然后用对方MAC地址作为报文的目的MAC地址进行封装、发送报文。
(2)当源主机判断目的主机与自己位于不同IP网段时,它会通过网关来递交报文,首先向网关发送ARP请求报文,以获取网关IP地址对应的MAC地址。在得到网关的ARP应答报文后,用网关的MAC地址作为要发送的报文的目的MAC地址进行报文发送。但此时发送报文的源IP地址是源主机的IP地址,目的IP地址仍然是目的主机的IP地址。
如下图所示,PC A和PC B连接在同一台三层交换机上,分别位于VLAN 2和VLAN 3中(对应不同IP网段)。对于三层交换机来说,这两台主机都位于它的直连网段内,它们的IP地址对应的路由都是直连路由。图中标明了两台主机的MAC地址、IP地址、网关地址,以及三层交换机的MAC地址、不同VLAN配置的三层VLANIF接口IP地址。当PC A向PC B发起Ping测试时,具体流程如下:(假设三层交换机上还未建立任何硬件转发表项)
(1)PC A首先检查出目的IP地址10.2.1.2(PC B)与自己不在同一IP网段,因此它先要向网关发送ARP请求报文,目的IP地址是网关(VLANIF2接口)的IP地址10.1.1.1,以获取网关的MAC地址。
(2)L3 Switch(三层交换机)收到PC A发来的ARP请求报文后,检查请求报文后发现被请求IP地址是自己的三层接口(VLANIF2)IP地址,因此向PC A发送ARP应答报文,以该三层接口MAC地址(MAC Switch)作为源MAC地址(注意:同一交换机上,所有VLANIF接口的MAC地址是相同的)。然后,把从收到的ARP请求报文中获得的PC A的MAC地址(MAC A)、VLAN ID(2)和出接口(IF_1)的对应关系记录到自己的MAC地址表中,把PC A的IP地址(10.1.1.2)、MAC地址、VLAN ID和入接口的对应关系记录到自己的ARP表项中,分别对应图中MAC地址表项和ARP表项的上部分。
(3)PC A收到网关(VLANIF2接口)发来的ARP应答后,根据报文中的源IP地址(VLANIF接口IP地址10.1.1.1)、源MAC地址(MAC Switch)和入接口建立L3 Switch中VLAN 2网段网关VLANIF2接口的ARP表项(主机网卡通常不支持VLAN,所以在主机的ARP表项中没有VLAN ID字段)。然后以网关VLANIF2接口的MAC地址(MAC Switch)作为目的MAC地址,以PC B的IP地址(10.2.1.2)作为目的IP地址封装ICMP请求报文并发送,报文中的源MAC地址和源IP地址都是PC A自己的。
(4)L3 Switch收到ICMP请求报文后,首先根据报文的源MAC+VLAN ID更新本地基于PC A的MAC地址表项和ARP表项(在前面第2步中已创建)。然后,因为报文中的目的MAC地址是自己三层接口(VLANIF2)的MAC地址,说明此报文需要作三层转发,于是继续查找交换芯片的三层转发表项。同时,根据得到的三层转发信息在交换芯片的三层转发表项中添加基于PC A的三层转发表项(内容包括IP地址、MAC地址、VLAN ID、出接口),这样后续的PC B发往PC A的报文就可以通过该硬件三层表项直接转发了。
(5)交换芯片根据报文的目的IP地址去查找其三层表项,由于之前未建立任何表项,因此查找失败,于是将ICMP请求报文送到CPU去进行软件处理。
(6)CPU根据报文的目的IP去查找其路由表,发现匹配了一个直连网段(PC B对应的IP网段),可以通过直连路由到达,但进行三层转发时又要重新进行帧封装,需要知道真正的目的主机PC B的MAC地址,于是继续查找ARP表,因为是与PC B的首次通信,无对应的ARP表项,仍然查找失败。于是,L3 Switch根据VLAN 3网段的直连路由的三层出接口(VLANIF3),在VLAN 3中的所有物理接口了发送请求解析目的主机PC B MAC地址的ARP请求报文(目的IP地址是PC B的IP地址10.2.1.2)。
(7)PC B收到L3 Switch发送的ARP请求报文后,检查发现被请求IP地址是自己的IP地址,因此接收该ARP请求报文,根据报文中的源IP地址(VLANIF3接口的IP地址10.2.1.1)、源MAC地址(MAC Switch)和入接口建立L3 Switch中VLAN 3网段网关VLANIF3接口的ARP表项,并向L3 Switch发送ARP应答报文,其中源MAC地址是PC B自己的MAC地址(MAC B),目的IP地址是VLAN 3网段网关(VLANIF3接口)的IP地址(10.2.1.1)。
(8)L3 Switch收到PC B的ARP应答报文后,把从收到的ARP应答报文中获得的PC B的MAC地址(MAC B)、VLAN ID(3)和出接口(IF_2)的对应关系记录到自己的MAC地址表中,把PC B的IP地址(10.2.1.2)、MAC地址、VLAN ID和入接口的对应关系添加到自己的ARP表项中,参见图1下部分的MAC地址表项和ARP表项。然后根据获取的PC B的MAC地址进行帧封装,将PC A发送的ICMP请求报文发送给PC B,报文的目的MAC地址修改为PC B的MAC地址(MAC B),源MAC地址修改为VLAN 3网段网关VLANIF3接口的MAC地址(MAC Switch)。
同时,根据刚得到的三层转发信息在交换芯片的三层转发表项中添加基于PC B的三层转发表项(内容包括IP地址、MAC地址、VLAN ID、出接口),这样后续的PC A发往PC B的报文就可以通过该硬件三层表项直接转发了。
(9)PC B收到L3 Switch转发过来的ICMP请求报文以后,向PC A发送ICMP应答报文。ICMP应答报文的转发过程与前面类似,只是由于L3 Switch在之前已经得到PC A的IP地址和MAC地址对应关系了,也同时在交换芯片中已添加了基于PC A的相关三层转发表项,因此该报文直接由交换芯片转发给PC A。
这样,后续的往返报文都通过查找目的MAC地址来找到对应三层转发表项,直接以硬件方式进行三层转发了。
从上述流程可以看出,三层交换机正是充分利用了“一次路由(首包通过CPU的路由功能进行转发,建立三层硬件表项)、多次交换(后续包采用芯片硬件转发方式)”的原理实现了转发性能与三层转发的完美统一。
标签: #交换网络的特点