第 8 章 IP 服務:DHCP、NAT、NTP 與網管

NAT:私有位址如何上網

全世界幾十億台裝置,IPv4 只有 43 億個位址。NAT 就是那個救火隊。

14 分鐘


NAT(Network Address Translation)在封包經過路由器時改寫 IP 位址。內部用私有位址,出去時換成公有位址,回來時再換回去。

四個名詞(考試必考)

名詞中文意思例子
Inside Local內部本地內部裝置的私有 IP192.168.1.10
Inside Global內部全域內部裝置對外呈現的公有 IP203.0.113.5
Outside Global外部全域外部伺服器的真實公有 IP8.8.8.8
Outside Local外部本地外部伺服器在內部呈現的樣子(少用)8.8.8.8

三種 NAT

類型對應關係用途
靜態 NAT一對一,固定對外提供服務的伺服器
動態 NAT多對多,從位址池抓公有位址夠用時
PAT / NAT Overload多對一,靠埠號區分最常見,家用與企業出口
NAT 轉換表

內部本地              內部全域             外部
192.168.1.10:1234 → 203.0.113.5:1234 → 8.8.8.8:53
192.168.1.11:1234 → 203.0.113.5:5001 → 8.8.8.8:53
                                ↑
                    埠號被改掉以避免衝突

一個公有 IP 理論上可服務數萬個連線
(每個連線用不同的來源埠)
PAT 靠來源埠號區分不同的內部主機
PAT 設定(最常考的組態)
! 1. 定義哪些內部位址可以被轉換
R1(config)# access-list 1 permit 192.168.1.0 0.0.0.255

! 2. 標記內部與外部介面(漏掉這步是最常見的錯誤!)
R1(config)# interface gi0/1
R1(config-if)# ip nat inside
R1(config)# interface gi0/0
R1(config-if)# ip nat outside

! 3a. PAT:直接用外部介面的 IP
R1(config)# ip nat inside source list 1 interface gi0/0 overload

! 3b. 或用一個位址池做 PAT
R1(config)# ip nat pool MYPOOL 203.0.113.5 203.0.113.5 netmask 255.255.255.248
R1(config)# ip nat inside source list 1 pool MYPOOL overload

! 靜態 NAT(把內部伺服器對外開放)
R1(config)# ip nat inside source static 192.168.1.100 203.0.113.10

! 驗證
R1# show ip nat translations
R1# show ip nat statistics
R1# clear ip nat translation *

NAT 的缺點

  • 破壞端到端連通性:外部無法主動連進來(除非做 port forwarding)。
  • 某些協定會壞掉:把 IP 寫在封包內容裡的協定(如 FTP 主動模式、SIP)需要特別處理。
  • 追蹤困難:所有人共用一個公有 IP,記錄檔難以對應到個別使用者。
  • 增加延遲與 CPU 負擔:每個封包都要查表改寫。

立即測驗這一節(3 題)