LinuxSir.cn,穿越时空的Linuxsir!

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

iptable 的问题,局域网就不能上网了

[复制链接]
发表于 2003-12-9 11:30:42 | 显示全部楼层 |阅读模式
我用redhat9.0 iptable做的NET
局域网通过它连上网,最近老是一两天出现
Net 310 messages suppersessed
Neighbour table overflow.
局域网就不能上网了,不知是什么原因,怎么解决?望各位老大帮忙!
发表于 2003-12-9 12:16:05 | 显示全部楼层
清空一下规则试试
发表于 2003-12-9 12:37:41 | 显示全部楼层
我也是出现这个问题,我用得是 redhat8.0 ,以前都是一直跑得好好得。
 楼主| 发表于 2003-12-10 09:23:42 | 显示全部楼层
清空后,再重启后又过不了多长时间又是的。
发表于 2003-12-10 09:34:28 | 显示全部楼层
楼上得朋友,我得机器也出现这个问题,也是做防火墙用得,我在网上看到一些英文资料,说增加  /proc/sys/net/ipv4/neigh/default/gc_thresh3 gc_thresh2 gc_thresh1 这个三个文件得值就可以解决这个问题

我只增加了一个值,在控制台下运行
echo "10240" > /proc/sys/net/ipv4/neigh/default/gc_thresh3

你看看有没有效,如果有效你就将它加到 /etc/rc.d/rc.local 中去让他每次开机自动运行就可以了。你试试看把,这三个参数都是临时得不用担心修改后会影响系统。
发表于 2003-12-10 10:14:32 | 显示全部楼层
1.neighbour table overflow的处理方法

/proc/sys/net/ipv4/neigh/default/gc_thresh1
/proc/sys/net/ipv4/neigh/default/gc_thresh2
/proc/sys/net/ipv4/neigh/default/gc_thresh3
改大一些

2.NET: xx messages suppressed 的处理办法

/proc/sys/net/ipv4/ip_conntrack_max
改大

注意:/proc中的数据都是在内存中的,一关机就又没有了,所以如果想一开机就

改的话,就需要写到rc.local中去

如下这样写到rc.local文件中

echo "512" > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo "1024" > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo "2048" > /proc/sys/net/ipv4/neigh/default/gc_thresh3
echo "65535" > /proc/sys/net/ipv4/ip_conntrack_max
 楼主| 发表于 2003-12-10 14:21:54 | 显示全部楼层
能否说明一下原理,我想弄明白一些。
 楼主| 发表于 2003-12-11 08:12:57 | 显示全部楼层
最初由 jimshen 发表
1.neighbour table overflow的处理方法

/proc/sys/net/ipv4/neigh/default/gc_thresh1
/proc/sys/net/ipv4/neigh/default/gc_thresh2
/proc/sys/net/ipv4/neigh/default/gc_thresh3
改大一些

2.NET: xx messages suppressed 的处理办法

/proc/sys/net/ipv4/ip_conntrack_max
改大

注意:/proc中的数据都是在内存中的,一关机就又没有了,所以如果想一开机就

改的话,就需要写到rc.local中去

如下这样写到rc.local文件中

echo "512" > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo "1024" > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo "2048" > /proc/sys/net/ipv4/neigh/default/gc_thresh3
echo "65535" > /proc/sys/net/ipv4/ip_conntrack_max

不顶用,今天又出现了?
还有什么办法吗?谁能告诉我为什么?到底哪出了问题,我已经用了90多天没关机了,最少前70天都一直没问题,现在就是重启也是用不了一天就出问题,要是你说的原因的话,前70天为什么没问题?
发表于 2003-12-11 09:43:25 | 显示全部楼层
我也是这个问题,昨天我查了很多资料,根据自己得总结,不知道对不对,拿出来跟大家讨论一下:

当我的机器不停出现
Net 310 messages suppersessed
Neighbour table overflow.

的时候,我用 ip neigh 命令看的时候会发现很多很多无用的 ARP 列表,我想可能就是因为这些ARP列表使得 gc_thresh 值溢出,产生这个现象我猜想可能有两个原因
1:就是你的机器受到攻击,或者你的局域网的机器有病毒引起,我怀疑我的机器就是受到攻击,因为我发现那些 ARP 请求的 IP 地址是连续发的,也就是说有机器在对整个局域网扫描,并且是伪装的地址,所以造成溢出。

2:要不就是你的局域网的机器实在是太多。

我想可能第一种情况可能性比较打,好了。问题找到了怎么解决呢? 一种是积极的解决方法就是把那台狂发包的机器找出来,还有一种就是不让Linux 产生 ARP 表溢出,我试了几个参数

1:将/proc/sys/net/ipv4/neigh/default/gc_thresh3
设成 10240 (它原来的值是 1024),还是会出现这个问题,
后来我计算了一下,我的局域网是 B类掩码(例如: 192.168.x.x/16),那主机数就是  255*255=65025

所以我就将三个文件参数都设成 65025 ,然后在 /etc/rc.d/rc.local 加上
echo "65025" > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo "65025" > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo "65025" > /proc/sys/net/ipv4/neigh/default/gc_thresh3

后来就没有出现这个问题了。我不知道我这样分析有没有道理,请楼上的朋友去试试把!

试好了要告诉我啊!!!! 呵呵
发表于 2003-12-11 17:37:21 | 显示全部楼层
cat /proc/net/ip_conntrack
或者
vi /proc/net/ip_conntrack

看里边有没有机器疯狂地向外边发数据包,目的IP地址依次递增,如果是,可能是冲击波杀手,可以在iptables里边把ICMP禁止

/sbin/iptables -A INPUT -p icmp -j DROP
/sbin/iptables -A FORWARD -p icmp -j DROP
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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