利用MBLB解決TCP長連接負(fù)載均衡測試方案_第1頁
利用MBLB解決TCP長連接負(fù)載均衡測試方案_第2頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、F5 BIGIP MBLB測試記錄F5北京楊明非2009年8月2目錄1. 測試環(huán)境.3.1.1 測試環(huán)境準(zhǔn)備 .3.1.2 測試網(wǎng)絡(luò)拓?fù)?3.1.3 BIGIP MBLB 工作原理: .42. V10 MBLB 測試過程.5.2.1 TCP 連接測試.5.2.2 交易分發(fā)測試.6.2.3 啟動第二個客戶端的連接建立過程及 Timeout.82.4 加入新的客戶端觀察負(fù)載均衡算法 .1 02.5 手工 Disable 服務(wù)器測試 .1.22.6 關(guān)閉服務(wù)器測試. 132.7 V10 MBLB 測試總結(jié).142.8 附:TCPdump 數(shù)據(jù)包分析.1.43. One Connect 工作模式測試.

2、 163.1 One Connect 模式的工作原理 .173.2 TCP 連接測試.173.3 交易分發(fā)測試.193.4 啟動第二個客戶端的連接.203.5 啟動多個客戶端觀察負(fù)載均衡算法 .223.6 手工 Disable 服務(wù)器測試 .253.7 重新 Enable 服務(wù)器.263.8 關(guān)閉服務(wù)器測試 . 293.9 One Conn ect 模 式測試總結(jié): .304. 附錄.304.1 如何使用 iRules 來判斷交易邊界 .304.2 關(guān)于交易定向發(fā)送 .324.3 關(guān)于會話保持.324.4 兩種模式的對比 . 334.5 還需要研究的部分 .3431.測試環(huán)境1.1 測試環(huán)境準(zhǔn)

3、備PC server一臺,安裝Windows 2003 Server.BIGIP 1臺,安裝10.0.1版本TCP Client/Server軟件1.2 測試網(wǎng)絡(luò)拓?fù)?amp;4001所有的IP地址均在同一個網(wǎng)段內(nèi),TCP client和Server也運行在同一臺設(shè)備上。通過啟動多個不同的實例來模擬多臺Server和Client。測試用BIGIP配置virtual test_vs snat automappool test_pooldestination 3:9000ip protocol tcprules mblb-basicprofiles m

4、blb tcp pool test_pool monitor all tcp_half_openmembers 4:9000 4:9001 &4&0.247.11434Client-1Client-2VS:3:g000SetflP;&o.247+114.44Sa.247.114.34:900 04注意mblb的Profile是手工加入的,在圖形界面里沒有配置。另外對于這種類型的Server,最好使用tcp_half_open健康檢查模式。rule mblb-basic when

5、 CLIENT_ACCEPTED TCP:collectwhen CLIENT_DATA TCP:releaseTCP:notify request#log client_data trigeredTCP:collectwhen SERVER_CONNECTEDTCP:collectwhen SERVER_DATA TCP:releaseTCP:notify response#log Server_data trigeredTCP:collect1.3 BIGIP MBLB 工作原理:247.114.3,4Client-1Clierrt-2Serve r-1Servtr-76(X247.114

6、- 34:900060 247 1143*客戶端首先與BIGIP建立TCP連接,在客戶端發(fā)送數(shù)據(jù)的時候,BIGIP根據(jù)交易將客5戶端請求發(fā)送到不同的服務(wù)器,在發(fā)送前,BIGIP將與后臺服務(wù)器建立連接。在這種工作模式下,可以支持同步阻塞模式交易或者同連接里的異步交易。同步工作模式:Clie nt1 RequestServerl Resp onseClie nt2 RequestServer2 Resp onseClie nt1 RequestServer2 Resp onse異步工作模式:Clie nt1 RequestClie nt2 RequestClie nt1 RequestServer

