深信服应用交付(AD)学习笔记

深信服上网行为管理的学习笔记,由于软件版本更新相关特性可能变动,仅供参考哈。。

权威内容请访问深信服官方社区:https://bbs.sangfor.com.cn/

目录

DNS相关

全局智能DNS

虚拟地址池

同步角色

同步公差

全局应用负载

通信同步端口 : TCP 558

本地智能DNS

调度原则

调度策略

监视地址

健康状态检查

延迟切换

DNS代理

终端PC DNS配置

DNS会话保持

代理策略

缓存

并发查询

代理目标范围

前置调度策略

其它注意实现

智能DNS

网络配置

接口

拨号接口PPPOE:7.0.3以上

管理口:10.252.252.252/24、10.254.254.254/24

交换口

WAN口

聚合网口

vlan子接口(vlan接口)

地址转换/端口映射

自动SNAT

手动SNAT优先级高于自动SNAT

端口映射优先级低于虚拟服务。如同时存在与虚拟服务相同的端口映射。则虚拟服务更优先

iptables -t nat -xnvl

发布内网服务器

路由

路由优先级

AD禁止配置8个0默认路由,会导致动态路由和智能路由失效

ipv6需要配置目的网段为0::0的默认路由

静态路由

智能路由

部署模式

a) 路由模式=入站负载+出站负载+服务器负载

b) 单臂模式=服务器负载+入站负载,不支持出站负载

c)多线单臂=入站负载+出站负载+服务器负载

特性

网络安全

外/内网防DDOS

ACL

ARP/ND防护

ARP代理

管理员安全

调试排障

连接会话查询

抓包排查

下载黑盒日志

缓存查询

缓存缺失查询

会话保持查询

ipro

Lua语言编写,7层虚拟服务

TCP策略

TCP时间戳

TCP连接池

ip-anycast任意播

注意

广播触发条件

路由开销决定最终目的调度

虚拟服务

前置调度策略

服务类型

自动SNAT(SNAT地址集)优先于NAT规则

节点池

高可用

双机组播地址

条件

模式

心跳口

配置同步选项

故障切换

双机故障切换条件

加入集群

双机支持配置恢复\导入,在配置同步完成后会重启设备

没有主控被控区别,任意设备更改在集群内同步生效

公共对象

自定义内容

使用场景

服务器负载

场景

负载方式

服务类型

负载算法

节点选择

健康状态检查

链路负载

入站链路负载

出站链路负载

IPV6改造

NAT6-4

天窗

服务器性能优化

TCP链接复用

页面缓存

HTTP压缩

SSL卸载

命令行

SSH命令行

模式

注意事项

指令类型

语法

使用方法

web consel

session srcaddr 192.168.133.4   //查看IP会话

API

由客户端发起

HTTP请求中URI表示目标配置(资源)

HTTP请求中Method表示操作方法(增/删/改/查)

HTTP请求必须带有认证信息(token)

设备处理后返回HTTP应答

HTTP应答包含结果状态(状态码)

HTTP应答包含预期数据(应答实体)

数据以JSON格式传输

CMD

nslookup

后台

openad

取黑匣子

高可用

双机条件

要求硬件平台必须一致

授权必须要一致(除升级序列号之外的序列号授权一致)

软件版本信息必须一致(appversion完全一致)

高可用配置

心跳口

故障切换

同步对象

联动配置

主备模式

高可用集群

概念:不同业务组运行于不同集群设备上

浮动IP

集群条件

配置流程

心跳线

成员管理

设备组管理

应用组管理

集群设备状态

报表中心(默认关闭)

链路统计

总流量、上下行

访问次数

带宽利用率

可用性、稳定性

节点统计

总流量、上下行

访问次数

并发连接数

可用性、稳定性

虚拟服务统计

总流量、上下行

访问次数

可用性、稳定性

智能路由统计

总流量、上下行

访问次数

智能DNS

数据中心

虚拟IP池

LDNS集合

来源分布

异常请求

系统操作

AD升级路线

高危操作

ipv4添加8个0默认路由

配置SSL卸载虚拟服务,HTTPS控制台使用443端口

未填写虚拟MAC时切换应用组生效设备 -- 高可用模块 主备信息开启MAC同步

更改链路数授权将重启设备,需拆除双机

后台

OPEN AD

负载方式

HTTPS

HTTP

TCP

分配策略

轮询算法

最少连接

源IP算法

会话保持类型

HTTP/HTTPS

TCP

健康检测类型

PING

TCP

HTTP

上网卡顿

mpstat文件

nf_conntrack_count文件

uptime文件

dev文件

mem_overload文件


 

DNS相关

全局智能DNS

虚拟地址池

本地DNS映射和全局DNS映射的区别:AD本地(本机)DNS映射用于单个站点,非分布式环境中;全局(多机)DNS映射用于多个站点,分布式环境中,并且各个站点的全局DNS映射配置可以相互同步

  • 本地虚拟IP池

