SNAT與DNAT示例

NAPT 是目前最流行的 NAT 類型,我們在 Linux 中配置的 NAT 也是這種類型。而根據(jù)轉(zhuǎn)換方式的不同,我們又可以把 NAPT 分為三類。

  1. 第一類是源地址轉(zhuǎn)換 SNAT,即目的地址不變,只替換源 IP 或源端口。SNAT 主要用于,多個內(nèi)網(wǎng) IP 共享同一個公網(wǎng) IP ,來訪問外網(wǎng)資源的場景。

  2. 第二類是目的地址轉(zhuǎn)換 DNAT,即源 IP 保持不變,只替換目的 IP 或者目的端口。DNAT 主要通過公網(wǎng) IP 的不同端口號,來訪問內(nèi)網(wǎng)的多種服務(wù),同時會隱藏后端服務(wù)器的真實 IP 地址。

  3. 第三類是雙向地址轉(zhuǎn)換,即同時使用 SNAT 和 DNAT。當(dāng)接收到網(wǎng)絡(luò)包時,執(zhí)行 DNAT,把目的 IP 轉(zhuǎn)換為內(nèi)網(wǎng) IP;而在發(fā)送網(wǎng)絡(luò)包時,執(zhí)行 SNAT,把源 IP 替換為外部 IP。雙向地址轉(zhuǎn)換,其實就是外網(wǎng) IP 與內(nèi)網(wǎng) IP 的一對一映射關(guān)系,所以常用在虛擬化環(huán)境中,為虛擬機(jī)分配浮動的公網(wǎng) IP 地址。

內(nèi)網(wǎng)訪問外網(wǎng)

從圖中,你可以發(fā)現(xiàn):

  1. 當(dāng)服務(wù)器訪問 baidu.com 時,NAT 網(wǎng)關(guān)會把源地址,從服務(wù)器的內(nèi)網(wǎng) IP 192.168.0.2 替換成公網(wǎng) IP 地址 100.100.100.100,然后才發(fā)送給 baidu.com;
  2. 當(dāng) baidu.com 發(fā)回響應(yīng)包時,NAT 網(wǎng)關(guān)又會把目的地址,從公網(wǎng) IP 地址 100.100.100.100 替換成服務(wù)器內(nèi)網(wǎng) IP 192.168.0.2,然后再發(fā)送給內(nèi)網(wǎng)中的服務(wù)器。
# 為子網(wǎng)統(tǒng)一分配
$ iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -j MASQUERADE
# 為單一地址
$ iptables -t nat -A POSTROUTING -s 192.168.0.2 -j SNAT --to-source 100.100.100.100
$ iptables -t nat -A PREROUTING -d 100.100.100.100 -j DNAT --to-destination 192.168.0.2

注: 前提是打開ip的轉(zhuǎn)發(fā)功能

$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

# 寫入文件,避免重啟丟失
$ cat /etc/sysctl.conf | grep ip_forward
net.ipv4.ip_forward=1
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容