7、l Resp onseServer2 Resp on se-Server3 Resp onse在異步工作模式下,不能用下面測試的簡單irules,需要使用iRules來判斷每個交易的邊界,以便將每筆交易請求分發(fā)到不同的服務(wù)器上。下面的測試基于小包狀態(tài),也就是每筆交易的長度不超過1個MTU,通常情況下是1460字節(jié)的情況,在這種情況下,在一次CLIENT_DA TA事件觸發(fā)的時候就可以接收到整個的 交易請求或者交易回應(yīng)。2.V10 MBLB測試過程2.1 TCP 連接測試首先啟動兩臺Server,分別偵聽9000和9001端口TCP0.0-a.0X0LISTENINGTCP:900

8、16.0.0,0:0LISTENING確認(rèn)在BIGIP里顯示兩臺服務(wù)器都是工作的。15“|7 7t Membert Nodep SO ?47 11+34i180U71U 34001B conn顯示沒有任何的鏈接產(chǎn)生rootltm3600:Active config # b conn62:14774 4:ssh 4:ssh tcp1/0上面的那個連接是我的SSH登錄產(chǎn)生的。啟動客戶端,配置好發(fā)送的內(nèi)容,點擊Co nnect6觀察BIGIP上的連接狀態(tài):rootltm3600:Active config # b conn60.2

