iptables中nat表
iptables中nat表可以實現SNAT, DNAT, 雙向NAT和兩次NAT.
一. 源地址NAT
1. 標準的SNAT
SNAT的目的是進行源地址轉換,應用于POSTROUTING規則鏈.在路由決定之后應用.SNAT與出站接口相關,而不是入站接口. 語法如下:
iptables -t nat -A POSTROUTING -o <outgoing interface> -j SNAT --to-source <address>[-<address>][:port-port]
2. MASQUERADE源NAT
MASQUERADE沒有選項來指定在NAT設備上使用的特定源地址,使用的源地址就是出站好接口的地址.
iptables -t nat -A POSTROUTING -o <outgoing interface> -j MASQUERADE [--to-ports <port>[-port]]
二. 目的地址NAT
目的地址NAT有2種形式: DNAT和REDIRECT. REDIRECT是目的地址轉換的特殊形式,將數據包重定向到NAT設備的輸入或回環接口. 目的地址NAT應用于nat表的PREROUTING和OUTPUT規則鏈,在做出路由決定前對目的地址進行修改.在PREROUTING中,DNAT和REDIRECT規則與用來接受通過本地路由轉發或送到主機的入站接口的數據包的入站接口有關.在OUTPUT中,DNAT和REDIRECT規則用來處理來自NAT主機本身生成的出站數據包.
1. 標準目的地址NAT(DNAT)
iptables -t nat -A PREROUTING -i <incoming interface> -j DNAT --to-destination <address>[-<address>][:port-port] iptables -t nat -A OUTPUT -o <outgoing interface> -j DNAT --to-destination <address>[-<address>][:port-port]
目的地址用來替換數據包中的原始目的地址,多位本地服務器地址.
2. REDIRECT
iptables -t nat -A PREROUTING -i <incoming interface> -j REDIRECT [--to-ports <port>[-port]] iptables -t nat -A OUTPUT -o <outgoing interface> -j REDIRECT [--to-ports <port>[-port]]
REDIRECT重定向數據包到執行REDIRECT操作的那臺主機.
【編輯推薦】