• 作用于本地DNS映射

• 本地DNS映射主要是实现域名和虚拟IP池中地址的映射关系,当有域名记录的请求访问设备时,返回IP池中记录的IP地址,实现域名解析

  • 全局虚拟IP池

• 作用于全局DNS映射

• AD全局DNS映射用于用户在不同的地方有相同的服务器提供服务,然后用户通过同一个域名访问,通过AD可以实现不同用户的地方,选择最快的链路来接入访问服务器

同步角色

  • 不同步 -- 不参与全局同步
  • 从属 -- 从其它数据中心下载配置文件到本站
  • 主控 -- 向其它数据中心下发本站的全局文件配置
  • 双向 -- 同时扮演上传和下载角色

同步公差

  • 两个数据中心间的配置文件修改时间差的阈值
  • 两个数据中心配置文件修改时间差值大于[同步公差],表明修改时间较早的数据中心配置文件需要被更新
  • 当两个数据中心配置文件修改时间的差值小于等于[同步公差]时,表明两个数据中心的配置文件被视为等效且不同步
  • 类似于心跳包,小于心跳时间说明需要更改配置文件,大于心跳时间等效??

全局应用负载

  • 本地服务设备

• SNMP 161

通信同步端口 : TCP 558

本地智能DNS

调度原则

  • 智能DNS优先级高于内网DNS
  • 一级调度,选虚拟IP池:域名---IP映射(一级调度)---设置虚拟IP池
  • 二级调度,池里选IP:域名---虚拟IP池(二 级调度)---设置DNS映射

调度策略

  • 轮询

• 交替调度

  • 加权轮询

• 按权值交替调度

  • 哈希

• 对DNS请求的源IP进行运算

  • 动态就近性

• 依据来源LDNS到各个链路IP时延,返回时延最小的IP

  • 首个可用
  • 加权最小链接

• 返回所在链路连接数加权后的结果

  • 加权最小流量
  • 静态就近性
  • 返回所有IP
  • 拒绝【备选策略】

• 向客户端返回拒绝信息

  • 丢弃【备选策略】

• 直接丢包不回应

  • 返回备用IP【备选策略】

• 当首选调度失败则返回该IP

监视地址

  • 默认监视所有地址,但也可以指定

健康状态检查

  • 开启调试日志

• 系统日志中产生详细连接记录 -- 不建议开启,会将正常日志刷掉

延迟切换

  • 需要人为干预切换时才启用,建议禁用

DNS代理

终端PC DNS配置

  • AD监听地址
  • DNS服务器列表里的IP

DNS会话保持

  • dproxy_cmd dump_ldns_ps //可以查看单台PC重复发起DNS请求,AD间返回同一IP,默认为300秒
  • dproxy_cmd flush_ldns_ps //清除DNS会话保持

代理策略

  • 轮询  //1:1
  • 加权轮询 //越大约优先
  • 加权最小流量
  • 优先级

缓存

  • AD直接返回DNS结果,不像LDNS发请求

并发查询

  • 谁先返回谁优先

代理目标范围

  • 指定服务器

• 仅代理向DNS服务器列表内和发给监听地址的DNS请求

  • 指定域名

• 仅代理匹配前置调度策略中地址集的DNS请求

• 内网记录中的所有DNS请求

  • 全部DNS请求

• 代理目前地址为任意的DNS查询请求

前置调度策略

  • 某些域名通过指定的DNS解析
  • 某些用户通过指定DNS解析

其它注意实现

智能DNS

  • 增大TTL,防止NS迭代过多或跨运营商开销导致DNS请求超时,尽量避免每次均从AD返回结果

网络配置

接口

拨号接口PPPOE:7.0.3以上

管理口:10.252.252.252/24、10.254.254.254/24

交换口

  • a) AD交换网口用于将AD设备的多个网口从逻辑上合并成一个二层交换机的接口,其中AD的每个网口都可以当做一个二层交换机的接口来处理,
  • b) 常见场景:用于口字形上下主备不能联动切换的情况下,上下互联口全部配置为交换口,并共享一个IP地址,并同步端口的MAC地址。
  • c) 端口聚合:加大带宽+链路冗余

WAN口

  • 智能DNS调度仅针对WAN口属性接口生效
  • 虚拟服务只能关联WAN口属性的接口
  • WAN口入站路由转发

• 无法进行除虚拟服务、DNS、源地址转换、端口映射、远程登录、匹配智能路由或静态路由之外的数据传输

聚合网口

  • 哈希

基于源IP和目的IP计算hash,选择相应接口

  • 轮询
  • 802.3ad

1、LACP自动协商2、自动选择带宽链路最大为主链路,其余为备链路。如带宽一样,则采用哈希算法发送数据。

  • 冗余双网卡

