Linux下调整网卡的工作模式

2020-01-30 11:04:34王冬梅

  
  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主机。
  
  IP相关内核配置参数
  
  linux内核网络参数中关于ip的配置参数通常是用来定义或调整ip包的一些特定的参数,除此之外还定义了系统的一些网络特性。