<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > 通過路由器NAT來實現(xiàn)IP地址綁定多臺應用服務器

          通過路由器NAT來實現(xiàn)IP地址綁定多臺應用服務器

          作者: 時間:2010-07-05 來源:網絡 收藏

          假設現(xiàn)在企業(yè)內部有文件服務器、OA服務器、郵件服務器等等。而企業(yè)還希望這些服務器能夠被外部網絡的用戶訪問。如企業(yè)可能在異地有一個銷售辦事處,或者有些員工經常需要出差。為了方便他們的工作,就需要允許這些員工來訪問企業(yè)內部的這些器。但是現(xiàn)實情況是,大部分企業(yè)可能僅僅擁有一個到連個合法的。而需要讓外部用戶能夠訪問企業(yè)內部的器,首要的一個條件就是企業(yè)有足夠多數(shù)量的合法。筆者這里要給大家介紹的是,如何自帶功能,來一個合法同時器。
          一、選擇合適的類型
          ,又叫做網絡地址類型轉換,其主要有三種類型,分別為靜態(tài)NAT、動態(tài)NAT與端口地址映射。這里需要注意,這三種類型之間有很大的差異。網絡管理員在使用這個技術的時候,必須要了解它們之間的差異,然后結合企業(yè)的實際情況,選擇合適的手段。
          第一種類型是靜態(tài)網絡地址轉換。其主要的特點是一對一。也就是說,這種類型的網絡地址轉換是為了在本地和全球地址之間進行一對一的映射而設計的。這就要求網絡中的每一臺主機都有用一個真實的合法的IP地址。結合上面這個案例,如果企業(yè)內部三臺服務器都需要被外部用戶訪問的話,那么就需要至少三個IP地址。顯然這種方式并不能夠達到節(jié)省IP地址的目的。一般來說,靜態(tài)NAT主要的目的是為了隱藏企業(yè)內部服務器的IP地址,以達到保護服務器的目的。
          第二種類型是動態(tài)NAT。這種類型的網絡地址轉換是將一個企業(yè)內部的IP地址與一個合法的IP地址進行映射。雖然這也是一對一的關系,但是與靜態(tài)NAT有很大的差別。前者要求企業(yè)內部服務器也必須有一個公網IP地址。而動態(tài)NAT則沒有這個要求,即企業(yè)內部的服務器可以采用內部地址。不過此時一個公網IP地址也只能夠解決一臺內部服務器的訪問問題。這與我們上面提到的需求還是有一定的差異。
          第三種類型是端口地址映射。端口地址映射在動態(tài)NAT上又進了一步。簡單的說,其工作模式就是多對對一??梢詫⒍鄠€內部IP地址(內網地址)對應到一個公網IP地址。具體的說,就是內網地址+端口號與公網地址進行對應。采用這個端口地址映射,那么企業(yè)網絡管理員就可以將企業(yè)內部的應用服務器(即使其不具有合法的公網地址)放置到外網上,供外網用戶訪問。
          可見在NAT網絡地址轉換的過程中,了解這三種不同的工作模式,然后結合企業(yè)的實際情況,來選擇合適的實現(xiàn)方式,這是最關鍵的內容。一般來說,如果企業(yè)有足夠多的公網地址,而只是出于安全考慮,要隱藏內部服務其,則采用靜態(tài)的NAT為好。相反,如果企業(yè)有服務器,而合法的IP地址又不夠用。在這種情況下,就需要采用端口地址映射,將多個內部IP地址端口這個參數(shù)對應到公網IP地址。
          二、端口NAT的配置
          對于NAT技術來說,其實配置是其中最簡單的一個環(huán)節(jié)。筆者一般將NAT分為四個部分,分別是設計、配置、驗證和排錯。其中設計的關鍵就是上面提到的“選擇合適的NAT類型”。而配置就是具體實現(xiàn)的配置。這里主要用的命令是IP NAT 相關的命令。其主要的工作就是將內部服務器所采用的地址與端口號與公網地址進行映射。由于配置相對來說比較簡單,為此筆者不做過多說明。筆者要將重點放在后續(xù)的驗證和排錯環(huán)節(jié)上。

          本文引用地址:http://www.ex-cimer.com/article/157321.htm

          三、NAT配置的驗證
          NAT網絡地址轉換配置好之后,需要對相關的配置進行驗證。而不是等到用戶來反映問題,無法正常訪問時,你再去驗證。在思科網絡環(huán)境中,要驗證NAT配置的有效性,主要用到了兩個命令。
          一是查看相關的配置信息。在查看消息的時候,重要是弄清楚方向。即哪些是內部主機,哪些是外部主機。有時候可能一組內部IP地址會對應一個公網IP地址,此時網絡管理員就會看到許多轉換是從不同的主機到相同目的主機之間的轉換。在端口地址轉換的模式下,可以根據IP地址的類型來判斷。一般情況下,企業(yè)內部服務器采用的IP地址都是私網IP地址,如192開頭的。如果要查看具體的配置信息,可以使用下面這個命令。
          Show ip nat translation
          二是判斷其連通性。也就是說,這個配置是否真的有效。此時網絡管理員可以采用debug ip nat命令來驗證NAT的配置。使用這個命令后,在輸出結果中會顯示發(fā)送端的IP地址、轉換目的地址、端口信息等內容。
          這兩個命令,可以基本判斷NAT的配置是否有問題。不過需要注意的是,這只能夠判斷出其配置是否有問題。而對于這個配置是否合理、在性能上是否需要優(yōu)化等等不能夠提供有效的信息。
          四、NAT故障的分析與排除
          在這一塊內容中筆者又將其分為兩部分。一部份是NAT本身的配置問題,另外一部分是NAT技術以外的問題導致的NAT應用故障。在實際工作中,我們可能更加的關注與后者。因為只要一開始NAT設計與配置合適,那么NAT本身不會出現(xiàn)多大的問題。
          對于NAT本身的配置問題,筆者認為網絡管理員只要注意以下五個規(guī)則。只要這個五個規(guī)則沒有問題,那么NAT本身的配置就是OK的。這個五個規(guī)則如下:
          一是訪問列表相關。在配置時需要確保訪問列表指定了正確的轉換地址。注意這個非常的重要。因為這個錯誤在后續(xù)排查中比較難發(fā)現(xiàn)。所以在設置時就需要采取相關的控制措施,來確保其能夠被合理的配置。
          二是檢查內部和外部的接口是否被正確的定義。其實NAT技術說到底,就是接口與接口之間的對接。如果接口對接時出現(xiàn)錯誤,那么信息流就無法正常流程。此時用戶就會無法正常訪問。這個接口定義中,關鍵的是端口參數(shù)是否有問題。如內部服務器使用的端口是5150端口,而配置時不小心輸入了515端口。此時就會有問題。另外一個需要注意的是,一般某個協(xié)議都會有默認端口,如FTP協(xié)議采用的是20與21端口。但是有時候出于安全考慮,網絡管理員往往會更改這個默認端口。此時就需要額外的檢查這個端口信息是否設置正確。
          三是地址池。在檢查這個地址池的時候,網絡管理員主要要關注兩方面的內容。一是動態(tài)地址池采用的IP第四行是否是由正確的地址范圍所構成的。二是需要檢查動態(tài)地址池中的地址是否有重復。只要以上兩條規(guī)則中一條規(guī)則出現(xiàn)問題,那么就有可能出現(xiàn)訪問故障。
          四是需要注意不同類型之間是否有沖突。如企業(yè)可能出于某種考慮,要同時啟用動態(tài)端口地址映射和靜態(tài)映射。此時就需要特別注意,被用來靜態(tài)映射的地址與動態(tài)地址池中的地址不能夠有重復。否則的話,就會導致比較嚴重的沖突。
          五是需要注意確認列表中該出現(xiàn)的地址沒有遺漏,不該出現(xiàn)大地址沒有被加入。這個原則可以說是對以上四個原則的一個總結。簡單的說,就是要保證相關IP地址的完整性與準確性。少一個不行,多一個更不行。
          通常情況下,在NAT配置中只要不違背以上任何一個規(guī)則,那么NAT本身的配置就沒有問題。此時如果用戶還無法正常訪問企業(yè)內部的應用服務器,那么就需要考慮其他的原因。如路由問題等等。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();