Netscaler立身之本——NAT

1、前言服務器

ADC的主要做用是做爲服務器的反向代理來進行應用發佈的,介於客戶端和服務器端之間,那麼NAT就是它必然要面臨的工做。歸根結底,NAT就是ADC的數據轉發立身之本。可否支持更多、更靈活、控制力更強的NAT轉換就是衡量一個ADC是否合格的關鍵因素之一。這也對工程師提出了最基本的要求,若是連如何控制NAT都不清楚,那麼遇到各類不一樣的場景就沒法作出對應的方案。網絡

2、什麼是NATide

1.NAT簡介測試

藉助於NAT,私有(保留)地址的"內部"網絡經過路由器發送數據包時,私有地址被轉換成合法的IP地址,一個局域網只需使用少許IP地址(甚至是1)便可實現私有地址網絡內全部計算機與Internet的通訊需求。spa

NAT將自動修改IP報文的源IP地址和目的IP地址,Ip地址校驗則在NAT處理過程當中自動完成。有些應用程序將源IP地址嵌入到IP報文的數據部分中,因此還須要同時對報文進行修改,以匹配IP頭中已經修改過的源IP地址。不然,在報文數據都分別嵌入IP地址的應用程序就不能正常工做。3d

2.NAT實現方式代理

NAT的實現方式有三種,即靜態轉換Static Nat、動態轉換Dynamic Nat 和 端口多路複用OverLoadserver

靜態轉換是指將內部網絡的私有IP地址轉換爲公有IP地址,IP地址對是一對一的,是一成不變的,某個私有IP地址只轉換爲某個公有IP地址。藉助於靜態轉換,能夠實現外部網絡對內部網絡中某些特定設備(如服務器)的訪問。blog

動態轉換是指將內部網絡的私有IP地址轉換爲公用IP地址時,IP地址是不肯定的,是隨機的,全部被受權訪問上Internet的私有IP地址可隨機轉換爲任何指定的合法IP地址。也就是說,只要指定哪些內部地址能夠進行轉換,以及用哪些合法地址做爲外部地址時,就能夠進行動態轉換。動態轉換可使用多個合法外部地址集。當ISP提供的合法IP地址略少於網絡內部的計算機數量時。能夠採用動態轉換的方式。ip

端口多路複用(Port address Translation,PAT)是指改變外出數據包的源端口並進行端口轉換,即端口地址轉換(PATPort Address Translation).採用端口多路複用方式。內部網絡的全部主機都可共享一個合法外部IP地址實現對Internet的訪問,從而能夠最大限度地節約IP地址資源。同時,又可隱藏網絡內部的全部主機,有效避免來自internet的***。所以,目前網絡中應用最多的就是端口多路複用方式。

3.NetscalerNAT

下面咱們主要討論netscalerNAT是如何作的,哪些參數影響到netscalerNAT動做。

影響netscalerNAT的參數主要分爲如下8類:

ü RNAT

ü INAT

ü IP mode

ü Netprofile

ü USIP

ü MAC mode

ü Service port=*

ü Service use proxy port

咱們分別針對每一個參數作測試和理解,如下是環境概述


實驗環境:

Client ip192.168.20.1

SNIP:   192.168.20.11

     192.168.0.21

     192.168.10.11

VIP:     172.16.10.10

     172.16.10.11

     10.10.1.2

Server ip: 192.168.0.50

   10.10.1.1

 

3、影響NAT的參數測試

1.RNAT

客戶端的網關是netscaler,但服務器沒有客戶端的回程路由

客戶端直接訪問服務器,網絡不通

wKioL1kbzwOh3l3JAADfq1ZdW6k526.png-wh_50 


抓包狀況:

由於服務器沒有客戶端192.168.20.1的回程路由,因此ICMP無響應

wKiom1kbzyCD84haAACBm8f5G78510.png-wh_50


Netscaler上配置RNAT

wKioL1kbz1fgnSQDAABQdGPK1HY341.png-wh_50

客戶端的地址由192.168.20.1netscaler替換爲192.168.10.11,遂能夠訪問服務器資源

wKioL1kbz2eipg7nAADVAdA3dhc157.png-wh_50 

抓包狀況:

wKioL1kbz47DKWIKAABWdHn3I9o118.png-wh_50

2.INAT

netscaler上配置INAT策略,將10.10.1.2轉換爲192.168.0.50

wKiom1kbz9SD8s6JAABOoYGe4y8104.png-wh_50


Netscaler中沒有創建10.10.1.2vserver

 wKioL1kb0CugzxGbAABeiKKHdNk308.png-wh_50

抓包狀況:

用戶端192.168.20.1訪問10.10.1.2netscaler轉換爲192.168.0.21訪問192.168.0.50.

wKiom1kb0FGjonTQAACfY3ZpxEE317.png-wh_50

用戶成功打開頁面,在INAT中也能夠靈活控制源端口、源地址、目的端口等是否轉換。

 

 

3.IP mode

IP mode的工做機制是默認同時作源地址和目的地址的替換,即至關於靜態NAT

wKiom1kb0K_BNrjUAABvgbW6EzE661.png-wh_50

抓包狀況:

用戶端192.168.20.1訪問172.16.10.10,被Netscaler替換爲192.168.0.21訪問192.168.0.50

wKiom1kb69PyfFJ1AAA8H9g7GJU539.png-wh_50 

