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