三层交换技术
- 使用三层交换技术实现VLAN间通信
- 三层交换=二层交换+三层转发
三层交换内部有两大组件
ASIC:完成主要的二三层转发功能,内部包含用于二层转发的MAC地址表以及用于IP转发的三层转发表;
CPU:用于转发的控制,主要维护一些软件表项(包括软件路由表、软件ARP表等等),并根据软件表项的转发信息来配置ASIC的硬件三层转发表。当然,CPU本身也可以完成软件三层转发。
传统的MLS
- 三层转发过程中要重新封装2层(三层交换机上,第三层引擎处理数据流的第一个包)
- 交换ASIC从三层引擎中获悉二层重写信息在硬件中创建一个MLS条目
- 负责重写和转发数据流中的后续数据包
如上图所示vlan1要发送数据给vlan2发送过程如下
- vlan1转发数据给三层交换机 三层交换机会封装源ip、 vlan1的ip、目的vlan2的ip 还有源mac、vlan1的mac、目的mac 、网关mac
- 三层交换会查看vlan2的MAC地址,如果有直接转发数据进行单播,如果没有进行ARP请求并且重新封装
- vlan2重新封装,MAC头部为源ip、目的ip、源mac(三层交换机的mac vlan2网关的mac),目的mac、vlan2的mac
单臂路由
单臂路由是指在路由器的一个接口上通过配置子接口(或“逻辑接口”,并不存在真正物理接口)的方式,实现原来相互隔离的不同VLAN(虚拟局域网)之间的互联互通。
单臂路由工作原理:路由器重新封装MAC地址,转换为VLAN ID。
三层交换的特点:一次路由,多次交换
一次路由,数据流的第一数据包由三层引擎来处理的,重新封装MAC,再路由转发数据包
多次交换:第一数据包转发后,会在硬件创建一个MLS的条目,MLS包含FIB(转发的信息库:包含有VLANID和主机的IP)、邻接关系表(邻接主机和MAC地址),通过查询FIB和邻接关系表重新封装数据帧,从相应的端口转发数据
三层交换机具有路由功能,可以转发数据,IP地址是配置在虚拟接口上而不是物理接口上,物理接口对接交换机的配置trunk,对接PC机的配置access
原理:
当三层设备接收到一个数据帧,会拆除原数据帧,重新封装新的源MAC地址和目标MAC地址,并且因为帧头部的信息发生变化,最后的帧校验CRC也应当随之改变。
在这个流中的多个数据包,其中只有第一个数据包是由三层交换机的三层引擎来处理的,处理的方式是软件方式,与路由器相同,三层引擎获取了新的封装信息后,路由这个数据包。
在第一个数据包转发完成后,在硬件中创建一个MLS条目,用于后续的数据包由硬件执行的重新封装和快速转发。二层数据帧会被重新封装为需要转发的下一个网段的帧格式。
这就是MLS“一次路由,多次交换”的原理。
基于CEF的MLS
- 转发信息库(FIB)
- 邻接关系表
基于CEF的MLS其关键是两张转发信息表,转发信息库(FIB)与路由表一一对应,是路由表的一一个镜像。更新时FIB包含邻接主机IP地址与VLAN ID的对应关系。而邻接关系表包含邻接主机和交换机MAC地址的对应关系用来提供二层重写信息。
基于MLS的工作原理:
1.主机A给主机B发送单播数据包
2.交换机查找FIB表,找到吓一跳地址
3.查找下一跳地址对应的邻接关系的二层封装信息
4.转发
VRRP概述
- VRRP(Vritual Router Redundancy Protocol),即虚拟路由冗余协议
- 利用VRRP,一组路由(同一个LAN中的接口)协同工作,但只有一个处于Master状态,处于该状态的路由器承担实际的数据流量转发任务。在一个VRRP组内的多个路由器接口共用一个虚拟IP地址,该地址被作为局域网内所有主机的缺省网关地址。
- VRRP决定了那个路由是Master,Master路由器负责接收发送至用户网关的数据包并进行转发,以及相应PC对于其网关IP地址的ARP请求。
- Backup路由器侦听Master路由器的状态,并在Master路由器发生故障时,接替其工作,从而保证业务流量的平滑切换。
VRRP术语
- VRRP路由器:
运行VRRP的路由器。一台VRRP路由器(的接口)可以同时参与到多个VRRP组中,在不同的组中,一台VRRP路由器可以充当不同的角色。 - VRRP组:
一个VRRP组由多个VRRP路由器组成,使用相同的VRID(Virtual Router ID,虚拟路由器ID)进行标识,属于同一VRRP组的VRRP路由互相交换信息,每一个VRRP组中只能有一个Master。 - 虚拟路由器:
对于每一个VRRP组,抽象出来的一个逻辑路由器,该路由器充当网络用户的网关,该路由器并非真实存在,事实上对于用户而言,只需知道虚拟路由器的lP,至于具体的虚拟路由器的角色由谁来承担、数据转发任务由谁来承担、Master故障后谁来接替,这是VRRP的工作。 - 虚拟IP地址、MAC地址:
虚拟IP地址就是虚拟路由器的IP地址,该地址实际上就是用户的网关地址。
虚拟MAC地址就是虚拟路由器根据VRID生成的MAC地址。一个虚拟路由器拥有一个虚拟MAC地址,格式为:00-00-5E-00-01-{VRID} - Master、Backup路由器:
Master路由器:在VRRP组中实际转发数据包的路由器,在每一个VRRP组中,仅有Master响应对虚拟IP地址的ARP请求。Master路由器同时以一定的时间间隔发送VRRP消息,以便通知Backup路由器自己的存活情况。
Backup路由器:处于监听状态的路由器,一旦Master路由器出现故障,Backup路由器就开始接替工作。
选举依据:先比较接口VRRP优先级(比大),如果相等,则比较接口的IP地址(比大)。
VRRP状态
VRRP协议的状态共有三种,分别是lnitialize,Master , Backup,初始状态都是lnitialize,通过比较优先级产生Master和Backup,在规定时间内,Backup若没有收到Master发来的心跳报文,将切换为Master。
Master与Backup
Master路由器:
- 定时(Advertisement Interval)发送VRRP通告报文,以便向Backup路由器告知自己的存活情况。
- 以虚拟MAC地址响应其他设备对虚拟IP的ARP请求。
- 转发目的MAC地址为虚拟MAC地址的报文。
- 如果它是这个虚拟IP地址的拥有者(接口实际IP地址为虚拟IP地址),则接收目的IP地址为这个虚拟IP地址的IP报文。否则,丢弃这个IP报文。
- 如果收到比自己优先级大的报文,立即成为Backup。
- 如果收到与自己优先级相等的VRRP报文且本地接口IP地址小于对端接口IP,立即成为Backup。
Backup路由器:
- 接受Master设备发送的VRRP通告报文,判断Master设备的状态是否正常。
- 对虚拟IP地址的ARP请求,不做响应。
- 丢弃目的IP地址为虚拟IP地址的IP报文。
- 如果接收到优先级和自己相同或者比自己大的报文,则重置Master_Down_Interval定时器,不进一步比较IP地址。
- 如果收到比自己优先级小的报文且该报文优先级是0时,定时器时间设置为Skew_time(偏移时间),如果该报文优先级不是0,丢弃报文,立刻成为Master。
Master_Down_Interval定时器:Backup设备在该定时器超时后仍未收到通告报文,则会转换为Master状态。计算公式如下:Master_Down_Interval=(3*Advertisement_Interval)+Skew+time。 其中,Skew_Time=(256- Priority)/256。
VRRP工作过程
- VRRP组中的设备选举出Master。Master设备通过发送免费ARP报文,将虚拟MAC地址通知给与它连接的设备或主机,从而承担报文转发任务。
- Master设备周期性向备份组内所有Backup设备发送VRRP通告报文。
- 如果Master设备出现故障,VRRP备份组中的Backup设备重新选举新的Master。
- VRRP组状态切换时,Master设备由一台设备切换为另一台设备,新的Master设备会立即发送携带虚拟路由器的虚拟MAC地址和虚拟IP地址信息的免费ARP报文,刷新与它连接的主机或设备中的MAC表项,从而把用户流量引到新的Master设备上来,整个过程对用户完全透明。
- 原Master设备故障恢复时,若该设备为IP地址拥有者(则其优先级为255),将直接切换至Master状态。若该设备优先级小于255,将首先切换至Backup状态,且其优先级恢复为故障前配置的优先级。
- Backup设备的优先级高于Master设备时,由Backup设备的工作方式(抢占方式和非抢占方式)决定是否重新选举Master。
本章总结
- 三层交换机的特点:一次路由,多次交换
- 三层交换机实现不同VLAN间互通
- 三层交换机多用于核心层:路由功能+高速转发
- VRRP组通过vrid来识别的,一个VRRP组可以有多个VRRP路由,其中包含一个Master,一个或者多个Backup
- VRRP会虚拟出一个虚拟路由,包含了虚拟IP和虚拟MAC(有固定格式,00-00-5E-00-01-{VRID},)虚拟IP要和Master/Backup在同一网段。
- VRRP虚拟IP地址,是用于在VRRP路由器局域网下所有主机的默认网关IP地址
- 一般是通过优先级来决定谁是Master和Backup的角色。优先级较大的一方为Master,如果优先级相同,使用IP较大的一方作为Master,Master实际转发数据和响应局域网主机的ARP请求,定时发送VRRP报文给Backup,Backup用于监听Master发来的VRRP报文,如果超过一定时限,就会抢占Master地位。