a10 服务负载均衡 hands-on book - saas.ecloud.10086.cn

21
1 Hands-on Book www.a10networks.com Part #: A10-MS-23127-03 Dec 2014 A10 服务负载均衡 Hands-on Book 1 术语界定 SLBServerLoad Balance 服务器负载均衡。 Real-Server: 真实服务器 Service-group: 服务组 VSvirtual-Server ,虚拟服务器 VIPVirtual-Server IP VPORTVirtual port虚拟服务端口,绑定在虚拟服务器下 Persist: 会话保持 HM: Health Monitor 健康检查。 2 A10 服务器负载均衡设计思路 A10 完成服务器负载均衡需包含如下元素: Real-Server:包含真实服务器地址和开放的应用端口 需关联健康检查,分为 IP 和端口两级 Service-Group: 由不同 member 组成的组,member 由真实服务器 IP 加端口组成,意思为某台服务 器上的某个服务,那么提供相同服务的多个 member 称为服务组。(相同服务是指任何 member 都可 以完整处理用户针对某个应用的访问) 需关联健康检查,如果没有配置,那么每个 member 的健康检查结果为继承 Real-Server 中的健康 检查结果。 每个 member 可以关联模板,实现更多处理。 Virtual-Server:虚拟服务器,包含虚拟服务器 IPVIP)和虚拟服务器端口(vport)Vport 的类型分为 tcpudpothers、以及特定应用协议类型,例如 httpdns 等。需要 A10 备按照哪个级别处理,那么服务类型就应该选择到相应级别。

Upload: others

Post on 05-Apr-2022

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

1

Hands-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

A10 服务负载均衡 Hands-on Book

1 术语界定

SLB:ServerLoad Balance 服务器负载均衡。

Real-Server: 真实服务器

Service-group: 服务组

VS:virtual-Server ,虚拟服务器

VIP:Virtual-Server IP

VPORT: Virtual port, 虚拟服务端口,绑定在虚拟服务器下

Persist: 会话保持

HM: Health Monitor 健康检查。

2 A10 服务器负载均衡设计思路

A10 完成服务器负载均衡需包含如下元素:

➢ Real-Server:包含真实服务器地址和开放的应用端口

◼ 需关联健康检查,分为 IP 和端口两级

➢ Service-Group: 由不同 member 组成的组,member 由真实服务器 IP 加端口组成,意思为某台服务

器上的某个服务,那么提供相同服务的多个 member 称为服务组。(相同服务是指任何 member 都可

以完整处理用户针对某个应用的访问)

◼ 需关联健康检查,如果没有配置,那么每个 member 的健康检查结果为继承 Real-Server 中的健康

检查结果。

◼ 每个 member 可以关联模板,实现更多处理。

➢ Virtual-Server:虚拟服务器,包含虚拟服务器 IP(VIP)和虚拟服务器端口(vport)。

◼ Vport 的类型分为 tcp、udp、others、以及特定应用协议类型,例如 http、dns 等。需要 A10 设

备按照哪个级别处理,那么服务类型就应该选择到相应级别。

Page 2: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

2

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

◼ Vport 下面包含的必要元素包含 Service-group,其它各种元素是否要配置取决于场景和具体需

求,例如 source-nat,会话保持等。

◼ Virtual-Server 的 up/down 取决于服务组的 up/down 或是否有 aFlex 脚本

◼ 服务器负载均衡的默认处理是做 dest-nat 的。

一次服务器负载均衡的访问处理流程如下:

1) Client 访问 VS。

2) A10 根据一系列策略算法(例如 Session 匹配,会话保持、负载均衡算法等等),会在 VS 关联的服务

组的可用成员中选择一个 member,然后 A10 将数据包中的目的地址改为该 member 的地址,目的

端口改为 member 设置的端口,并转发用户数据包至该 member(即数据发给了某台真实应用服务

器)。(若旁路部署还会涉及到源地址的转换)

3) 应用服务器处理后,将应答包发送给请求包中的源地址(在应答包中成了目的地址),该数据包首先会

到达 A10 设备,A10 设备将数据包中的源地址/源端口改为 VIP/vport,然后将数据包发送给 Client.

