[培训]A10出向智能选路(链路负载均衡)与SLB工作流与配置范例

做为ADC产品三大卖点SLB/LLB/GSLB的LLB需要加深理解。从网络基础成长起来的SE,可以不熟悉SLB,但对LLB不能不熟。为方便手机屏幕浏览,将原图改造成竖版如下:

单纯的LLB工作流
LLB+SLB综合工作流

一次链路负载均衡的访问处理流程如下:
1) 客户端访问Internet 服务器(如LAN客户端172.22.99.10访问WAN网http://122.227.231.250);

LLB-11-Active-affinity-def-vMaster[1/1]#sh running-config | sec nat       
system resource-usage nat-pool-addr-count 2000 
ip nat pool cmc-nat 223.96.100.4 223.96.100.6 netmask /24 ip-rr 
ip nat pool ctc-nat 122.227.231.4 122.227.231.6 netmask /24 ip-rr 
ip nat pool cuc-nat 60.12.220.4 60.12.220.6 netmask /24 ip-rr 
ip nat pool-group cmc-pool 
  member cmc-nat 
ip nat pool-group ctc-pool 
  member ctc-nat 
ip nat pool-group cuc-pool 
  member cuc-nat 
slb resource-usage nat-pool-addr-count 2000 
slb template port ctc-snat-temp 
  source-nat ctc-pool 
slb template port cuc-snat-temp 
  source-nat cuc-pool 
slb template port cmc-snat-temp 
  source-nat cmc-pool 

2) 如果A10 设备流量进入的接口配置有ip allow-promiscuous-vip,用户访问将命中某个ACL 关联的 Wildcard VIP 或没有关联ACL 的默认Wildcard VIP。

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

4) 如果没有命中会话表,先判断策略中是否配置有会话保持,若有会话保持且命中,则根据会话保持表选择下一跳,创建会话并转发。

5) 若没有配置会话保持或没有命中会话保持表,则按照Wildcard 中配置的各种策略进行处理,具体过程如下:
a) 若配置有aFlex,先判断aFlex 中是否有选路策略。
b) 若没有aFlex,判断Policy 模板中的选路策略,例如判断目的地址所属运营商,若目的地址属于电信,转发给电信网关Service-group,若目的地址为联通,转发给联通网关Service-group,若目的地址属于其他运营商,但无该运营商链路,则根据指定的下一跳转发,依次类推…
c) 若没有配置policy 模板或者没有命中polic 模板的具体条目,则转发到默认配置中的Servicegroup所包含的下一跳网关。

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

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

Done!

配置范例:

LLB-11-Active-affinity-def-vMaster[1/1]#sh running-config 
!Current configuration: 3661 bytes      
!Configuration last updated at 06:42:04 GMT Sat Mar 14 2020
!Configuration last saved at 08:55:17 GMT Sat Mar 14 2020
!64-bit Advanced Core OS (ACOS) version 4.1.4-GR1-P2, build 151 (Sep-09-2019,15:47)
!
vrrp-a common 
  device-id 1 
  set-id 1 
  enable 
!
device-context 1
  vcs enable 
!
device-context 2
  vcs enable 
!
vcs floating-ip 1.1.1.2 255.255.255.0 
!
vcs device 1 
  priority 250 
  interfaces management 
  interfaces ve 1001 
  affinity-vrrp-a-vrid 0 
  enable 
!
vcs device 2 
  priority 200 
  interfaces management 
  interfaces ve 1001 
  affinity-vrrp-a-vrid 0 
  enable 
!
!
system resource-usage nat-pool-addr-count 2000 
!
terminal idle-timeout 60 
!
class-list class-cmc 
  223.96.100.0/24 
  223.96.110.0/24 
  3.3.3.3/32 
!
class-list class-ctc 
  122.227.231.0/24 
  122.227.230.0/24 
!       
class-list class-cuc 
  60.12.220.0/24 
  60.12.221.0/24 
!
ip dns primary 122.227.231.250 
!
vlan 1/1001 
  tagged ethernet 3
  router-interface ve 1001 
  name heartBeat 
!
vlan 1/2001 
  untagged ethernet 2
  router-interface ve 2001 
!
vlan 1/3001 
  tagged ethernet 1
  router-interface ve 3001 
!
vlan 1/3002 
  tagged ethernet 1
  router-interface ve 3002 
!
vlan 1/3003 
  tagged ethernet 1
  router-interface ve 3003 
!
vlan 2/1001 
  tagged ethernet 3
  router-interface ve 1001 
!
vlan 2/2001 
  untagged ethernet 2
  router-interface ve 2001 
!
vlan 2/3001 
  tagged ethernet 1
  router-interface ve 3001 
