網路位址轉譯(Network Address Translation, NAT)可以改變封包的傳送端 IP 位址與接收端 IP 位址,減少真實 IP 的使用量,也可以將私有 IP(內部 IP)改變成真實 IP(外部 IP)再傳送到網際網路,只需要向網際網路服務供應商,例如:中華電信(2412-TW)申請一個真實 IP,就可以將公司內部所有的電腦連接到網際網路了,因此 NAT 伺服器是最重要的防火牆成員,也是一種「封包過濾器(Packet filter)」。
- Cisco設備中,NAT會被應用在Cisco路由器上
1. NAT 伺服器的原理
NAT 伺服器的連接方式如<圖一>所示,一端連接私有網路(內部網路),由企業內部網管人員自行設定私有 IP,可以自由設定但是不可以重覆,不需要支付費用,而且可以減少真實 IP 的使用量;一端連接外部網路(網際網路),由企業向網際網路服務供應商(例如:中華電信)申請真實 IP,必須支付費用。
假設台大電機系的網管人員將網路切割為內部與外部,內部網路的網址設定為 192.168.1.1、192.168.1.2、192.168.1.3;而外部網路的網址為 140.112.66.88,則 NAT 伺服器的功能就是更改封包表頭的傳送端 IP 位址與接收端 IP 位址。
➤傳送封包:假設私有網路(內部網路)的電腦 A 要傳送封包到網際網路(外部網路),所以將封包表頭內的傳送端 IP 位址設定為 192.168.1.1,如(a)所示。
➤轉送封包:NAT 伺服器將封包表頭的傳送端 IP 位址改成 140.112.66.88 再傳送到網際網路(外部網路),並且記錄這個封包來自電腦 A,如(b)所示。
➤接收封包:網際網路(外部網路)要傳送封包到電腦 A,但是封包表頭的接收端 IP 位址設定為 140.112.66.88,因此先由 NAT 伺服器接收進來,如(c)所示。
➤轉送封包:NAT 伺服器將封包表頭的接收端 IP 位址改成 192.168.1.1 再傳送到私有網路(內部網路)的電腦 A,如(d)所示。
2. NAT 伺服器的功能
➤封包偽裝(IP masquerade):可以將私有 IP(內部IP)改變成真實 IP(外部 IP)再傳送到網際網路,使網路上的人無法得知私有網路的 IP 分配情形而增加網路安全性。
➤封包過濾:可以攔截網際網路進入私有網路的封包,阻擋怪客(Cracker)的攻擊,所以 NAT 伺服器是最重要的防火牆成員,也是一種「封包過濾器(Packet filter)」。
➤平衡負載:通常使用在網頁伺服器(Web server),一般公司的網頁伺服器同時可能會有數千人連線上來,如果只使用一台主機,一定無法負荷這麼多電腦的連線,我們可以在入口處加裝一台 NAT 伺服器,改變網際網路(外部網路)進入私有網路(內部網路)封包表頭的接收端 IP 位址,使進入的封包分散到不同的主機上,可以減輕單一主機的負擔,也可以增加網路安全性,如下圖所示:
3. NAT技術用語
- 內部網路(Inside Network)
- 外部網路(Outside Network)
- Inside Global位址
- 經由Network Information Center或Server Provider所分派的邏輯IP位址
- Inside Local位址
- 非透過Network Information Center或Server Provider所取得的ip位置
- Outside Global位址
- 網際網路中實際有效,而且能被繞送的IP位址
- Outside Local位址
- 外部網際網路中的電腦在內部網路中所運行的IP位址
4. 私有IP位址
私有IP位置定義在RFC1918規格中
- 當電腦不需要存取網際網路時,可以只用私有IP位置。私有IP不需要註冊。
Link-local位置
- 定義在RFC 3330和RFC 3927文件中
- 希望在沒有DHCP伺服器的情況之下還能夠提供IP位址
- 範圍
169.254.0.0/16
- Link-local Address 所發送或送往出來的網路封包都不能經過路由器
- 這個限制被定義在RFC 3927中,有興趣的話可以參考RFC 3927和RFC 1918文件
私有IP範圍
5. NAT運行種類
- 靜態(Static)
- 將私有IP位址對應用公有IP位址,採用對應方式一對一,屬於最基本的NAT
- 動態(Dynamic)
- 將一個私有IP位址與一群公有IP位址對應
- Overlapping
- 將多個私有IP位址與單一一個公有IP位址對應