F5iRules入門學(xué)習(xí)筆記

基本介紹

創(chuàng)新互聯(lián)建站主營鄂倫春網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶App定制開發(fā),鄂倫春h5微信小程序搭建,鄂倫春網(wǎng)站營銷推廣歡迎鄂倫春等地區(qū)企業(yè)咨詢

IRules主要應(yīng)用在F5負載均衡設(shè)備GTM、LTM和LC,它使用的是TCL語言,由事件、命令和邏輯三部分組成。它可以工作在OSI模型的3-7層,根據(jù)協(xié)議的不同,實現(xiàn)不同的功能。

IRules的功能:

1、實現(xiàn)了對所有TCP、UDP應(yīng)用的數(shù)據(jù)包分析與信息提取功能;

2、根據(jù)數(shù)據(jù)信息進行分流;

3、雙向的數(shù)據(jù)流改寫功能;

4、選擇性地址轉(zhuǎn)換(iSNAT);

5、基于內(nèi)容的會話保持。

iRules可以根據(jù)提取的信息(比如ip、http?header、http?uri等)進行數(shù)據(jù)分流,使得不同的請求類型分配到不同的服務(wù)器群中。如根據(jù)文件類型選擇不同的服務(wù)器、依據(jù)游覽器不同選擇不同服務(wù)器、根據(jù)用戶類型不同選擇不同服務(wù)器等。

F5設(shè)備的Full?Proxy結(jié)構(gòu)使其有了雙向數(shù)據(jù)改寫的能力。與其他傳統(tǒng)的網(wǎng)絡(luò)交換機不同,BIGIP可以對任意內(nèi)容進行改寫,例如TCP?Content,UDP?Content,HTTP?Request,HTTP Response等內(nèi)容進行修改。如改寫uri、在header中插入證書信息、選擇性的地址轉(zhuǎn)換、基于內(nèi)容的會話保持等。

F5 iRules入門學(xué)習(xí)筆記

編程基礎(chǔ)

TCL語言是一種解釋性腳本語言,是一種嵌入命令的腳本語言。

iRules的命令結(jié)構(gòu):

命令 參數(shù)1 參數(shù)2 參數(shù)3 ... 參數(shù)n? #this is a note

TCL語言和命令結(jié)構(gòu):

if {觸發(fā)條件} {觸發(fā)動作}

elseif?{觸發(fā)條件} {觸發(fā)動作}

else?{觸發(fā)動作}

事件是iRules構(gòu)成中的重要的一部分,不同事件代表數(shù)據(jù)在整個訪問過程中的邏輯位置。一般用when開頭。

命令是irules中對數(shù)據(jù)進行操作的直接函數(shù),如:[HTTP::uri],該命令中HTTP代表HTTP協(xié)議,uri表示取這個http訪問中的uri,他們之間用“::”連接,代表從屬關(guān)系,uri是屬于HTTP這個命令體系的,類似的還有:[IP::addr]、[TCP::payload]、[SSL::handshake]等。

邏輯運算符:

contains 包含

matches 匹配

equals(==) 等于

starts_with 以開始

ends_with 以結(jié)束

matches_regex 正則表達式匹配

not(!) 非

and(&) 與

or(|) 或

開始寫iRules

1、第一個irules

when HTTP_REQUEST {

log local0.info "Hello World!"

}

2、DNS解析

when DNS_REQUEST {
if {IP::addr [IP::remote_addr]/24 equals 10.1.1.0/24} {

host 192.168.10.11

}

else{

host 10.10.10.10

}

}

3、不同請求來源分發(fā)不同的pool

when DNS_REQUEST {
if {IP::addr [IP::client_addr] equals 10.1.1.100} {

pool my_pool_A

}

else{

pool my_pool_B

}

}

4、多種不同請求來源連接到不同的pool

class private_net {

network 10.0.0.0/8

network 172.16.0.0/12

network 192.168.0.0/16

}

when HTTP_REQUEST {

if {[matchclass [IP::client_addr] equals ::private_net]} {

pool internal_pool

}else{

pool default_pool

}

}

5、HTTP跳轉(zhuǎn)

when HTTP_REQUEST {

if {[HTTP::uri] contains "a"} {

HTTP::redirect http://a.com

}else{

HTTP:redirect http://b.com

}

}

標題名稱:F5iRules入門學(xué)習(xí)筆記
標題URL:http://muchs.cn/article16/ijohgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機軟件開發(fā)、網(wǎng)站制作、面包屑導(dǎo)航、定制網(wǎng)站、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司