16-NAT配置
本章節下載: 16-NAT配置 (530.94 KB)
NAT(Network Address Translation,網絡地址轉換)是將IP數據報文頭中的IP地址轉換為另一個IP地址的過程。在實際應用中,NAT主要應用在連接兩個網絡的邊緣設備上,用於實現允許內部網絡用戶訪問外部公共網絡以及允許外部公共網絡訪問部分內部網絡資源(例如內部服務器)的目的。
全局NAT的優先級高於接口NAT。若同時存在全局NAT策略和接口NAT的配置,當流量與全局NAT策略中任意一條過濾規則匹配,那麼接口NAT中的源地址轉換和目的轉換的配置均不生效。建議不要同時配置接口NAT和全局NAT。
NAT基本概念如下:
· NAT設備:配置了NAT功能的連接內部網絡和外部網絡的邊緣設備。
· NAT接口:NAT設備上應用了NAT相關配置的接口。
· NAT規則:用於進行地址轉換的NAT配置稱為NAT規則。NAT規則的位置決定了匹配的優先級,位置越靠前的NAT規則,其匹配優先級越高。
· NAT地址:用於進行地址轉換的公網IP地址,與外部網絡路由可達,可靜態指定或動態分配。
· NAT表項:NAT設備上用於記錄網絡地址轉換映射關係的表項。關於NAT表項的詳細介紹請參見“1.6 NAT表項”。
· Easy IP功能:NAT轉換時直接使用設備上接口的IP地址作為NAT地址。設備上接口的地址可靜態指定或通過DHCP或PPPoE等協議動態獲取。
· 全局NAT:NAT規則的應用範圍為全局。對於全局NAT,所有經過NAT設備的流量都會進行匹配,並對匹配NAT規則的流量進行地址轉換。
· 接口NAT:NAT規則的應用範圍為接口。對於接口NAT,隻有經過應用NAT規則的接口的流量才會進行匹配,並對匹配NAT規則的流量進行地址轉換。
圖1-1 NAT基本工作過程示意圖
如圖1-1所示,一台NAT設備連接內網和外網,當有報文經過NAT設備時,NAT的基本工作過程如下:
(1) 當內網用戶主機(192.168.1.3)向外網服務器(1.1.1.2)發送的IP報文通過NAT設備時,NAT設備查看報文的IP頭內容,發現該報文是發往外網的,則將其源IP地址字段的內網地址192.168.1.3轉換成一個可路由的外網地址20.1.1.1,並將該報文發送給外網服務器,同時在NAT設備上建立表項記錄這一映射關係。
(2) 外網服務器給內網用戶發送的應答報文到達NAT設備後,NAT設備使用報文信息匹配建立的表項,然後查找匹配到的表項記錄,用內網私有地址192.168.1.3替換初始的目的IP地址20.1.1.1。
上述的NAT過程對終端(如圖中的Host和Server)來說是透明的。對外網服務器而言,它認為內網用戶主機的IP地址就是20.1.1.1,並不知道存在192.168.1.3這個地址。因此,NAT“隱藏”了企業的私有網絡。
在實際應用中,我們可能希望某些內部網絡的主機可以訪問外部網絡,而某些主機不允許訪問;或者希望某些外部網絡的主機可以訪問內部網絡,而某些主機不允許訪問。即NAT設備隻對符合要求的報文進行地址轉換。
NAT設備可以利用ACL(Access Control List,訪問控製列表)來對地址轉換的使用範圍進行控製,通過定義ACL規則,並將其與NAT配置相關聯,實現隻對匹配指定的ACL permit規則的報文才進行地址轉換的目的。而且,NAT僅使用規則中定義的源IP地址、源端口號、目的IP地址、目的端口號、傳輸層協議類型和VPN實例這幾個元素進行報文匹配,忽略其它元素。
靜態地址轉換是指外部網絡和內部網絡之間的地址映射關係由配置確定,該方式適用於內部網絡與外部網絡之間存在固定訪問需求的組網環境。靜態地址轉換支持雙向互訪:內網用戶可以主動訪問外網,外網用戶也可以主動訪問內網。
源IP地址轉換方式是一種動態地址轉換方式,動態地址轉換是指內部網絡和外部網絡之間的地址映射關係在建立連接的時候動態產生。該方式通常適用於內部網絡有大量用戶需要訪問外部網絡的組網環境。
源IP地址轉換包括NO-PAT模式的地址轉換、基於端口的PAT模式的地址轉換和基於端口塊的PAT模式的地址轉換。
NO-PAT(Not Port Address Translation)模式下,一個外網地址同一時間隻能分配給一個內網地址進行地址轉換,不能同時被多個內網地址共用。當使用某外網地址的內網用戶停止訪問外網時,NAT會將其占用的外網地址釋放並分配給其他內網用戶使用。
該模式下,NAT設備隻對報文的IP地址進行NAT轉換,同時會建立一個NO-PAT表項用於記錄IP地址映射關係,並可支持所有IP協議的報文。
PAT(Port Address Translation)模式下,一個NAT地址可以同時分配給多個內網地址共用。該模式下,NAT設備需要對報文的IP地址和傳輸層端口同時進行轉換,且隻支持TCP、UDP和ICMP(Internet Control Message Protocol,互聯網控製消息協議)查詢報文。
圖1-2 PAT基本原理示意圖
如圖1-2所示,三個帶有內網地址的報文到達NAT設備,其中報文1和報文2來自同一個內網地址但有不同的源端口號,報文1和報文3來自不同的內網地址但具有相同的源端口號。通過PAT映射,三個報文的源IP地址都被轉換為同一個外網地址,但每個報文都被賦予了不同的源端口號,因而仍保留了報文之間的區別。當各報文的回應報文到達時,NAT設備仍能夠根據回應報文的目的IP地址和目的端口號來區別該報文應轉發到的內部主機。
采用PAT方式可以更加充分地利用IP地址資源,實現更多內部網絡主機對外部網絡的同時訪問。
目前,PAT支持兩種不同的地址轉換模式:
· Endpoint-Independent Mapping(不關心對端地址和端口轉換模式):隻要是來自相同源地址和源端口號的報文,不論其目的地址是否相同,通過PAT映射後,其源地址和源端口號都被轉換為同一個外部地址和端口號,該映射關係會被記錄下來並生成一個EIM表項;並且NAT設備允許所有外部網絡的主機通過該轉換後的地址和端口來訪問這些內部網絡的主機。這種模式可以很好的支持位於不同NAT網關之後的主機進行互訪。
· Address and Port-Dependent Mapping(關心對端地址和端口轉換模式):對於來自相同源地址和源端口號的報文,相同的源地址和源端口號並不要求被轉換為相同的外部地址和端口號,若其目的地址或目的端口號不同,通過PAT映射後,相同的源地址和源端口號通常會被轉換成不同的外部地址和端口號。與Endpoint-Independent Mapping模式不同的是,NAT設備隻允許這些目的地址對應的外部網絡的主機可以通過該轉換後的地址和端口來訪問這些內部網絡的主機。這種模式安全性好,但由於同一個內網主機地址轉換後的外部地址不唯一,因此不便於位於不同NAT網關之後的主機使用內網主機轉換後的地址進行互訪。
基於端口塊的PAT模式是一種基於端口範圍的PAT動態地址轉換,即一個私網IP地址在一個時間段內獨占一個公網IP地址的某個端口塊。例如:假設私網IP地址10.1.1.1獨占公網IP地址202.1.1.1的一個端口塊10001~10256,則該私網IP向公網發起的所有連接,源IP地址都將被轉換為同一個公網IP地址202.1.1.1,而源端口將被轉換為端口塊10001~10256之內的一個端口。
基於端口塊的PAT模式包括端口塊方式包括靜態映射和動態映射兩種,主要應用在NAT444或DS-Lite網絡中。
· 端口塊靜態映射
端口塊靜態映射是指,NAT網關設備根據配置自動計算私網IP地址到公網IP地址、端口塊的靜態映射關係,並創建靜態端口塊表項。當私網IP地址成員中的某個私網IP地址向公網發起新建連接時,根據私網IP地址匹配靜態端口塊表項,獲取對應的公網IP地址和端口塊,並從端口塊中動態為其分配一個公網端口,對報文進行地址轉換。
配置端口塊靜態映射時,需要創建一個端口塊組,並在端口塊組中配置私網IP地址成員、公網IP地址成員、端口範圍和端口塊大小。假設端口塊組中每個公網IP地址的可用端口塊數為m(即端口範圍除以端口塊大小),則端口塊靜態映射的算法如下:按照從小到大的順序對私網IP地址成員中的所有IP地址進行排列,最小的m個私網IP地址對應最小的公網IP地址及其端口塊,端口塊按照起始端口號從小到大的順序分配;次小的m個私網IP地址對應次小的公網IP地址及其端口塊,端口塊的分配順序相同;依次類推。
· 端口塊動態映射
當內網用戶向公網發起連接時,首先根據動態地址轉換中的ACL規則進行過濾,決定是否需要進行源地址轉換。對於需要進行源地址轉換的連接,當該連接為該用戶的首次連接時,從所匹配的動態地址轉換配置引用的NAT地址組中獲取一個公網IP地址,從該公網IP地址中動態分配一個端口塊,創建動態端口塊表項,然後從端口塊表項中動態分配一個公網端口,進行地址轉換。對該用戶後續連接的轉換,均從生成的動態端口塊表項中分配公網端口。當該用戶的所有連接都斷開時,回收為其分配的端口塊資源,刪除相應的動態端口塊表項。
端口塊動態映射支持增量端口塊分配。當為某私網IP地址分配的端口塊資源耗盡(端口塊中的所有端口都被使用)時,如果該私網IP地址向公網發起新的連接,則無法再從端口塊中獲取端口,無法進行地址轉換。此時,如果預先在相應的NAT地址組中配置了增量端口塊數,則可以為該私網IP地址分配額外的端口塊,進行地址轉換。
在實際應用中,內網中的服務器可能需要對外部網絡提供一些服務,例如給外部網絡提供Web服務,或是FTP服務。這種情況下,通過定義內部服務器對外提供服務使用的外部IP地址+端口與內部服務器在內網使用的地址+端口的映射關係,實現NAT設備允許外網用戶通過指定的NAT地址和端口訪問這些內部服務器。
如圖1-3所示,外部網絡用戶訪問內部網絡服務器的數據報文經過NAT設備時,NAT設備將報文的目的地址與接口上的NAT內部服務器配置進行匹配,並將匹配上的訪問內部服務器的請求報文的目的IP地址和端口號轉換成內部服務器的私有IP地址和端口號。當內部服務器回應該報文時,NAT設備再根據已有的地址映射關係將回應報文的源IP地址和端口號轉換成外網IP地址和端口號。
NAT設備處理一個連接的首報文時便確定了相應的地址轉換關係,並同時創建會話表項,該會話表項中添加了NAT擴展信息(例如接口信息、轉換方式)。會話表項中記錄了首報文的地址轉換信息。這類經過NAT處理的會話表項,也稱為NAT會話表項。
當該連接的後續報文經過NAT設備時,將與NAT會話表項進行匹配,NAT設備從匹配到的會話表項中得到首報文的轉換方式,並根據首報文的轉換方式對後續報文進行處理:
· 後續報文方向與首報文相同時,源和目的的轉換方式與首報文相同。
· 後續報文方向與首報文相反時,轉換方式與首報文相反。即,如果首報文轉換了源地址,則後續報文需要轉換目的地址;如果首報文轉換了目的地址,則後續報文需要轉換源地址。
NAT會話表項的更新和老化由會話管理模塊維護,關於會話管理的相關介紹請參見“安全配置指導”中的“會話管理”。
如果NAT設備上開啟了Endpoint-Independent Mapping模式,則在PAT方式的動態地址轉換過程中,會首先創建一個NAT會話表項,然後創建一個用於記錄地址和端口的轉換關係(內網地址和端口<-->NAT地址和端口)的EIM三元組表項,該表項有以下兩個作用:
· 保證後續來自相同源地址和源端口的新建連接與首次連接使用相同的轉換關係。
· 允許外網主機向NAT地址和端口發起的新建連接根據EIM表項進行反向地址轉換。
該表項在與其相關聯的所有NAT會話表項老化後老化。
在NO-PAT方式進行源地址的動態轉換過程中,NAT設備首先創建一個NAT會話表項,然後建立一個NO-PAT表項用於記錄該轉換關係(內網地址<-->NAT地址)。除此之外,在NAT設備進行ALG處理時,也會觸發創建NO-PAT表項。NAT ALG的相關介紹請參見“1.8 NAT支持ALG”。
NO-PAT表項有以下兩個作用:
· 保證後續來自相同源地址的新建連接與首次連接使用相同的轉換關係。
· 允許滿足指定條件的主機向NAT地址發起的新建連接根據NO-PAT表項進行反向地址轉換。
該表項在與其相關聯的所有NAT會話表項老化後老化。
端口塊表項記錄1個用戶在網關轉換前的私網IP地址、轉換後對應的公網IP地址及其端口塊。端口塊表項分為靜態端口塊表項和動態端口塊表項。關於端口塊表項的詳細介紹,請參見“1.5.2 3. 基於端口塊的PAT模式”。
NAT hairpin功能用於滿足位於內網側的用戶之間或內網側的用戶與服務器之間通過NAT地址進行訪問的需求,通過對報文同時進行源地址和目的地址的轉換來實現。它支持兩種組網模式:
· P2P:位於內網側的用戶之間通過動態分配的NAT地址互訪。內網各主機首先向外網服務器注冊自己的內網地址信息,該地址信息為外網側出方向地址轉換的NAT地址,然後內網主機之間通過使用彼此向外網服務器注冊的外網地址進行互訪。
· C/S:位於內網側的用戶使用NAT地址訪問內網服務器。
ALG(Application Level Gateway,應用層網關)主要完成對應用層報文的解析和處理。通常情況下,NAT隻對報文頭中的IP地址和端口信息進行轉換,不對應用層數據載荷中的字段進行分析和處理。然而對於一些應用層協議,它們的報文的數據載荷中可能包含IP地址或端口信息,這些載荷信息也必須進行有效的轉換,否則可能導致功能不正常。
例如,FTP(File Transfer Protocol,文件傳輸協議)應用由FTP客戶端與FTP服務器之間建立的數據連接和控製連接共同實現,而數據連接使用的地址和端口由控製連接協商報文中的載荷信息決定,這就需要ALG利用NAT的相關轉換配置完成載荷信息的轉換,以保證後續數據連接的正確建立。
一般情況下,DNS(Domain Name System,域名係統)服務器和訪問私網服務器的用戶都在公網,通過在NAT設備上配置內部服務器,可以將公網地址、端口等信息映射到私網內的服務器上,使得公網用戶可以通過內部服務器的域名或公網地址來訪問內部服務器。但是,如圖1-4所示,如果DNS服務器在公網,私網用戶希望通過域名來訪問私網的Web服務器,則會由於DNS服務器向私網用戶發送的響應報文中包含的是私網服務器的公網地址,而導致收到響應報文的私網用戶無法利用域名訪問私網服務器。通過在設備上配置DNS mapping可以解決該問題。
圖1-4 NAT DNS mapping工作示意圖
NAT DNS mapping功能是指,通過配置“域名+公網IP地址+公網端口號+協議類型”的映射表,建立內部服務器域名與內部服務器公網信息的對應關係。NAT設備檢查接收到的DNS響應報文,根據報文中的域名查找用戶配置的DNS mapping映射表,並根據表項內的“公網地址+公網端口+協議類型”信息查找內部服務器地址映射表中該信息對應的私網地址,替換DNS查詢結果中的公網地址。這樣,私網用戶收到的DNS響應報文中就包含了要訪問的內部服務器的私網地址,也就能夠使用內部服務器域名訪問同一私網內的內部服務器。
NAT444是運營商網絡部署NAT的整體解決方案,它基於NAT444網關,結合AAA服務器、日誌服務器等配套係統,提供運營商級的NAT,並支持用戶溯源等功能。在眾多IPv4向IPv6網絡過渡的技術中,NAT444僅需在運營商側引入二次NAT,對終端和應用服務器端的更改較小,並且NAT444通過端口塊分配方式解決用戶溯源等問題,因此成為了運營商的首選IPv6過渡方案。
NAT444解決方案分為集中部署和分布部署兩種。
通過在CR設備上安裝處理NAT業務的slot或者旁掛NAT444設備來實現NAT444。如圖1-5所示,用戶訪問外部網絡時,CPE設備上進行第一次NAT轉換,然後在BRAS上完成AAA認證和私網地址的分配,認證通過後,用戶發起訪問外網的報文會在NAT444網關上進行NAT444轉換(第二次NAT轉換)。
圖1-5 NAT444集中部署組網圖
通過在BRAS設備上安裝處理NAT業務的slot實現NAT444,此種部署方式需要配置BRAS聯動功能。如圖1-6所示。配置NAT444網關與BRAS聯動(通過在認證ISP域中指定具體的用戶地址類型),用戶通過AAA認證並分配得到私網地址之後,NAT444網關會立即為該用戶分配公網地址以及端口塊,並將用戶的私網IP地址、分配的公網地址及該端口塊的映射關係通知給BRAS(如果NAT444網關上可分配的公網資源已耗盡,BRAS會強製用戶下線,也不會對用戶進行計費)。BRAS記錄該地址映射關係,並將這個映射關係上報給AAA服務器。之後,該用戶訪問外部網絡時直接使用NAT444網關已經分配的公網地址和端口塊。通過此聯動功能,AAA服務器能夠獲得並統一維護所有用戶的地址映射關係,提供更便捷的用戶溯源服務。
目前,僅支持對PPP用戶的業務與NAT444網關聯動。
圖1-6 NAT444分布式部署組網圖
分屬不同VPN的內部網絡主機使用了相同的地址空間,為了實現不同VPN中地址重疊的內網主機互訪,需要配置靜態NAT,對同一個方向的同一條流的數據報文同時進行源IP地址轉換和目的IP地址轉換。
如圖1-7所示,VPN 1和VPN 2中的內網用戶地址均為192.168.1.1。配置靜態NAT,將VPN 1中Host A的地址在VPN 2中轉換為172.16.1.1,將VPN 2中Host B的地址在VPN 1中轉換為172.16.2.1。當靜態NAT生效後,Host A使用172.16.2.1能夠訪問Host B,Host B使用172.16.1.1能夠訪問Host A。
圖1-7 地址中疊的兩個VPN之間互訪
當內部網絡主機使用外網注冊地址或者合法的外網地址訪問外部網絡時,內網主機的IP地址和外網主機的IP地址可能會發生重疊。為了實現內網主機能夠成功訪問與之地址重疊的外部服務器,需要配置NAT ALG+動態NAT。
如圖1-8所示,內網Host通過域名訪問外網Web服務器,Host和Web服務器的IP地址均為192.168.1.1。
(1) 內網Host首先向外網的DNS服務器發起DNS查詢請求。
(2) DNS服務器發送的DNS應答報文中,Web服務器的域名對應的IP地址為192.168.1.1。DNS應答報文經過NAT設備時,進行DNS的NAT ALG處理,將DNS應答報文中域名對應的IP地址192.168.1.1轉換為10.1.1.1(該地址為臨時分配的NAT地址)。NAT設備將ALG處理後的DNS應答報文發送給內網Host。
(3) Host訪問Web服務器的報文中,源IP地址為192.168.1.1,目的IP地址為10.1.1.1。報文經過NAT設備時,NAT設備根據動態NAT配置將源地址192.168.1.1轉換為20.1.1.1;NAT設備檢測到目的地址10.1.1.1為臨時分配的NAT地址,根據步驟(2)中的轉換關係,將10.1.1.1轉換為192.168.1.1。
接口NAT通用配置限製和指導如下:
NAT隻對匹配指定的ACL permit規則的報文才進行地址轉換,匹配時僅關注ACL規則中定義的源IP地址、源端口號、目的IP地址、目的端口號和傳輸層協議類型,不關注ACL規則中定義的其它元素。
· 若接口上同時存在普通NAT靜態地址轉換、普通NAT動態地址轉換、內部服務器、NAT444端口塊靜態映射、NAT444端口塊動態映射的配置,則在地址轉換過程中,它們的優先級從高到低依次為:
a. 內部服務器。
b. 普通NAT靜態地址轉換。
c. NAT444端口塊靜態映射。
d. NAT444端口塊動態映射和普通NAT動態地址轉換,係統在處理IPv4報文時對二者不做區分,統一按照ACL編號由大到小的順序匹配。
配置BRAS聯動功能時,需要注意:
· 目前,支持BRAS聯動功能的用戶地址類型包括私網IP地址(private-ipv4)和私網雙棧地址(private-ds)。
· 用戶上線後,若NAT444配置發生變更,則在線用戶使用的公網IP和端口塊也會隨之變化,而上報給RADIUS服務器的公網IP和端口塊並不能保持同步變化,會導致在線用戶溯源不準確。因此,建議在NAT444配置發生變更之後,立即手動強製所有使用該NAT配置的用戶下線。當用戶再次上線之後,將會使用配置變更後的公網IP和端口。
·
(1) 配置接口上的地址轉換方式
(2) (可選)配置NAT hairpin功能
(3) (可選)配置NAT ALG
(4) (可選)配置NAT DNS mapping功能
(5) (可選)配置NAT日誌功能
(6) (可選)特定條件下的NAT配置
¡ 開啟對TCP SYN和SYN ACK報文中時間戳的刪除功能
入方向的靜態地址轉換建議與接口上的出方向動態地址轉換(nat outbound)、內部服務器(nat server)或出方向靜態地址轉換(nat static outbound)配合使用,以實現“源IP地址轉換+目的IP地址轉換”。
· 配置控製地址轉換範圍的ACL。ACL配置的相關介紹請參見“安全配置指導”中的“ACL”。
· 對於入方向靜態地址轉換,需要手動添加路由:目的地址為靜態地址轉換配置中指定的local-ip或local-network;下一跳為靜態地址轉換配置中指定的外網地址,或者報文出接口的實際下一跳地址。
出方向一對一靜態地址轉換通常應用在外網側接口上,用於實現一個內部私有網絡地址到一個外部公有網絡地址的轉換,具體過程如下:
· 對於經過該接口發送的內網訪問外網的報文,將其源IP地址與指定的內網IP地址local-ip進行匹配,並將匹配的源IP地址轉換為global-ip。
· 對於該接口接收到的外網訪問內網的報文,將其目的IP地址與指定的外網IP地址global-ip進行匹配,並將匹配的目的IP地址轉換為local-ip。
多個出方向一對一靜態地址轉換引用不同的ACL規則時,可以將同一個私網地址轉換為不同的公網地址。
出方向一對一靜態地址轉換的配置中不引用ACL規則時,該靜態地址轉換允許反方向發起的連接進行地址轉換。否則,必須指定reversible參數才允許反向地址轉換。
(1) 進入係統視圖。
system-view
(2) 配置出方向一對一靜態地址轉換映射。
nat static outbound local-ip global-ip [ acl { ipv4-acl-number | name ipv4-acl-name } [ reversible ] ] [ rule rule-name ] [ priority priority ] [ disable ] [ counting ] [ description text ]
(3) (可選)調整出方向一對一靜態NAT規則的匹配優先級。
nat static outbound rule move nat-rule-name1 { after | before } nat-rule-name2
(4) 進入接口視圖。
interface interface-type interface-number
(5) 開啟接口上的NAT靜態地址轉換功能。
nat static enable
缺省情況下,NAT靜態地址轉換功能處於關閉狀態。
出方向網段對網段靜態地址轉換通常應用在外網側接口上,用於實現一個內部私有網絡到一個外部公有網絡的地址轉換,具體過程如下:
· 對於經過該接口發送的內網訪問外網的報文,將其源IP地址與指定的內網網絡地址進行匹配,並將匹配的源IP地址轉換為指定外網網絡地址之一。
· 對於該接口接收到的外網訪問內網的報文,將其目的IP地址與指定的外網網絡地址進行匹配,並將匹配的目的IP地址轉換為指定的內網網絡地址之一。
(1) 進入係統視圖。
system-view
(2) 配置出方向網段對網段靜態地址轉換映射。
nat static outbound net-to-net local-start-address local-end-address global global-network { mask-length | mask } [ acl { ipv4-acl-number | name ipv4-acl-name } [ reversible ] ] [ rule rule-name ] [ priority priority ] [ disable ] [ counting ]
(3) 進入接口視圖。
interface interface-type interface-number
(4) 開啟接口上的NAT靜態地址轉換功能。
nat static enable
缺省情況下,NAT靜態地址轉換功能處於關閉狀態。
入方向一對一靜態地址轉換用於實現一個內部私有網絡地址與一個外部公有網絡地址之間的轉換,具體過程如下:
· 對於經過該接口發送的內網訪問外網的報文,將其目的IP地址與指定的內網IP地址local-ip進行匹配,並將匹配的目的IP地址轉換為global-ip。
· 對於該接口接收到的外網訪問內網的報文,將其源IP地址與指定的外網IP地址global-ip進行匹配,並將匹配的源IP地址轉換為local-ip。
(1) 進入係統視圖。
system-view
(2) 配置入方向一對一靜態地址轉換映射。
nat static inbound global-ip local-ip [ acl { ipv4-acl-number | name ipv4-acl-name } [ reversible ] ] [ rule rule-name ] [ priority priority ] [ disable ] [ counting ] [ description text ]
(3) 進入接口視圖。
interface interface-type interface-number
(4) 開啟接口上的NAT靜態地址轉換功能。
nat static enable
缺省情況下,NAT靜態地址轉換功能處於關閉狀態。
入方向網段對網段靜態地址轉換用於實現一個內部私有網絡與一個外部公有網絡之間的地址轉換,具體過程如下:
· 對於經過該接口發送的內網訪問外網的報文,將其目的IP地址與指定的內網網絡地址進行匹配,並將匹配的目的IP地址轉換為指定的外網網絡地址之一。
· 對於該接口接收到的外網訪問內網的報文,將其源IP地址與指定的外網網絡地址進行匹配,並將匹配的源IP地址轉換為指定的內網網絡地址之一。
(1) 進入係統視圖。
system-view
(2) 配置入方向網段對網段靜態地址轉換映射。
nat static inbound net-to-net global-start-address global-end-address local local-network { mask-length | mask } [ acl { ipv4-acl-number | name ipv4-acl-name } [ reversible ] ] [ rule rule-name ] [ priority priority ] [ disable ] [ counting ]
(3) 進入接口視圖。
interface interface-type interface-number
(4) 開啟接口上的NAT靜態地址轉換功能。
nat static enable
缺省情況下,NAT靜態地址轉換功能處於關閉狀態。
在同時配置了多條動態地址轉換的情況下:
· 指定了ACL參數的動態地址轉換配置的優先級高於未指定ACL參數的動態地址轉換配置;
· 對於指定了ACL參數的動態地址轉換配置,其優先級由ACL編號的大小決定,編號越大,優先級越高。
· 配置控製地址轉換範圍的ACL。ACL配置的相關介紹請參見“安全配置指導”中的“ACL”。
· 確定是否直接使用接口的IP地址作為轉換後的報文源地址。
· 配置根據實際網絡情況,合理規劃可用於地址轉換的公網IP地址組。
· 確定地址轉換過程中是否使用端口信息。
出方向動態地址轉換通常應用在外網側接口上,用於實現一個內部私有網絡地址到一個外部公有網絡地址的轉換。
(1) 進入係統視圖。
system-view
(2) 創建NAT地址組,並進入NAT地址組視圖。
nat address-group group-id [ name group-name ]
(3) 添加地址組成員。
address start-address end-address
可通過多次執行本命令添加多個地址組成員。
當前地址組成員的IP地址段不能與該地址組中或者其它地址組中已有的地址成員組成員重疊。
(4) 退回係統視圖。
quit
(5) 進入接口視圖。
interface interface-type interface-number
(6) 配置出方向動態地址轉換。請至少選擇其中一項進行配置。
¡ NO-PAT方式。
nat outbound [ ipv4-acl-number | name ipv4-acl-name ] address-group { group-id | name group-name } no-pat [ reversible ] [ rule rule-name ] [ priority priority ] [ disable ] [ counting ] [ description text ]
¡ PAT方式。
nat outbound [ ipv4-acl-number | name ipv4-acl-name ] [ address-group { group-id | name group-name } ] [ port-preserved ] [ rule rule-name ] [ priority priority ] [ disable ] [ counting ] [ description text ]
一個接口下可配置多個出方向的動態地址轉換。
參數 |
功能 |
address-group |
不指定該參數時,則直接使用該接口的IP地址作為轉換後的地址,即實現Easy IP功能 |
no-pat reversible |
在指定該參數,並且已經存在NO-PAT表項的情況下,對於經過該接口收到的外網訪問內網的首報文,將其目的IP地址與NO-PAT表項進行匹配,並將目的IP地址轉換為匹配的NO-PAT表項中記錄的內網地址 |
(7) (可選)配置PAT方式地址轉換的模式。
a. 退回係統視圖。
quit
b. 配置PAT方式地址轉換的模式。
nat mapping-behavior endpoint-independent [ acl { ipv4-acl-number | name ipv4-acl-name } ]
缺省情況下,PAT方式地址轉換的模式為Address and Port-Dependent Mapping。
該配置隻對PAT方式的出方向動態地址轉換有效。
(8) (可選)調整出方向動態NAT規則的匹配優先級。
nat outbound rule move nat-rule-name1 { after | before } nat-rule-name2
入方向動態地址轉換功能通常與接口上的出方向動態地址轉換(nat outbound)、內部服務器(nat server)或出方向靜態地址轉換(nat static outbound)配合,用於實現“源IP地址轉換+目的IP地址轉換”,不建議單獨使用。
由於自動添加路由表項速度較慢,通常建議手工添加路由。
(1) 進入係統視圖。
system-view
(2) 創建NAT地址組,並進入NAT地址組視圖。
nat address-group group-id [ name group-name ]
(3) 添加地址組成員。
address start-address end-address
可通過多次執行本命令添加多個地址組成員。
當前地址組成員的IP地址段不能與該地址組中或者其它地址組中已有的地址組成員重疊。
(4) 退回係統視圖。
quit
(5) 進入接口視圖。
interface interface-type interface-number
(6) 配置入方向動態地址轉換。
nat inbound { ipv4-acl-number | name ipv4-acl-name } address-group { group-id | name group-name } [ no-pat [ reversible ] [ add-route ] ] [ rule rule-name ] [ priority priority ] [ disable ] [ counting ] [ description text ]
一個接口下可配置多個入方向的動態地址轉換。
參數 |
功能 |
no-pat reversible |
指定該參數,並且已經存在NO-PAT表項的情況下,對於經過該接口發送的內網訪問外網的首報文,將其目的IP地址與NO-PAT表項進行匹配,並將目的IP地址轉換為匹配的NO-PAT表項中記錄的外網地址 |
add-route |
· 指定該參數,則有報文命中該配置時,設備會自動添加路由表項:目的地址為本次地址轉換使用的地址組中的地址,出接口為本配置所在接口,下一跳地址為報文的源地址 · 沒有指定該參數,則用戶需要在設備上手工添加路由 |
(7) (可選)調整入方向動態NAT規則的匹配優先級。
nat inbound rule move nat-rule-name1 { after | before } nat-rule-name2
內部服務器通常配置在外網側接口上。通過在NAT設備上配置內部服務器,建立一個或多個內網服務器內網地址和端口與外網地址和端口的映射關係,使外部網絡用戶能夠通過配置的外網地址和端口來訪問內網服務器。
內部服務器可以通過如下配置方式實現。
· 普通內部服務器:將內網服務器的地址和端口映射為外網地址和端口,允許外部網絡中的主機通過配置的外網地址和端口訪問位於內網的服務器。
· 負載分擔內部服務器:在配置內部服務器時,將內部服務器的內網信息指定為一個內部服務器組,組內的多台主機可以共同對外提供某種服務。外網用戶向內部服務器指定的外網地址發起應用請求時,NAT設備可根據內網服務器的權重和當前連接數,選擇其中一台內網服務器作為目的服務器,實現內網服務器負載分擔。
· 基於ACL的內部服務器:普通內部服務器方式必須指定公網地址,基於ACL內部服務器不用指定具體的公網地址,而是指定公網地址的集合,即通過ACL規則匹配過濾的一部分公網地址。對於符合ACL規則的報文,它的目的地址統一轉換成相同的內部服務器地址和端口,它是普通內部服務器的擴展。
使用RTP(Real-Time Transport Protocol,實時傳輸協議)傳輸音視頻的場景中,在RTP會話期間,服務器和客戶端作為會話的參與者會周期性發送RTCP(Real-time ControlProtocol,實時傳輸控製協議)報文。如果服務器位於私網,配置nat server命令時需要指定reversible參數,否則服務器發送到公網客戶端的RTCP報文會被NAT設備丟棄,導致音視頻傳輸業務出現異常。
在配置負載均衡內部服務器時,若配置一個外網地址,N個連續的外網端口號對應一個內部服務器組,或N個連續的外網地址,一個外網端口號對應一個內部服務器組,則內部服務器組的成員個數不能小於N,即同一用戶不能通過不同的外網地址或外網端口號訪問相同內網服務器的同一服務。在支持NAT內部服務器自動分配NAT規則名稱的版本上執行配置回滾操作時,如果回滾配置文件中的NAT內部服務器不存在係統為其自動分配的NAT規則名稱,會出現回滾失敗的錯誤提示信息。比如,回滾配置文件中的配置為nat server global 112.1.1.1 inside 192.168.20.1,回滾操作完成後的配置為nat server global 112.1.1.1 inside 192.168.20.1 rule 內部服務器規則_10(內部服務器規則_10為係統自動分配的NAT規則名稱),係統會將此配置與回滾文件中的配置進行比較,比較後發現兩者不一致,會提示用戶回滾失敗。這種情況下,相關的命令已下發成功,用戶無需處理。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置普通內部服務器。請至少選擇其中一項進行配置。
¡ 外網地址單一,未使用外網端口或外網端口單一。
nat server [ protocol pro-type ] global { global-address | current-interface | interface interface-type interface-number } [ global-port ] inside local-address [ local-port ] [ acl { ipv4-acl-number | name ipv4-acl-name } ] [ reversible ] [ rule rule-name ] [ disable ] [ counting ] [ description text ]
¡ 外網地址單一,外網端口連續。
nat server protocol pro-type global { global-address | current-interface | interface interface-type interface-number } global-port1 global-port2 inside { { local-address | local-address1 local-address2 } local-port | local-address local-port1 local-port2 } [ acl { ipv4-acl-number | name ipv4-acl-name } ] [ rule rule-name ] [ disable ] [ counting ] [ description text ]
¡ 外網地址連續,未使用外網端口。
nat server protocol pro-type global global-address1 global-address2 inside { local-address | local-address1 local-address2 } [ local-port ] [ acl { ipv4-acl-number | name ipv4-acl-name } ] [ rule rule-name ] [ disable ] [ counting ] [ description text ]
¡ 外網地址連續,外網端口單一。
nat server protocol pro-type global global-address1 global-address2 global-port inside { local-address [ local-port1 local-port2 ] | [ local-address | local-address1 local-address2 ] [ local-port ] } [ acl { ipv4-acl-number | name ipv4-acl-name } ] [ rule rule-name ] [ disable ] [ counting ] [ description text ]
一個接口下可以配置多個普通內部服務器。
(1) 進入係統視圖。
system-view
(2) 創建內部服務器組,並進入服務器組視圖。
nat server-group group-id
(3) 添加內部服務器組成員。
inside ip inside-ip port port-number [ weight weight-value ]
一個內部服務器組內可以添加多個組成員。
(4) 退回係統視圖。
quit
(5) 進入接口視圖。
interface interface-type interface-number
(6) 配置負載分擔內部服務器。
nat server protocol pro-type global { { global-address | current-interface | interface interface-type interface-number } { global-port | global-port1 global-port2 } | global-address1 global-address2 global-port } inside server-group group-id [ acl { ipv4-acl-number | name ipv4-acl-name } ] [ rule rule-name ] [ disable ] [ counting ] [ description text ]
一個接口下可以配置多個負載分擔內部服務器。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置基於ACL的內部服務器。
nat server global { ipv4-acl-number | name ipv4-acl-name } inside local-address [ local-port ] [ rule rule-name ] [ priority priority ] [ disable ] [ counting ] [ description text ]
一個接口下可以配置多個基於ACL的內部服務器。
(4) (可選)調整基於ACL內部服務器NAT規則的匹配優先級。
nat server rule move nat-rule-name1 { after | before } nat-rule-name2
NAT444是出方向地址轉換,通常配置在外網側接口上。通過在NAT444網關設備上配置NAT444地址轉換,可以實現基於端口塊的公網IP地址複用,使一個私網IP地址在一個時間段內獨占一個公網IP地址的某個端口塊。
對於NAT444端口動態映射,必須在NAT地址組中配置端口塊參數,以實現基於端口塊的NAT444地址轉換。
(1) 進入係統視圖。
system-view
(2) 創建NAT端口塊組,並進入NAT端口塊組視圖。
nat port-block-group group-id
(3) 添加私網地址成員。
local-ip-address start-address end-address
一個端口塊組內,可以配置多個私網地址成員,但各私網地址成員之間的IP地址不能重疊。
(4) 添加公網地址成員。
global-ip-pool start-address end-address
一個端口塊組內,可以配置多個公網地址成員,但各公網地址成員之間的IP地址不能重疊。
(5) 配置公網地址的端口範圍。
port-range start-port-number end-port-number
缺省情況下,公網地址的端口範圍為1~65535。
(6) 配置端口塊大小。
block-size block-size
缺省情況下,端口塊大小為256。
(7) 退回係統視圖。
quit
(8) 進入接口視圖。
interface interface-type interface-number
(9) 配置NAT444端口塊靜態映射。
nat outbound port-block-group group-id [ rule rule-name ] [ counting ]
缺省情況下,不存在NAT444端口塊靜態映射配置。
一個接口下可配置多條基於不同端口塊組的NAT444端口塊靜態映射。
(10) (可選)配置PAT方式出方向動態地址轉換的模式。
a. 退回係統視圖。
quit
b. 配置PAT方式出方向動態地址轉換的模式。
nat mapping-behavior endpoint-independent [ acl { ipv4-acl-number | name ipv4-acl-name } ]
缺省情況下,PAT方式出方向動態地址轉換的模式為Address and Port-Dependent Mapping。
僅能通過添加一個或多個IP地址段的方式向NAT地址組中添加地址成員。
(1) 進入係統視圖。
system-view
(2) (可選)配置PAT方式地址轉換的模式。
nat mapping-behavior endpoint-independent [ acl { ipv4-acl-number | name ipv4-acl-name } ]
缺省情況下,PAT方式出方向動態地址轉換的模式為Address and Port-Dependent Mapping。
(3) 創建NAT地址組,並進入NAT地址組視圖。
nat address-group group-id [ name group-name ]
(4) 添加地址成員。
¡ 將IP地址段作為NAT地址組中的地址成員。
address start-address end-address
可通過多次執行本命令添加多個地址組成員。
當前地址組成員的IP地址段不能與該地址組中或者其它地址組中已有的地址成員組成員
重疊。
¡ 將接口的IP地址作為NAT地址組中的地址成員,即實現Easy IP功能。
address interface interface-type interface-number
缺省情況下,未指定接口地址作為地址成員。本命令的支持情況請參考命令手冊中對應的描述信息。
在同一個NAT地址組中,通過本命令隻能將一個接口的地址作為地址成員。
(5) (可選)配置端口範圍。
port-range start-port-number end-port-number
缺省情況下,端口範圍為1~65535。
該配置僅對PAT方式地址轉換生效。
(6) 配置端口塊參數。
port-block block-size block-size [ extended-block-number extended-block-number ]
該配置僅對PAT方式地址轉換生效。
(7) 退回係統視圖。
quit
(8) 進入接口視圖。
interface interface-type interface-number
(9) 配置PAT方式出方向動態地址轉換。
nat outbound [ ipv4-acl-number | name ipv4-acl-name ] [ address-group { group-id | name group-name } ] [ port-preserved ] [ rule rule-name ] [ priority priority ] [ disable ] [ counting ] [ description text ]
port-preserved參數對NAT444端口塊動態映射無效。
在已配置NAT444端口塊動態映射的情況下,當同一個源IP地址的報文從不同出接口進行NAT地址轉換時,可能會分配到不同的端口塊。如果需要使同一個源IP地址分配到相同的端口塊,請開啟端口塊全局共享功能。
(1) 進入係統視圖。
system-view
(2) 配置NAT444端口塊全局共享功能。
nat port-block global-share enable
缺省情況下,端口塊全局共享功能處於關閉狀態。
NAT hairpin功能用於滿足位於內網側的用戶之間或用戶與服務器之間通過NAT地址進行訪問的需求。開啟NAT hairpin的內網側接口上會對報文同時進行源地址和目的地址的轉換。
NAT hairpin功能需要與地址轉換配合工作,支持如下兩種不同的配合方式:
· NAT hairpin功能與內部服務器(nat server)、出方向動態地址轉換(nat outbound)配合工作。
· NAT hairpin功能與內部服務器(nat server)、出方向靜態地址轉換(nat static outbound)配合工作。
NAT hairpin與不同的地址轉換配合工作時,這些配置所在的接口必須在同一個接口板,否則NAT hairpin功能無法正常工作。
NAT hairpin功能與內部服務器配合工作時,僅支持與通過如下方式配置的內部服務器配合使用,並且使用如下方式配置內部服務器時,必須通過protocol參數指定協議類型,否則NAT hairpin功能不生效。
P2P方式下,外網側的出方向地址轉換必須配置為PAT轉換方式,並開啟EIM模式。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 開啟NAT hairpin功能。
nat hairpin enable
缺省情況下,NAT hairpin功能處於關閉狀態。
ALG(Application Level Gateway,應用層網關)主要完成對應用層報文的解析和處理。通常情況下,NAT隻對報文頭中的IP地址和端口信息進行轉換,不對應用層數據載荷中的字段進行分析和處理。然而對於一些應用層協議,它們的報文的數據載荷中可能包含IP地址或端口信息,這些載荷信息也必須進行有效的轉換,否則可能導致功能不正常。例如,FTP應用由數據連接和控製連接共同完成,而數據連接使用的地址和端口由控製連接協商報文中的載荷信息決定,這就需要ALG利用NAT的相關轉換配置來完成載荷信息的轉換,以保證後續數據連接的正確建立。
(1) 進入係統視圖。
system-view
(2) 開啟指定或所有協議類型的NAT ALG功能。
nat alg { all | dns | ftp | h323 | icmp-error | ils | mgcp | nbt | pptp | rsh | rtsp | sccp | sctp | sip | sqlnet | tftp | xdmcp }
缺省情況下,DNS、FTP、ICMP差錯報文、PPTP、RTSP協議類型的NAT ALG功能處於開啟狀態,其他協議類型的NAT ALG功能處於關閉狀態。
NAT DNS mapping功能適用於DNS服務器在公網、私網用戶希望通過域名來訪問內部服務器的場景中。在該場景中,NAT設備對來自外網的DNS響應報文進行DNS ALG處理時,借助DNS mapping映射關係精確匹配內部服務器配置,進而獲取內部服務器的內網IP地址。具體機製如下:
(1) NAT設備收到來自外網的DNS響應報文時,獲取內網服務器域名和外網IP地址的對應關係。
(2) NAT設備根據域名和應用服務器外網IP地址的對應關係查找NAT DNS mapping映射表,獲取“內部服務器域名<-->外網IP地址+外網端口號+協議類型”的映射關係。
(3) NAT設備根據“內部服務器域名<-->外網IP地址+外網端口號+協議類型”的映射關係匹配內部服務器配置,獲取內部服務器的內網IP地址,並進行地址轉換。
(4) NAT設備將地址轉換後的DNS響應報文發送給內網用戶。
DNS mapping功能需要和內部服務器配合使用,由nat server配置定義內部服務器對外提供服務的外網IP地址和端口號,由DNS mapping建立“內部服務器域名<-->外網IP地址+外網端口號+協議類型”的映射關係。
(1) 進入係統視圖。
system-view
(2) 開啟DNS協議類型的NAT ALG功能。
nat alg dns
缺省情況下,DNS協議類型的NAT ALG功能處於開啟狀態。
(3) 配置一條域名到內部服務器的映射。
nat dns-map domain domain-name protocol pro-type { interface interface-type interface-number | ip global-ip } port global-port
可配置多條域名到內部服務器的映射。
缺省情況下,NAT設備對ICMP報文的地址轉換失敗時,不會發送ICMP差錯報文,從而導致使用ICMP協議報文的應用無法感知此事件。開啟本功能後,NAT設備對ICMP報文地址轉換失敗時,會發送ICMP差錯報文,使用ICMP協議報文的應用根據收到的ICMP差錯報文發現和定位問題。
(1) 進入係統視圖。
system-view
(2) 開啟設備NAT轉換失敗發送ICMP差錯報文功能。
nat icmp-error reply
缺省情況下,NAT轉換失敗時,設備不發送ICMP差錯報文。
NAT會話日誌是為了滿足網絡管理員安全審計的需要,對NAT會話(報文經過設備時,源或目的信息被NAT進行過轉換的連接)信息進行的記錄,包括IP地址及端口的轉換信息、用戶的訪問信息以及用戶的網絡流量信息。
有三種情況可以觸發設備生成NAT會話日誌:
· 新建NAT會話。
· 刪除NAT會話。新增高優先級的配置、刪除配置、報文匹配規則變更、NAT會話老化以及執行刪除NAT會話的命令時,都可能導致NAT會話被刪除。
· 存在NAT活躍流。NAT活躍流是指在一定時間內存在的NAT會話。當設置的生成活躍流日誌的時間間隔到達時,當前存在的NAT會話信息就被記錄並生成日誌。
(1) 進入係統視圖。
system-view
(2) 開啟NAT日誌功能。
nat log enable [ acl { ipv4-acl-number | name ipv4-acl-name } ]
缺省情況下,NAT日誌功能處於關閉狀態。
(3) 開啟NAT相關日誌功能。請至少選擇其中一項進行配置。
¡ 開啟NAT新建會話的日誌功能。
nat log flow-begin
¡ 開啟NAT刪除會話的日誌功能。
nat log flow-end
¡ 開啟NAT活躍流的日誌功能,並設置生成活躍流日誌的時間間隔。
nat log flow-active time-value
缺省情況下,創建、刪除NAT會話或存在NAT活躍流時,均不生成NAT日誌。
NAT444用戶日誌是為了滿足互聯網用戶溯源的需要,在NAT444地址轉換中,對每個用戶的私網IP地址進行端口塊分配或回收時,都會輸出一條基於用戶的日誌,記錄私網IP地址和端口塊的映射關係。在進行用戶溯源時,隻需根據報文的公網IP地址和端口找到對應的端口塊分配日誌信息,即可確定私網IP地址。
有兩種情況可以觸發設備輸出NAT444用戶日誌:
· 端口塊分配:端口塊靜態映射方式下,在某私網IP地址的第一個新建連接通過端口塊進行地址轉換時輸出日誌;端口塊動態映射方式下,在為某私網IP地址分配端口塊或增量端口塊時輸出日誌。
· 端口塊回收:端口塊靜態映射方式下,在某私網IP地址的最後一個連接拆除時輸出日誌;端口塊動態映射方式下,在釋放端口塊資源(並刪除端口塊表項)時輸出日誌。
在配置NAT444用戶日誌功能前,必須先配置將用戶定製日誌發送到日誌主機的功能,否則無法產生NAT444用戶日誌。詳細配置請參見“設備管理配置指導”中的“信息中心”。
(1) 進入係統視圖。
system-view
(2) 開啟NAT日誌功能。
nat log enable [ acl { ipv4-acl-number | name ipv4-acl-name } ]
缺省情況下,NAT日誌功能處於關閉狀態。
ACL參數對NAT444用戶日誌功能無效。
(3) 開啟端口塊用戶日誌功能。請至少選擇其中一項進行配置。
¡ 開啟端口塊分配的NAT444用戶日誌功能。
nat log port-block-assign
¡ 開啟端口塊回收的NAT444用戶日誌功能。
nat log port-block-withdraw
缺省情況下,分配和回收端口塊時,均不輸出NAT444用戶日誌。
在NAT地址轉換中,如果可為用戶分配的NAT資源用盡,後續連接由於沒有可用的資源無法對其進行地址轉換,相應的報文將被丟棄。本命令用來在NAT資源用盡時輸出告警日誌。在NO-PAT動態映射中,NAT資源是指公網IP地址;在EIM模式的PAT動態映射中,NAT資源是指公網IP地址和端口;在NAT444地址轉換中,NAT資源是指公網IP、端口塊和端口塊中的端口。
NAT444端口塊動態映射方式中,當端口塊分配失敗時,係統會輸出日誌信息。
NAT444端口塊動態映射方式中,當端口塊中的端口資源都用盡但還是無法滿足用戶的地址轉換需求時,係統會輸出日誌信息。
隻有開啟NAT日誌功能(通過nat log enable命令)之後,NAT告警信息日誌功能才能生效。
在配置NAT告警信息日誌功能前,必須先配置將用戶定製日誌發送到日誌主機的功能,否則無法產生NAT告警信息日誌。詳細配置請參見“設備管理配置指導”中的“信息中心”。
(1) 進入係統視圖。
system-view
(2) 開啟NAT日誌功能。
nat log enable [ acl { ipv4-acl-number | name ipv4-acl-name } ]
缺省情況下,NAT日誌功能處於關閉狀態。
ACL參數對NAT告警信息日誌功能無效。
(3) 開啟NAT告警信息的日誌功能。
nat log alarm
缺省情況下,NAT告警信息日誌功能處於關閉狀態。
NAT資源用盡時,係統會輸出告警日誌。
(4) (可選)配置動態NAT444端口塊使用率的閾值。
nat log port-block usage threshold threshold-value
缺省情況下,動態NAT444的端口塊使用率的閾值為90%。
創建動態端口塊表項時,若端口塊的使用率大於閾值,係統會輸出告警日誌。
在入方向動態地址轉換功能與隧道功能配合使用的組網環境中,若多個隧道接口引用同一個NAT地址組,則設備會將來自不同隧道的報文的源IP地址轉換為相同的NAT地址,並從設備的出接口轉發出去。缺省情況下,設備出接口收到反向報文後,不會查詢NAT會話表項,這將導致反向報文不能正確轉發。為解決此問題,可在設備的出接口開啟反向報文的重定向功能,使出接口收到反向報文後查詢NAT會話表項,根據NAT會話表項記錄的信息將反向報文的目的IP地址進行NAT地址轉換,從而使反向報文通過接收正向報文的隧道發送出去。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 開啟反向報文的重定向功能。
nat redirect reply-route enable
缺省情況下,反向報文的重定向功能處於關閉狀態。
在PAT方式的動態地址轉換(即接口上配置了nat inbound或nat outbound命令)組網環境中,若服務器上同時開啟了tcp_timestams和tcp_tw_recycle功能,則Client與Server之間可能會出現無法建立TCP連接的現象。
為了解決以上問題,可在服務器上關閉tcp_tw_recycle功能或在設備上開啟對TCP SYN和SYN ACK報文中時間戳的刪除功能。
(1) 進入係統視圖。
system-view
(2) 開啟對TCP SYN和SYN ACK報文中時間戳的刪除功能。
nat timestamp delete
缺省情況下,不對TCP SYN和SYN ACK報文中的時間戳進行刪除。
在完成上述配置後,在任意視圖下執行display命令可以顯示NAT配置後的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下,執行reset命令可以清除NAT表項。
表2-1 NAT顯示和維護
操作 |
命令 |
顯示NAT ALG功能的開啟狀態 |
display nat alg |
顯示所有的NAT配置信息 |
display nat all |
顯示NAT地址組的配置信息 |
display nat address-group [ group-id ] |
顯示NAT DNS mapping的配置信息 |
display nat dns-map |
顯示NAT EIM表項信息 |
display nat eim |
顯示NAT入接口動態地址轉換關係的配置信息 |
display nat inbound |
顯示NAT日誌功能的配置信息 |
display nat log |
顯示NAT NO-PAT表項信息 |
display nat no-pat |
顯示NAT出接口動態地址轉換關係的配置信息 |
display nat outbound |
顯示NAT內部服務器的配置信息 |
display nat server |
顯示NAT內部服務器組的配置信息 |
display nat server-group [ group-id ] |
顯示NAT會話 |
display nat session [ [ responder ] { source-ip source-ip | destination-ip destination-ip } * ] [ verbose ] |
顯示NAT靜態地址轉換的配置信息 |
display nat static |
顯示NAT統計信息 |
display nat statistics [ summary ] |
顯示NAT444端口塊靜態映射的配置信息 |
display nat outbound port-block-group |
顯示NAT端口塊組配置信息 |
display nat port-block-group [ group-id ] |
顯示端口塊表項 |
display nat port-block { dynamic [ address-group { group-id | name group-name } ] [ ds-lite-b4 ] | static [ port-block-group group-id ] } |
顯示動態NAT444地址組中端口塊的使用率 |
display nat port-block-usage [ address-group group-id ] |
清除NAT轉換計數信息 |
reset nat count statistics { all | dynamic | server | static | static-port-block } |
刪除NAT會話 |
reset nat session |
內部網絡用戶10.110.10.8/24使用外網地址202.38.1.100訪問Internet。
圖2-1 靜態地址轉換典型配置組網圖
# 按照組網圖配置各接口的IP地址,具體配置過程略。
# 配置內網IP地址10.110.10.8到外網地址202.38.1.100之間的一對一靜態地址轉換映射。
<AC> system-view
[AC] nat static outbound 10.110.10.8 202.38.1.100
# 使配置的靜態地址轉換在接口Vlan-interface20上生效。
[AC] interface vlan-interface 20
[AC-Vlan-interface20] nat static enable
# 以上配置完成後,內網主機可以訪問外網服務器。通過查看如下顯示信息,可以驗證以上配置成功。
[AC] display nat static
Static NAT mappings:
Totally 1 outbound static NAT mappings.
IP-to-IP:
Local IP : 10.110.10.8
Global IP : 202.38.1.100
Config status: Active
Interfaces enabled with static NAT:
Totally 1 interfaces enabled with static NAT.
Interface: Vlan-interface20
Config status: Active
# 通過以下顯示命令,可以看到Client訪問某外網服務器時生成NAT會話信息。
[AC] display nat session verbose
Initiator:
Source IP/port: 10.110.10.8/42496
Destination IP/port: 202.38.1.111/2048
DS-Lite tunnel peer: -
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: ICMP(1)
Inbound interface: Vlan-interface10
Responder:
Source IP/port: 202.38.1.111/42496
Destination IP/port: 202.38.1.100/0
DS-Lite tunnel peer: -
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: ICMP(1)
Inbound interface: Vlan-interface20
State: ICMP_REPLY
Application: INVALID
Start time: 2012-08-16 09:30:49 TTL: 27s
Initiator->Responder: 5 packets 420 bytes
Responder->Initiator: 5 packets 420 bytes
Total sessions found: 1
· 某公司內網使用的IP地址為192.168.0.0/16。
· 該公司擁有202.38.1.2和202.38.1.3兩個外網IP地址。
· 需要實現,內部網絡中192.168.1.0/24網段的用戶可以訪問Internet,其它網段的用戶不能訪問Internet。使用的外網地址為202.38.1.2和202.38.1.3。
圖2-2 內網用戶通過NAT訪問外網
# 按照組網圖配置各接口的IP地址,具體配置過程略。
# 配置地址組0,包含兩個外網地址202.38.1.2和202.38.1.3。
<AC> system-view
[AC] nat address-group 0
[AC-address-group-0] address 202.38.1.2 202.38.1.3
[AC-address-group-0] quit
# 配置ACL 2000,僅允許對內部網絡中192.168.1.0/24網段的用戶報文進行地址轉換。
[AC] acl basic 2000
[AC-acl-ipv4-basic-2000] rule permit source 192.168.1.0 0.0.0.255
[AC-acl-ipv4-basic-2000] quit
# 在接口Vlan-interface20上配置出方向動態地址轉換,允許使用地址組0中的地址對匹配ACL 2000的報文進行源地址轉換,並在轉換過程中使用端口信息。
[AC] interface vlan-interface 20
[AC-Vlan-interface20] nat outbound 2000 address-group 0
以上配置完成後,Client A能夠訪問WWW server,Client B無法訪問WWW server。通過查看如下顯示信息,可以驗證以上配置成功。
[AC] display nat all
NAT address group information:
Totally 1 NAT address groups.
Address group ID: 0
Port range: 1-65535
Address information:
Start address End address
202.38.1.2 202.38.1.3
NAT outbound information:
Totally 1 NAT outbound rules.
Interface: Vlan-interface20
ACL: 2000
Address group: 0
Port-preserved: N NO-PAT: N Reversible: N
Config status: Active
NAT logging:
Log enable : Disabled
Flow-begin : Disabled
Flow-end : Disabled
Flow-active : Disabled
Port-block-assign : Disabled
Port-block-withdraw : Disabled
Alarm : Disabled
NO-PAT IP usage : Disabled
NAT mapping behavior:
Mapping mode : Address and Port-Dependent
ACL : ---
Config status: Active
NAT ALG:
DNS : Enabled
FTP : Disabled
H323 : Disabled
ICMP-ERROR : Enabled
ILS : Disabled
MGCP : Disabled
NBT : Disabled
PPTP : Enabled
RTSP : Enabled
RSH : Disabled
SCCP : Disabled
SIP : Disabled
SQLNET : Disabled
TFTP : Disabled
XDMCP : Disabled
# 通過以下顯示命令,可以看到Client A訪問WWW server時生成NAT會話信息。
[AC] display nat session verbose
Initiator:
Source IP/port: 192.168.1.10/52992
Destination IP/port: 200.1.1.10/2048
DS-Lite tunnel peer: -
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: ICMP(1)
Inbound interface: Vlan-interface10
Responder:
Source IP/port: 200.1.1.10/4
Destination IP/port: 202.38.1.3/0
DS-Lite tunnel peer: -
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: ICMP(1)
Inbound interface: Vlan-interface20
State: ICMP_REPLY
Application: INVALID
Start time: 2012-08-15 14:53:29 TTL: 12s
Initiator->Responder: 1 packets 84 bytes
Responder->Initiator: 1 packets 84 bytes
Total sessions found: 1
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!