ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

一、终端共享接入检测方案

1.1 共享接入检测新功能

支持对接入终端超限IP进行日志记录、告警干扰;

支持针对指定IP进行共享接入检测;

支持对接入终端的品牌/型号/操作系统进行识别;

用户可按需升级终端接入检测特征库;

支持对透明模式部署

1.2 识别及控制方式

1.2.1 共享接入识别终端

通过终端识别库来识别接入IP的终端信息(终端品牌、型号、操作系统)

1.2.2 共享接入控制方式

以接入IP为控制对象,以受监控IP下最大共享接入终端数为控制条件,对接入终端超限的IP进行控制,控制动作包括:

--告警干扰:记录日志并向用户推送告警页面,干扰用户访问网络;

                       设置干扰实践,干扰时间过后自动解除干扰控制,重新开始识别。

---仅记录日志:仅对有超限行为的IP进行日志记录,不影响网络访问

1.3 配置方式

1.3.1 创建共享接入方案(WebUI界面)

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

可对选中的规则进行上移、下移操作,重新调整规则顺序

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

共享接入监控

过滤条件:源IP、规则名称、源安全域、接入数量(大于、小于、等于),状态(正常、记录日志、告警)

接入数量:点击对应条目右侧三角形可查看接入终端列表详情

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

共享接入日志

监控>日志>共享接入日志

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

共享接入特征库升级

系统>升级管理>特征库升级

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

1.3.2 共享接入规则配置(CLI)

共享接入规则配置

SG-6000(config)#share-access-detect rulerule_name

共享接入规则子视图

SG-6000(config-share-access-detect)#src-zone trust

SG-6000(config-share-access-detect)#src-addr addr1

SG-6000(config-share-access-detect)#src-ip 172.10.0.0/16

SG-6000(config-share-access-detect)#src-range 172.20.0.11 172.20.0.20

SG-6000(config-share-access-detect)#schedule schedule1 //指定检测生效的时间表

SG-6000(config-share-access-detect)#enable //启用规则,默认启用

SG-6000(config-share-access-detect)#disable

SG-6000(config)#access-limit 2 //指定最大可共享接入终端数

SG-6000(config)# action {log-only | warning} //指定超限控制行为

SG-6000(config)# control-duration 60 //指定warning时的干扰时间

SG-6000(config)# detected-endpoint-timeout 600 //指定终端超时时间

SG-6000(config)#sequence {first | last | seq_id} //指定rule的位置,即排序rule

查看共享接入规则

SG-6000(config)# show share-access-detect rule rul

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

共享接入特征库升级配置

SG-6000(config)# share-access-detect signature update

配置参数如下:

➢ mode {auto | manual}                                      升级模式:默认自动升级

➢ proxy-server {main | backup} ip port             设置升级代理服务器

➢ schedule {daily | weekly}                                设置自动升级模式下固定周期:默认daily(每天)

➢ server1 {domain | ip} [vrouter vr_name]        设置升级服务器1

➢ server2 {domain | ip} [vrouter vr_name]         设置升级服务器2

➢ server3 {domain | ip} [vrouter vr_name]         设置升级服务器3

共享接入特征库升级查看

SG-6000(config)# show share-access-detect signature update

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

共享接入特征库信息查看

SG-6000(config)# show share-access-detect signature info

手动在线升级特征库

SG-6000(config)# exec share-access-detect signature update

离线导入特征库

SG-6000# import share-access-detect signature from ftp server A.B.C.D …… xx.sig

SG-6000# import share-access-detect signature from tftp server A.B.C.D …… xx.sig

共享接入日志

SG-6000(config)# logging share-access-detect on

SG-6000(config)# logging share-access-detect to syslog

SG-6000(config)# show logging share-access-detect

共享接入监控统计

SG-6000(config)#SG-6000# show share-access-detect statistics

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

1.4 Syslog及Debug

Syslog

➢新增日志类型:共享接入日志(share-access-detect)

当受监控的IP下接入终端数超过最大限制时,触发日志

控制方式为告警干扰时,只在触发告警干扰时记录一次日志

控制方式为记录日志时,只要有超限行为产生,均触发记录日志,但1min内 每IP最多记录一次