多个物理网口绑定为一个逻辑接口,只有一个物理网口处于工作状态,当主网口宕掉后备网口切换成主网口工作。

vlan子接口(vlan接口)

  • 基于网口、聚合口生效
  • TRUNK标签

地址转换/端口映射

自动SNAT

手动SNAT优先级高于自动SNAT

端口映射优先级低于虚拟服务。如同时存在与虚拟服务相同的端口映射。则虚拟服务更优先

iptables -t nat -xnvl

发布内网服务器

  • 只有勾选了发布内网服务器才会使LAN口进来的数据匹配WAN口配置的DNAT,705以上版本发布内网服务器的入站接口为LAN口;704需每个LAN分别指定

路由

路由优先级

  • ACL>静态路由>动态路由>智能路由

AD禁止配置8个0默认路由,会导致动态路由和智能路由失效

ipv6需要配置目的网段为0::0的默认路由

静态路由

  • 网关健康度检查:arp检测网关状态,判断链路状态
  • 权重:多路径路由,相同则hash等价负载,不同大优先
  • ipv6不支持重分发

智能路由

  • 清除会话保持

部署模式

a) 路由模式=入站负载+出站负载+服务器负载

b) 单臂模式=服务器负载+入站负载,不支持出站负载

  • i. AD设备旁路部署时,必须使用WAN口连接到交换机,WAN可以和服务器同一网段,如不在同网段,则需保证AD和服务器路由可达
  • ii. 单臂部署,需要WAN口授权
  • iii. 单臂部署,需配置SNAT和默认路由
  • iv. 若服务需发布到公网,需在边界设备做端口映射给AD(全映射或服务器相关端口)

c)多线单臂=入站负载+出站负载+服务器负载

特性

网络安全

外/内网防DDOS

ACL

  • 高级ACL

• 虚拟服务模块,配置虚拟服务并发连接数

  • 标准ACL

• IP不在AD网口上:ACL放通80/85/443/1000/22345

• IP在AD网口上:无法拦截控制台相关端口,控制台端口由于ACL

ARP/ND防护

ARP代理

管理员安全

  • AD域认证
  • radius认证

调试排障

连接会话查询

  • 智能路由的会话保持查询

抓包排查

  • 不抓 808,830,1360 端口的数据包

下载黑盒日志

  • 要求过去 30 天内,范围要求少于 7 天

缓存查询

  • 查询虚拟服务中的某个 URL 是否被 AD 设备缓存
  • 清除缓存

缓存缺失查询

  • 统计一段时间某URL未缓存次数和不缓存原因
  • 支持通配符查询URL

会话保持查询

  • 虚拟服务的会话保持(源 IP)查询

ipro

Lua语言编写,7层虚拟服务

TCP策略

TCP时间戳

  • 4层TCP时间戳

• 抹除

• 改写

• 保存不变

  • 7层TCP时间戳

• 服务器与AD建立TCP连接,不能改写时间戳,否则会导致SYN出错导致不回包

TCP连接池

ip-anycast任意播

注意

  • 网关地址是AD接口上的地址
  • 代价值越低越优先

广播触发条件

  • 始终广播
  • 任一虚拟服务可用广播
  • 改IP发布的任意虚拟服务可用广播

路由开销决定最终目的调度

虚拟服务

前置调度策略

  • 策略匹配
  • 常见动作

• 数据改写:例如请求改写URI

• 内容改写在accept-encoding字段生效时失效

• 不支持HTTP1.0

• /需要配置转义字符,/ --- //

• 返回内容:例如302跳转

• 节点调度

• 源IP调度

• 依据请求URL调度

  • 前置调度策略优于虚拟服务节点池调度

服务类型

  • 常见7层虚拟服务

• HTTP

• HTTPS

七层HTTPS既做SSL卸载,也做HTTP协议解析,可配置改写等策略,相当于七层HTTP+SSL卸载

• TCP-L7

• 7层SSL

并不做协议解析,内容纯转发,相当于七层TCP+SSL卸载

• 全负载。前端(PC-AD)和后端(AD-SRV)分别一条连接,相互独立

• 七层后端连接都有优先使用客户端的源端口。使用tcp.port == xxx可以过滤到相同端口的数据包

• 数据包中可唯一区别数据包的字段

例如cookie信息或者date数据,在wireshark中使用tcp contains “xxx”或者http contians “xxx”就可以找到前后端的数据包,再follow一下数据流就可以找到后端连接

• 场景

• 需要对数据包进行改写

• 会话保持

• URI调度

• HTTP优化

• HTTPS为强制SSL卸载,且卸载后可以使用HTTP相关服务器优化策略

  • 常见4层虚拟服务

• TCP-L4

• FTP

• 概念:转发前后TCP的ip.id、tcp.id、tcp.seq、tcp.ack不会变化,可视为同一TCP会话,只修改了源目IP

