您好,登錄后才能下訂單哦!
這篇文章主要介紹“NAT技術怎么實現”,在日常操作中,相信很多人在NAT技術怎么實現問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”NAT技術怎么實現”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
NAT(Network Address Translation,網絡地址轉換)是將IP數據報文頭中的IP地址轉換為另一個IP地址的過程。在實際應用中,NAT主要用于實現私有網絡訪問公共網絡的功能。這種通過使用少量的公網IP地址代表較多的私網IP地址的方式,將有助于減緩可用IP地址空間的枯竭。
私網IP地址是指內部網絡或主機的IP地址,公網IP地址是指在因特網上全球唯一的IP地址。
RFC 1918為私有網絡預留出了三個IP地址塊,如下:
A類:10.0.0.0~10.255.255.255
B類:172.16.0.0~172.31.255.255
C類:192.168.0.0~192.168.255.255
(上述三個范圍內的地址不會在因特網上被分配,因此可以不必向ISP或注冊中心申請而在公司或企業內部自由使用。)
NAT最初的設計目的是用于實現私有網絡訪問公共網絡的功能,后擴展到實現任意兩個網絡間進行訪問時的地址轉換應用,本文中將這兩個網絡分別稱為內部網絡(內網)和外部網絡(外網),通常私網為內部網絡,公網為外部網絡。
圖1描述了一個基本的NAT應用。
圖1 地址轉換的基本過程
(1) 內網用戶主機(192.168.1.3)向外網服務器(1.1.1.2)發送的IP報文通過NAT設備。
(2) NAT設備查看報頭內容,發現該報文是發往外網的,將其源IP地址字段的私網地址192.168.1.3轉換成一個可在Internet上選路的公網地址20.1.1.1,并將該報文發送給外網服務器,同時在NAT設備的網絡地址轉換表中記錄這一映射。
(3) 外網服務器給內網用戶發送的應答報文(其初始目的IP地址為20.1.1.1)到達NAT設備后,NAT設備再次查看報頭內容,然后查找當前網絡地址轉換表的記錄,用內網私有地址192.168.1.3替換初始的目的IP地址。
上述的NAT過程對終端(如圖中的Host和Server)來說是透明的。對外網服務器而言,它認為內網用戶主機的IP地址就是20.1.1.1,并不知道有192.168.1.3這個地址。因此,NAT“隱藏”了企業的私有網絡。
地址轉換的優點在于,在為內部網絡主機提供了“隱私”保護的前提下,實現了內部網絡的主機通過該功能訪問外部網絡的資源。但它也有一些缺點:
l 由于需要對數據報文進行IP地址的轉換,涉及IP地址的數據報報文的報頭不能被加密。在應用協議中,如果報文中有地址或端口需要轉換,則報文不能被加密。例如,不能使用加密的FTP連接,否則FTP協議的port命令不能被正確轉換。
l 網絡調試變得更加困難。比如,某一臺內部網絡的主機試圖攻擊其它網絡,則很難指出究竟哪一臺主機是惡意的,因為主機的IP地址被屏蔽了。
在實際應用中,我們可能希望某些內部網絡的主機可以訪問外部網絡,而某些主機不允許訪問,即當NAT設備查看IP數據報文的報頭內容時,如果發現源IP地址屬于禁止訪問外部網絡的內部主機,它將不進行地址轉換。另外,也希望只有指定的公網地址才可用于地址轉換。
設備可以利用ACL(Access Control Limit,訪問控制列表)和地址池來對地址轉換進行控制。
l 訪問控制列表可以有效地控制地址轉換的使用范圍,只有滿足訪問控制列表規則的數據報文才可以進行地址轉換。
l 地址池是用于地址轉換的一些連續的公網IP地址的集合,它可以有效地控制公網地址的使用。用戶可根據自己擁有的合法IP地址數目、內部網絡主機數目以及實際應用情況,定義合適的地址池。在地址轉換的過程中,NAT設備將會從地址池中挑選一個IP地址做為數據報文轉換后的源IP地址。
從的地址轉換過程可見,當內部網絡訪問外部網絡時,地址轉換將會選擇一個合適的外部地址,來替代內部網絡數據報文的源地址。在圖1中是選擇NAT設備出接口的IP地址(公網IP地址)。這樣所有內部網絡的主機訪問外部網絡時,只能擁有一個外部網絡的IP地址,因此,這種情況同時只允許最多有一臺內部網絡主機訪問外部網絡。
當內部網絡的多臺主機并發的要求訪問外部網絡時,NAT也可實現對并發性請求的響應,允許NAT設備擁有多個公有IP地址。當第一個內網主機訪問外網時,NAT選擇一個公有地址IP1,在地址轉換表中添加記錄并發送數據報;當另一內網主機訪問外網時,NAT選擇另一個公有地址IP2,以此類推,從而滿足了多臺內網主機訪問外網的請求。
NAT設備擁有的公有IP地址數目要遠少于內部網絡的主機數目,因為所有內網主機并不會同時訪問外網。公有IP地址數目的確定,應根據網絡高峰期可能訪問外網的內網主機數目的統計值來確定。
NAPT(Network Address Port Translation,網絡地址端口轉換)是基本地址轉換的一種變形,它允許多個內部地址映射到同一個公有地址上,也可稱之為“多對一地址轉換”。
NAPT同時映射IP地址和端口號:來自不同內部地址的數據報文的源地址可以映射到同一外部地址,但它們的端口號被轉換為該地址的不同端口號,因而仍然能夠共享同一地址,也就是“私網IP地址+端口號”與“公網IP地址+端口號”之間的轉換。
圖2 NAPT基本原理示意圖
如圖2所示,三個帶有內部地址的數據報文到達NAT設備,其中報文1和報文2來自同一個內部地址但有不同的源端口號,報文1和報文3來自不同的內部地址但具有相同的源端口號。通過NAPT映射,四個數據報的源IP地址都被轉換到同一個外部地址,但每個數據報都被賦予了不同的源端口號,因而仍保留了報文之間的區別。當各報文的回應報文到達時,NAT設備仍能夠根據回應報文的目的IP地址和目的端口號來區別該報文應轉發到的內部主機。
采用NAPT可以更加充分地利用IP地址資源,實現更多內部網絡主機對外部網絡的同時訪問。
目前,NAPT支持兩種不同的地址轉換模式:
l Endpoint-Independent Mapping(不關心對端地址和端口轉換模式)
該模式下,NAT設備通過建立三元組(源地址、源端口號、協議類型)表項來進行地址分配和報文過濾。即,只要是來自相同源地址和源端口號的報文,不論其目的地址是否相同,通過NAPT映射后,其源地址和源端口號都被轉換為同一個外部地址和端口號,并且NAT設備允許外部網絡的主機通過該轉換后的地址和端口來訪問這些內部網絡的主機。這種模式可以很好得支持位于不同NAT設備之后的主機間進行互訪。
l Address and Port-Dependent Mapping(關心對端地址和端口轉換模式)
該模式下,NAT設備通過建立五元組(源地址、源端口號、協議類型、目的地址、目的端口號)表項為依據進行地址分配和報文過濾。即,對于來自相同源地址和源端口號的報文,若其目的地址和目的端口號不同,通過NAPT映射后,相同的源地址和源端口號將被轉換為不同的外部地址和端口號,并且NAT設備只允許這些目的地址對應的外部網絡的主機才可以通過該轉換后的地址和端口來訪問這些內部網絡的主機。這種模式安全性好,但是不便于位于不同NAT設備之后的主機間進行互訪。
NAT隱藏了內部網絡的結構,具有“屏蔽”內部主機的作用,但是在實際應用中,可能需要給外部網絡提供一個訪問內網主機的機會,如給外部網絡提供一臺Web服務器,或是一臺FTP服務器。
NAT設備提供的內部服務器功能,就是通過靜態配置“公網IP地址+端口號”與“私網IP地址+端口號”間的映射關系,實現公網IP地址到私網IP地址的“反向”轉換。例如,可以將20.1.1.1:8080配置為內網某Web服務器的外部網絡地址和端口號供外部網絡訪問。
如圖3所示,外部網絡用戶訪問內部網絡服務器的數據報文經過NAT設備時,NAT設備根據報文的目的地址查找地址轉換表項,將訪問內部服務器的請求報文的目的IP地址和端口號轉換成內部服務器的私有IP地址和端口號。當內部服務器回應該報文時,NAT設備再根據已有的地址映射關系將回應報文的源IP地址和端口號轉換成公網IP地址和端口號。
圖3 內部服務器基本原理示意圖
本特性的支持情況與設備的型號有關,請以設備的實際情況為準。
一般情況下,DNS服務器和訪問私網服務器的用戶都在公網,通過在NAT設備的公網接口上配置內部服務器,可以將公網地址、端口等信息映射到私網內的服務器上,使得公網用戶可以通過內部服務器的域名或公網地址來訪問內部服務器。但是,如圖4所示,如果DNS服務器在公網,私網用戶希望通過域名來訪問私網的Web服務器,則會由于DNS服務器向私網用戶發送的響應報文中包含的是私網服務器的公網地址,而導致收到響應報文的私網用戶無法利用域名訪問私網服務器。通過在設備上配置DNS mapping可以解決該問題。
圖4 NAT DNS mapping工作示意圖
DNS mapping功能是指,通過配置“域名+公網IP地址+公網端口號+協議類型”的映射表,建立內部服務器域名與內部服務器公網信息的對應關系。在配置了NAT的接口上,設備檢查接收到的DNS響應報文,根據報文中的域名查找用戶配置的DNS mapping映射表,并根據表項內的“公網地址+公網端口+協議類型”信息查找內部服務器地址映射表中該信息對應的私網地址,替換DNS查詢結果中的公網地址。這樣,私網用戶收到的DNS響應報文中就包含了要訪問的內部服務器的私網地址,也就能夠使用內部服務器域名訪問同一私網內的內部服務器。
Easy IP功能是指進行地址轉換時,直接使用接口的外網IP地址作為轉換后的源地址,能夠最大程度的節省IP地址資源。它也可以利用訪問控制列表控制哪些內部地址可以進行地址轉換。
NAT不僅實現了一般的地址轉換功能,同時提供了完善的地址轉換ALG (Application Layer Gateway,應用級網關)機制,使其可以支持一些特殊的應用協議,而不需要對NAT平臺進行任何的修改,具有良好的可擴充性。這些特殊協議的報文載荷里攜帶了地址或端口信息,該信息也可能需要進行地址轉換。
可支持的特殊協議包括:FTP(File Transfer Protocol,文件傳輸協議)、PPTP(Point-to-Point Tunneling Protocol,點到點隧道協議)、ICMP(Internet Control Message Protocol,因特網控制消息協議)、DNS(Domain Name System,域名系統)、ILS(Internet Locator Service,Internet定位服務)、RTSP(Real Time Streaming Protocol,實時流協議)、H.323、SIP(Session Initiation Protocol,會話發起協議)、NetMeeting 3.01、NBT(NetBIOS over TCP/IP,基于TCP/IP的網絡基本輸入輸出系統)等。
NAT特殊協議的可支持情況與設備的型號有關,請以設備的實際情況為準。
NAT多實例允許分屬于不同MPLS VPN的用戶通過同一個出口訪問外部網絡,同時允許分屬于不同MPLS VPN的用戶使用相同的私網地址。當MPLS VPN用戶訪問外部網絡時,地址轉換將內部網絡主機的IP地址和端口替換為設備的外部網絡地址和端口,同時還記錄了用戶的MPLS VPN信息(如協議類型和路由標識符RD等)。回應報文到達時,地址轉換將外部網絡地址和端口還原為內部網絡主機的IP地址和端口,同時可得知是哪一個MPLS VPN用戶的訪問。
同時,地址轉換支持內部服務器的多實例,給外部提供訪問MPLS VPN內主機的機會。例如,MPLS VPN1內提供Web服務的主機地址是10.110.1.1,可以使用202.110.10.20作為Web服務器的外部地址,Internet的用戶使用202.110.10.20的地址就可以訪問到MPLS VPN1提供的Web服務。
另外,NAT還可利用外部網絡地址所攜帶的MPLS VPN信息,支持多個MPLS VPN之間的互訪。該特性的支持情況與設備的型號有關,請以設備的實際情況為準。
NAT日志是NAT設備在進行NAT轉換時生成的一種系統信息。該信息包括報文的源IP地址、源端口、目的IP地址、目的端口、轉換后的源IP地址、轉換后的源端口以及用戶執行的操作等。它只用于記錄內網用戶訪問外部網絡的情況,不記錄外部用戶對內網服務器的訪問。
內網用戶通過NAT設備訪問外部網絡時,多個用戶共用一個外網地址,從而無法定位訪問網絡的用戶。利用日志功能可以實時跟蹤、記錄內網用戶訪問外部網絡的情況,增強網絡的安全性。
到此,關于“NAT技術怎么實現”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。