TCP負載均衡說簡單點就是反用NAT位址轉換,網絡解釋為:NAT負載均衡将一個外部IP位址映射為多個内部IP位址,對每次連接配接請求動态地轉換為一個内部伺服器的位址,将外部連接配接請求引到轉換得到位址的那個伺服器上,進而達到負載均衡的目的。
<a href="http://linuxtro.blog.51cto.com/attachment/201102/22/1239505_1298367754ZBMD.gif"></a>
為了簡化實驗步驟,重在說明問題。模拟試驗中使用4個路由器分别代替RouterA、RouterB、Web1和Web2,還有一個交換機,PC1和PC2省略。
實驗步驟:
1、 搭建實驗環境
如圖配置各個IP位址
RouterA(s0/0):192.168.1.2 255.255.255.0
RouterA(fa1/0):10.1.1.10 255.255.255.0
RouterB(s0/0):192.168.1.1 255.255.255.0
Web1(fa0/0): 10.1.1.1 255.255.255.0
Web2(fa0/0): 10.1.1.2 255.255.255.0
在該實驗環境下,由于Web1和Web2是路由器充當的,是以要啟用遠端登陸的虛拟端口,并設定密碼。具體指令為:
Web1(config)#line vty 0 4
Web1(config-line)#password 123456
Web1(config-line)#login
Web1(config-line)#exit
2、 在RouterB上添加一條預設路由指向10.1.1.0/24網段,
在Web1和Web2上各添加一條預設路由指向192.168.1.0/24網段。
配置好之後,可以在RouterB上驗證一下10.1.1.1或者10.1.1.2,是可以ping通的。
3、 這一步是重點(在RouterA上配置TCP負載均衡):
(1) 定義一個位址池
RouterA(config)#ip nat pool CISCO 10.1.1.1 10.1.1.2 netmask 255.255.255.0 ?
accounting Specify the accounting
add-route Add special route to Virtual Interface
type Specify the pool type
<cr>
RouterA(config)#$ CISCO 10.1.1.1 10.1.1.2 netmask 255.255.255.0 type ?
match-host Keep host numbers the same after translation
rotary Rotary address pool
RouterA(config)#$ CISCO 10.1.1.1 10.1.1.2 netmask 255.255.255.0 type rotary ?
參數“type rotary”使該位址池成為一個循環型的,否則,将不能進行負載均衡。
(2) 建立一個允許虛拟IP位址進行的ACL,該IP是伺服器叢集的IP
RouterA(config)#access-list 1 permit 10.1.1.4 0.0.0.0
(3)指定哪個位址池用于NAT
RouterA(config)#ip nat inside destination list 1 pool CISCO
(4)定義内外接口
RouterA(config)#interface fastEthernet 1/0
RouterA(config-if)#ip nat inside
RouterA(config)#interface serial 0/0
RouterA(config-if)#ip nat outside
4、驗證TCP負載均衡
實驗環境及實驗配置已經完成,接下來就要測試一下,由于路由器無法實驗網頁顯示,可以用telnet的方式來測試配置。在RouterB上通過指令telnet來登入Web1和Web2,顯示結果為:
<a href="http://linuxtro.blog.51cto.com/attachment/201102/22/1239505_1298367764QRIp.jpg"></a>
如果是在 10.1.1.1和 10.1.1.2 兩台真實伺服器上釋出不同的網頁, 在外部網絡的一台主機(192.168.2.2)上通路它們共有的虛拟位址 http://10.1.1.4,NAT 路由器将會把資料包負載均衡到每一台伺服器,我們可以看到,主機将輪流通路兩台伺服器上的首頁。
RouterA#show ip nat tra
Pro Inside global Inside local Outside local Outside global
tcp 10.1.1.4:80 10.1.1.1:80 192.168.2.2:1038 192.168.2.2:1038
tcp 10.1.1.4:80 10.1.1.2:80 192.168.2.2:1039 192.168.2.2:1039
值得一提的是:
1、測試的時候不要ping 10.1.1.4,因為這個NAT的負載均衡隻對TCP協定,是以要用telnet 10.1.1.4來測試.
2、NAT僅僅基于流量的TCP負載均衡,對于其他流量NAT将不進行轉換
本文轉自 linuxtro 51CTO部落格,原文連結:http://blog.51cto.com/linuxtro/498274,如需轉載請自行聯系原作者