自动SNAT(SNAT地址集)优先于NAT规则

  • 手动设置NAT规则,可根据用户需求设置NAT规则
  • SNAT 地址集使用用户另外设置的IP地址(集)进行转换
  • 自动SNAT使用 接口地址进行转换

节点池

  • 会话保持

从连接或内容中获取一个字符串,将字符串作为key,调度信息作为value保存到设备或Cookie中。下次访问时再次获取到字符串,根据字符串的key,查找相应的调度信息(具体设置后面章节讲到)

• 场景

• 同一个访问节点,调度到相同服务器

• 使用运算缓存,减少AD重复计算引入的调度时延开销,通过查询会话保持表直接调度到对应服务器

• 避免集群服务器横向同步不及时导致的集群业务异常

• 会话保持方案

• 源IP

• IPv4掩码/ IPv6前缀:注意颗粒度,默认24位掩码,C段都会调度到一个服务器

• 繁忙保护:启用繁忙保护后会话保持将会失效;默认下禁用,即会话保持优先于繁忙保护

• 调试页面可以测试源IP会话保持记录

• Cookie

• 插入

节点服务器返回的HTTP应答是没有携带cookie信息的;服务器HTTP应答经过AD设备后被插入cookie字段,比如Set-Cookie: sangfor1=88598220; path=/客户端再次访问,携带上该cookie信息经过AD分发,优先查询cookie记录表,从而匹配上一次的节点;

• 作用域:Cookie会话保持作用域的域名

test.com/test1/1.php则可以调度到服务器A,通过test.com/test2/2.php则可以调度到服务器B,部署AD之后也需要实现该需求,此时需要使用路径来区分,使不同的路径调度到不同的服务器,如果不设置使用默认/根目录会导致两个页面调度到同一台服务器上

• 不设置默认为/路径,不会依据URI区分服务

• 会话Cookie

• 启用后cookie生存时间为浏览器会话时间

• 禁用后需手动设置cookie的超时时间,最长为365天,随会话刷新时间

• HttpOnly

配置是否在Cookie中启用HttpOnly属性,将Cookie设置成HttpOnly,目的是防止XSS攻击,禁止web页面程序窃取cookie内容,增加cookie的安全性,但如果页面中已有这样的程序启用后会导致页面加载异常

• Secure

启用Secure属性,将Cookie设置为Secure是为了防止cookie在HTTP中传输被中间人窃取,禁止使用http传输cookie,增加cookie的安全性,但如果网站中有http和https混合的页面或内容,从https跳转到http时需要重新登录,影响正常访问

• 改写

节点服务器返回的HTTP应答是已经携带cookie信息,比如Set-Cookie: sangfor1=88598220; path=/服务器HTTP应答经过AD设备后被改写cookie字段,比如Set-Cookie: sangfor1=SANGFOR_98184645_88598220; path=/

• 场景:服务端对cookie有校验,改写cookie,实现AD透明

• 被动

服务器HTTP应答经过AD设备,AD将cookie值转换成一个哈希值例如%¥&#. 然后会把这个哈希值与当前调度的节点一起插入到会话保持记录中,例如:<%¥&#, node1>客户端再次访问,携带上该cookie信息Set-Cookie: sangfor1=88598220; path=/ 发现cookie方式为被动,则使用cookie值进行同样的哈希运算得到值%¥&#根据上面计算出来的哈希%¥&#再去会话记录表中查询,发现存在记录匹配node1节点。

• 场景:客户端对cookie校验,必须cookie被动

• 自动cookie,依据节点池进行隔离

• HTTP应答被动

特殊web业务可能在应答的Set-Cookie中设置JSESSIONID等信息,而请求是在URI中携带,此时考虑用HTTP应答被动

• 请求被动:请求方向查找,应答方向学习

• 应答被动:应答方向查找,请求方向学习

• SessionID

外部插入的Cookie信息客户端携带不过来,这种应用往往有自己唯一的Cookie字段信息来区别不同用户,例如微信的openid或者java应用的JSESSIONID

• 根据SSL会话复用时带过来的session_id,适用于HTTPS和SSL协议

• Radius

• 根据RADIUS请求数据包里的属性值,适用于RADIUS协议

• 节点繁忙保护

• 触发条件

• 并发连接数(全状态)

• 新建连接数

• 每秒请求数

• 触发后动作

• 强制调度:繁忙强制往此节点调度,此时可能导致此节点由于处理不来导致业务访问异常

• 等待:等待节点不繁忙时进行调度,需配置等待时间、队列长度,不能无限制的等待下去,否则也会访问业务异常

• 调度失败:不往此节点调度,调度到其它节点

• DNS代理会话保持

• dproxy_cmd dump_ldns_ps  //查看DNS代理会话保存

• dproxy_cmd flush_ldns_ps //清理DNS缓存

