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->server

啓用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策略-實現外部聯動

將callout策略在responder策略中調用
add responder policy res_policy_callout "SYS.HTTP_CALLOUT(my_callout).CONTAINS(\"The address is valid\")" res_action_callout
Netscaler Callout策略-實現外部聯動

callout服務器返回值
Netscaler Callout策略-實現外部聯動
服務器返回當前客戶端地址是非法地址
用該地址訪問LB vserver時就會被重置或重定向到其他頁面。驗證客戶端效果,看不到主頁直接被responder了。

Netscaler Callout策略-實現外部聯動

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章