实际情况是这样的:
一台机器PC1为CentOS 5.5,配有两块网卡eth0和eth1.eth0外网,假定为202.103.24.1;eth1接内网,假定IP为:192.168.100.1;
另一台机器PC2为一个网卡接入内网,IP为192.168.100.11.
现在要使用路由转发功能,让PC2能通过PC1访问外网主机.
1. 要打开PC1的IP转发功能,默认是关闭的,可用下面命令检查:
more /proc/sys/net/ipv4/ip_forward
如果显示值为0,则是关闭的,需要打开,采用shell命令:
echo 1 > /proc/sys/net/ipv4/ip_forward
该命令只是不重启进程,而直接暂时打开转发,为防止重启后配置失效,需要用命令vi /etc/sysctl.conf修改配置文件,
将其中net.ipv4.ip_forward = 0改为:net.ipv4.ip_forward = 1
为PC1添加两个路由,命令为:
route add -net 192.168.100.0/24 dev eth0
2. PC2需要将缺省网关设置为PC1 eth1的IP
vi /etc/sysconfig/network
...
GATEWAY=192.168.100.1
3. 修改PC1的/etc/sysconfig/iptables
注释掉:
#-A FORWARD -j RH-Firewall-1-INPUT
添加:
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o eth0 -s 192.168.100.0/24 -j SNAT --to-source 202.103.24.1
COMMIT
在*filter段添加
-A FORWARD -s 192.168.100.0/24 -j ACCEPT
-A FORWARD -d 192.168.100.0/24 -j ACCEPT
-A FORWARD -s ! 192.168.100.0/24 -j DROP
重启iptables: #service iptables restart
|