【三层交换】

作用:三层交换产生的替代单臂路由

原理:一次路由,多次交换


【三层交换不能取代路由器的原因】

a)路由器接口丰富(支持语音口、串口、电口、光口);三层交换接口单一,一般只有电口或光口

b)路由器三层功能强大,交换机一般只具有基本的三层功能。如“nat、bgp”等协议不支持

一、初识三层交换

(1)、单臂路由的缺陷

a)“单臂”本身将成为网络的骨干链路,容易形成网络瓶颈。瓶颈是在“三层路由器功能上形成的,不是在线路上形成的”

b)子接口依然依托于物理接口,就实际应用而言不灵活

c)每次VLAN间转发都需要查看路由表,严重浪费设备资源

(2)、三层交换机的转发原理

Ø三层交换=2层交换+3层转发

Ø三层交换机通过硬件来交换和路由选择数据包

ØCisco  catalyst交换机使用传统的MLS(Multilayer  Switching,多层交换)体系结构或基于CEF(Cisco Express  Forwarding,Cisco快速转发)的MLS结构

1、传统的MLS

ØMLSASICApplication-specific Intergrated  Circuit,应用专用集成电路),能够对被路由器的数据包执行第2层重写操作

Ø2层重写操作包括重写源和目标MAC地址,以及写入重新计算得到的循环冗余校验码(CRC)

Ø支持传统MLSCatalyst交换机使用一种MLS协议从MLS路由器那里获悉第2层重写信息。使用传统MLS时,第3层引擎(路由处理器)和交换ASIC协同工作,在交换机上建立第3层条目

Ø使用传统MLS时,交换机交数据流中的第一个数据包转发给第3层引擎,后者以软件交换的方式对数据包进行处理。对数据流中的第一个数据包进行路由处理后,第3层引擎对硬件交换组件进行程序处理,使之为后续的数据包选择路由

《名词解释》

ASIC:应用专用集成电路(二层处理器)

第3层引擎:路由器处理器(三层处理器)

数据流:一个文件为一个数据流




【传统的MLS发包过程】

1)VLAN 1的主机将数据包发送给默认网关。三层交换机是主机的网关,因此,三层交换机上VLAN 1的端口接收到主机发来的数据包,这个数据帧中,源MAC地址是VLAN 1主机的MAC地址,目标MAC地址是默认网关的MAC地址

2)三层交换机的第3层引擎接收到这个数据包,在转发数据前重写数据帧的2层封装,三层交换机首先要使用ARP协议来获得VLAN 2主机的MAC地址

3)三层交换机用VLAN 2的主机的MAC址址作为发送帧的目标MAC地址来封装数据帧,并重写CRC值。同时,在硬件中创建一个MLS条目,以便能够转发和重写这个流中的后续数据包

4)VLAN 1主机发送给VLAN 2主机的后续数据包直接由三层交换机的ASIC进行处理,ASIC根据刚才创建的MLS条目重写第2层封装,并快速转发数据包,如2’所示

《总结以上过程》

以上的过程被称为“一次路由,多次交换”。也就是说,交换机的三层引擎只需要处理数据流中的第一个数据包,而后续的数据全由硬件来执行转发,这样就实现了三层交换机的快速转发功能

2、基于CEF的MLS

ØCEF是一种基于拓扑的转发模型,可预先将所有路由选择信息加入到转发信息库(FIB)中,这样,交换机就能够快速查找路由选择信息

ØCEF是“思科快速转发”,能记录通信过的主机,用两个表在二层进行记录

【CEF主要包含两个转发用的信息表】

转发信息库(FIB):比路由表更详细细,会记录通信过的主机IP。FIB类似于路由

表,包含路由表中转发信息的镜像。当网络的拓扑发生变化时,路由表将被更新,而FIB也随之变化。第3层引擎和硬件交换组件都维护一个FIB

邻接关系表:它会记录通信过的主机及MAC地址。在网络中,如果两个节点之间在数据链路层只有一跳,则它们彼此相邻,除FIB外,CEF还使用邻接关系表中储存第2层编址信息


【基于CEF的MLS发包过程】:

a)主机A发送数据包给自己的默认网关,三层交换机是主机A的网关,因而可接收到这个数据包

b)三层交换机查找FIB表,数据包的目标IP地址10.20.20.2,与三层交换机直连

c)三层交换机查找邻接关系表,在邻接关系表中,有IP地址与源MAC地址,目标MAC地址的对应关系,并找到转发端口

d)三层交换机的硬件交换组件根据邻接关系重写数据帧的二层封装,并快速转发......如果三层交换接收到主机A发送来的数据包,但邻接关系表中没有主机B的二层重写信息,那么三层交换机将数据包交给三层引擎进行处理......三层引擎会发送ARP请求获取主机B的MAC地址信息,然后,第3层引擎将一个解析后的邻接关系条目加入到自己的邻接关系表中,硬件交换组件也将这条邻接关系条目加入到自己的邻接关系表


【基于CEF的MLS与传统的MLS对比】

Ø传统的MLS每个数据流的第一个数据包都要进行路由

Ø基于CEF的MLS在第一次路由后,就会在邻接关系表和FIB表中保存目标信息,那么有数据需要转发时,就可以直接用硬件查找邻接关系表和FIB表

3、虚接口的引入



二、三层交换机的配置

【启动路由功能】

   switch(config)# ip  routing            /在三层交换机上启动路由功能

【配置路由接口】

   switch(config-if)# no  switchport      /将交换机的某个接口配置为路由接口

【查看FIB表】

   switch# show ip  cef

【查看邻接关系表】

   switch# show adjacency  detail

【配置虚接口的IP地址】

   switch(config)# interface  vlan vlan-id             /把接口加入VLAN

   switch(config-if) ip  address ip_address  netmask   /相当于在接口配IP

   switch(config-if)# no  shutdown

【DHCP中继的配置】

   sw-3L(config-if)# ip  helper-address  DHCPsrv-IPAddress

      #在设有DHCP服务器上的VLAN接口上配置

      #DHCPsrv-IPAddress为DHCP服务器的IP地址