目錄

簡介

必要條件

需求

採用元件

背景資訊

目的

說明

設定

網路圖表

步驟

驗證

疑難排解

限制

簡介

本檔案介紹如何在Cisco IOS®路由器上設定網路位址轉譯(NAT)伺服器負載平衡TCP流量。

必要條件

需求

本文件沒有特定需求。

採用元件

本文件所述內容不限於特定軟體和硬體版本。本檔案適用於執行Cisco IOS的所有思科路由器和交換器。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路正在作用，請確保您已瞭解任何指令可能造成的影響。

背景資訊

目的

從外部Internet訪問本地伺服器的使用者將使用單個URL或IP地址訪問伺服器，但是NAT裝置用於將使用者流量載入到具有映象內容的多個相同伺服器。

說明

外部使用者A和B使用外部可見的IP地址172.16.2.3（伺服器的虛擬IP地址）訪問Web伺服器的內容。 NAT路由器以循環方式將目的地為172.16.1.3的流量轉換為內部IP地址10.1.1.1、10.1.1.2和10.1.1.3，並將其轉發到相應的伺服器。從外部使用者發起的每個新會話都轉換為下一個物理伺服器IP地址。

設定

網路圖表

步驟

1. 使用者A發起與虛擬伺服器IP地址172.16.2.3的TCP連線。

2. NAT路由器在收到連線請求時建立NAT轉換條目，該條目分配下一個可用的實際伺服器IP地址（例如，10.1.1.1）。

3. NAT路由器將目的IP地址替換為分配的實際IP地址並轉發資料包。

4. 伺服器會收到封包並回覆來源。

5. NAT路由器接收從伺服器返回的資料包並執行NAT表查詢。然後路由器將源地址轉換為虛擬伺服器IP地址(172.16.2.3)並轉發資料包。

6. 使用者B發起與伺服器虛擬IP地址172.16.2.3的TCP會話。收到連線請求後，NAT路由器將其轉換為下一個可用的實際伺服器IP地址（例如10.1.1.2），然後將資料包轉發到伺服器。

由於靜態NAT在另一個方向是雙向的，因此資料包的目的地將被轉換。執行此形式的NAT時，由傳送TCP資料包觸發。傳送網際網路控制消息協定(ICMP)可能不會觸發NAT轉換。

非TCP流量被定向到池中的第一個地址。

與靜態內部源NAT和靜態內部源PAT不同，路由器不會響應有關全域性地址的ARP查詢，除非該地址未分配給其介面。因此，可能需要將其新增到介面（如輔助介面）。使用此轉換方法無法重定向埠（例如，80和1087）。 連線埠必須相符。

附註：NAT池IP地址不必與外部介面IP地址相同。為了說明相同的情況，此示例使用來自與實際介面IP子網172.16.1.x不同的塊172.16.2.x的IP地址。

1. 定義包含實際伺服器地址的地址池。
ip nat pool NATPOOL 10.1.1.1 10.1.1.3 prefix-length 24 type rotary

2. 定義允許虛擬伺服器地址的訪問清單。
access-list 1 permit host 172.16.2.3

3. 啟用內部目標地址的動態轉換。
ip nat inside destination list

pool

ip nat inside destination  list 1 pool NATPOOL

4. 定義NAT內部和外部介面。
Interface gig0/0

ip address 10.1.1.4 255.255.255.0

Ip nat inside

Interface gig0/1

ip address 172.16.1.1 255.255.255.248

Ip nat outside

當有人嘗試訪問IP地址172.16.2.3時，IP地址10.1.1.1、10.1.1.2和10.1.1.3現在將以旋轉方式分配

驗證

為了驗證這一點，請從外部主機向虛擬IP地址發起多個TCP會話。調試IP NAT t轉換/show ip nat translation輸出可用於驗證。

Router#

Router#

*Jul 24 13:27:41.193: NAT*: s=192.168.1.1, d=172.16.2.3->10.1.1.3 [22864]

*Jul 24 13:27:41.196: NAT*: s=10.1.1.3->172.16.2.3, d=192.168.1.1 [18226]

Router#

*Jul 24 13:27:44.329: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35533]

*Jul 24 13:27:44.331: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14573]

*Jul 24 13:27:44.332: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35534]

*Jul 24 13:27:44.332: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35535]

*Jul 24 13:27:44.332: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35536]

*Jul 24 13:27:44.333: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14574]

*Jul 24 13:27:44.365: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14575]

*Jul 24 13:27:44.365: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14576]

*Jul 24 13:27:44.368: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35537]

Router#

*Jul 24 13:27:44.369: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35538]

*Jul 24 13:27:44.369: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35539]

*Jul 24 13:27:44.369: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35540]

*Jul 24 13:27:44.371: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14577]

*Jul 24 13:27:44.574: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14578]

Router#

*Jul 24 13:27:46.474: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14579]

*Jul 24 13:27:46.478: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35541]

*Jul 24 13:27:46.478: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35542]

*Jul 24 13:27:46.479: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14580]

Router#sh ip nat tr

Pro Inside global      Inside local       Outside local      Outside global

tcp 172.16.2.3:23      10.1.1.1:23        192.168.2.1:49703  192.168.2.1:49703

tcp 172.16.2.3:23      10.1.1.2:23        192.168.2.1:50421  192.168.2.1:50421

tcp 172.16.2.3:80      10.1.1.3:80        192.168.1.1:26621  192.168.1.1:26621

Router#

疑難排解

目前尚無適用於此組態的具體疑難排解資訊。

限制

- 它無法檢測組中的內部伺服器是否出現故障。這表示Cisco IOS總是將流量轉送到組中的伺服器，而不管其運行狀態如何。

- 它無法確定內部伺服器的實際負載，因此無法有效地執行負載均衡。