November 29,2007
IPtables NAT設定-理論
此次外快,客戶有一需求,需要架設一台伺服器,該伺服器需有防火牆與NAT之功能。接下這需求後,直覺想到了IPtables,此文章先把IPTables NAT設定方法做個紀錄,實際作業差異於作業後紀錄!
參考文獻:http://forum.slime.com.tw/thread51015.html
關鍵名詞解釋
SNAT(Source NAT):內部IP將封包送至NAT伺服器後,NAT伺服器將封包中"來源位址"修改,稱之為SNAT
DNAT(Destination NAT):外部IP將封包送至NAT伺服器後,NAT伺服器將封包中"目的地位址"修改,稱之為SNAT
此工項目的,建立一NAT伺服器,可進行多Real IP Mapping至多內部虛擬IP,需要的概念如下
(1)NAT伺服器上需有兩張網路卡,一張掛上所有用到之外部實際IP,另一張設為內部虛擬IP網段之Default Gateway
(2)設定SNAT
(3)設定DNAT
範例
NAT伺服器
內部網路eth1:192.168.1.1
外網eth0:202.110.123.1
欲Mapping之第一台伺服器資料
Real IP:202.110.123.100
Virtual IP:192.168.1.100
欲Mapping之第二台伺服器資料
Real IP:202.110.123.200
Virtual IP:192.168.1.200
Step 1:將兩個欲Mapping之Real IP綁至NAT伺服器之eth0,命令如下:
ifconfig eth0 add 202.110.123.100 netmask 255.255.255.0
ifconfig eth0 add 202.110.123.200 netmask 255.255.255.0
Step 2:載入Module
modprobe ip_tables
modprobe ip_nat_ftp
可利用以下指令查詢Module是否已載入
lsmod | grep ip_tables
Setp 3:下命令進行DNAT
iptables -t nat -A PREROUTING -i eth0 -d 202.110.123.100 -j DNAT --to 192.168.1.100
iptables -t nat -A PREROUTING -i eth0 -d 202.110.123.200 -j DNAT --to 192.168.1.200
Step 4:下命令進行SNAT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.100 -j SNAT --to 202.110.123.100
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.200 -j SNAT --to 202.110.123.200
經過這些步驟後,理論上所有目的ip為202.110.123.100和202.110.123.200的資料包都將分別被轉發給192.168.1.100和192.168.1.200;而所有來自192.168.1.100和192.168.1.200的資料包都將分別被偽裝成由202.110.123.100和202.110.123.200
參考文獻:http://forum.slime.com.tw/thread51015.html
關鍵名詞解釋
SNAT(Source NAT):內部IP將封包送至NAT伺服器後,NAT伺服器將封包中"來源位址"修改,稱之為SNAT
DNAT(Destination NAT):外部IP將封包送至NAT伺服器後,NAT伺服器將封包中"目的地位址"修改,稱之為SNAT
此工項目的,建立一NAT伺服器,可進行多Real IP Mapping至多內部虛擬IP,需要的概念如下
(1)NAT伺服器上需有兩張網路卡,一張掛上所有用到之外部實際IP,另一張設為內部虛擬IP網段之Default Gateway
(2)設定SNAT
(3)設定DNAT
範例
NAT伺服器
內部網路eth1:192.168.1.1
外網eth0:202.110.123.1
欲Mapping之第一台伺服器資料
Real IP:202.110.123.100
Virtual IP:192.168.1.100
欲Mapping之第二台伺服器資料
Real IP:202.110.123.200
Virtual IP:192.168.1.200
Step 1:將兩個欲Mapping之Real IP綁至NAT伺服器之eth0,命令如下:
ifconfig eth0 add 202.110.123.100 netmask 255.255.255.0
ifconfig eth0 add 202.110.123.200 netmask 255.255.255.0
Step 2:載入Module
modprobe ip_tables
modprobe ip_nat_ftp
可利用以下指令查詢Module是否已載入
lsmod | grep ip_tables
Setp 3:下命令進行DNAT
iptables -t nat -A PREROUTING -i eth0 -d 202.110.123.100 -j DNAT --to 192.168.1.100
iptables -t nat -A PREROUTING -i eth0 -d 202.110.123.200 -j DNAT --to 192.168.1.200
Step 4:下命令進行SNAT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.100 -j SNAT --to 202.110.123.100
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.200 -j SNAT --to 202.110.123.200
經過這些步驟後,理論上所有目的ip為202.110.123.100和202.110.123.200的資料包都將分別被轉發給192.168.1.100和192.168.1.200;而所有來自192.168.1.100和192.168.1.200的資料包都將分別被偽裝成由202.110.123.100和202.110.123.200
引用URL
http://cgi.blog.roodo.com/trackback/4555319