Debug

Debug dp ei 【config | distribute | engine | process | show | timer】

Debug netd e

二、典型配置场景举例

2.1 典型场景

场景: 运营商分配20.1.1.10和20.1.1.20两个IP供用户使用:

➢ 对于20.1.1.10,最大只允许接入3个终端,超出限制时,进行日志记录;终端超时时间为600s

➢ 对于20.1.1.20,最大只允许接入2个终端,超出限制时,进行告警干扰;控制时间为10min

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

1. 升级共享接入特征库

SG-6000# exec share-access-detect signature update

Extracting signature package….

Loading signature………………………………………………………

Update signature successfully

2. 查看共享接入特征库信息,升级成功

SG-6000(config)# show share-access-detect signature info

DB vendor: Hillstone Networks

Current version: 1.0.1

Release date: 2018/01/01 17:45:12

3. 设置共享接入规则

SG-6000(config)# share-access-detect rule IP1-20.1.1.10

SG-6000(config-share-access-detect)# src-ip 20.1.1.10/32

SG-6000(config-share-access-detect)# access-limit 3

SG-6000(config-share-access-detect)# action log-only

SG-6000(config-share-access-detect)# detected-endpoint-timeout 600

SG-6000(config-share-access-detect)# exit

SG-6000(config)# share-access-detect rule IP1-20.1.1.20

SG-6000(config-share-access-detect)# src-ip 20.1.1.20/32

SG-6000(config-share-access-detect)# access-limit 2

SG-6000(config-share-access-detect)# action warning

SG-6000(config-share-access-detect)# control-duration 600

SG-6000(config-share-access-detect)# exit

4. 开启共享接入日志

SG-6000(config)#logging share-access-detect on

5. 用户进行HTTP访问

20.1.1.10

➢ 多个用户终端共享上网时,访问正常 

20.1.1.20

➢ 当用户使用2个以内终端通过共享上网时,访问正常;

➢ 已有两个用户终端在线,使用第3个用户终端上网时,页面弹出告警,访问被拒绝,同时前面2个终 端也无法访问HTTP 页面如下:

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

6. 查看共享接入监控统计

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

7. 查看共享接入日志

SG-6000(config)# show logging share-access-detect

注:

--最大可配置共享接入规则数:8 

--每个IP下最大支持共享接入终端监控数:16

       16 为“共享接入监控”及“日志”中的终端详情的最大值,即同一监控IP下,大量终端接入时,最多对16个终端做日志记录

➢ 记录日志:设备对同一IP下终端的日志记录最多支持16个

➢ 干扰:与规则中配置的最大接入数有关,若为3,则第4个设备登陆时,采取干扰行为,并记录日志。后续接入的终端命中warning, 也受到干扰行为而无法正常访问(记录日志但不会添加到监测的终端详情里),需等到该IP干扰时间结束后,重新匹配

       举例:监控IP为10.10.10.10,有20个终端一起接入

✓ 若为log-only,此时监控中的终端详情可查看该IP下的最先建立会话的16个终端(剩余4个不记录日志);当有2个终端超时, 终端详情更新为14个终端,此时超时的2个终端和之前未做记录的4个终端,哪一个终端先有新建会话,就会匹配规则,将该终 端添加到该IP的终端详情中以记录日志

✓ 若为warning,规则中最大终端数为4时,“监控”的终端详情里显示5个终端;日志只更新该IP状态为warning,不加入终端

部署位置——勿部署在SNAT设备之前

终端共享接入检测基于源IP,用户内网部署时最好不要部署在SNAT设备之前,否则会出现同一个IP下共享接入终端数非 常多,无法正确监控

2.2 常见问题&定位方式

➢ 问题:终端接入检测功能失效(无数据)

➢ 可能因素:

✓ 未加载共享接入特征库时,系统不会进行终端接入检测

✓ 可以检查设备是否配置DNS name-server,用于解析升级服务器,特征库升级成功时,会显示特征库版本信息,如下:

SG-6000(config)#show share-access-detect signature info

DB vendor: Hillstone Networks

Current version: 1.0.1

Release date: 2018/01/01 17:45:12

三、智能链路负载均衡(LLB)方案介绍

