LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1596|回复: 21

关于red hat linux9.0下iptables代理的问题

[复制链接]
发表于 2004-11-20 15:23:43 | 显示全部楼层 |阅读模式
我这里用的是电信光钎的固定IP上网~~~~red hat linux 9.0(kernel2.4.20-8)
我现在的情况是:

我的Linux代理A(IP地址a)和Linux代理B(IP地址b)都是双网卡,一个外网地址和一个内网网关地址,
我用Windows客户机可以Ping通Linux代理IPb的外网IP地址b,也可以Ping通Linux代理B的内网网段和网关地址。但是我用Windows客户机就是上不了网而且也不能FTP,我的DNS是本地电信的DNS,不是DNS的问题!
请高手帮助我解决这个问题!
 楼主| 发表于 2004-11-20 15:33:00 | 显示全部楼层

关于red hat linux9.0下iptables代理的问题

现在是我的Linux代理IP地址a 在正常使用中
我的Linux代理IP地址b的服务器和我的Linux代理IP地址a的做法相同
只是使用了不同的IP地址和网段

我现在的情况是:
我的Linux代理A(IP地址a)和Linux代理B(IP地址b)都是双网卡,一个外网地址和一个内网网关地址,
我用Windows客户机可以Ping通Linux代理b的外网IP地址b,也可以Ping通Linux代理b的内网网段和网关地址。但是我用Windows客户机就是上不了网而且也不能FTP,我的DNS是本地电信的DNS,不是DNS的问题!
请高手帮助我解决这个问题!
 楼主| 发表于 2004-11-20 15:41:01 | 显示全部楼层

关于red hat linux9.0下iptables代理的问题

我这里用的是电信光钎的固定IP上网~~~~red hat linux 9.0(kernel2.4.20-8)

我的网络情况是这样的:


我的网络情况是这样的:

电信的光钎猫(四个固定IP<a.b.c.d>)→→→→internet
--------↑
--------↑
主交换机(D-Link)←←←←交换机
----/--------\-----------------↑
---/----------\-------Windows客户机500台以上
--/------------\--------(不同的网段)
-/--------------\   
Linux代理-----Linux代理
(IP地址a)------(IP地址b)
注:“--------”此线是实际不存在,我不会用空格


现在是我的Linux代理IP地址a 在正常使用中
我的Linux代理IP地址b的服务器和我的Linux代理IP地址a的做法相同
只是使用了不同的IP地址和网段

我现在的情况是:
我的Linux代理A(IP地址a)和Linux代理B(IP地址b)都是双网卡,一个外网地址和一个内网网关地址,
我用Windows客户机可以Ping通Linux代理B的外网IP地址b,也可以Ping通Linux代理B的内网网段和网关地址。但是我用Windows客户机就是上不了网而且也不能FTP,我的DNS是本地电信的DNS,不是DNS的问题!
请高手帮助我解决这个问题!

以下是我的iptables脚本:

/sbin/modprobe ip_tables
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/iptables -F
/sbin/iptables -F -t nat
/sbin/iptables -X
/sbin/iptables -Z

/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -s 0/0 -j ACCEPT
/sbin/iptables -A FORWARD -d 0/0 -j ACCEPT

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -o eth0 -j MASQUERADE

route add default gw 61.*.*.*  eth0
 楼主| 发表于 2004-11-20 16:00:32 | 显示全部楼层
请高手帮帮我啊~~~~~帮助我这个菜鸟!!!
我画了个大致的网络拓扑图,这是我的网络情况图:


我的服务器包括Linux代理都是接在主交换机上的,
连接客户机的交换机也都是接在同一个交换机上的就是哪个(主交换机)。

从电信猫上出来的网线 不是 一般的 通过代理 再到 主交换机,
而是从电信猫上出来的网线通过 主交换机 出来的网线再到Linux代理服务器,我的服务器包括Linux代理都是接在主交换机上的,
连接客户机的交换机也都是接在同一个交换机上的就是哪个(主交换机)。
我这样连线是为了可以同时使用电信给的四个固定IP。
发表于 2004-11-21 16:54:28 | 显示全部楼层
没搞明白你画的图!

