系列文章目录
“没别的,就聊聊自动驾驶网络”
文章目录
系列文章目录零、前言一、MSTP又哪里有缺陷了?二、什么是链路聚合?三、链路聚合有哪些方式?1、手工模式1.1手工模式有哪些缺点呢?
2、LACP模式2.1、LACP的协商流程2.2、链路故障的替换流程2.3、负载分担模式
四、结尾
零、前言
上一篇总算结束了漫长的“生成树”全家桶,结果聊了这么多还有其它更好的方案,哈哈哈,不是搞各位心态,只是有句话咱们不也经常说吗:“我可以不用,但你不能没有”,是吧,咱们这里就是“我可以不用,但我不能不会”。今天就来说说链路聚合,咱们这次就用华为的Eth-Trunk来举例聊聊链路聚合吧。(玩思科的大佬们别介意 … … 求原谅)
一、MSTP又哪里有缺陷了?
乍一看,感觉MSTP已经很完美了,不仅能防止环路生成,还能解决STP/RSTP阻塞一条链路所导致的链路浪费问题,但咱们想想,MSTP从根本上解决问题没有?
就假设说VLAN 10的流量特别大,但VLAN 20的流量基本上没多少,但也有一定的规模了,那咋办呢?假如说随着公司发展,交换机设备越来越多了,而且部门也越来越多了,公司多了一堆“树”,而且还得一个一个配置不同的交换机,划分VLAN啊啥的。虽然说MSTP收敛快,但每次故障还是需要一定的时间去计算从而生成新的“树”,咱们就不能让用户感知不到网络变化吗?
行吧,可能这些东西有点麻烦,那咱们用最简单的思维想想,假如两个小朋友想吃苹果(一个10岁小女孩、一个12岁小男孩),现在咱们手里有一个苹果,咱们MSTP的办法就是把一个苹果分成两半,一人一半,结果小女孩刚好够,小男孩一口吃完了还觉得不够。那咱们还有什么办法吗?直接再买一个,一人一个分不就完事了反正小孩们觉得吃饱了就行,给女孩切一半,男孩给他个大的苹果,剩下半个之后看看谁需要谁拿去咯。
所以咱们也迁移一下思维,既然咱们不去考虑流量的“分道扬镳”,咱们就来考虑有没有办法让多条链路虚拟成一条链路一样,而且又能做到当一条链路故障后,其它链路仍然可以继续工作,只是带宽没那么大了呢? 好家伙,直接就想着怎么“干翻”生成树了。 链路聚合就是按照这个思路设计出来的。
二、什么是链路聚合?
通过将多个物理接口捆绑成为一个逻辑接口, 可以在不进行硬件升级的条件下,达到增加链路带宽的目的。
就像下面这张图一样,流量分别走四条聚合的链路,从而在管理员感知上就是一条“大带宽”的链路,而不是四条单独的链路:
咱们来熟悉熟悉几个基本概念:
聚合组(Link Aggregation Group,LAG):咱们聚合在一起的几条链路组成一个聚合组。成员接口和成员链路:单个链路成为成员链路,连接成员链路的接口称为成员接口。活动接口和活动链路:当前未阻塞的链路称为活动链路,连接活动链路的接口称为活动接口。非活动接口和非活动链路:当前阻塞的链路称为非活动链路,连接非活动链路的接口称为非活动接口。
三、链路聚合有哪些方式?
链路聚合分为两种模式,一种是手工模式,一种是LACP模式,那有人就纳闷了?LACP模式听起来就是动态的玩意儿,那还要手工模式干嘛?唉,咱们还是得考虑那些老设备吧,就比如不支持LACP协议的设备,咱们也没啥办法。
1、手工模式
Eth-Trunk(华为的链路聚合技术)的创建、成员接口的加入都需要手工配置,设备双方不需要LACP进行协商。(咱们之后再聊LACP协商)并且默认情况下,手工模式的链路都是活动链路。所有链路平均分担流量,当有链路故障时,剩余活动链路中再平均分担流量。
1.1手工模式有哪些缺点呢?
为了使链路聚合接口正常工作,必须保证本端链路聚合接口中所有成员接口的对端接口属于同一设备,并且加入同一链路聚合接口。这种模式下只能通过管理员人工确认,但实际情况下线路连接混乱,真不好确认对端接口连到哪个设备上去了。假设对端接口故障,物理状态UP但无法转发流量,手工模式下也检查不出来问题,这条链路也就一直处于物理UP但无法转发流量的尴尬情形了。
2、LACP模式
采用LACP协议的一种链路聚合模式。设备间通过链路聚合控制协议数据单元(Link Aggregation Control Protocol Data Unit,LACPDU)进行交互,通过协议协商确保对端是同一台设备、同一个聚合接口的成员接口。
LACPDU报文中包含的这几个字段是需要注意的:
系统优先级MAC地址接口优先级接口号
2.1、LACP的协商流程
当然,按照协议来使得链路“绑”在一起,就需要有个“主动方”和“被动方”,也就是谁才是 主动端 (老大)。
判断 系统优先级 确定主动方。(华为默认为32768,越小越优)假如第一步判断不出来就比较MAC地址选择主动方。(越小越优)
然后选择主动端的优先端口(假如配置了最大活动端口时就用这个排序)
判断主动端接口的 接口优先级 。(华为默认为32768,越小越优)假如第一步判断不出来就比较接口编号选择活动接口。(越小越优)
2.2、链路故障的替换流程
假设咱们配置了 最大活动接口数 之后,按照上面端口优先的判断方式,将主动端较优的作为活动端口,其它的变成非活动端口,然后对端也同时进行链路与接口的改变。而当链路故障时,则会从非活动链路中选取最优的顶替上去,实现带宽不变,同时也不影响业务。
2.3、负载分担模式
常见的包括两种:基于包的负载分担与基于流的负载分担
而在华为的Eth-Trunk的负载分担中有基于“源IP、源MAC、目的IP、目的MAC、源目IP、源目MAC”的六种模式。
四、结尾
好了,这次的小插曲就到这里了,咱们这次将链路备份、负载分担与链路无感知切换解决了,是不是还有一个MSTP的问题没解决?一个一个配置交换机是不是很麻烦?咱们要是有一种技术做到“配置一台交换机,多台跟着一起配置”就好了。诶?怎么这么耳熟?有点像是“Write once ,run anywhere”,哈哈哈,Java有JVM,咱们有堆叠和集群。好了,感谢各位看到这里,咱们下次就聊聊这堆叠和集群是个啥东西,没别的,就聊聊而已。
上一篇 没别的,就聊聊MSTP协议
下一篇 没别的,就聊聊交换机的堆叠与集群