很多公司都擁有兩個ISP的出口,比如電信和網通。公司內部署了內部服務器供外網用戶訪問。要求內部服務器私網地址10.1.1.1分別針對電信用戶和網通用戶在防火墻上配置兩個NAT Server,供不同用戶訪問,即NAT Server雙出口功能。
配置完成后發(fā)現,電信用戶可以通過公網地址2.2.2.2訪問內部服務器,網通用戶也可以通過公網地址3.3.3.3訪問內部服務器,但網通用戶無法訪問電信公網服務器地址2.2.2.2,電信用戶也無法訪問網通公網服務器地址3.3.3.3。
通常內部服務器以公網地址對外提供訪問時,我們是通過配置全局的NAT Server來實現的。每配置一條NAT Server后會生成兩張全局映射表,一張是正向映射表,用于外網用戶訪問內部服務器時的地址轉換映射;一張是反向映射表,用于內部服務器主動訪問外網時的地址映射。
當內部服務器一個私網IP地址映射成兩個公網IP地址時,會建立兩個反向映射表,這種情況下當內部服務器主動訪問外網時,會有兩個映射關系,這是不允許的。
在配置NAT Server雙出口過程中,通常采用以下兩種方式:
1、基于不同安全區(qū)域進行配置,將電信用戶和網通用戶分別劃入不同安全區(qū)域,分別提供不同的公網IP地址。
此方式下,內部服務器主動訪問外網時基于不同的安全區(qū)域來選擇相應的反向表做地址映射。
[sysname] nat server zone zone1 global 2.2.2.2 inside 10.1.1.1
[sysname] nat server zone zone2 global 3.3.3.3 inside 10.1.1.1
zone1對應電信用戶所在安全區(qū)域;zone2對應網通用戶所在安全區(qū)域。
2、配置no-reverse參數,取消反向表的建立。
此方式下,通常不允許內部服務器主動訪問外網,如果內部服務器需要主動訪問外網,則要針對此服務器在上另外配置基于源IP地址的NAT功能。
[sysname] nat server global 2.2.2.2 inside 10.1.1.1 no-reverse
[sysname] nat server global 3.3.3.3 inside 10.1.1.1 no-reverse
完成上述配置后,電信用戶可以通過2.2.2.2地址訪問內部服務器,網通用戶可以通過3.3.3.3地址訪問內部服務器。
當電信用戶訪問網通服務器的地址3.3.3.3時,報文到達,根據正向映射表將3.3.3.3轉換為10.1.1.1,并將報文送到內部服務器;內部服務器回應報文到達后,命中會話表,通過查找路由,發(fā)現是送往電信用戶的報文,則就近將報文從電信用戶直連接口送出,即報文從網通用戶接口到達,但從電信用戶接口送出。
此時,如果電信用戶與之間還部署了其他防火墻設備,并且這個防火墻設備配置了鏈路狀態(tài)檢測功能,對于來回路徑不一致的報文,不允許通過,最后導致報文被丟棄。
配置NAT Server雙出口功能主要是為了實現外網用戶就近訪問,建議網通用戶通過網通的公網IP地址訪問內部服務器,電信用戶通過電信公網IP地址訪問內部服務器,從而實現快速訪問,盡量避免交叉訪問,以免影響正常業(yè)務。