链路扩容
组网需求
如图10-3,R1与R2之间现通过4条10G的POS链路互联,R1与R2使用Loopback接口地址建EBGP邻居关系,IGP使用静态路由。
由于业务发展,现需要扩容一条40G的POS链路互联,变成5条10G+1条40G链路,实现10G链路与40G链路的负载分担。
实现方案一:如果设备运行的软件版本支持UCMP,则推荐部署UCMP
UCMP有以下两种配置方式(推荐方式1):
方式1:全局开启UCMP功能。
- 执行system-view命令,进入系统视图。
- 执行load-balance unequal-cost enable命令,全局使能UCMP。
方式2:在这4个10G接口和40G接口下开启端口UCMP功能(需要考虑影响,因为需要重启端口)。
- 执行system-view命令,进入系统视图。
- 执行interface interface-type interface-number命令,进入物理接口视图。
- 执行load-balance unequal-cost enable命令,使能IP报文转发的接口非等价负载分担。
- 执行restart命令,或先后执行shutdown命令和undo shutdown命令,重新启动接口,使非等价负载分担配置生效。通过命令行在物理接口上使能/去使能UCMP功能,并不立即触发路由和FIB的刷新,需要重启接口。
- 执行命令commit,提交配置。
实现方案二:静态路由负载分担
在40G端口配置4个IP地址与对端设备互通,这样,每个10G端口有一个下一跳,40G的端口有4个下一跳,实现IP负载分担。
- 执行system-view命令,进入系统视图。
- 执行interface interface-type interface-number命令,进入40G接口的接口视图。
- 执行ip address ip-address { mask | mask-length }命令,配置接口IP地址。
- 执行ip address ip-address { mask | mask-length } [ sub ]命令,为接口配置3个从IP地址。
- 执行quit命令,退回系统视图。
- 执行ip route-static ip-address { mask | mask-length } nexthop-address命令,配置4条到对端Loopback接口的静态路由,4个静态路由的下一跳分别为对端40G接口的4个IP地址。
- 执行命令commit,提交配置。
interface Pos4/0/0 undo shutdown ip address 192.168.0.34 255.255.255.252 ip address 192.168.0.38 255.255.255.252 sub ip address 192.168.0.42 255.255.255.252 sub ip address 192.168.0.46 255.255.255.252 sub # ip route-static 8.8.8.8 255.255.255.255 192.168.0.33 ip route-static 8.8.8.8 255.255.255.255 192.168.0.37 ip route-static 8.8.8.8 255.255.255.255 192.168.0.41 ip route-static 8.8.8.8 255.255.255.255 192.168.0.45
静态路由默认使能负载分担。
方案二会增加负载分担条目数,因此,方案二的使用受限于软件版本全局负载分担条目数,也受限于一个接口允许配置的IP地址数。
例如,假设扩容前有4个1G接口,新增1个40G接口,并假设软件版本静态路由负载分担条目数为32,按照方案二的实现,则负载分担条目数被4个1G接口占用4条,40G接口最多能用剩下的28条,即40G接口最多只能走28G的流量,带宽率用率低。
实现方案三:如果扩容前的4条10G的POS链路已捆绑加入Trunk接口,则推荐使用Trunk接口负载分担,通过配置不同的物理端口的权重来实现
- 执行interface interface-type interface-number命令,进入40G接口的接口视图。
- 执行link-protocol hdlc命令,链路层协议改为HDLC。加入IP-Trunk的接口,链路层协议必须为HDLC。
- 执行ip-trunk trunk-id命令,将40G接口加入IP-Trunk。
执行distribute-weight weight-value命令,配置成员链路的负载分担权重,本例40G接口权重可配置为4,其他成员接口采用默认值1。
对于一个IP-Trunk接口,其所有成员接口权重之和不能大于64。
Trunk(IP-Trunk或Eth-Trunk)接口根据各成员链路的权重等信息进行散列,实施负载分担。在一个Trunk接口中,某成员接口的权重值占所有成员接口权重之和的比例越大,该成员链路承担的负载就越大。
- 执行命令commit,提交配置。
后续任务
当完成一组配置,并且已经达到预定功能,则应执行save命令,将当前配置保存到配置文件中。