3 部署拓扑建议

拓扑说明:

Page 3: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

3

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

➢ 服务器负载均衡设备建议旁挂在核心交换机测。

➢ 双机热备使用直连的心跳线。

➢ 接入交换机后为 A10 链路负载,串联在接入交换机后。可配置入向负载(服务器负载)功能。 如无需链路

负载功能,无特殊情况使用旁挂部署。

4 A10 SLB packets flow

一次服务器负载均衡的访问处理流程如下:

1) 客户端访问 A10 VIP。

2) 如有 ACL 绑定在目标 VIP 上,A10 查看源地址是否被允许访问,如不允许则丢弃。

3) A10 设备首先匹配会话表,若命中会话表,根据会话表转发。

4) 如果没有命中会话表,先判断策略中是否配置有会话保持,若有会话保持且命中,则根据会话保持表选择

服务器,创建会话并转发。

5) 若没有配置会话保持或没有命中会话保持表,则按照 VIP 中配置的各种策略进行处理,具体过程如下:

a) 若配置有 aFlex,先判断 aFlex 中是否有选择策略。如有根据 aflex 进行选路。

b) 若没有 aFlex,判断是否有 url-switching 或 host switching,如有根据 HTTP 模板规则选路。

c) 若没有 http 模板或未命中 HTTP 模板,则根据服务器选择算法(主备,轮询,权重,最小链接)转

发到默认配置中的 Service-group 所包含服务器。

Page 4: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

4

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

6) 目的服务器回包后,匹配会话表,根据返回路由或原路返回策略,将从设备收到请求的端口发回给客户

端。

7) 后续任何客户端的访问按照以上的流程匹配相应的策略一一完成。

5 A10 服务器负载均衡配置

5.1 配置步骤综述

完成一次服务器负载均衡配置,包含如下步骤:

1. 网络配置

2. 配置健康监测

3. 配置 NAT Pool

4. 配置 Real Server

5. 配置 Service-Group (负载均衡算法可选)

6. 配置 ACL

7. 配置 HTTP/TCP/TCP-Proxy 模板 (可选)

8. 导入 SSL 证书,密钥 (可选)

9. 配置 SSL 模板 (可选)

10. 根据需求配置 Aflex

11. 配置会话保持

12. 配置 VS

说明:

正如盖一座房子,需要准备砖瓦等材料,最后才是用材料砌成房子。

上述步骤的 1-10 我们可以理解为盖房子而准备的材料,到第 11 步才是砌成房子的一刻。材料要准备成什么样

子,房子要砌成什么样子,完全取决于用户的需求。

5.2 配置详解

Page 5: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

5

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

5.2.1 网络配置

5.2.1.1 说明

网络配置涉及到管理口网络配置和数据口网络配置。

管理口有默认 IP:172.31.31.31,管理口要单独配置地址和路由,若需要修改,则将管理口 IP 和网关改为规划

的地址,此处不做赘述;注:为避免冲突,管理口地址不建议配置为跟数据口同网段。

数据口网络配置涉及到如下的内容:

接口 网关路由 说明

运营商 1 公网 IP,客户端接口 配置指向运营商 1 网关的默认路由 若双机部署,且有从外向内的路由

要求,除了每台机器一个接口 IP

外,还需准备一个 floating IP。

内网接口 IP,服务器端接口 指向内网的下一条路由 若双机部署,除了每台机器一个接

口 IP 外,还需准备一个 floating

IP。

配置说明:

为每一个网段划分一个 Vlan,在 Vlan 的 VE 里面配置接口 IP,不要在物理接口上直接配置 IP。

5.2.1.2 配置步骤

网络配置步骤一般包含如下三步:

1) 划分 vlan(若涉及到端口捆绑,需额外配置 Trunk)

2) 配置 vlan 接口 IP。

3) 配置路由。

假设某客户有一个公网口连接 Internet,一个内网口连接服务器群,配置如下:

Page 6: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

6

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

5.2.1.2.1 Vlan 配置

命令行配置示例:

vlan 10

untagged ethernet 1

name server

router-interface ve 10

!

vlan 20

untagged ethernet 2

name internet

router-interface ve 20

Web 界面(4.x)配置示例:

Page 7: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

7

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

配置说明:

➢ 欲配 IP,先划 VLAN。

➢ 若对端所连为二层交换机,为减少广播和 MAC 问题,必须也划分 VLAN。

5.2.1.2.2 配置接口 IP

命令行配置示例:

interface ve 10

name server

ip address 10.1.1.1 255.255.255.0

!

interface ve 20

name internet

ip address 20.1.1.1 255.255.255.0

Web 界面配置示例(4.x):

Page 8: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

8

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

5.2.1.2.3 配置路由

命令行配置示例:

ip route 0.0.0.0 /0 20.1.1.254

ip route 192.168.0.0 /16 10.1.1.254

默认路由配置在公网地址端,内网地址端使用明细路由。

注:当开启原进原出是, 负载均衡不依赖路由进行出向回包。

Web 界面(4.x)配置示例:

5.2.2 配置健康监测

健康监测用于判断服务器可用性。

▪ 健康检查应用于:

– 服务器

– 与/或 服务器:端口

– 与/或 服务组

▪ 健康检查可以探测应用服务的可用性

– L3 层:ping (icmp)

– L4 层:tcp, udp

– L7 层(应用层) : http, https, ftp, smtp, pop3, snmp, dns, radius, ldap, rtsp, sip, ntp

– 通过创建的脚本

▪ 多种 L3/L4/L7 测试方法也可以组合成一个布尔表达式(用“与/或/非”)

Page 9: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

9

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

配置步骤:

1) 根据需求创建健康检查,如无特殊需求,使用默认的健康检查即可 (ICMP,TCP,UDP)

2) 如需健康后端服务器的具体业务,如 HTTP 页面是否正常,可参考一下步骤。

命令行配置示例:

health monitor http

method http

Web 界面(4.x)配置示例:

5.2.3 配置 NAT Pool

每个内网服务器网段应该各自有一段用来做 NAT 的地址。

如果用来做 NAT 的地址是连续的,那么创建一个 NAT Pool 即可,如果地址是不连续的,则需要创建多个 NAT

Pool,然后把多个 NAT Pool 加入到一个 NAT Group 中。

命令行配置示例:

ip nat pool pool1 10.1.1.200 10.1.1.202 netmask /24

Web 界面配置示例(4.x):

Page 10: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

10

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

ADC->IP Source NAT->IPv4 Pool->Create:

配置说明:

➢ NAT Pool 地址段必须为连续的地址段,掩码需要填对。

➢ 若 NAT 地址只有一个,则 NAT Pool 的起始结束地址相同。

➢ 若 NAT Pool 配置在 vport 下面,则根据选择的下一跳选择相同网段的 NAT 地址,因此 NAT Pool 的掩码

不建议乱配,否则会导致选择不到 NAT 地址。

5.2.4 配置 Real Server(真实服务器)

Real Server 为真实提供服务的后端真实服务器。需提供服务 IP 和端口。

示例中有两台服务器提供相同功能,需要负载均衡。

命令行配置示例:

slb server s1 10.1.1.100

port 80 tcp

health-check http

!

slb server s2 10.1.1.101

port 80 tcp

health-check http

Page 11: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

11

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

Web 界面配置

示例(4.x):

配置说明:

建议将健康监测配置端口层面以检查具体业务的健康转台

配置所需服务端口,如 80,443。

5.2.5 配置 Service-Group

Service-Group 的 member 为每个真实服务器 Real Server。

在 SLB 的配置中,需将提供负载均衡功能的服务器配置到一个服务组中。算法方面,常用的有轮询(默认),

最小连接数,权重。 示例中使用最小连接数算法。

命令行配置示例:

slb service-group sg-1 tcp

method least-connection

member s1 80

member s2 80

Page 12: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

12

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

Web 界面配置示例(4.x):

配置说明:

➢ 在服务组 member 中可配置优先级、形成备份关系,根据服务器数量,可以设置多个优先级,形成多级

备份。

➢ Member 中优先级数值越大,越优先。

➢ 若 Server 配置了健康检查,则 Service-Group 无需配置。

➢ 相同的 member IP 和端口可以属于不同的 Service-Group,因此若单一的 Service-Group 不能满足诸