• adtcpdump -i eth2 port 53 -nn

  • 节点调度

• 虚拟服务节点池调度算法

• 轮询

• 加权轮询

• 根据连接数除以权重,选取最小值

• 加权最少连接(推荐)

• 会话数除以比重,选取最小值

• 客户服务器性能不一致建议使用

• 加权最少流量

• 当前总流量除以比重,选取最小值

• 最快响应时间

• 发送数据包进行探测,调度到响应最快的节点。必须配置connect/dns/radius/database监视器

• 动态反馈

• 节点监视器通过SNMP监视节点负载,根据节点负载动态改变其权值,使负载轻的节点获得更多的选择机会,负载重的节点获得较少的选择机会,从而达到各个节点的负载均衡。必须配置SNMP监视器。

• 优先级(新旧服务器共存场景)

• 优先调度优先级高的节点

• 优先级高的节点全部不可用时才会调度到下一优先级节点(708可指定生效服务器个数)

• 哈希

• 根据hash的关键字(如URI、源IP等)经过hash运算得到哈希值,使不同的关键字尽可能平均调度各节点池中各个节点

• 依据源IP哈希的效果类似于会话保持

• 节点池健康状态

• 恢复时间:节点从恢复正常到开始提供服务的时间

• 温暖时间:节点开始提供服务后随着时间增长,选中的概率越来越大

• 调度不匀

• 服务器性能不一致

• 优先级只有等待节点不可用才会调度低的节点,节点繁忙不认为不可用。

• 加权轮询测试时,权重需要按比例设置,否则效果为轮询

• 节点调度算法不合理;默认推荐加权最小连接

• 会话保持影响。一旦节点离线会全部调度到其他节点,并被会话保持固定。

• 测试调度策略过程中不能关联会话保持

• 长连接业务。连接长时间保持不断,访问量少。

  • 节点状态

• 正常--允许所有流量

• 现有连接 – 保持

• 新建会话保持 – 可以建立

• 新建连接 – 可以建立

• 平滑退出 -- 只有会话保持的活跃连接允许访问

• 现有连接 – 保持

• 新建会话保持 – 无法建立

• 新建连接  – 只有存在会话保持记录的客户端可以建立

• 软关机(禁用) -- 只有活跃会话允许访问

• 现有连接 – 保持

• 新建会话 – 无法建立

• 新建连接 – 无法建立

  • 节点监视器状态

• 正常

• 服务不可用

• 网络建立成功,收到应答包,但应答内容和配置不符,节点不可用

• 网络不可用

• 连接未建立成功或未收到应答包,节点不可用

  • 极端案例

• 绑定端口场景

• 应用有2个端口,协议不一样,创建2个虚拟服务,服务端口TCP8000  UDP8001,分别关联包含2个后台服务器的同一个节点池,节点池调度算法为源IP哈希,会话保持选择none

• 应用要求同一个客户端调度访问2个端口要调度到同一个节点上,那可以创建一个节点池(节点不带端口)

• 两个端口只要故障一个就认为此节点离线,所以可以采用CONNECT监视器,监视2个端口,全部正常才认为节点有效;

• 选择合适的调度算法或者会话保持,要保证2个虚拟服务能根据源IP调度到同一个节点上;

• 同一个节点池会公用一张会话保持表,那么可以采用源IP会话保持,调度算法采用轮询;

高可用

双机组播地址

  • 配置同步组播地址:224.0.0.57
  • 路由同步组播地址:224.0.0.56
  • 路由同步组播地址:224.0.0.55

条件

  • 网口数量顺序一致
  • 授权一致
  • 硬件平台一致
  • appversion一致

模式

  • 主备模式
  • 高可用集群

• 主备集群

• 双主集群

• 多主集群

• 非等价集群

心跳口

  • 串口
  • 电口\光口
  • 交换口
  • vlan接口
  • 心跳口故障监测

通过下拉框所选业务口检测对端是否在线,相当于在备份心跳口再做一次冗余备份

  • 备份心跳口建议用管理口,不能与默认地址/管理地址同一网段,新配置一个网段[必须配置]

1、备份心跳口不支持会话同步功能2、只能进行心跳和配置同步

  • 备份心跳口如果针对管理口需要指定IP

配置同步选项

  • 管理口地址/设备名称不同步
  • 会话同步:传输层会话保持\会话同步
  • 全状态会话同步:三角传输场景开启
  • MAC地址同步:主机接口MAC地址同步到备机,避免对接设备学习ARP表导致的丢包,不会同步通信介质故障选中的接口
  • 通讯介质故障:HA口的状态,避免HA口故障导致的双主

• 当HA口异常,通过组播地址查看是否有ARP地址冲突,如有通过MAC地址大小重新选举[大为主机\小为备机]

