在mini2440上搭建NAT服务器

来源:互联网 发布:linux ftp连接日志 编辑:程序博客网 时间:2024/05/16 14:43

mini2440上搭建NAT服务器

 

一、绑定两个IP

首先仍然是想办法给一个网上绑定两个IP,一个外网IP202.117.132.132,一个留作内部网关的内网IP192.168.1.2

 

开发板上修改IP使用的命令格式如下:

ifconfig eth0 202.117.132.132 netmask 255.255.0.0 route add default gw 202.117.132.1

定义DNS则要使用vi编辑器编辑/etc/resolv.conf文件修改为nameserver 202.117.128.2

同理绑定内网IP使用的命令为:

ifconfig eth0:0 192.168.1.2 netmask 255.255.0.0

 

但这种方法有很大的局限性,重启开发板后要重新输入命令。通过对开发板目录结构的研究,找到了启动脚本(/etc/init.d/rcS)

启动流程大致如下:首先定义了环境变量PATH,定义运行级别为超级用户,紧接着设置默认的权限umask,下面是挂载proc文件系统,sysfs,usbfs等文件系统,以及挂载/dev下所有的设备,构建/var目录,再下面是在屏幕上输出一些初始化的信息,再下面是设置回环设备,初始化eth0接口。而初始化eth0实际上是调用了/etc/init.d/ifconfig-eth0脚本,这个脚本首先判断/etc/eth0-setting文件是否存在,存在的话可以用source命令来重新执行初始化的文件,不存在的话则会调用ifconfig命令来给它绑定IP和子网掩码,最终我们可以去分析eth0-setting文件,这个文件里的选项则更加直观,有IP项,Mask,Gateway项,DNS项,MAC项。

到这里我们已经知道了开发板的IP绑定方法,我们可以采用两种方法来绑定IP

 

方法一:在rcS里调用ifconfig命令绑定IP

方法二:我们依照调用流程,首先创建eth0:0-setting文件,设置好其各项,但不能绑定两个不同的MAC地址,所以去掉MAC地址这一项。紧接着将ifconfig-eth0拷贝一份,将所有的eh0改成eth0:0,再在rcS脚本里添加/etc/init.d/ifconfig-eth0:0

设置好后,用source或”.”命令来重启这个初始化脚本,这时绑定两个IP大功告成。

 

二、添加过滤转发规则

 

要在开发板上搭建NAT服务器只需要在移植好iptables的基础上执行下面的命令:

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

iptables -F

iptables -F -t nat

iptables -P FORWARD DROP

iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT    

iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j SNAT --to 202.117.132.132

 

执行完后可以用iptables-save > iptables-script命令将所有的iptables规则重定向输出到一个脚本中,重启开发板后执行iptables-restore iptables-script命令加载这些规则。为了方便起见,我们将这条命令加到rcS初始化脚本中。