Netscaler Callout策略-实现外部联动

Netscaler Callout策略-实现外部联动
在某些特殊的场景下,须要Netscaler与外部服务实现联动来做出复杂情景下的判断。例如在作LLB时经过外部数据库来判断URL是否安全,判断源地址是否合法(这里只是举例,用在客户非要用本身运维的内容归类服务器或不想买企业版NS时。NS内置功能能够作IP和各类恶意URL的判断)此时就须要祭出Callout这个神器了,下面就是一个配置案例。
配置意图
Netscaler判断客户端的地址是否合法,若是不合法的地址就跳转到特定的页面。可是这个判断是否合法的动做是有外部服务器来完成的,Netcaler把客户端的地址插入http body送到外部服务器,根据判断的结果来决定用户是否有权访问页面。
业务逻辑:
client->NS responder policy调用callout->third server->NS responder engine->serverweb

启用callout前先启用responder的Feature数据库

编辑callout 策略
add policy httpCallout my_callout 安全

set policy httpCallout my_callout -IPAddress 192.168.150.18 -port 80 -returnType TEXT -httpMethod POST -hostExpr 192.168.150.18 -urlStemExpr "\"/callout/calloutweb.htm\"" -headers test_header("cj_header") -parameters test_parameter("cj_parameter") -scheme http -resultExpr "HTTP.RES.BODY(600000)"服务器

Netscaler Callout策略-实现外部联动
Netscaler Callout策略-实现外部联动
其中parameter的做用跟http method有关系,get的话parameter变为?带参数,post的话parameter就变成编码后的data内容了
get 方法抓包验证:运维

Netscaler Callout策略-实现外部联动
post方法抓包验证
Netscaler Callout策略-实现外部联动ide

将callout策略在responder策略中调用
add responder policy res_policy_callout "SYS.HTTP_CALLOUT(my_callout).CONTAINS(\"The address is valid\")" res_action_callout
Netscaler Callout策略-实现外部联动post

callout服务器返回值
Netscaler Callout策略-实现外部联动
服务器返回当前客户端地址是非法地址
用该地址访问LB vserver时就会被重置或重定向到其余页面。验证客户端效果,看不到主页直接被responder了。编码

Netscaler Callout策略-实现外部联动

相关文章
相关标签/搜索