【入門編】ネットワーク障害時の問題の切り分けについて

記事タイトルとURLをコピーする

CI5課の山﨑です。今回は入門編としてネットワーク障害の一次切り分けについて簡単にまとめていきたいと思います。

構成図

今回は上記構成図のオンプレミスとAWSのホスト間で通信が不可になった際にどのようにして問題を切り分けていくのか簡単にまとめていきたいと思います。

問題が発生しているレイヤーの特定

pingによる疎通確認が初めの一歩

まずはpingで疎通確認をします。pingでICMPパケットを送信して疎通確認を取ることができれば、原因はLayer4以上のいずれかにあることが分かります。反対にpingで疎通確認を取ることができなければ、原因はLayer3以下のいずれかにあることが分かります。

pingによる疎通確認が取れた場合

AWS側ではホストに関連付けているセキュリティグループの設定で適切なポートならびにSourceからのInboundトラフィックを許可しているかどうかを確認します。合わせてOutboundトラフィックが許可されているかどうかも確認します。 オンプレミス側ではファイアウォールの設定でトラフィックが許可されているか等を確認します。それぞれ正しく設定されていれば、問題はさらに上位のLayerに存在するはずだと考えて上位Layerに向かって原因を調査していきます。

pingによる疎通確認が取れなかった場合

AWS側ではサブネットに関連付けをしているルートテーブルのルートが正しく設定されているか、ネットワークACLで適切なルールを設定しているかを確認します。これらに問題がなければオンプレミス側のホストからtraceroute(tracert)コマンドをAWSのホストのIPアドレスに対して実行し、通信が遮断されているのかルーターを特定します。コマンドを実行する際はAWS側のホストから実行するのか、オンプレミス側のホストから実行するのかは状況に応じて判断していきます。 通信が遮断されているルーターを特定することができたら当該ルーターのルートテーブルを確認して、オンプレミス - AWS間の通信を制御しているルート設定がないかを確認して設定を修正します。それでも問題が解決しない場合はさらに下位のLayerに向かって原因を調査していきます。

まとめ

ネットワーク障害時のトラブルシューティングには様々な方法があり、発生しているトラブルによってどのような方法を選択するかが変わってくると思いますが、問題を大きく切り分ける第一歩としてpingによる疎通確認をする。そして状況に応じて上位Layer、下位Layerに向かって1つずつ問題の所在を明らかにしていくというプロセスを踏むことは大切なことではないかと思います。