3.1 背景

多链路接入已成为主流,运营商、高校、政府、企业等,越来越多的客户会在出口采用多链路的方式接入,这样带来的好处是:省钱、冗余保障,但突显出来的问题是出口流量如何选路才能保证充分利用带宽资源,不影响用户的上网体验

3.2 常见的几类选路方法

静态路由+固定权重

早期客户常用的选路方式,缺点:带宽利用模式固定,调整不灵活

ISP路由

一般作为选路的辅助方式,缺点:设备的ISP地址池可能需要不断自定义扩充

应用引流

部分友商常用引导方式,缺点:仅按照应用类别来区分线路,不考虑目的端口是否有访问资源是存在问题的

链路负载均衡

目前的热门方案,各厂家各有自己的方案

山石网科的链路负载均衡方案:智能链路负载均衡方案(LLB  Link Load Balance),设计理念:机器学习,关键词:实时、动态、智能、高质量

3.3 功能介绍

智能LLB—链路动态平衡

系统实时监测链路状态,动态调整不同链路的转发优先级,从而达到链路动态均衡的效果

检测:系统实时检测链路状态(带宽利用率、延迟、抖动、丢包率),根据检测结果,设置不同链路的转发权重,优质链路优先转发更大的流量;

调整:当链路状态不佳时(如带宽占用率过高、延迟较小、丢包率上升等),系统自动调整链路转发权重,高质量链路权重变大、低质量链路权重变小,并按照一定比例逐步切换流量至高质量俩怒,避免快速切换产生网络震荡的同时,保证流量优先从最优质的的链路转发出去;

恢复:当链路状态恢复后,由于系统对链路状态采用的是实时检测计算的方式,各条链路的转发权重将会重新调整,从而更均衡地转发流量

3.4 常见LLB&智能LLB

 

常见LLB

智能LLB

实现机制

构造探测报文并主动发送至链路,根据报文情况计算链路状态

从实际经过设备的流量中,实时抽取报文计算链路状态

时效性

需要经历构造探测报文,发送及反馈、计算这一复杂过程,时效性差

实时计算实际链路状态,时效性强

网络影响

构造探测报文和发送频率控制不当,反而可能会对链路产生额外负担

不对链路有任何额外负担

3.5 智能LLB优势

配置过程简单,只需三步即可:

配置多条等价路由、配置LLB模板(链路检测规则)、绑定路由和LLB模板

注:由于LLB模板中的带宽利用率需要根据接口配置的带宽计算,必须先检查,确保配置了正确的上下行带宽,避免检测效果不准确

实时流量检测技术:

时效性、准确性更高,对链路状态的变化敏感,流量调整更合理

避免额外发探测报文对链路产生更大的负担

3.6 配置介绍

3.6.1 WebUI界面

1、智能LLB可与目的路由(DBR)或策略路由(PBR)绑定使用,目的路由:创建多条等价路由,生成fib表(转发表,根据路由表生成),或者创建策略路由,配置多个等价出口

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

配置接口带宽

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

用于LLB带宽占用率的计算,需要手动配置真实的出口带宽

创建LLB模板—智能LLB探测规则

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

创建LLB规则—将LLB模板与路由绑定

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

链路监控配置

监控>链路状态监控>链路配置

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

注:如果需要根据应用进行过滤查看,应用维度需要勾选“启用”

在Nat-Pool可查看链路:延时、抖动、丢包、带宽利用率,过滤条件为:时间、绑定接口、应用

3.6.2 CLI界面配置

配置多条等价目的路由,生成fib表(转发表,根据路由表生成)

注:ECMP权重可以任意设置(不一定非要像1:1:1这样),即静态权重,LLB会抽样计算,即动态权重,流量根据目的IP子网进行匹配,命中策略的,走动态权重,没有命中策略的,走静态权重

SG-6000# show fib

   IPv4 Forwarding Table for Virutal Router <trust-vr>

 ======================================================

          Destination          Gateway      Flags     Interface           Weight      

 ---------------------------------------------------------------------------------------------

            0.0.0.0/0              1.1.1.1         UG       ethernet1/1        1/2/2       

                                        2.1.1.1         UG       ethernet1/2        1/2/2