!
vlan 2/3002 
  tagged ethernet 1
  router-interface ve 3002 
!
vlan 2/3003 
  tagged ethernet 1
  router-interface ve 3003 
!
device-context 1
  hostname LLB-11 
!
device-context 2
  hostname LLB-12 
!
device-context 1
  interface management 
    ip address 192.168.0.11 255.255.255.0 
    ip default-gateway 192.168.0.254 
!
device-context 2
  interface management 
    ip address 192.168.0.12 255.255.255.0 
    ip default-gateway 192.168.0.254 
!
interface ethernet 1/1 
  enable 
!
interface ethernet 1/2 
  enable 
!
interface ethernet 1/3 
  enable 
!
interface ethernet 2/1 
  enable 
!
interface ethernet 2/2 
  enable 
!
interface ethernet 2/3 
  enable 
!
interface ve 1/1001 
  name heartBeat 
  ip address 1.1.1.11 255.255.255.0 
!
interface ve 1/2001 
  name donwLink 
  ip address 172.22.99.1 255.255.255.0 
  ip allow-promiscuous-vip 
!       
interface ve 1/3001 
  name CTC 
  ip address 122.227.231.1 255.255.255.0 
!
interface ve 1/3002 
  name CUC 
  ip address 60.12.220.1 255.255.255.0 
!
interface ve 1/3003 
  name CMC 
  ip address 223.96.100.1 255.255.255.0 
!
interface ve 2/1001 
  name heartBeat 
  ip address 1.1.1.12 255.255.255.0 
!
interface ve 2/2001 
  name downLink 
  ip address 172.22.99.2 255.255.255.0 
!
interface ve 2/3001 
  name CTC 
  ip address 122.227.231.2 255.255.255.0 
!
interface ve 2/3002 
  name CUC 
  ip address 60.12.220.2 255.255.255.0 
!
interface ve 2/3003 
  name CMC 
  ip address 223.96.100.2 255.255.255.0 
!
vrrp-a vrid 0 
  floating-ip 122.227.231.82 
  floating-ip 60.12.220.168 
  floating-ip 172.22.99.3 
  device-context 1
    blade-parameters 
      priority 250 
      tracking-options 
        trunk 1 priority-cost 60 
        gateway 172.22.99.254 priority-cost 100 
  device-context 2
    blade-parameters 
      priority 200 
      tracking-options 
        trunk 1 priority-cost 60 
        gateway 172.22.99.254 priority-cost 100 
!
ip nat pool cmc-nat 223.96.100.4 223.96.100.6 netmask /24 ip-rr 
!
ip nat pool ctc-nat 122.227.231.4 122.227.231.6 netmask /24 ip-rr 
!
ip nat pool cuc-nat 60.12.220.4 60.12.220.6 netmask /24 ip-rr 
!
ip nat pool-group cmc-pool 
  member cmc-nat 
!
ip nat pool-group ctc-pool 
  member ctc-nat 
!
ip nat pool-group cuc-pool 
  member cuc-nat 
!
device-context 1
  enable-management service ssh 
    ve 1001
    ve 2001
!
device-context 2
  enable-management service ssh 
    ve 1001
    ve 2001
!
device-context 1
  ip route 0.0.0.0 /0 60.12.220.254 10 
  ip route 0.0.0.0 /0 223.96.100.254 20 
  ip route 0.0.0.0 /0 122.227.231.251 
!
device-context 2
  ip route 0.0.0.0 /0 122.227.231.251 
  ip route 0.0.0.0 /0 60.12.220.254 10 
  ip route 0.0.0.0 /0 223.96.100.254 20 
!
slb resource-usage client-ssl-template-count 8192 
slb resource-usage conn-reuse-template-count 4096 
slb resource-usage fast-tcp-template-count 4096 
slb resource-usage fast-udp-template-count 4096 
slb resource-usage http-template-count 4096 
slb resource-usage nat-pool-addr-count 2000 
slb resource-usage persist-cookie-template-count 4096 
slb resource-usage persist-srcip-template-count 4096 
slb resource-usage proxy-template-count 4096 
slb resource-usage real-port-count 16384 
slb resource-usage real-server-count 8192 
slb resource-usage server-ssl-template-count 8192 
slb resource-usage service-group-count 8192 
slb resource-usage stream-template-count 4096 
slb resource-usage virtual-port-count 8192 
slb resource-usage virtual-server-count 4096 
slb resource-usage health-monitor-count 1024 
!
health monitor check-ctc-baidu 
  method external program ext-ping arguments "ve3001 www.baidu.com" 