多策略的处理需求,需要创建不同的 Service-Group 来满足转发要求。

➢ 针对具体应用端口单独设定的转发策略,其中 Service-group 可以单独配置具体端口的服务组,也可以

用通用的 port 0 服务组。

5.2.6 配置 ACL

通过 ACL 可以控制服务器负载流量的来源 (目的固定,无需控制),比如源 IP,端口,入口 vlan,接口等。

屏蔽一些不允许的访问的 IP. 在遭受 DDOS 攻击时,可手动增加黑名单条目。

命令行配置示例:

access-list 101 deny ip 100.100.100.0 0.0.0.255 any vlan 20

access-list 101 permit ip any any

Page 13: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

13

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

Web 界面配置示例(4.x):

配置说明:

➢ ACL 由不同 ID 来区分,ID 越小,优先级越高。

➢ ACL 分为标准 ACL 和扩展 ACL,标准 ACL 只判断源,不判断目的。

➢ 扩展 ACL 基于源地址、源端口、目的地址、目的端口,甚至 vlan ID 等多元组实现精细的访问控制。

➢ 定义 ACL 时,需要有基本的逻辑判断能力,确认从前到后的 ACL 的定义,无冲突产生。

➢ 定义 ACL 需要有未雨绸缪的想法,不能把 ACL ID 排列的过密,将来增改配置时,可以根据处理先后,将

新 ACL 插入到适当的位置。

5.2.7 配置 TCP/TCP-Proxy 模板

TCP,TCP-proxy 模板分别用于 L4/L7 层负载服务。主要提供 TCP 层面的选项以及处理流程优化。

在常见的服务器负载均衡场景中,需配置如下模板。

命令行配置示例:

slb template tcp-proxy test

reset-fwd

reset-rev

Page 14: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

14

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

Web 界面配置示例(4.x):

说明: 此命令的功能为 A10 在 session 超时的情况下主动向客户端和服务器发送 TCP RST 已免出现 session 在

客户端-A10-服务器不同步的情况。此选项绝大部分情况需要勾选。

5.2.8 配置会话保持

服务器负载一般需要源地址会话保持。 如访问源较少,且业务为 HTTP,可使用 cookie 会话保持。 如有特殊需

求,需根据自定义字段进行会话保持,测试使用 aflex 脚本的 persist uie 功能。 以下已最简单的 源地址会话保

持举例。

命令行配置示例:

slb template persist source-ip srcpersit

Page 15: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

15

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

Web 界面配置示例(4.x):

配置说明:

会话保持默认的匹配类型为 port,一般情况下使用默认选项即可。 如需跨不同虚拟端口进行会话保持, 将匹配

类型改为 server。 如与 URL-switching 或 host-switching 一起使用,将匹配类型改为 service-group

5.2.9 导入 SSL 证书,密钥 (选配)

如需使用 SSL 卸载功能,需将服务器证书及密钥导入 A10. 如有链证书,可先与终端证书合并,一次性导入,也

可单独导入 A10.。

命令行导入示例:

vThunder(config)#import cert test ?

certificate-type certificate-type

overwrite Overwrite existing file

pfx-password The password for certificate file (pfx type only)

terminal terminal vi

Page 16: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

16

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

use-mgmt-port Use management port as source port

user-tag Customized tag