电信----光猫----交换机----linux router A ----windows 工作站
         |
           ------linux router B ----windows ...

是上图这样吗?

首先,电信给你4个ip,应该有一个网关地址,如1.2.3.4,设缺省路由:
route add default gw 1.2.3.4

感觉应该是这里的问题。

你加的这几条应该没有什么用:
#与下面几条功能重复
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

#forward链中既然默认策略已经是accept,这两条也就没有用了。
/sbin/iptables -A FORWARD -s 0/0 -j ACCEPT
/sbin/iptables -A FORWARD -d 0/0 -j ACCEPT

还有,用iptables-save和lsmod检查一下,看你的iptables是否已经加载了所需模块,规则是否正确配置等。
 楼主| 发表于 2004-11-21 20:33:57 | 显示全部楼层
我检查了一下,现在在正常工作的Linux代理服务器A的工作模块的iptables的模块都加载上了,但是而我的Linux代理服务器B的工作模块,我用了iptables-save的命令,只有几个模块,iptables的模块都没有加载上。而且还多了几个东西,好象是键盘、鼠标还有input设备什么的。

请问,我要怎么做才能把iptables的我设定要用的模块都加载上啊~~~~请高手指教~~~~~谢谢了!!!

我检查了一下,现在在正常工作的Linux代理服务器A的工作模块如下(几乎我iptables设定的模块都加载上了):
Module                  Size  Used by    Not tainted

ipt_limit               1560   3  (autoclean)
ipt_MASQUERADE          2200   3  (autoclean)
ip_conntrack_ftp        5296   1  (autoclean)
ip_nat_ftp              4112   0  (unused)
iptable_nat            21720   2  [ipt_MASQUERADE ip_nat_ftp]
ip_conntrack           26976   2  [ipt_MASQUERADE ip_conntrack_ftp ip_nat_ftp iptable_nat]
8139too                18088   2
mii                     3976   0  [8139too]
ipt_REJECT              3928   0  (autoclean)
iptable_filter          2412   1  (autoclean)
ip_tables              15096   7  [ipt_limit ipt_MASQUERADE iptable_nat ipt_REJE
CT iptable_filter]
ext3                   70784   2
jbd                    51892   2  [ext3]

而我的Linux代理服务器B的工作模块如下,我用了 iptables-save 的命令,只有这几个模块,而且有的还是没有起用。而且还多了几个东西,好象是键盘设备什么的。
Module                  Size  Used by    Not tainted

8139too, mii, ipt_REJECT, iptable_filter,ip_tables,iptable_filter, ext3,jbd

多出来的是这几个:keybdev(unused),mousedev(unused),hid(unused),input(keybdev mousedev hid),usbcore(hid usb-uhci)
 楼主| 发表于 2004-11-21 21:18:10 | 显示全部楼层
我的脚本是设定的名字是:rc.fw    给它加了chmod a+x rc.fw的执行权限的,  我在rc.local的里面加了开机启动/etc/rc.d/rc.fw命令的啊。

这是rc.local的原文件:
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
/etc/rc.d/rc.fw
 楼主| 发表于 2004-11-21 21:53:22 | 显示全部楼层
我找到了一个问题,是在/var/lock/subsys/的目录下,没有local这个名字。
就是没有/var/lock/subsys/local这个目录,我用touch local键了个,里面是有了local但是一重启动机器就又没了,我又键了个,
把iptables,network重启了,但是去试试的时候还是不行,上不了网。

请问这是那里的问题啊,郁闷~~~~~~~~~
发表于 2004-11-21 22:44:05 | 显示全部楼层
iptable_nat
ip_conntrack
主要是上边这两个模块没有加载,造成其他模块也不能加载。手动加载:
modprobe ip_conntrack
modprobe iptable_nat

如果手工加载没问题,修改到你的脚本文件中。
发表于 2004-11-21 23:18:13 | 显示全部楼层
问题应该是iptables引起的

另外说一点,建议你把网络改一下,我认为这样的网络会更合理点:
让主交换机只连接到服务器和猫,
linux a, linux b的内网网卡和其他交换机连到一起
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表