路由器的三层转发主要依靠CPU
进行
目前的三层交换机一般是通过VLAN来划分二层网络并实现二层交换的,同时能够实现不同VLAN间的三层IP互访.
(1)源主机在发起通信之前,将主机的IP与目的主机的IP进行比较,如果两者位于同一个网段(用网络掩码计算后具有相同的网络号),那么源主机直接向目的主机发送ARP请求,在收到目的主机的ARP应答后获得对方的物理层(MAC)地址,然后用对方MAC作为报文的目的MAC进行报文发送。位于同一VLAN(网段)中的主机互访时属于这种情况,这时用于互连的交换机作二层交换转发.
(2)当源主机判断目的主机与主机位于不同的网段时,它会通过网关(Gateway)来递交报文,即发送ARP请求来获取网关IP地址对应的MAC,在得到网关的ARP应答后,用网关MAC作为报文的目的MAC进行报文发送.
注意:发送报文的源IP是源主机的IP,目的IP仍然是目的主机的IP。位于不同VLAN(网段)中的主机互访时属于这种情况,这时用于互连的交换机作三层交换转发.
三层交换机硬件结构
三层交换机内部的两大部分是<ASID>和<CPU>,它们的作用分别如下:
1.ASIC:完成主要的二三层转发功能,内部包含用于二层转发的MAC地址表以及用于IP转发的三层转发表;
2.CPU:用于转发的控制,主要维护一些软件表项(包括软件路由表、软件ARP表等等),并根据软件表项的转发信息来配置ASIC的硬件三层转发表。当然,CPU本身也可以完成软件三层转发.
从三层交换机的结构和各部分作用可以看出,真正决定高速交换转发的是ASIC中的二三层硬件表项,而ASIC的硬件表项来源于CPU维护的软件表项.
## 三层交换概念
三层交换中的三层指的是OSI七层模型中的第三层(网络层)。网络层的核心设备就是路由器,传统的二层交换机位于第二层(数据链路层)把交换机和路由器连接在一起,就以为着交换机可以工作在第三层,运行路由协议.
这个过程常常被称为“一次路由,多次交换”
单臂路由的弊端
1.“单臂”本身就是网络的骨干链路,容易形成网络瓶颈;
2.子接口必须依托于物理接口,就实际应用不灵活;
3.每次vlan间转发都需要查看路由表,严重浪费设备资源。
三层交换技术:
- 使用三层交换技术实现VLAN通信
- 三层交换=二层交换+三层转发
传统的MLS技术:
将ASIC(应用专用集成电路)能够对被路由的数据包执行二次重写操作(重写源MAC地址和目标MAC地址)以及写入重新计算得到的CRC(循环冗余校验码),支持传统的MLS的交换机第三层引擎(路由处理器)和交换机ASIC协同工作,在交换机上建立第三层条目。
使用传统的MLS时,交换机将数据包的第一个数据包转发给第三层引擎,后者以软件交换的方式对数据包进行处理.
基于CEF的MLS:
CEF主要包含两个转发用的信息表:
FIB表:
1.是路由表的镜像,随路由表的更新而更新;2.比路由表更精确。
邻接关系表:类似于mac表。
查询过程:先查FIB表再查邻接关系表,保存的数据永久使用。
虚接口概述
在三层交换机上配置的VLAN接口为虚拟接口
Switch(config)#interface vlan vlan-id(进入vlan接口)
虚接口的引入使得应用更加灵活
在三层交换机启用路由功能:
Switch(config)#ip routing
配置虚接口的IP:
Switch(config)#interface vlan 10(进入vlan)
Switch(config-if)#ip address IP地址 子网掩码(配置vlan IP)
Switch(config-if)#no shutdown (激活)
配置路由接口:
Switch(config-if)#no switchport(关闭交换机功能,则路由功能启动)