如果MAC地址小的为主机,当HA口出现异常时,双机状态会出现切换

  • 启用备机交换口:备机的交换口是否转发数据
  • down备机网口:物理down--与抢占功能互斥

故障切换

  • 切换条件

• 自定义:两行间是或关系

• 至少

• 全部 and

  • 备机掉电检测:当备机离线时不进行主备切换,只和接口物理状态相关,不考虑链路状态

双机故障切换条件

  • ARP:二层环境下
  • 掉线检测:接口状态
  • 健康检测:对应接口状态应用的状态
  • 服务进程检测:对应虚拟服务的检查状态检查

加入集群

  • 有集群配置权限的账号,用户名密码

双机支持配置恢复\导入,在配置同步完成后会重启设备

没有主控被控区别,任意设备更改在集群内同步生效

公共对象

自定义内容

  • 设备自带的模板无法被前置调度策略引用, 可在自定义页面中复制模板的内容

使用场景

服务器负载

场景

  • AD为用户选择最佳的服务器
  • 服务器冗余、高可用
  • 业务的冗余、高可用

负载方式

  • L3

• 全端口映射

• 双向NAT

  • L4

AD上启用代理上网功能(SNAT使服务器看到的源IP是AD,服务器回包会回给AD,保证来回数据都经过AD)

  • L7

基于 URI、HOST、COOKIE、USER_AGENT 等 HTTP 头部匹配策略选择服务器,或对HTTP头部的请求、应答改写,执行页面跳转和丢弃等操作。

  • DR方式L4

服务器环回口配置虚拟服务 IP。AD 分发请求时不改变目的 IP ,将目的MAC替换为服务器 MAC,将请求转发给后端服务器,服务器回包直接返回网关(用户)。该模式下,AD和后端realy server都有相同VIP,且在同一2层网络中,因此Client发送的请求报文到达INPUT链时,只要将报文中的【CIP | CMAC-VIP | D MAC】中的【VIP | DMAC】改成【VIP-RMAC】,后端realy server接收报文并构建响应,此时,响应报文不再经过Director,realy server直接响应客户端。

服务类型

  • 3层

• IP

  • 4层

• TCP

• UDP

• FTP

• ORACLE-TCP

  • 7层

• TCP-L7

• UDP-L7

• DNS

• HTTP

• HTTPS

• SSL

• RADIUS

• ORACLE-TCP-L7

负载算法

  • 会话保持机制
  • 服务器健康度检查
  • 服务器平滑退出
  • 服务器温暖上线

• 出现条件

新节点上线,缓慢接受新连接,比如刚上线的节点一般会直接调度到,如果这里设置了温暖时间,他会慢慢往上面调度,不会一下子调度

• 1.这个节点是新添加的

• 2.这个节点曾经离线过再重新加入的

• 【应用负载】-【节点池】选择节点池打开,温暖时间取值0-300秒,0表示关闭温暖上线

  • 基于消息的长连接负载

• 问题

• 调度按会话保持

• 故障切换慢

• 解决方案

• iPro脚本按消息将报文调度到不同节点

• 实时探测服务器健康度,主动切换节点

节点选择

  • 轮询
  • 加权轮询
  • 加权最小链接
  • 加权最少流量
  • 最快
  • 动态反馈
  • 优先级
  • 哈希

健康状态检查

  • a) ICMP是发送ICMP包探测服务器,以判断服务器是否正常,最常用。
  • b) SNMP是基于网络和硬件,检查服务器硬件是否正常运行,如CPU、内存等情况。
  • c) CONNECT是自定义基于应用类型的方式,发送TCP或者UDP包进行检测。
  • d) DNS与Radius是根据这些服务器本身提供的应用特征检查,例如发送域名解析请求探测DNS服务器的服务是否可用

链路负载

入站链路负载

  • 访问时必须用域名:把域名解析成对应运营商的IP地址DNS解析(智能DNS)
  • 实现多条链路的冗余
  • AD为用户选择最优的链路进入

出站链路负载

  • AD为用户选择最优的链路上网
  • 链路繁忙保护

• 到达链路繁忙阈值后不在使用某条链路

  • 关键特性

• 多链路负载

• 技术

• 智能路由

• DNS透明代理

• 智能DNS解析

• 算法

• 轮询

• 加权轮询

• 静态就近性

• 动态就近性

IPV6改造

NAT6-4

天窗

  • 路径方式:通过修改URL路径代理外链

• 支持纯ip web

  • 域名方式:通过修改域名代理外链

• 有域名

服务器性能优化

TCP链接复用

客户端访问请求捆绑处理,减少服务器TCP并发连接数

页面缓存

采用内存缓存和包存储机制,结合动态缓存空间调整提供更快的响应速度

HTTP压缩

通过标准HTTP压缩规范自动识别客户端对gzip或deflate压缩算法支持情况,并实现数据动态压缩

SSL卸载

将访问中SSL的加解密转到深信服AD上