tftp: Remote file path of tftp: file system(Format: tftp://host/file)

ftp: Remote file path of ftp: file system(Format: ftp://[user@]host[:port]/file)

scp: Remote file path of scp: file system(Format: scp://[user@]host/file)

http: Remote file path of http: file system(Format: http://[user@]host/file)

https: Remote file path of https: file system(Format: https://[user@]host/file)

sftp: Remote file path of sftp: file system(Format: sftp://[user@]host/file)

Web 界面导入示例(4.x):

配置说明:

也可以在 A10 上创建密钥并生成 CSR,将 CSR 发给证书签发机构签发后再导入到 A10

5.2.10 配置 SSL 模板(选配)

如需使用 SSL 卸载功能,将 SSL 证书密钥导入 A10 后,需将它们绑定到 SSL 模板中使其生效

Page 17: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

17

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

命令行配置示例:

slb template client-ssl ssl

cert test

key test

Web 界面配置示例(4.x)

配置说明

1. 如存在链证书,推荐在导入前将其与终端证书合并,将合并后的证书当做 服务器证书。 避免在模板中使用

链证书。

2. 可根据具体需求,选择 SSL 协商 cipher 优先级。

3. 根据具体需求,配置其他高级配置。 一般情况下只配置服务器证书和密钥即可。

5.2.11 配置 VS

这是配置负载均衡最重要的一步,对外 VS 提供服务的对外门户(IP 和端口),客户端只需访问 VIP。

对内 VS 根据已有的策略与服务器群交互,获取服务内容。 VS 需调用之前提到的所有配置, 形成完整

的内外策略。 以下实例为 VIP 提供 HTTP(80),HTTPS(443,SSL 卸载)两项业务的配置方法。 使

用之前案例中相同的配置。

命令行配置示例

slb virtual-server vip 20.1.1.100

Page 18: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

18

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

port 80 http

access-list 101 //调用 ACL

source-nat pool pool1 // 调用 NAT pool

service-group sg-1 // 调用服务组

use-rcv-hop-for-resp // 使用原进原出

template persist source-ip test // 调用会话保持

template tcp-proxy test // 调用 TCP-Proxy 模板

port 443 https

access-list 101

source-nat pool pool1

service-group sg-1

use-rcv-hop-for-resp

template client-ssl ssl //调用 SSL 模板

template tcp-proxy test

Web 界面配置示例(4.x)

Page 19: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

19

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

6 故障诊断

故障诊断步骤如下:

1) 查看网络连通性

a) show arp 查看并判断二层互联是否正确。

b) ping 网关及远端 server,判断路由是否有问题。

c) telnet 端口检查是否有端口阻挡。

2) 查看设备信息

结合网络状态的检查,查看如下信息做更多的判断:

a) Show log 查看告警信息

Page 20: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

20

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

b) Show interface 查看端口的 up/down 信息,以及双工协商情况等。

c) Show session 查看会话表的建立是否正确,例如可以查看跟踪的会话是否做了 nat.

d) Show slb server 查看服务器状态

e) Show slb service-group 判断 member 状态是否正确。

f) Show access-list 查看 acl 命中情况

g) Show slb virtual-server 查看 wildcard VIP 状态及命中情况。

h) Show cpu 查看 cpu 是否过高

i) Show memoray 查看内存是否过高

j) Show aflex 查看 aflex 是否有执行错误

k) Show run 查看配置,用于仔细检查配置的正确性。

3) 抓包追踪

若以上判断还不能定位到故障点,那么抓包是终极武器,A10 设备支持两种抓包方式:

➢ Debug : 可以追踪流量转发条目,定位到进出设备的端口和 vlan,非常有助于判断转发策略的正

确性,并且可帮助排除本设备的嫌疑。

Debug 抓包举例:

在#下输入下面命令:

debug packet l3-protocol ip 10.10.10.10 l4-protocol tcp 80 设定过滤条件

debug monitor (filename) 开始抓包

以上过滤条件将抓取所有 IP(源或目的) 为 10.10.10.10,端口(源或目的)为 80 端口的包,

➢ axDebug: 抓包文件存到设备,在导出到本地后,通过 wireshark 等工具打开,可看到完整的数据

包内容包括 mac 地址,可有助于做更多的细节排查。

axDebug 抓包举例:

a) 在#下输入 axdebug

b) 用 filter 命令设置过滤条件

输入 filter 1,会进入 filter 模式,(axdebug-filter:1)#

Page 21: A10 服务负载均衡 Hands-on Book - saas.ecloud.10086.cn

21

Hanks-on Book

www.a10networks.com Part #: A10-MS-23127-03 Dec 2014

可选参数 dst(ip,port),src(ip,port),vlan xx,L3-proto,port,mac,proto 可以严格指定源 IP、

端口,目标 IP、端口。

c) 设置抓包条数和时间(option)

count x(默认是 3000,不限制为 0)Timeout x(默认 5 分钟,不限制为 0)

d) 用 capture 命令保存抓包输出

Capture(brief,detail,no-display) save xxx