网络绑定的机器偶尔会出现出站 ping 问题,但永远不会出现入站 ping 问题

网络绑定的机器偶尔会出现出站 ping 问题,但永远不会出现入站 ping 问题

已从 stackoverflow.com 重定向

我们有一台具有网络绑定的 Suse Linux 11 服务器,我们将其命名为 DBSERVER。

在另一台名为 CLIENTMACHINE 的类似机器上运行以下脚本时,我们在将脚本指向 DBSERVER 时没有观察到任何错误:

(开始脚本)

 #!/bin/bash

 # parameter: IP address 

 if [ ${#*} != 1 ]
 then
  echo "Need one parameter: IP address"
  exit 1
 fi

 echo "Please monitor log with command tail -f /root/bin/report_ping_${1}.txt"

 echo "Script began at `date +'%Y-%m-%d %T'`" >> /root/bin/report_ping_${1}.txt

 while [ 1 ]
 do
  RESULT=`ping -c 1 "${1}" | grep transmitted`
  #echo "RESULT is ${RESULT}"

  PERCENTAGE_LOST=`echo $RESULT | awk '{ print $6 }'`
  #echo "PERCENTAGE_LOST is ${PERCENTAGE_LOST}"

  NUMBER_LOST=${PERCENTAGE_LOST:0:${#PERCENTAGE_LOST}-1}
  #echo "NUMBER_LOST is ${NUMBER_LOST}"

  if [ "${NUMBER_LOST}" != "0" ]
  then
   echo "${PERCENTAGE_LOST} lost for ${1} at `date +'%Y-%m-%d %T'`" >> /root/bin/report_ping_${1}.txt
  fi
 done

(脚本结束)

但是,如果我们使用从 DBSERVER 指向 CLIENTMACHINE 的相同脚本,我们会在日志中观察到错误。

对于要检查什么,有什么建议吗?

提前致谢,

伯特


忘了说错误是间歇性的!大多数时候都有效。

答案1

您可以尝试在运行脚本时运行 tcpdump 或 tshark

tcpdump -i eth0 -n -p icmp

您应该在某个地方看到 tcpdump 输出在出站 ping 请求或入站 ping 回复处停止。当然,您可以在客户端和服务器上执行此操作,并查看两台机器的请求和响应是否正确。由于您正在使用绑定,您可能需要 tail -f /var/log/syslog 或 /var/log/messages,并查看内核是否记录了有关绑定故障转移到从属 NIC 的信息。

相关内容