!
health monitor check-cuc-baidu 
  method external program ext-ping arguments "ve3002 60.12.220.249" 
!
health monitor check-cmc-baidu 
  method external program ext-ping arguments "ve3003 223.96.100.249" 
!
health monitor check-ctc-taobao 
  method external program ext-ping arguments "ve3001 www.taobao.com" 
!
health monitor check-cuc-taobao 
  method external program ext-ping arguments "ve3002 60.12.220.249" 
!
health monitor check-cmc-taobao 
  method external program ext-ping arguments "ve3003 223.96.100.249" 
!
health monitor check-ctc 
  method compound sub check-ctc-baidu sub check-ctc-taobao or
!
health monitor check-cuc 
  method compound sub check-cuc-baidu sub check-cuc-taobao or
!
health monitor check-cmc 
  method compound sub check-cmc-baidu sub check-cmc-taobao or
!
slb template port ctc-snat-temp 
  source-nat ctc-pool 
!
slb template port cuc-snat-temp 
  source-nat cuc-pool 
!       
slb template port cmc-snat-temp 
  source-nat cmc-pool 
!
slb server gw-cmc 223.96.100.250 
  health-check check-cmc 
  port 0 tcp 
    template port cmc-snat-temp 
    health-check-disable 
  port 0 udp 
    template port cmc-snat-temp 
    health-check-disable 
  port 10 tcp 
!
slb server gw-ctc 122.227.231.251 
  health-check check-ctc 
  port 0 tcp 
    template port ctc-snat-temp 
    health-check-disable 
  port 0 udp 
    template port ctc-snat-temp 
    health-check-disable 
!
slb server gw-cuc 60.12.220.250 
  health-check check-cuc 
  port 0 tcp 
    template port cuc-snat-temp 
    health-check-disable 
  port 0 udp 
    template port cuc-snat-temp 
    health-check-disable 
!
slb service-group gw-all-tcp tcp 
  method src-ip-hash 
  health-check-disable 
  member gw-cmc 0 
  member gw-ctc 0 
  member gw-cuc 0 
!
slb service-group gw-all-udp udp 
  method src-ip-hash 
  health-check-disable 
  member gw-cmc 0 
  member gw-ctc 0 
  member gw-cuc 0 
!       
slb service-group gw-cmc-tcp tcp 
  health-check-disable 
  member gw-cmc 0 
    priority 15 
  member gw-ctc 0 
    priority 10 
  member gw-cuc 0 
    priority 5 
!
slb service-group gw-cmc-udp udp 
  health-check-disable 
  member gw-cmc 0 
    priority 15 
  member gw-ctc 0 
    priority 10 
  member gw-cuc 0 
    priority 5 
!
slb service-group gw-ctc-tcp tcp 
  health-check-disable 
  member gw-cmc 0 
    priority 10 
  member gw-ctc 0 
    priority 15 
  member gw-cuc 0 
    priority 5 
!
slb service-group gw-ctc-udp udp 
  health-check-disable 
  member gw-cmc 0 
    priority 10 
  member gw-ctc 0 
    priority 15 
  member gw-cuc 0 
    priority 5 
!
slb service-group gw-cuc-tcp tcp 
  health-check-disable 
  member gw-cmc 0 
    priority 5 
  member gw-ctc 0 
    priority 10 
  member gw-cuc 0 
    priority 15 
!       
slb service-group gw-cuc-udp udp 
  health-check-disable 
  member gw-cmc 0 
    priority 5 
  member gw-ctc 0 
    priority 10 
  member gw-cuc 0 
    priority 15 
!
slb template persist destination-ip p-dip 
!
slb template tcp temp-tcp-60s 
  idle-timeout 60 
  reset-fwd 
  reset-rev 
!
slb template udp temp-udp-60s 
  idle-timeout 60 
!
slb virtual-server llb-out 0.0.0.0 
  port 0 others 
    clientip-sticky-nat 
    aflex llb-out-udp 
    template persist destination-ip p-dip 
    template udp temp-udp-60s 
    no-dest-nat 
  port 0 tcp 
    clientip-sticky-nat 
    aflex llb-out-tcp 
    template persist destination-ip p-dip 
    template tcp temp-tcp-60s 
    no-dest-nat 
  port 0 udp 
    clientip-sticky-nat 
    aflex llb-out-udp 
    template persist destination-ip p-dip 
    template udp temp-udp-60s 
    no-dest-nat 
!
sflow setting local-collection 
!
sflow collector ip 127.0.0.1 6343 
!
!
end     
!Current config commit point for partition 0 is 0 & config mode is classical-mode
LLB-11-Active-affinity-def-vMaster[1/1]#  
发布日期:
分类:A10 标签: