(1)客戶機將數據包發給運行NAT的計算機。
(2)NAT主機表示包的端口和私有IP地址在其自己的端口號和通用IP地址中,並將包發送到遠程網絡上的遠程控制,並將跟蹤信息存儲在顯示表中,向客戶端發送響應消息。
(3)外部網絡將信息發送回NAT主機。
(4)NAT主機是指在自己的端口和內部網絡的私有IP地址中接收到的數據包的端口號和官方IP地址,並將其發送給客戶。
借助于NAT,私有(保留)地址的”內部”網絡通過路由器發送數據包時,私有地址被轉換成合法的IP地址,一個局域網只需使用少量IP地址(甚至是1個)即可實現私有地址網絡內所有計算機與Internet的通信需求。
NAT將自動修改IP報文的源IP地址和目的IP地址,IP地址校驗則在NAT處理過程中自動完成。有些應用程序將源IP地址嵌入到IP報文的數據部分中,所以還需要同時對報文的數據部分進行修改,以匹配IP頭中已經修改過的源IP地址。否則,在報文數據部分嵌入IP地址的應用程序就不能正常工作。
① client(終端) 的 gateway (網關)設定爲 NAT 主機,所以當要連上 Internet 的時候,該封包就會被送到 NAT 主機,這個時候的封包 Header 之 source IP 爲 192.168.1.100 ;
②而透過這個 NAT 主機,它會將 client 的對外聯機封包的 source IP ( 192.168.1.100 ) 僞裝成 ppp0 ( 假設爲撥接情況 )這個接口所具有的公共 IP ,因爲是公共 IP 了,所以這個封包就可以連上 Internet 了,同時 NAT 主機並且會記憶這個聯機的封包是由哪一個 ( 192.168.1.100 ) client 端傳送來的;
③由 Internet 傳送回來的封包,當然由 NAT主機來接收了,這個時候, NAT 主機會去查詢原本記錄的路由信息,並將目標 IP 由 ppp0 上面的公共 IP 改回原來的 192.168.1.100 ;
④最後則由 NAT 主機將該封包傳送給原先發送封包的 Client。
DNAT:若包是被送往PREROUTING鏈的,並且匹配了規則,則執行DNAT或REDIRECT目標。爲了使數據包得到正確路由,必須在路由之前進行DNAT。
路由:內核檢查信息包的頭信息,尤其是信息包的目的地。
處理本地進程産生的包:對nat表OUTPUT鏈中的規則實施規則檢查,對匹配的包執行目標動作。
SNAT:若包是被送往POSTROUTING鏈的,並且匹配了規則,則執行SNAT或MASQUERADE目標。系統在決定了數據包的路由之後才執行該鏈中的規則。