本文假設(shè)讀者已經(jīng)對(duì)NAT的原理和基本用法有所了解。如不確定,可參考以下文章:
- 如何用iptables實(shí)現(xiàn)Linux下強(qiáng)大的NAT功能
- 如何用iptables實(shí)現(xiàn)NAT
- iptables nat表基本語(yǔ)法
本文案例中,我們假設(shè)有一家ISP提供園區(qū)Internet接入服務(wù),為了方便管理,該ISP分配給園區(qū)用戶(hù)的IP地址都是私網(wǎng)IP,通過(guò)該私網(wǎng)IP用戶(hù)無(wú)法向外發(fā)布信息。但是,部分用戶(hù)要求建立自己的WWW服務(wù)器對(duì)外發(fā)布信息。
我們可以在防火墻的外部網(wǎng)卡上綁定多個(gè)合法IP地址,然后通過(guò)ip映射使發(fā)給其中某一個(gè)IP地址的包轉(zhuǎn)發(fā)至內(nèi)部某一用戶(hù)的WWW服務(wù)器上,然后再將該內(nèi)部WWW服務(wù)器響應(yīng)包偽裝成該合法IP發(fā)出的包。
具體的IP分配如下:
(1)該ISP分配給A單位www服務(wù)器的IP為:
私網(wǎng)ip:172.168.92.100
公網(wǎng)ip:210.95.33.100
(2)該ISP分配給B單位www服務(wù)器的IP為:
私網(wǎng)ip:172.168.92.200
公網(wǎng)ip:210.95.33.200
(3)Linux防火墻的IP地址分別為:
內(nèi)網(wǎng)接口eth1:172.168.92.10
外網(wǎng)接口eth0:210.95.33.1
然后,我們需要進(jìn)行如下步驟地操作:
(1)將分配給A、B單位的真實(shí)ip綁定到防火墻的外網(wǎng)接口,以root權(quán)限執(zhí)行以下命令:
#ifconfig eth0 add 210.95.33.100 netmask 255.255.255.0
#ifconfig eth0 add 210.95.33.200 netmask 255.255.255.0
(2)成功升級(jí)內(nèi)核后安裝iptables,然后執(zhí)行以下腳本載入相關(guān)模塊:
modprobe ip_tables
modprobe ip_nat_ftp
(3)對(duì)防火墻接收到的目的ip為210.95.33.100和210.95.33.200的所有數(shù)據(jù)包進(jìn)行目的NAT(DNAT):
#iptables -A PREROUTING -i eth0 -d 210.95.33.100 -j DNAT --to 172.168.92.100
#iptables -A PREROUTING -i eth0 -d 210.95.33.200 -j DNAT --to 172.168.92.200
(4)對(duì)防火墻接收到的源ip地址為172.168.92.100和172.168.92.200的數(shù)據(jù)包進(jìn)行源NAT(SNAT):
#iptables -A POSTROUTING -o eth0 -s 172.168.92.100 -j SNAT --to 210.95.33.100
#iptables -A POSTROUTING -o eth0 -s 172.168.92.200 -j SNAT --to 210.95.33.200
這樣,所有目的ip為210.95.33.100和210.95.33.200的數(shù)據(jù)包都將分別被轉(zhuǎn)發(fā)給172.168.92.100和172.168.92.200;而所有來(lái)自172.168.92.100和172.168.92.200的數(shù)據(jù)包都將分別被偽裝成由210.95.33.100和210.95.33.200,從而也就實(shí)現(xiàn)了ip映射。
作者:Gezidan
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。
posted on 2011-09-20 14:15
日需博客 閱讀(397)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
Linux 、
技術(shù)文章 、
轉(zhuǎn)載