企業網絡管理寶典之NAT設置入門
NAT有四種類型:
1.靜態NAT(StaticNAT)。靜態NAT設置起來最為簡單,內部網絡中的每個主機都被***映射成外部網絡中的某個合法地址,這類NAT在很多內部火墻規劃中均有應用。
2.NAT池(PooledNAT,也稱動態NAT),所謂動態NAT,即NAT后的地址不是固定的,是從一個IP池中動態分配取出的。
3.復用轉換(OverloadingNAT,也稱PAT)。PAT是大家接觸最多的NAT應用了。在動態轉換中,每個合法的IP地址只能在轉換表中使用一次,在內部網絡主機訪問外部需求增多的情況下,合法地址列表中的IP地址很快就會不夠用,這時可以利用上層協議標識,例如利用傳輸層TCP/UDP的端口號字段來協助建立NAT轉換表項。
4.重疊轉換(OverlappingNAT)。內部網使用的地址跟外部網重疊,這時需要把跟外部重疊的IP地址進行變換,這種轉換一般應用在轉換兩端的私有網絡地址相同的情況下。
今天筆者以一個企業的網絡項目為例,帶領大家進入企業網絡管理的世界。在這個項目里,有絕大部分讀者都耳熟能詳的網絡技術名詞——NAT(網絡地址轉換)。那么NAT究竟有什么作用,在企業級應用中能實現怎樣的功能呢?
圖1:NAT服務的常見模式。
沒錯,這的確是NAT技術在企業中較為常見的應用之一,我們稱其為PAT。在小型SOHO公司里,PAT的應用十分廣泛,但NAT的應用絕不僅限于此,特別是在中大型企業的網絡規劃中,NAT的合理設計常常可以解決很多不必要的麻煩。
下面我們來接觸一個在企業應用中具有代表性的案例。這個案例中NAT起到了十分關鍵的作用。
典型案例分析
企業A因業務需要和企業B拉設市區SDH專線,以便訪問企業B后端的服務器C,而企業A的總公司D(企業A和總公司D通過SDH專線進行跨省網絡連接,這也是目前絕大部分全國性企事業單位的網絡連接方式)的后臺服務器也要和服務器C進行數據校驗確認,企業A和企業B按照各自的安全等級保護標準,都對SDH兩端設置了比較嚴密的安全措施,均不想讓對方了解自己公司內部的拓撲和IP地址。企業B提供了一個已經經過源地址NAT后的IP地址(196.1.1.10)供企業A遠程調用,企業A和B網絡連接如圖
圖2
看上去這樣的需求似乎很簡單,企業A的信息技術人員在本方路由器上進行路由的設定,將去往196.1.1.10的數據包甩給下一跳網關10.1.1.2,總公司端也設置了到196.1.1.10的路由條目以供數據校驗,測試數據一切正常。
在正常使用了一段時間以后,企業B的信息技術人員發現還有其它合作企業采用了和企業A一樣的內網IP段,這樣他們在寫回程路由時就無法指定下一條。比如企業E也有和企業A一樣的內網架構和IP地址規劃,而且也是采用同樣的網絡接口配置和企業B互聯,就會出現這種情況:有一個源地址同為9.9.12.10的數據包分別從企業A和企業E送往服務器C,而企業B在往回送數據包的時候不知道該把這個包回給企業A還是E。為了解決這個問題,企業B給與其有SDH專線業務的單位A和E(也許更多)發了一個通知,聲明他們只會把數據包扔給SDH專線互聯的另一端,即接口地址(以企業A為例,即是圖3中的10.1.1.1),要求對方自行進行NAT設置。
圖3注:為了講解方便,拓撲中略去了一些網絡設備(如防火墻,IDS,交換機等)。
于是企業A的信息技術人員在本端路由器的S2/0口上進行了如下設置(CLI命令行以H3C的設備為例,僅供參考),
interfaceSerial2/0
link-protocolppp
fe1unframed
ipaddress10.1.1.1255.255.255.252
natoutbound2000
在S2/0接口上設定了一個ACL列表,ACL列表的號為2000,要將這個ACL列表中的所有地址進行NAT轉換(ACL列表的配置略去,ACL列表中即為所有需要訪問對方的源IP地址),應用在此接口的意思就是NAT后的源地址為此接口地址,這樣就符合企業B提出的要求了。
穩定運行了一段時間以后,企業A又接到總公司信息技術部領導的電話,說是最近要調整全網的IP地址,對那些不規范的地址進行整理。詢問原因,得知是因為其它省公司和外聯單位也拉有多條專線,其中有一部分專線上的應用也需要總公司后臺服務器去訪問對端路由器后的服務器(即情況與A公司相同),而各外聯單位的服務器對外映射地址存在沖突現象,導致總公司端在寫廣域網段回程路由時出現問題。考慮到全網網絡架構的可控性,總公司提出讓各分公司整理內部需要總公司參與訪問的路由,將相關地址全部NAT為本地內網地址,這樣總公司只需要訪問到已經規劃好的各省分公司內網地址段即可,不會存在地址沖突問題,而且整個網絡也變得更加可控。
企業A按照總公司的指示,進行了針對性調整。調整的思路是將企業B提供的NAT后地址196.1.1.10在本地防火墻(或者是路由器的內網口E0/0上)上進行一次目標地址轉換。即將原本訪問196.1.1.10的需求變成訪問本地內網地址的需求,同時在內網的核心交換機上添加一條路由,具體操作如下(以在路由器內網口E0/0上配置為例,防火墻同理)。
interfaceEthernet0/0
descriptiontocoreswitch
ipaddress9.9.9.9255.255.255.252
natoutboundstatic
這里添加了一條方向向外(也即指向本地內網)的靜態NAT,相應的NAT語句為:
natstaticinsideip196.1.1.10globalip9.9.20.5
這其中196.1.1.10是企業B提供的NAT后地址,9.9.20.5為企業A的內網IP地址規劃段中的一個地址,與之相對應的是要在核心交換機上將靜態路由也作針對性調整。這里要提醒大家注意一點,這里的globalip地址不要屬于在核心交換上已經規劃的VLAN。配置調整完以后,測試整個網絡的數據,一切正常。
***的數據包流程變為,企業A內網中的筆記本電腦訪問9.9.20.5,在到達本端SDH路由器內網口時進行NAT轉換將目標地址轉換為196.1.1.10,然后在S2/0口上又進行了一次源地址的NAT轉換,將客戶機本身的源地址轉換成S2/0的接口地址(也即滿足企業B的網絡要求)——10.1.1.1。到此為止,總公司和企業B的需求都得到了實現。
由此案例可以看出,如果不采用合理的NAT技術應用,總公司和企業B的需求是很難得到同時滿足的。這其實就是大家在書本上常常看到的雙向NAT轉換的一個應用實例。在企業中,這種純靜態的NAT應用比例要遠遠大于動態NAT(有一個IP池供地址調用)和PAT。
負載平衡是NAT技術的另一要點
下面再給大家簡要介紹一下NAT技術的另外一項應用——負載均衡。如果不考慮在數據中心應用最多的F5類專用負載均衡設備,大家可能對于負載均衡的了解更多是集中在DNS技術上。DNS的負載均衡技術主要采用的是輪詢算法(roundrobin),但DNS負載技術有一個問題較難解決:就是客戶端會在本地緩沖DNSIP地址解析,從而使它后續的申請都會到達同一個IP地址,這本身是一項加速技術,但在這里實際上卻削弱了DNS負載均衡技術的作用。而NAT負載均衡技術則解決了這個問題,路由器或其它NAT設備把需要負載平衡的多個IP地址翻譯成一個公用的IP地址。
(如圖5所示)
假設我們有一臺配備一個串行接口和一個Ethernet接口的路由器,Ethernet口連接到內部網絡,內部網絡上有三臺運行同樣WEB服務的WEB服務器,IP地址分別為2.2.2.1、2.2.2.2和2.2.2.3,而2.2.2.10則是路由器內口地址(Ethernet接口),路由器外口(串行接口)地址是互聯網IP地址,也即需要進行NAT負載均衡地址,為了處理好來自Internet上大量的WEB連接請求,因此需要在此路由器上進行NAT負載均衡配置,把發送到WEB服務器合法InternetIP地址的報文轉換成這三臺服務器的內部本地地址。假定該路由器外口地址為219.142.5.5,那么每個訪問219.142.5.5的TCP連接都會按照規則分發到每一臺后端真實WEB服務器上,從而真正實現負載平衡。
下面以圖5為例簡單介紹一下路由器NAT負載均衡的配置過程如下:
***步:在路由器接口上進行NAT定義。
interfaceEthernet0/0
ipaddress2.2.2.10255.255.255.240
ipnatinside
!
interfaceSerial0/0
ipaddress219.142.5.5255.255.255.248
ipnatoutside
第二步:定義一個標準訪問列表(standardaccesslist),用來標識要轉換的合法IP地址。
ipaccess-list1permit219.142.5.5
第三步:定義NAT地址池來標識內部WEB服務器的IP地址,后面的參數要使用rotary,表明我們要使用輪循(RoundRobin)的方式從NAT地址池中取出相應IP地址來轉換合法IP報文。
ipnatpoolwebsvr2.2.2.12.2.2.3netmask255.255.255.248typerotary
第四步:把目標地址為訪問表中IP的報文轉換成地址池中定義的IP地址。
ipnatinsidedestinationlist1poolwebsvr
到此為止,NAT負載均衡的設置結束,是不是很簡單
【編輯推薦】