当前位置:八五教程网教学知识电脑学习网络技术在Linux中网络参数的意义» 正文
  1. 在Linux中网络参数的意义

  2. [08-24 16:58:31]   来源:http://www.85jc.com  网络技术   阅读:8452

概要:在Linux中,我们可以根据不同的需求来调整/proc/sys/net/ipv4/目录下的内核网络参数,通过合理的配置这里内核网络参数,从而达到提高网络的安全性和系统的稳定性的目的。因为这方面的文献比较少,所以我们不可能进行全面的介绍。现在已经有linux组织正在从事这方面的文档的写作,相信在不久的将来,我们就会看到比较完整的文档。下面我们就来看一看一些比较常用的内核网络参数。 注意: 1.参数值带有速度(rate)的参数不能在loopback接口上工作。 2.因为内核是以HZ为单位的内部时钟来定义速度的,通常速度为100HZ,所以设定一个参数值为100就表示允许1个包/秒,假如为20则允许5个包/秒。 3.所有内核网络参数配置文件位于/proc/sys/net/ipv4/目录下。 一、icmp相关内核配置参数 概述:通常我们使用icmp包来探测目的主机上的其它协议(如tcp和udp)是否可用。比如包含“destination unreachable”信息的icmp包就是最常见的icmp包。 1.icmp_des

在Linux中网络参数的意义,标签:网络知识,网络学习,http://www.85jc.com


在Linux中,我们可以根据不同的需求来调整/proc/sys/net/ipv4/目录下的内核网络参数,通过合理的配置这里内核网络参数,从而达到提高网络的安全性和系统的稳定性的目的。因为这方面的文献比较少,所以我们不可能进行全面的介绍。现在已经有linux组织正在从事这方面的文档的写作,相信在不久的将来,我们就会看到比较完整的文档。下面我们就来看一看一些比较常用的内核网络参数。 

  注意: 

  1.参数值带有速度(rate)的参数不能在loopback接口上工作。 

  2.因为内核是以HZ为单位的内部时钟来定义速度的,通常速度为100HZ,所以设定一个参数值为100就表示允许1个包/秒,假如为20则允许5个包/秒。 

  3.所有内核网络参数配置文件位于/proc/sys/net/ipv4/目录下。 

  一、icmp相关内核配置参数 

  概述:通常我们使用icmp包来探测目的主机上的其它协议(如tcp和udp)是否可用。比如包含“destination unreachable”信息的icmp包就是最常见的icmp包。 

  1.icmp_destunreach_rate:设置内容为“Destination Unreachable”icmp包的响应速率。设置值应为整数。 

  应用实例: 

  假设有A、B两部主机,首先我们在主机A上执行以下ipchains语句: 

ipchains -A input -p icmp -j REJECT 
  这里的REJECT和DENY不同,DENY会丢掉符合条件的包如同没有接收到该包一样,而REJECT会在丢掉该包的同时给请求主机发回一个“Destination Unreachable”的icmp。 

  然后在主机B上ping主机A,这时候我们会发现“Destination Unreachable”icmp包的响应速度是很及时的。接着我们在主机A上执行: 

echo "1000" > /proc/sys/net/ipv4/icmp_destunreach_rate 
  也即每10秒钟响应一个“Destination Unreachable”的icmp包。 
  这时候再从主机B上ping主机A就会发现“Destination Unreachable”icmp包的响应速度已经明显变慢,我很好奇的测试了一下,发现刚好是每10秒响应一次。 

  2.icmp_echo_ignore_broadcasts:设置是否响应icmp echo请求广播,设置值应为布尔值,0表示响应icmp echo请求广播,1表示忽略。 

  注意:windows系统是不响应icmp echo请求广播的。 

  应用实例: 

  在我的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主机。 

[1] [2] [3]  下一页


Tag:网络技术网络知识,网络学习电脑学习 - 网络技术

上一篇:netsh命令详解
《在Linux中网络参数的意义》相关文章
留言板
取消 发布留言