Linux kernel 的使用问题(2)

在我的RedHat6.x和RedHat7上该值缺省为0,这样当有个用户ping我的服务器所在的网段的网络地址时,所有的linux服务器就会响应,从而也能让让该用户得到我的服务器的ip地址,可以执行

echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

来关闭该功能。从而防止icmp风暴,防止网络阻塞。

(3)icmp_echoreply_rate:设置系统响应icmp echo请求的icmp包的响应速度,设置值为整数。

应用实例:

假设有A、B两部主机,首先我们在主机B上ping主机A,可以看到响应很正常,然后在主机A上执行

echo "1000" > /proc/sys/net/ipv4/icmp_echoreply_rate

也即每10秒钟响应一个icmp echo请求包。然后再ping主机A就可以看到响应速度已经变成10秒一次。

最好合理的调整该参数的值来防止icmp风暴。

(4)icmp_echo_ignore_all:设置系统是否忽略所有的icmp echo请求,如果设置了一个非0值,系统将忽略所有的icmp echo请求。其实这是icmp_echoreply_rate的一种极端情况。参数值为布尔值,1:表示忽略,0:表示响应。

(5)icmp_paramprob_rate:当系统接收到数据报的损坏的ip或tcp头时,就会向源发出一个包含有该错误信息的icmp包。这个参数就是用来设置向源发送这种icmp包的速度。当然,在通常情况下ip或tcp头出错是很少见的。参数值为整数。

(6) icmp_timeexceed_rate:数据报在网络上传输时,其生存时间(time to live)字段会不断减少,当生存时间为0时,正在处理该数据报的路由器就会丢弃该数据报,同时给源主机发送一个"time to live exceeded"的icmp包。该参数就是用来设置这种icmp包的发送的速度。当然,这通常用于充当路由器的linux主机。

IP相关内核配置参数

linux内核网络参数中关于ip的配置参数通常是用来定义或调整ip包的一些特定的参数,除此之外还定义了系统的一些网络特性。

(1) ip_default_ttl:设置从本机发出的ip包的生存时间,参数值为整数,范围为0~128,缺省值为64。在windows系统中,ip包的生存时间通常为128。如果你的系统经常得到"Time to live exceeded"的icmp回应,可以适当增大该参数的值,但是也不能过大,因为如果你的路由坏路的话,就会增加系统报错的时间。

(2) ip_dynaddr:该参数通常用于使用拨号连接的情况,可以使系统能够立即改变ip包的源地址为该ip地址,同时中断原有的tcp对话而用新地址重新发出一个syn请求包,开始新的tcp对话。在使用ip欺骗时,该参数可以立即改变伪装地址为新的ip地址。该参数的参数值可以是:

1:启用该功能
2:使用冗余模式启用该功能
0:禁止该功能

应用实例:在使用ipchains配置ip欺骗带动局域网共享一个ppp连接上网时,有时会出现刚开时连接一个站点连不通,再次刷新又可以连接的情况,这时候就可以设置该参数的值为1,从而立即改变伪装地址为新的ip地址,就可以解决这类问题。命令为:

echo "1" > /proc/sys/net/ipv4/ip_dynaddr

(3)ip_forward:可以通过该参数来启用包转发功能,从而使系统充当路由器。参数值为1时启用ip转发,为0时禁止ip转发。注意,我们可以在单网卡或双网卡的主机上实现ip转发。

应用实例:

假设我们使用一部装有双网卡的linux主机充当防火墙,这时候我们就必须执行以下命令来打开ip转发功能:

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

(4) ip_local_port_range:设置当本地系统向外发起tcp或udp连接请求时使用的端口范围。设置值为两个整数,缺省为"1024 4999"。

应用实例:

echo "1450 6000" > /proc/sys/net/ipv4/ip_local_port_range

tcp相关内核配置参数

通过tcp配置参数可以控制tcp会话过程中的各个方面。

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzwdxp.html