命令行

SSH命令行

模式

  • 交互模式

• 键入sfcli进入,支持双击tab补全

• 适用场景

• 构建指令模板

• 手工配置设备

  • 指令模式/运行模式

• 适用场景

• 指令黏贴

• 批量导入

• ?查看支持命令

• 注意:初始模式,此模式不支持双击tab补全

注意事项

  • SSH不支持限制管理IP
  • SSH不支持仅查看模式

指令类型

  • 配置指令=方法+模块+配置(类型)(名称)(参数)
  • 统计指令=方法+模块+子模块+(名称)(统计项)(参数)

语法

  • 方法

• list //查询

• delete //删除

• creat //创建

• export //导出指令

• modify //修改

  • 模块

• slb //应用负载

• net //网络部署

• lc //链路负载

• sys //系统管理

• dns //全局负载

• ha //高可用性

• rc //资源管理

  • 配置(依赖于模块)
  • 对配置进行命名

使用方法

  • 创建A记录
  • 创建节点池
  • 创建健康状态健康【可选】
  • 创建虚拟服务

web consel

session srcaddr 192.168.133.4   //查看IP会话

API

由客户端发起

HTTP请求中URI表示目标配置(资源)

HTTP请求中Method表示操作方法(增/删/改/查)

  • 方法

• GET查询

• POST创建

• PUT替换

• PATCH更新

• DELETE 删除

  • 资源

• /api/slb/virtual-service/虚拟服务列表资源

• /api/sllb/virtual-service/{name)指定虚拟服务资源

  • 头部

• AuthorizationBasic认证

• x-token-sangforadToken认证

  • 请求参数

• all_properties=[true|false]是否输出默认项

• Search=[STRING]配置关键字搜索

HTTP请求必须带有认证信息(token)

  • HTTP Basic Auth
  • 每次请求都携带用户名密码
  • 开发简单且容易调试
  • token

• 申请Token并分配有效期

• 使用请求头部x-token-sangforad传输Teken

• 超过有效期Token失效

• 用后注销Token失效

设备处理后返回HTTP应答

HTTP应答包含结果状态(状态码)

  • 状态码

• 200请求执行成功

• 401认证失败(信息错误或会话超时)

• 403无权限访问

• 404资源不存在

• 500服务器内部错误

  • 应答数据

• 执行成功(状态码2XX)

• {配置JSON数据}

• 执行失败

• {错误信息JSON}

• 包含err_code及msg

HTTP应答包含预期数据(应答实体)

数据以JSON格式传输

CMD

nslookup

  • set type=mx

• 优先级越小越优先

  • set type=ns

• 权威域名服务器,值为域名,还需结合A或AAAA记录

  • set type=cname

• 别名记录,使得多个域名对应一个IP

  • set type=ptr

• 邮件系统的一种,用于反向地址解析

• IP找域名

  • set type=txt

• 为域名配置说明

  • set type=soa

• 寻找主根服务器

• 表示此DNS服务器是域内的最佳DNS

  • set type=srv

• 表示那台计算机提供哪些服务

  • server 114.114.114.114

后台

openad

取黑匣子

  • ad-getlog.sh

高可用

双机条件

要求硬件平台必须一致

授权必须要一致(除升级序列号之外的序列号授权一致)

软件版本信息必须一致(appversion完全一致)

高可用配置

心跳口

  • IP地址不能与内网网段冲突
  • 备心跳口推荐使用manage口

• 主要用来作为主心跳口的冗余保障机制,不支持会话同步

  • 心跳口故障检测

• 通过业务口检测对端是否在线(发送组播端口7967探测)

故障切换

  • 隐性条件

• 主设备在磁盘损坏

• 核心进程故障

• 设备宕机

• 重启

  • 监视器级别检测

• 参考链路健康状态检测

• 网口up/down状态

• 所有集群成员建议勾选

  • 自动清除故障时间

• 备机无法主动探测链路健康度,等待故障时间超时后备机恢复链路故障状态为健康

同步对象

  • 会话同步

• 会话保持记录同步不受这个开关控制,双机默认会同步会话保持记录

• 开关开启后,支持三四层虚拟服务连接跟踪同步

• 支持snat /dnat连接跟踪同步,支持链路负载连接跟踪同步

• 同步连接跟踪仅支持TCP UDP协议

  • 全状态同步

• 默认仅同步建立状态的TCP回话

• 如开启全状态同步,则所有状态的连接都会同步给备机

  • MAC地址同步

• 对已选网口,主备机将会使用相同虚拟mac,主备切换时备机直接接管主机ip和mac,不需更新ARP缓存,只需更换端口MAC地址表

联动配置

  • 网口掉电
  • down网口列表
  • 备机交换口是否具有数据转发功能

主备模式

高可用集群

概念:不同业务组运行于不同集群设备上

