Static NAT

January 1, 0001

環境

配置一台 host only 的虛擬機和一台 R1 路由器以及可以連至網際網路的 Cloud1。該 Cloud1 使用的是手機 USB 出來的網路適配器。

配置 R1

配置 f0/0 的 IP,對於這個 f0/0 來說它是虛擬機的 gateway,只要封包不知道要往哪邊走都會網 f0/0 丟。

R1(config)#interface fastEthernet 0/0
R1(config-if)#ip address 192.168.245.254 255.255.255.0
R1(config-if)#no shutdown

配置 R1 的 Outside 接口,使用 DHCP 方式向 Cloud1 請求 IP。

R1(config)#interface fastEthernet 1/0
R1(config-if)#no shutdown
R1(config-if)#ip address dhcp

確認有無配置到 IP。

R1(config-if)#do sh ip int brief
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            192.168.245.254 YES manual up                    up
FastEthernet1/0            192.168.42.186  YES DHCP   up                    up

接著虛擬機嘗試 ping gateway 就是 f0/0 接口,要成功否則須檢查網路配置。再 ping f1/0 接口也是要通的,雖然不同網段但是是直連網路。如果 ping 8.8.8.8 是無法連接的,因為對虛擬機來說她不知道要把 8.8.8.8 這個的封包轉發到哪,因此它會丟向 R1 的 f0/0 接口,但 f0/0 接口也不知到要怎麼轉發所以導致無法成功的通訊,這邊就需配置 NAT。

同樣的先設置好,InsideOutside 的接口,接著使用 ip nat 方式建立一個 static 的 NAT 對應表。ip nat inside source 指的是要使用Inside 內的主機 IP,static 表示建立靜態的 NAT,最後輸入 Inside 的 IP 和要對應的 Outside IP,這種方式和設定靜態路由很像,這邊的設定已經是指名去轉換,因此就不必要像動態 NAT 一樣去做一個 access-list

R1(config)#int fastEthernet 0/0
R1(config-if)#ip nat inside
R1(config)#int fastEthernet 1/0
R1(config-if)#ip nat outside
R1(config)#ip nat inside source static 192.168.245.8 192.168.42.190 
R1(config)#ip name-server 192.168.42.1
R1(config)#ip domain-lookup

我們在 R1 添加了一個靜態 NAT 後在虛擬機嘗試 ping 8.8.8.8,這次因為透過 NAT 轉換而請求成功,如下圖

驗證

查看 NAT 過程,這部分在動態的 NAT 說明過。

R1#show ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
tcp 192.168.42.190:34100 192.168.245.8:34100 204.79.197.200:80 204.79.197.200:80
tcp 192.168.42.190:52330 192.168.245.8:52330 8.8.8.8:80      8.8.8.8:80
--- 192.168.42.190     192.168.245.8      ---                ---