9、47.98.162:14774 4:ssh 4:ssh tcp1/04:4933 3:9000 any6 tcp 1/1在客戶端沒有發(fā)送數(shù)據(jù)之前,在BIGIP上只有一個Client-Any6的連接,此時客戶端還沒有發(fā)送數(shù)據(jù),因此BIGIP與后臺并不建立連接。2.2 交易分發(fā)測試點擊客戶端上的發(fā)送按鈕園TCP Testing ClientServer P |60.247.1U.43觀察客戶端的收發(fā)狀態(tài)|1000Server Port (9000(SendQ)7rootltm3600:Active co

10、nfig # b connany6 3:9000 4:9000 tcp 1/1any6 3:9000 4:9001 tcp 1/1 62:14774 4:ssh4:4933 3:9000 any6 tcp 1/1可以看到,在客戶端開始發(fā)送數(shù)據(jù)后,BIGIP分別和兩臺Server建立了連接,并將客4:ssh tcp1/0觀察BIGIP上的連接狀態(tài)8戶端的請求以輪詢的方式發(fā)送到兩臺服務(wù)器

11、上。由于我在這里啟用了SNAT, 因此可以看到 第一個Server連接是使用的客戶端源端口和服務(wù)器建立連接,第二個客戶端連接使用的另 外一個源端口和服務(wù)器建立連接。2.3 啟動第二個客戶端的連接建立過程及Timeout啟動第二個客戶端建立連接觀察BIGIP狀態(tài)rootltm3600:Active config # b conn62:14774 4:ssh 4:ssh tcp1/04:1088 3:9000 any6 tcp 1/0怎么沒有Server端連接了呢?看看Server

12、端日志,原來由于俺寫文章的時間太長,被BIGIP timeout了。好,現(xiàn)在就讓C2開始發(fā)送數(shù)據(jù)看到Server端又開始建立連接了也斶tiorrLikable b聞d由飴IFie trarsport connection: An cwistinci connection刊as farcfcly closed兇the remote hostEornecF60?47 14.44:31Recive: EO.247.114.44 31243: C2f6QL217.114.3410B8Serd: S2 response60.247.11444.31243Ser7eiTailR eci rar S2 fe

13、spor;*SO. 247.1 UM 31243ServerTailC260.2a7.114.34:1060S9ndS2 retponse431243SeivefTdR ecive: S2 resporsetSO.2+7.114.44:31243SerYerTjilC2|ED.24Z1143:1069Send S2mponec 247.114.44:31243SeiwrTd.i八1-.Tf.丫5寸w訂rwhb S mlrlatn_lgfin the transpoit conrecticr:An esisting connecuon問aw forcibj closed

14、by the remote hast.CEonneet: GO. 247.114.44:10 J)口ecjg:際.四上門4 441 Uyy:商肌089Send. SI Rponse(4:1088Recife: S1 He5ponseL4;1ue8C260.247.1l4.34.l0EeSend SI FtesponsH4:1088Recivec SI Reaponse60.247.114 4J:1088C24:1088Send- SI Response(G0 24Z11444

15、:1 OffiBIGIP上的連接狀態(tài):rootltm3600:Active config # b connany6 3:9000 4:9001 tcp 1/0any6 3:9000 4:9000 tcp 1/062:14774 4:ssh 4:ssh tcp1/094:1088 3:9000 any6 tcp 1/0現(xiàn)在開始啟動C1發(fā)送數(shù)據(jù)C1的連接也被斷掉了:園TCP Testin

16、gClient|BIGIP上狀況:rootltm3600:Active config # b conn當(dāng)C1開始發(fā)送數(shù)據(jù)的時候:Server上的狀態(tài):Recive: S2iespunse4 31243ServeiTailC21.1088Serwi: S2 wsponse60.247JU.44:31243SerTIHscive: S2r8sporse60 247114 44:3l245SeFvefTailC160 247114J4:1144Send: S2 response60.247.114 44:31245SBrverT

17、ailHecive: SI Fponss(60.?47.114.44:1080C2HO.247.114.34:1080SenndfM Log(8d.) |Send:匚l60,247.1,34:4933Recife:52 respQnse4:3J8465erverTSend: C6C.247.1:4.34:4933)Recife: 51 Respcn5a4:433JOcftpticn: Unable 1:Jwnte daita to the trar Sport connettiOh; An existing connection iwas for

18、cibly closed by the remote I-Exception! The operation is not allowed on non-comnetted socket. Excepticn: Tht operation is not allowed on nonomectedsockets.V(cepticn; The operation is not allowed on non-cometed sockets.丿Excepticri: The operation弓not allowed on non-comected soctetsBExceptim: The opera

19、tion is not allowed on non-comtedsocketsExcepticn: The operation is仃口!:allowed on non-comected sackets;Excepticn: The operation is not allowed onnon-connected口匚炬乜Excepticri:The operation its not allowed on仃血仃-connetted socketsExcentlcn: The operation is not白o(hù)n non-connetted sockets.Server Fbrt(9000

20、flOOO重新啟動C1并連接Clear LogoseC)Sendany6 3:9000 4:9001any6 3:9000 4:900062:14774 4:ssh4:1088 3:9000 any64:1144 3:9000 any6tcp 1/0tcp 1/0 4:ssh tcp1/0tcp 1/0tcp 1/0rootltm360

21、0:Active config # b connany6 3:9000 4:9001any6 3:9000 4:9000any6 3:9000 4:9001any6 3:9000 4:900062:14774 4:ssh4:1088 3:9000 any64:1144 60.247.114

22、.43:9000 any6tcp 1/0tcp 1/0tcp 1/0tcp 1/0 4:ssh tcp1/0tcp 1/0tcp 1/010Send SI Response60247114 44:1 (6Rscive; S1 RespQnse60247114.44:1144C160247J 14.34; 1144Innr-kmrt n 3:9000v-4:9000tcp 1/0any6v-3:9000v-4:9001tcp 1/0any6v-3:900

23、0v-4:9000tcp 1/0any6v-3:9000v-4:9001tcp 1/062:14774v-4:sshv- 4:ssh tcp1/04:1088 v- 3:9000 v- any6tcp 1/04:1144 v- 3:9000 v- any6tcp 1/04:1231 v- 3:9000 v- an

24、y6tcp 1/1當(dāng)C3開始發(fā)送數(shù)據(jù)的時候:國TCP TestingClientServer P |50.247J14.J3Server Port 3000|1000幗Clea LagCloseC|12Server狀態(tài):Cornet. 6Q 247.114.44:1231Recivi: SC.247.T14 44:1231. C360.247.11 34:1231Send: S1 RBtpomea247.114.44:1231Racive: S1 R&spon?e6Q247.114 W:1231C3EO.247.1I14 31:1231Send: 51 Roepon3aa247.114

25、.44:1231 Recive:S1 R&sponSe6a247.1 14 44:1221 C360 247.114.34:1231 m in_ _ rrn pieCorrect: 4:31040Recivs: 4:31848: C34:1231 Send: 52 responsefi0.247 114.44:3184BJSerwfTIfiecive- 5? response60 217.11 431348ServerTailC3l60.247.il 4.34:1231)SwdS2時申弧叔羽石必輯新韶即SorraT

26、MRecive;S2 resporRe60L247.114.44; JI948SeiverTaiC3S0.247114.34:1231J r . rn 廠mr 曲卞11JI J乩Fr rM me.i兩臺Server都收到了C3的請求BIGIP上顯示3個client connection, 6個Server connection:rootltm3600:Active config # b connany6 3:9000 4:9000 tcp 1/1 any6 3:9000 4:9001 tcp 1/1

27、 any6 3:9000 4:9000 tcp 1/0any6 3:9000 4:9001 tcp 1/0 any6 3:9000 4:9000tcp 1/0 any6 3:9000 4:9001 tcp 1/0 62:147744:ssh4:1088 3:9000 any6 tcp 1/0 60.247.114

28、.34:1144 3:9000 any6tcp 1/0 4:1231 3:9000 any6 tcp 1/1在S2上收到的是C1和C2的請求flecive: S2 response4 31245SaverTalC1 4:1144Ssnd: S2 response4:31245JServerTailReciTe: S2rmsp站箱60.247.114 443195OSen/TailC24:1271 Send: S2 respons

29、e4:318S0ServerTailRecwe: S2fesponse4 3105OSen/erTailC24:1271Send: S2 response4:31850ServerT日ilRBCTM:52 fuponnp.247.114.44:31245SavarTalCI 4:1144Send: S2 response4:31245J5emTailR BdYK S 21 oponseES) .247.114.44:31245S aval al Cl

30、4:1144Send: S2世pon託師2忖T14.44:31245ServerT ailRBOVKS2ruponEC247J14.443124EJSaa(EQ2471 U U: 1231 Recive S1 Responie4.1144C1 6D.247.fl 1 1.34:1144騎nd;S1 Response60l247.114.44:1144Rstive: S1 Re;pan5.e6D.2a7.114.44:1231 C3E0.247.11 d. 34:1231 停止所有的客戶端,然后全部重新發(fā)送的時候,Server端接收發(fā)生了變化:S1

31、上收到的是C1和C2的請求4:ssh tcp1/013Send SI Respan5e60.247.114 U1271JRociw: SI Rponse41271 C2S4.1271 Send SI RespwweEDl247.11444:1271 Recive S1 Resporsft4:1144C1 60.Z47.114.34:1144 Send S1 Response6a.247.114 41.1144Hecive: SI Response(SO 247.114 441271 C2SO.247.

32、114 341271 Send SI ResponseBU247.11444:1271Hecivc: SI Resporse4.1271 C24.1271 Send SI Responie60.247.1 14,44.1271RBCIVKSI Rtsporse(a.247.114.44:1144C1 SO.247.114.34:1144S2上收到的是C1和C3的請求 7 J I右r liFTF.AM右ZJJHI Tr9UWRecive: S 2 response6n. 247.114.44:31 B 52JS erverTailC30L247.1

33、14.34:1231 end: S 2 respc nse(GD. 247.114.44:319S2S erx/erT ailPecijfi! 2r&sp&HseG4:31245)SetfTailC1lCQ247.114.34:1144S end. S 2 respo nsel6D. 247.114.44:31245JS erver I ailRecive: $2(esponseE0247.114.44:31052JSMverTailC3rD.247.11.34:1231Send: S2 respore4:31852ServerTa

34、ilReeiv!S2rwpohseS0 247 r4.44!31952SMverTailC3|E0.247 114 34!l231Hecive: S2(Mponse60 247.114.4431 Z45Sefver7ailC1 61247.114.34:1144應(yīng)該是Round Robin的算法導(dǎo)致了這種現(xiàn)象的出現(xiàn)BIGIP上的連接沒有發(fā)生變化:rootltm3600:Active config # b conn2.5 手工 Disable 服務(wù)器測試在S1上收到了3個客戶端的請求any6 3:9000 4:9001any6 60.247.114

35、.43:9000 4:9000any6 3:9000 4:9001any6 3:9000 4:9000any6 3:9000 4:9001any6 3:9000 4:900062:14774 4:ssh4:1144 3:9000 any64:1231 60.247.

36、114.43:9000 any64:1271 3:9000 any6tcp 1/1tcp 1/0tcp 1/1tcp 1/1tcp 1/0tcp 1/1 4:ssh tcp1/0tcp 1/0tcp 1/1tcp 1/1現(xiàn)在手工Disable一臺服務(wù)器|Di.iM* 血14Recive: S1 Response(6& 24711444:1144C1 E0L247 114 34:1144 Send S1 Re5ponse4:1144Recife: S1 ReSponse(6Q 247.114.

37、44:1231 C36a247.114.34:1231 Send: SI RespomafHl247.114.44:1231 Recive: S1 Re&ponse(GQ247J 14.44:1271 )C2|EQ247.114.34:1271 Send S1 Response4:1271RKIVKS1 Hesponse6Q247.114.44:11 I4C1 6Q247.114.34:1144Send: S1 Response4:1144Recive: S1 Hpcnse(60L 247 114.44:1231 C3(Ga247.114

38、.34:1221 Send: SI ResponseK4:1231Recive: S1 Hespanse60L 247.11 4.44:1271 C26Q247.114.34:1271 Send: SI RponseE4.1271Recive: S1 Response80L247.11444:11 d4C1 8Q247.114.34:1144Send: SI Hpon!e4:1144Recive: S1 Response8Q 247.114.44:1231 C36Q247.114.34:1231 Send SI RpohssC

39、O.247.114.44:1231Recive: S1 Response60.247.11444:1271 C26Q247.114.34:1271 Send SI Rponse4.1271 Reave: S1 ResponseI60L247.il 444:11d4C16a247.114.34:1144Send 51 Rponse6O.24ri14.44:114qRed:S1 RespaMeO-247.114.44:11 4C1 6Q247.114.34:1114 Snd S1 247.114.44:1144恢復(fù)disable的服務(wù)器:S1收到了C1和C2的請求:Send

40、 SI ResponeeS0.247.1U.44.127lHecive: S1 R e3ponse4.1144C4:11441Send SI Response60.247.114441144H serve: 51 R espon60247.114.44 1271 C2(4:1271 Send. SI Hesponsa6().247.114.44:1271JRKICYKS1 A espons&60247.114.4 1271 C2(4:1271 Send SI Response60.247.

41、11444:1271R eciw; S1 Rupon.247.114.44:1144C16&247.114.34:1144Send SI Rponsap.247.114.44c1144Fi seme S1 R ssponsBO.247.114.44 1271C2( 4:1271Send 51 Response60.247,114,442711S2重新開始接受請求,收到C1和C3的請求Recivec S2 iesponse4:31245ServeiTaiilCI 4.1144 Send: S2 icjpon$eSO.

42、1245SeiverTaRedva S2 les pons eSO. 247.114 44:31852 ServeiTailC341271Send S2hpcraEO.247114.44j31SSi2SeiVMTMlFledvec 52 iesponse4i31852ServeiTaiO4:1231Send S2respon$e60.247.1 14.44:31052SeiverTailFledva S2iesP0nse4:31245ServeiTailC1 60 24711

43、4 341144Send: 5 2(espon60.247.114. U: 31245S eivrT ilRedvs S2 iesponse(ec 247.11444:31852Serv8rTailC34:1231 &end: S2(esporse4 31日5芋nverT ailRecivs S2 iespomeai247.114.44i31852ServerTailC34:12312.6 關(guān)閉服務(wù)器測試關(guān)閉S2所有的Client和Server都崩潰了 !!等待服務(wù)器程序的改進(jìn)版本中。oooooooo.2.7 V1

44、0 MBLB 測試總結(jié)BIGIP V10已經(jīng)具備了MBLB的處理能力,可以對長連接里面的TCP交易進(jìn)行拆分處 理,將不同的請求發(fā)送到不同的服務(wù)器上,并將服務(wù)器的返回信息發(fā)送到正確的客戶端。目前發(fā)現(xiàn)的一些可能存在的問題:151、 對于每個客戶端的長連接, BIGIP 將在每個 Server 上建立一個連接,也就是說對 于每臺 Server 而言,都會有所有的客戶端連接數(shù)的總和數(shù)量的連接,在實際應(yīng) 用中,需要確定服務(wù)器是否能處理全部客戶端連接數(shù)量的連接數(shù)。2、 關(guān)于交易的邊界定義,目前的測試中非常簡單的使用了CLIENT_DATA 和SERVER_DAT 事件,這兩個事件默認(rèn)情況下是每接收一個數(shù)據(jù)

45、包就觸發(fā)一次,因此在交易小于 1 個 MTU,通常情況是 1460byte 的情況下,可以不用區(qū)分交易 邊界,默認(rèn)認(rèn)為一個數(shù)據(jù)包就是一次交易。3、 如果每次發(fā)送交易的長度大于1460,就需要用 irules 去獲取和判斷交易的長度。 具體的做法是在第一個數(shù)據(jù)包進(jìn)來的時候查詢數(shù)據(jù)包中對于交易長度的定義,然后判斷當(dāng)前收集到得數(shù)據(jù)是否是完整的交易,如果完整,則釋放請求,如果 不完整,則繼續(xù)進(jìn)行收集,直到收集到足夠的數(shù)據(jù)后,釋放交易長度的內(nèi)容到服務(wù)器。4、 目前測試的應(yīng)用時阻塞類型的應(yīng)用,也就是 Client 必須等待 Server 應(yīng)答之后才開始發(fā)送下一個請求,而且數(shù)據(jù)包都比較小,肯定在一個pack

46、et 就發(fā)送完畢,因此不存在有邊界界定的問題5、 如果有非阻塞型應(yīng)用,也就是客戶端可能一次發(fā)出多個請求,在不等待server回應(yīng)的情況下可以持續(xù)發(fā)出請求,Server 回應(yīng)也是不等待的情況,從目前的連接狀況分析也是可以工作的。但可能需要進(jìn)一步的編程處理來確定每一個交易的邊界6、對于目前客戶所要求的 Disable 服務(wù)器之后,所有的交易可以正常轉(zhuǎn)發(fā)到其他服 務(wù)器的需求是可以滿足的。7、 基本確認(rèn)這種 MBLB 工作模式和 One Connect 在目前測試配置中不能同時工作, 因此當(dāng)客戶端關(guān)閉連接時,這個客戶端對應(yīng)的所有服務(wù)器連接都會被關(guān)閉。8、 從目前了解到得信息,One Connect 工

47、作模式下可以徹底的區(qū)分客戶端連接和服 務(wù)器端連接的關(guān)系,但服務(wù)器端的連接數(shù)量在One Conn ect 模式下無法控制。9、 由于測試服務(wù)器軟件問題,沒有測試到Server 端主動關(guān)閉連接,是否會造成客戶端連接中斷。另外,當(dāng)一臺server 故障,而在健康檢查還沒有檢查到服務(wù)器故障期間的交易如何處理目前測試環(huán)境中也無法測試。我的初步考慮是用 inbandmonitor 來解決普通 Monitor 的間隔周期和檢查周期的問題。10、 還沒有測試會話保持的情況,比如根據(jù)每個交易里的一些內(nèi)容進(jìn)行會話保持, 還需要改進(jìn)一下客戶端和服務(wù)器軟件2.8 附:TCPdum 數(shù)據(jù)包分析客戶端數(shù)據(jù)包發(fā)送和接收16

48、包25, 26, 27為三次握手建立連接149開始,客戶端發(fā)送數(shù)據(jù)PSH,ACK,157為客戶端收到一個BIGIP ACK,沒有內(nèi)容,表明Server已經(jīng)收到客戶端內(nèi)容159 BIGIP給客戶端發(fā)送數(shù)據(jù)PSH,ACK161客戶端給BIGIP發(fā)送ACK,表明數(shù)據(jù)已經(jīng)收到163客戶端等待1000ms后開始下一個數(shù)據(jù)包發(fā)送 服務(wù)器端數(shù)據(jù)包發(fā)送和接收Z r attn152,153,154為BIGIP和后臺服務(wù)器三次握手建立連接,結(jié)合客戶端連接建立時間, 可以看到BIGIP一直等待到客戶端有數(shù)據(jù)發(fā)送了才開始和后臺建立連接155 BIGIP給服務(wù)器端發(fā)送數(shù)據(jù)PSH,ACK158服務(wù)器回應(yīng)BIGIP數(shù)據(jù)PS

49、H,ACK160 BIGIP發(fā)送給服務(wù)器端ACK,表明數(shù)據(jù)已經(jīng)收到164在1000ms以后,BIGIP重新開始給服務(wù)器端發(fā)送數(shù)據(jù)包。數(shù)據(jù)流程圖:比較有意思的地方:nc-.OLEL - J. iJ.xwar cslllstena 4465rNJ5I-I|C!win*tifla4U LSfl,. M55-L4 ij .i:SYH. ACkl eq=g Adk csHstHMr sra snrt州BO LIHT MSSMW1I& 44昌5ATi Seq-CJ Ac -1 nlS24lj Lrn-i40. :47.114,4a 祁 75 喬拒乳 NTCF441 isllsiiiiwir昭護(hù) 1

50、AC*料 0 LanW. 47.114.eo. 27.111 54TCPPSH. SflCfl Ack-ZO n-213 “F*噸今M, 247-11- .-q-360247_ll-3.14 TZP5 匚= 11=1:enerTTPB247.XL-.T-rTCPEe& 鷹匚 k*i0Le*DServer17157和160看上去是BIGIP產(chǎn)生的主動發(fā)給客戶端和服務(wù)器的ACK18161從客戶端發(fā)給BIGIP,但被BIGIP吞掉了。俺的TCP理論研究還不是很深刻,是不是一些協(xié)議性的東西導(dǎo)致必須這樣工作?3. One Connect工作模式測試在前面的測試中,MBL

51、B可以支持異步交易,但在一些同步工作模式下,應(yīng)用希望兩 邊的連接不存在有太大的關(guān)聯(lián)性,前面一種模式客戶端連接一旦中斷后,服務(wù)器端這個客戶端相關(guān)連接會全部中斷。通過One Connect工作模式,可以消除掉這種強制的綁定關(guān)系,而使服務(wù)器端的連接不會和客戶端強制綁定。因此可以在客戶端是長連接和短連接模式下,BIGIP始終保持和后臺服務(wù)器是長連接的結(jié)構(gòu)。One Connect工作模式只支持同步阻塞模式下的TCP連接,即客戶端必須等待Server端回應(yīng)請求之后, 再發(fā)送下一個請求。 每筆交易都是以Client Request-Server Response的方 式工作。和前面的MBLB工作模式最大的不

52、同是One Connect可以在V9版本下工作。測試的結(jié)構(gòu)不變,但BIGIP上配置有一些變化virtual test_vs snat automappool test_pooldestination 3:9000ip protocol tcprules one_connect_ruleprofiles oneconnect tcp 注意在VS里面必須綁定Oneconnect Profilerule one_connect_rule when CLIENT_ACCEPTED TCP:collectwhen CLIENT_DATA LB:detachTCP:releaseT

53、CP:collectpool test_pool members 4:9000 4:9001 19Qj TcrHanddiHteHTTP在上圖中是以HTTP協(xié)議為例,但實際上通過iRules,也可以支持任何協(xié)議類型,包括用戶自行開發(fā)的TCP Socket應(yīng)用。當(dāng)?shù)谝粋€client連接到BIGIP開始發(fā)送請求的時候,BIGIP會以這個client的源IP地址 和后臺服務(wù)器建立一個連接,并把客戶端的Request轉(zhuǎn)發(fā)到服務(wù)器。此時客戶端連接和服務(wù)器的TCP連接形成了綁定的關(guān)系。當(dāng)服務(wù)器響應(yīng)了Response之后,由于BIGIP可以識別HTTP Res

54、ponse,因此,當(dāng)BIGIP檢查到服務(wù)器端的Response結(jié)束了之后,就拆除了第一個Client TCP連接和服務(wù)器TCP連接之間的對應(yīng)關(guān)系。即使在客戶端關(guān)閉連接的情況下,BIGIP和后臺服務(wù)器的TCP連接也保持Open的狀態(tài)。當(dāng)下一個用戶和BIGIP建立連接并發(fā)送請求的時候,BIGIP會在當(dāng)前和后臺服務(wù)器之間的TCP連接里面挑選一個空閑的連接(當(dāng)然,還需要滿足會話保持、負(fù)載均衡的算法的 前提下),將第二個用戶的Request塞到空閑的連接里面發(fā)送到服務(wù)器,這時,第二個用戶 的客戶端連接和為第一個客戶端建立的服務(wù)器連接就形成了新的對應(yīng)關(guān)系。在第二個用戶的Response結(jié)束之后,BIGIP

55、又拆除其對應(yīng)關(guān)系。如果第三個用戶連接和請求到達(dá)BIGIP的時候,第二個用戶的Response并沒有結(jié)束,也就是當(dāng)前BIGIP和后臺沒有空閑連接的時候,BIGIP就會和服務(wù)器端再建立一個新的TCP連接,傳送第三個客戶端的請求到服務(wù)器。如果第四個用戶連接和請求到達(dá)BIGIP的時候,第二個用戶的Response傳輸完成了,第四個用戶就會再使用空閑的后臺服務(wù)器連接進(jìn)行請求傳輸。這樣, 當(dāng)客戶端不停的建立連接,拆除連接的時候,BIGIP始終可以保持較少的后臺服 務(wù)器連接。BIGIP在這里面完成的工作主要就是根據(jù)Response結(jié)束和新的用戶請求到達(dá)的時刻點,來切換連接的不同連接對應(yīng)關(guān)系。3.2 TCP

56、連接測試3.1 One Conn ect 模式的工作原理Client 19SServer AB-TCP HwvHiHialcfcv6_FS BIG F LTM7HTTP阿彌貞OiKfc ihp 刖 CMPliE111 曲叭kjflvMlnjihi r-prf-data, l MHW怕 IF IME 白 r nctipc d Jtfid20首先看看BIGIP上的VS狀態(tài),看加入了one connect rules之后是否會Disable CMP+- VIRTUAL test_vs SERVICE 9000| PVA acceleration none| CMP enable on none mo

57、de: all看上去還好,CMP屬于enable狀態(tài)啟動S1啟動S2啟動客戶端C1,并建立連接21圉TCP Testing ClientServer IP |60.247.11U3Server Port |9000|1000 mtBIGIP上的連接狀態(tài)rootltm3600:Active config # b conn62:47774 4:ssh 4:ssh tcp1/04:1339 3:9000 any6 tcp 1/1此時在Server端也看不到任何連接3.3 交易分發(fā)測試

58、C1開始發(fā)送數(shù)據(jù)S1上可以收到數(shù)據(jù)由于SNAT的原因,服務(wù)器收到的TCP連接的源端口被改變了,但從數(shù)據(jù)包中可以看 出,兩臺機器收到的是同一個客戶端的同一個源端口發(fā)送過來的請求。22BIGIP上的連接狀態(tài):rootltm3600:Active config # b connany6 3:9000 4:9001 tcp 1/62:47774 4:ssh 4:ssh tcp1/04:1339 3:9000 4:

59、9000 tcp1/1有一個Server端連接顯示是idle狀態(tài)注意idle狀態(tài)的連接隨時間變化而變化的:rootltm3600:Active config # b connany6 3:9000 4:9000 tcp 1/62:47774 4:ssh 4:ssh tcp1/04:1339 3:9000 4:9001 tcp1/1rootltm3600:Active config # b connany6

60、 3:9000 4:9001 tcp 1/62:47774 4:ssh 4:ssh tcp1/04:1339 3:9000 4:9000 tcp1/1在兩次執(zhí)行b conn的過程中,idle狀態(tài)的Server端連接就在發(fā)生變化。但請求是被分配到了兩臺Server上。從客戶端的Log看,收到了兩臺Server的Response3.4 啟動第二個客戶端的連接23再啟動一個客戶端C2并建立連接BIGIP上的連接狀況rootltm3600:Active config # b connany6 3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論