浮动IP

  • 静态IP用户服务健康度检查、浮动IP用于业务发布
  • 业务发布地址随虚拟服务在设备间生效
  • 静态地址则始终生效在指定的设备上
  • 浮动IP不需与静态IP同段,路由可达即可
  • 【网络配置】-【网络接口】-【浮动IP地址列表】中添加

集群条件

  • 硬件平台一致(网口数量、网口顺序一致)
  • 授权一致
  • 软件版本信息一致

配置流程

  • 主控

• 选择模式

• 创建集群

• 主备心跳口信息

  • 被控成员

• 选择模式

• 加入集群

• 主控主心跳IP

• 集群管理权限用户名、密码

• 被控主备心跳心跳口信息

心跳线

  • 作用:集群状态维护、状态维护
  • 支持类型

• 物理链路

• VLAN

• bridge

• manage

• 主心跳为管理口将无法同步会话

• 建议管理口为备心跳口

  • MAD(Multi-Active Detection)多主检测

• 业务口作为第三道MAD检测机制,当主备均出现故障通过业务口发送MAD检查包

• 自动选举某一主控设备进入沉默状态

成员管理

  • 设备名称

• 系统管理-通用配置-管理口配置

  • 进入设备

• CGI实现集群设备跳转

  • 删除设备/退出集群【效果一致】

• 退出集群是主动退出

• 删除设备是被动退出

• 主控不能被删除

设备组管理

  • 概念:将集群成员设备划为不同组
  • 方便在应用组对设备进行精细化管理

• 启用设备组优选后,只有设备组作为待选设备,如设备组group1全部故障后才会切换生效设备group2中的设备

  • 抢占

• 高优先级设备从故障中恢复后会抢占生效设备角色,使生效设备负载

  • 故障切换

• 链路至少需要配置监视器和拔线检测中的一个

• 故障切换配置中的对象(包含链路和节点池)一定要配置对应的故障检测

  • 虚拟MAC

• 使用自动生成功能即可

应用组管理

  • 修改应用组设备优先级不会改变生效设备需手动切换

集群设备状态

  • 健康状态

• 在线

• 设备无故障,页面显示为 -

• 警告

• 主心跳口故障

• 备心跳口故障

• 没有基本序列号

• 序列号授权不一致

• 软件版本不一致

• 故障

• 正在进行批量同步

• 设备脑裂

• 硬件版本不一致

• 心跳进程异常

• 沉默

• 磁盘故障

• 应用层服务故障

• 系统升级

• 系统重启

• 系统关闭

• 离线

• 主备心跳口同时故障

  • 业务状态

• 健康

• 未启用故障切换,默认健康;

• 或启用故障切换,且根据故障切换配置条件计算出来结果为健康;

• 监视器故障

• 启用了双机故障切换且启用了强监视器设备才有这个状态;

• 链路监视器故障,且满足了故障切换条件,设备业务状态就是监视器故障状态

• 网口故障

• 启用双机故障切换,不论是强监视还是弱监视设备,链路引用网口掉电且满足故障切换条件,设备的业务状态就是网口故障状态

• 无效

• 当设备状态为离线  故障 沉默时候,设备不具有承担业务的能力,当前业务状态为无效

报表中心(默认关闭)

链路统计

总流量、上下行

访问次数

带宽利用率

可用性、稳定性

节点统计

总流量、上下行

访问次数

并发连接数

可用性、稳定性

虚拟服务统计

总流量、上下行

访问次数

可用性、稳定性

智能路由统计

总流量、上下行

访问次数

智能DNS

数据中心

虚拟IP池

LDNS集合

来源分布

异常请求

系统操作

AD升级路线

高危操作

ipv4添加8个0默认路由

配置SSL卸载虚拟服务,HTTPS控制台使用443端口

未填写虚拟MAC时切换应用组生效设备 -- 高可用模块 主备信息开启MAC同步

更改链路数授权将重启设备,需拆除双机

后台

OPEN AD

负载方式

HTTPS

HTTP

TCP

分配策略

轮询算法

最少连接

源IP算法

会话保持类型

HTTP/HTTPS

  • HTTP cookie
  • 应用程序cookie
  • 源IP地址

TCP

  • 源IP地址

健康检测类型

PING

TCP

HTTP

上网卡顿

mpstat文件

记录当前设备每核CPU的使用情况,某核心idle空闲为0会有数据处理异常

nf_conntrack_count文件

记录系统连接数大小,连接数100万左右需要查设备性能表

uptime文件

记录设备的开机时间,设备的平均1分钟、5分钟和15分钟内的系统平均负载情况,双核CPU,正常情况下负载数值为小于1

dev文件

记录网口数据,查看dorp包是否有累增

mem_overload文件

只需7.x版本关注

查看是否内存过载,L7 overload level:0代表正常,level为1-3则会有丢包异常

  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值