配置bandwidth(up/down方向均为50M)

SG-6000(config-if-eth1/1)# bandwidth upstream 50000000

SG-6000(config-if-eth1/1)# bandwidth downstream 50000000

创建LLB模板

SG-6000(config)# llb profile 1

开启探测:

SG-6000(config-llb-profile)# detect enable       //默认开启(只能CLI配置,若关闭,记得开启)

配置detect探测子网的掩码,默认28

SG-6000(config-llb-profile)# detect netmask 28

配置detect带宽利用率阈值,默认60%

SG-6000(config-llb-profile)# detect threshold 60

配置detect均衡模式,默认High Performance

SG-6000(config-llb-profile)# mode performance

查看LLB规则详情:

SG-6000(config-llb-profile)# show llb profile 1

创建LLB规则

LLB模板与目的路由绑定

SG-6000(config)# llb rule 1 dbr 0.0.0.0/0 profile 1

注:这里配置的路由必须和fib表的路由IP掩码完全一样,才会命中LLB

LLB模板与策略路由绑定

SG-6000(config)# llb rule LLB-PBR pbr game id 1 profile LLB

注:PBR最多支持8个出接口,多于8个出接口的场景不适用。

查看LLB规则下子网信息

SG-6000(config)# show llb rule llb-rule task  …

配置链路状态监测         

SG-6000(config)# link-perf-monitor interface ethernet0/0

查看链路状态详情

SG-6000(config)# show link-perf-monitor statistics

可以看到每条链路的带宽占用率、延时、丢包率的数据,从而看到选路是否正确。

3.7 日志

日志每分钟产生一次,目前支持3种类型:上行带宽利用率超过上限(默认95%)、下行带宽利用率超过上限(默认95%)、探测失败

在llb profile下开启日志功能

SG-6000(config-llb-profile)# log enable

3.8 Debug调试命令

debug dp_llb_v2 process

可以看到每条链路的带宽占用率,丢包,延时的数据,从而看到选路是否正确

四、典型场景

4.1 典型场景1

场景:某运营商3条出口链路,希望VIP用户流量走链路1,其他流量全部走剩余2条链路,是否可以和智能LLB配合使用?

效果:针对该需求,其他流量可以在2条链路上配合智能LLB均衡地使用链路。

配置:配置策略路由1-VIP用户”,将VIP用户流量下一跳指向链路1出口

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

方法1:目的路由

配置2条等价的目的路由,分别走链路2和链路3出口;

配置LLB模板,并与目的路由绑定;

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

方法2:策略路由

配置策略路由2-“引流,将其他用户流量的下一跳指向链路2和链路3出口,权重均为1;

配置LLB模板,并与策略路由2绑定

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

4.2 典型场景2

场景:某互联网7条出口链路,其中视频流量分配至其中3条链路,游戏流量分配到另外3条链路,是否可以和智能LLB配置使用?

效果:视频流量可以在3条链路上进行智能LLB、游戏流量可以在3条链路上进行智能LLB,其余流量可以在7条链路上进行智能LLB;

配置:

配置策略路由1,将视频流量的下一跳指向链路1、2、3出口,权重均为1;

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

配置策略路由2,将游戏流量的下一跳指向链路4、5、6出口,权重均为1;

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

配置7条等价的目的路由,分别走7条链路出口;

配置LLB模板,并分别与策略路由1绑定、与策略路由2绑定、与目的路由绑定

注: 如果需要达到不同的智能LLB效果,可以创建不同的LLB模板分别绑定。

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB) 

 4.3 特殊说明

LLB探测采样时,是从TCP新建会话中按比例进行采样,所以当网络中TCP的新建会话数过少,可能会影响实际负载均衡效果,LLB调整链路权重后,会对后续的新建会话进行调整,所以,当网络中大多数为TCP长连接时,可能会影响实际负载均衡效果,LLB不是流控,不会因为接口配置的带宽数值进行流量控制,是根据接口的实际转发能力来进行转发处理。

测试建议:如果使用流量仪进行模拟测试,建议选用HTTP流量,且最好模拟为多Client轮询访问多HTTP Server的方式。