CentOS の奇妙なネットワーク問題をデバッグする方法

CentOS の奇妙なネットワーク問題をデバッグする方法

AWS/S3 にデータを継続的にコピーしている CentOS 7 マシンがあります。
ただし、問題が発生しているため、デバッグ方法についてアドバイスをいただければ幸いです。

S3 へのコピーは数時間から数日間続き、その後、ネットワークの機能が停止します (cronネットワークへの ping と S3 コマンドを 1 分ごとに記録するジョブがあるaws s3 cpため、コピーが発生した正確な時刻がわかります)。

その段階では、NetworkManagerデーモンは正​​常に見え、異常は何も示されていませsyslogjournalctl -xeが、ネットワークを再び機能させる唯一の方法は再起動です。

ネットワークが正常に機能しなくなった時間について、そのマシン上のユーザーにはスケジュールされた (crontab) ジョブがなく、マシンには静的 IP があり、問題が発生する瞬間まで、マシンとネットワークは問題なく機能していました。

この問題をデバッグする方法について何かアイデアはありますか?

編集1:

Artem Tashkinov の提案に従って、次の操作を実行するスクリプトの呼び出しを crontab に追加しました。

#!/bin/bash -xv
ping -c1 1.1.1.1 >/dev/null 2>&1
if [ $? -eq 0 ];
then
        echo Successful
else
        echo Fail
        systemctl stop NetworkManager
        rmmod r8169
        modprobe r8169
        systemctl start NetworkManager
fi

そして、ネットワークが停止したときにそれを復活させることができるかどうかを確認します。

編集2:

スクリプトを使用しても、ネットワークに障害が発生した場合は復旧されませんでした。

ただし、外部 NIC を追加してスクリプトを拡張し、問題が解決するかどうかを確認しました。

#!/bin/bash -xv
#
#kernel_module="r8169"  # on-board NIC
#kernel_module="e1000e" # add-on NIC

nic=$( ifconfig | grep -B1 10.60.100 | head -1 | awk -F: '{ print $1 }' )
kernel_module=$( ethtool -i $nic | grep driver | awk '{ print $NF }' )

ping -c1 1.1.1.1 >/dev/null 2>&1
if [ $? -eq 0 ];
#if [ $? -ne 0 ];
then
        echo Successful
else
        echo Fail
        systemctl stop NetworkManager
        rmmod $kernel_module
        modprobe $kernel_module
        systemctl start NetworkManager
fi

答え1

しかし、ネットワークを再び機能させる唯一の方法は再起動することです

過去にもこのようなサーバーがありました。

私がやったことは、既知の IP アドレスに ping するタスクを crontab に追加したことです。アクセスできない場合は、ネットワークをシャットダウンし、NIC を担当するカーネル モジュールを削除して ( rmmod module_name)、再度挿入し ( modprobe module_name)、最後にネットワークを再起動しました。ぜひお試しください。

もしそれがあなたにとって効果があるなら、ぜひバグを報告

関連情報