NAT方式下的TCP負載均衡

TCP負載均衡說簡單點就是反用NAT地址轉換,網絡解釋爲:NAT負載均衡將一個外部IP地址映射爲多個內部IP地址,對每次連接請求動態地轉換爲一個內部服務器的地址,將外部連接請求引到轉換得到地址的那個服務器上,從而達到負載均衡的目的。

clip_p_w_picpath001

爲了簡化實驗步驟,重在說明問題。模擬試驗中使用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 ?

<cr>

參數“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,顯示結果爲:

clip_p_w_picpath003

如果是在 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將不進行轉換

本文出自 “linux on the way” 博客,請務必保留此出處http://linuxtro.blog.51cto.com/1239505/498274

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