4.Netprofile

創建兩個Netprofile

wKioL1kb7ACTZcMCAAA653E0EV4632.png-wh_50 

Netprofile_vs綁定到Vserver

wKiom1kb7BiTSxcxAACF6FBqZDU445.png-wh_50 

抓包狀況:

客戶端192.168.20.1訪問172.16.10.10Netscaler替換爲192.168.10.11訪問192.168.0.50,源地址不是snip192.168.0.21而是Netprofile_vs的地址192.168.10.11

wKiom1kb7C_Ry9fKAACjjkImdhI952.png-wh_50 

Netprofile_vs綁定到Vserver同時將Netprofile_service綁定到service

Vserver

wKiom1kb7EfQfdRzAACF6FBqZDU606.png-wh_50 

Service

wKioL1kb7GDSZnNGAABu5zTP2bU925.png-wh_50 

抓包狀況:

客戶端192.168.20.1訪問172.16.10.10Netscaler替換爲192.168.10.22訪問192.168.0.50,源地址而非Netprofile_vs中的192.168.10.11

 

wKioL1kb7HnBXq_7AABc0DjogYw275.png-wh_50 

經過Netprofile測試說明了Netprofile綁在service的優先級高於vserver

 

5.USIP

保留Netprofileservice上開啓USIP,並將服務器的網關指向netscaler

wKioL1kb7JnSJHvWAACiiizEsnc956.png-wh_50 

抓包狀況:

用戶端192.168.20.1訪問172.16.10.10,只有目的地址被Netscaler替換爲192.168.0.50,源地址不變。

wKioL1kb7Lew-J5BAABo4Gg_7dU512.png-wh_50 

此項說明一旦啓用USIPnetscaler全部基於源地址替換的操做所有禁用,不論是默認用SNIP輪訓仍是指定Netprofile都不生效。

6.MAC mode

MAC mode不作目的地址替換,必須是any的協議才能啓用,主要用在LLB

配置mac modeVSservicegroupmember

wKioL1kb7QDCTlZUAABbR-XKJUM126.png-wh_50

wKiom1kb7QCRCvdAAABeD9dB4i8784.png-wh_50

wKioL1kb7QGCGWPWAABbzH04_FE785.png-wh_50

 

10.10.1.1是服務器的第二IP

抓包狀況:

客戶端192.168.20.1訪問10.10.1.1,被netscaler替換源地址192.168.10.11後直接訪問10.10.1.1,目的地址不作替換。

 

wKiom1kb7kGgj1hJAAB87HfycNY764.png-wh_50 

 

wKioL1kb7lWwHfQYAABGrnvX-eo049.png-wh_50 

固然若是須要也能夠控制是否作源地址、源端口、目的端口的替換。

 

 

7.Service port=*


服務器同時開啓8000口的服務

創建兩個service

wKioL1kb7rfx6-wAAABip1XgGIE327.png-wh_50 

 

http協議的8000口和TCP協議的any

創建兩個vserver

wKiom1kb7s3xRTCUAABd3riT4tI934.png-wh_50 

抓包狀況:

用戶端192.168.20.1帶端口訪問172.16.10.10:3000

wKioL1kb7uTBoGCOAACgGAXIsQc914.png-wh_50 

NS同時替換源IP+端口和目的IP+端口,源地址變爲192.168.0.2130748目的地址變爲192.168.0.508000.

wKioL1kb7v3i1PRhAACh41s93Kg062.png-wh_50 

但若是用戶訪問的是anyVserver話目的端口不會改變

抓包狀況:

用戶端192.168.20.1訪問172.16.10.11:8000

wKioL1kb7xnjPp34AACfAUUCE80192.png-wh_50 

netscaler替換爲192.168.0.21:40948訪問192.168.0.50:8000

wKioL1kb7y7DDhqKAACiLgrJxHQ700.png-wh_50 

訪問過程目的端口不會改變。

8.Proxy port

若是想源端口也不變須要去掉use proxy port選項,同時開啓USIP

wKiom1kb70mTNZMUAACe6RE0pEc725.png-wh_50 

抓包狀況:

用戶端192.168.20.1:4503訪問172.16.10.10:3000

wKiom1kb717hBi3vAACfF9HRIfg639.png-wh_50 

netscaler替換爲192.168.20.1:4503訪問192.168.0.50:8000,源地址和源端口不作替換

wKiom1kb73Sz1ZJIAAChpSzrUFI081.png-wh_50 

 

1、總結:

以上展現了能夠控制netscaler NAT行爲的全部參數,可知netscaler有很是豐富的參數來根據須要靈活控制NAT行爲(對於INAT部分有另外一篇文章作詳細討論)根據數通設備習慣的NAT術語,總結了netscaler各個參數對應的NAT類型。

項目

Netscaler默認狀況

Netscaler可調整狀況

RNAT

動、靜態SNAT

動、靜態PNAT

INAT

靜態DNAT

靜態PNAT

IP mode

動、靜態SNAT+DNAT

動、靜態PNAT

Netprofile

動、靜態SNAT

動、靜態PNAT

USIP

靜態SNAT

靜態PNAT

MAC mode

動態SNAT(固定目的IP


Service port=*

目的端口不變PNAT


Service use proxy port

源端口不變PNAT

動、靜PNAT

相關文章
相關標籤/搜索