说到虚拟化,大家最先联想到的几个名词应该是虚拟机,服务器。今天要介绍的虚拟化,是路由与交换技术里面的虚拟化技术。在网络上,将多个网络设备虚拟化成一个整体的逻辑设备的技术,就称为虚拟化技术。通过交换机虚拟化技术,既可以在逻辑上集成多台物理连接的交换机,实现拓宽虚拟交换机带宽、提升转发效率的目的,也可以在逻辑上将一台物理交换机虚拟为多台虚拟交换机,实现业务隔离、提升可靠性的目的。虚拟化有横向虚拟化和纵向虚拟化,其中横行虚拟化技术常用的有堆叠、m-lag,vrrp。今天我们主要了解下m-lag技术。
了解m-lag之前,我们先了解下以往数据中心常用的横向虚拟化技术-堆叠。
从上图我们可以看到堆叠就是将两台交换机设备通过专用堆叠线缆虚拟化成一台逻辑设备去参与网络数据转发,所以堆叠常常和下行交换机或者服务器做一个链路聚合捆绑,这样做的好处是当其中一台交换机down掉的时候,流量可以转发到另外一台交换机上,保证链路高可用。
下面我们看看什么是m-lag技术,它和堆叠相比又有什么区别,为什么华为现在推荐用m-lag。
通过上图我们可以知道,m-lag是一种实现跨设备链路聚合的技术,经常配合链路聚合一起使用,提供设备可靠性。
前面我们也介绍了堆叠,下面我们看看堆叠和m-lag之间的区别。
从上面的图中,我们可以看到,两台设备做堆叠的话,控制平面只在主交换机上,主交换机的故障可能会影响到备交换机,且堆叠交换机升级比较复杂,业务中断时间过长。相对堆叠,m-lag技术设备的转发和控制平面相对独立,且可以做到升级时候流量秒级中断。登录交换机上,最大的体验不通就是,堆叠方式任意登录一台设备都相当于登录主设备,dis inter brief的时候可以看到端口安顺序往下排列,而m-lag技术登录任意一台设备都是相当于单独登录,dis inter brief 的时候可以看到两台设备的端口都是独立的。
下面我们先看下m-lag的简单组网架构,从架构里面去了解m-lag技术的组网流程。
M-LAG组网详细的实现流程包括以下五步:DFS Group配对、DFS Group协商主备、M-LAG成员口协商主备、双主检测和M-LAG信息同步。
第一步:两台设备通过pee-link链路发送hello报文来建立关系,通过hello报文里携带的dfs-group id是否一致来确定连接关系。
第二步:两台设备通过pee-link链路发送dfs group设备信息报文来协商主备角色。设备信息报文携带设备优先级和mac地址,m-lag成员设备先通过比较优先级来选举谁是主设备(优先级大的优先),优先级一样的情况下再通过MAC地址来选举谁是主设备(MAC小的为主)。
第三步:两台设备通过pee-link链路发送dfs group设备信息报文来协商m-lag成员端口状态。
第四步:双主检测。双主检测链路,又称为心跳链路,是一条三层互通链路,用于M-LAG主备设备间发送双主检测报文。
第五步:两台设备通过peer-link链路发送m-lag同步报文实时同步对端信息(MAC表象,ARP表象、成员端口)
了解了m-lag的组网流程之后,接下来我们再看下m-lag设备在正常状态和故障状态下都是怎么转发流量的。
从上面的图中我们可以知道,m-lag工作正常的环境下,服务器流量发往网路侧会由主备设备逐流分担负载。
下面看下m-lag设备上行链路故障的情况下,流量是怎么转发的。
如果m-lag主设备上行链路故障,发往主设备的网络流量就会自动通过peer-link链路转发到m-lag备设备上从而保证链路可用。
下面看下peer-link链路故障的时候,流量是怎么转发的。
当两端设备感知到peer-link链路故障的时候,两端设备会通过DAD双主检测链路来进行协商,如果没收到对端设备发送的双主检测报文,则认为对端设备故障。如果是M-LAG备设备发生故障,M-LAG的主备状态不会发生变化,M-LAG备设备侧Eth-Trunk链路状态变为Down。M-LAG主设备侧Eth-Trunk链路状态仍为UP,流量转发状态不变,继续转发流量,双归场景变为单归场景。如果是m-lag主设备故障,则M-LAG备设备将升级为主,其设备侧Eth-Trunk链路状态仍为UP,流量转发状态不变,继续转发流量。M-LAG主设备侧Eth-Trunk链路状态变为Down,双归场景变为单归场景 。
最后,我们看下m-lag的一些具体配置:
(1)两端设备配置dfs-group组设置优先级,DAD双主检测的ip和对端设备ip,要三层可达。
(2)两端设备绑定聚合口和m-lag对应,设定成员接口
(3)配置两端设备通信用的peer-link链路,建议采用链路捆绑,提高peer-link链路的可靠性