2009年4月14日星期二

使用iptables实现NAT服务


实验设备:一台装有Redhat 9.0的linux系统服务器,并配置有双网卡.一台用于测试的个人电脑.


A:在服务器上配置网络环境.


(1)配置网卡eth0、eth1


在本例中,eth0连接外部internet,它的ip地址是192.168.5.85,内部网通过eth1上网,它的ip地址是:192.168.2.1


a、对eth0的配置


DEVICE=eth0
PEERDNS=yes
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.5.85
NETMASK=255.255.255.0
GATEWAY=192.168.5.1
TYPE=Ethernet
NETWORK=192.168.5.0
BROADCAST=192.168.5.255
USERCTL=no
HWADDR=00:0C:29:F8:4E:37


b、对eth1的配置


DEVICE=eth1
PEERDNS=yes
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.2.1
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
TYPE=Ethernet
NETWORK=192.168.2.0
BROADCAST=192.168.2.255
USERCTL=no
HWADDR=00:0C:29:F8:4E:41


c、为系统指定DNS服务器


可以在/etc/resolv.conf指定DNS服务器(如果该文件不存在,则可以新建该文件)编辑该文件内容如下:


nameserver 202.102.224.68


nameserver 202.102.227.68


d、使网络生效


#service network restart


(2)使用iptables实现NAT


具体操作步骤如下:


a、打开内核的路由功能。需要执行下面命令:


#echo "1" >/proc/sys/net/ipv4/ip_forward


b、实现ip伪装.在NAT表中的POSTROUTING链加入一条规则,这条规则的内容是由eth0外网接口送出的包会被伪装(MASQUERADE),这样就能使用iptables实现NAT命令了;


#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


做完上面的配置后,你可以用下面指令查看nat表的POSTROUTING链规则表


# iptables -t nat -L POSTROUTING


执行后如果出现下面的信息,表明配置正确.


MASQUERADE all anywhere anywhere


NAT客户端的配置


设置为和内网网卡eth1一样的网段,网关就可以了.如果你配置的还有DHCP的话还可以和它结合起来使用


没有评论:

发表评论