SNAT和DNAT在iptables中

四表五鏈

image.png
  • 路由決策的規(guī)則(可通過(guò) ip route show 查看)
路由表根據(jù)數(shù)據(jù)包的 目標(biāo) IP 進(jìn)行匹配(與路由條目中的 dst 字段對(duì)比)

最長(zhǎng)前綴匹配: 選擇子網(wǎng)掩碼最長(zhǎng)的路由條目(如 192.168.1.0/24 優(yōu)先于 192.168.0.0/16)

路由決策的輸出: 確定出口網(wǎng)卡(oif):如 eth0、eth1。
確定下一跳網(wǎng)關(guān)(via):如 192.168.1.1。
影響 NAT 行為:出口網(wǎng)卡決定了 SNAT 的 IP(如從 eth0 發(fā)出時(shí),SNAT 會(huì)使用 eth0 的 IP)

報(bào)文流向:

  • 流入本機(jī):PREROUTING --> INPUT-->用戶空間進(jìn)程
  • 流出本機(jī):用戶空間進(jìn)程-->OUTPUT--> POSTROUTING
  • 轉(zhuǎn)發(fā):PREROUTING --> FORWARD --> POSTROUTING

  • 影響路由決策
  • 影響dnat
  • 影響conntrack的一致性

完整流程與 NAT 的關(guān)系

網(wǎng)卡入 
→ PREROUTING (raw → mangle → nat[DNT])   # DNAT 修改目標(biāo) IP
→ 路由決策(匹配目標(biāo) IP)                # 根據(jù) DNAT 后的 IP 選擇出口
→ FORWARD (mangle → filter)              # 過(guò)濾轉(zhuǎn)發(fā)包
→ POSTROUTING (mangle → nat[SNAT])       # SNAT 修改源 IP
→ 網(wǎng)卡出

- 抓包是在網(wǎng)卡處的
- 修改IP是在內(nèi)核處理的
為什么 NAT 要分階段修改
NAT 類型    階段       依賴條件                    目的
DNAT    PREROUTING  需在路由決策前修改目標(biāo) IP  確保路由能正確轉(zhuǎn)發(fā)到新目標(biāo)(如將公網(wǎng) IP 映射到內(nèi)網(wǎng)服務(wù)器)。
SNAT    POSTROUTING 需在路由決策后確定出口網(wǎng)卡   確保源 IP 與出口網(wǎng)卡一致(如內(nèi)網(wǎng) IP 改為公網(wǎng) IP 后從 eth0 發(fā)出)。
總結(jié)
  1. 路由決策規(guī)則:
    主要匹配 目標(biāo) IP,策略路由可額外匹配源 IP。
    出口網(wǎng)卡決定 SNAT 的 IP。

  2. DNAT 在 PREROUTING:
    先修改目標(biāo) IP,再路由。

  3. SNAT 在 POSTROUTING:
    先路由確定出口網(wǎng)卡,再修改源 IP。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • DNAT(Destination Network Address Translation,目的地址轉(zhuǎn)換) 通常被叫...
    Bogon閱讀 5,409評(píng)論 0 5
  • 1.安全技術(shù) (1)入侵檢測(cè)與管理系統(tǒng)(Intrusion Detection Systems): 特點(diǎn)是不阻斷任...
    尛尛大尹閱讀 2,631評(píng)論 0 2
  • Firewall 工作于網(wǎng)絡(luò)(網(wǎng)絡(luò)防火墻)或主機(jī)(主機(jī)防火墻)的邊緣(通信報(bào)文的進(jìn)出口),對(duì)于進(jìn)出本網(wǎng)絡(luò)或主機(jī)的報(bào)...
    SRE1閱讀 1,466評(píng)論 0 0
  • iptables俗稱防火墻,或許我們已經(jīng)不在陌生,但是作為openstack基礎(chǔ),這里還是對(duì)其做一些補(bǔ)充,了解更多...
    ximitc閱讀 1,863評(píng)論 0 8
  • (本文源于轉(zhuǎn)載或摘抄整理) 一:前言 防火墻,其實(shí)說(shuō)白了講,就是用于實(shí)現(xiàn)Linux下訪問(wèn)控制的功能的,它分為硬件的...
    JackyTsuuuy閱讀 9,034評(píng)論 1 6

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