2011年12月13日 星期二

來源IP轉換 SNAT

NAT (Network Address Translation) ,是一種在IP封包在通過路由器時,重新設定 IP 來源或 IP 目的地的技術,通常使用在有多台主機,但是卻只有一、兩個公有 IP 的私有網路中

SNAT ( 來源IP轉換 ) 
$sudo nano /etc/rc.local            -- Ubuntu 的防火牆

列表的最下面 ~~ exit 0 的上面,中間空白處加上下列指令


動態轉換
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

-o eth0 : 這裡設定的是要對外連線的網路卡,也就是使用公有 IP 的網路卡

MASQUERADE : IP偽裝

使用這指令的話,不管內部的私有網路設定的IP是哪種,通通都會經過 NAT 轉換



指定來源 IP 轉換
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

iptables -t nat -A POSTROUTING -s 192.168.1.1 -o eth0 -j MASQUERADE

iptables -t nat -A POSTROUTING -s 192.168.1.1-192.168.1.10 -o eth0 -j MASQUERADE

-s 192.168.1.0/24 : 指定要轉換的來源 IP

使用這指令的話,只有來源是 192.168.1.0/24 的 IP 會進行 NAT 的轉換,第二條跟第三條指令則是指定轉換的範圍 ( 2.3 尚未實驗過... )



指定轉換後的 IP
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.254

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.200-192.168.1.254

-j SNAT --to-source 192.168.1.254 : 指定轉換後的IP

使用第一個指令的話,所有的經過 NAT 的 IP 都會轉換成 192.168.1.254,第二個指令則是會隨機使用 200 ~ 254 之間的IP



指定來源 IP 及轉換後的 IP
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 192.168.1.254

同時應用上面的方式,指定來源 IP 的範圍及轉換後的 IP


NAT 中文 WIKI : 網路地址轉換
NAT 英文 WIKI : Network Address Translation

沒有留言:

張貼留言