LFCA:基本的なネットワークトラブルシューティングのヒントを学ぶ – パート12

システムが問題に遭遇する場合がありますが、そのような場合でも問題を解決し、正常かつ機能する状態に復元する方法を知っておく必要があります。このセクションでは、Linuxシステム管理者が持つべき基本的なネットワークトラブルシューティングスキルに焦点を当てます。

ネットワークトラブルシューティングの基本的な理解

ほとんどの場合、ネットワーク管理者とシステム管理者との間には大きな隔たりがあります。ネットワークの可視性が不十分なシステム管理者は通常、ネットワークのダウンタイムの原因をネットワーク管理者に責任を押し付け、一方、サーバーの知識が不足しているネットワーク管理者は、しばしばシステム管理者を端末デバイスの故障の原因として責めます。ただし、責任転嫁は問題の解決に役立ちません。職場環境では、これが同僚同士の関係を敵対的にさせる可能性があります。

システム管理者として、ネットワークトラブルシューティングの基本的な理解を持つことは、問題を迅速に解決し、一体となった働きやすい環境を促進するのに役立ちます。そのため、私たちはこのセクションをまとめ、ネットワーク関連の問題の診断時に役立ついくつかの基本的なネットワークトラブルシューティングのヒントを強調しています。

A Recap of the TCP / IP Model

LFCAシリーズの前回のトピックでは、コンピュータ内のデータの送信と各レイヤーに見られるプロトコルを示すTCP/IP概念モデルを見てきました。

TCP/IP Layer Model

もう1つ同じくらい重要な概念モデルは、OSIモデルOpen Systems Interconnection)モデルです。これは、ネットワーキングシステムとコンピューティング機能を各レイヤーに分解する7層のTCP/IPフレームワークです。

OSIモデルでは、これらの機能が次のようにレイヤーに分割されます。最下位から始まり物理層、データリンク層、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、そして最上位にアプリケーション層があります。

OSI Model

OSIモデルについて話す際にOSIモデルへの言及なしにネットワークのトラブルシューティングについては不可能です。このため、各レイヤーを詳しく説明し、各レイヤーで使用されるさまざまなネットワークプロトコルとそれに関連する障害のトラブルシューティング方法を調べます。

レイヤー1:物理層

これはおそらく最も見落とされがちなレイヤーの1つですが、通信が行われるためには最も重要なレイヤーの1つです。物理層には、ネットワークカード、イーサネットケーブル、光ファイバーなどの物理的なPCネットワーキングコンポーネントが含まれます。ほとんどの問題はここから始まり、主に次のような理由によって引き起こされます:ネットワーク/イーサネットケーブルが抜けている

  • ネットワーク/イーサネットケーブルを抜いた
  • ネットワーク/イーサネットケーブルが損傷しています
  • 欠損または損傷したネットワークカード

このレイヤーでは、心に浮かぶ質問は次のとおりです:

  • 「ネットワークケーブルは差し込まれていますか?」
  • 「物理的なネットワークリンクはアップしていますか?」
  • 「IPアドレスを持っていますか?」
  • 「デフォルトゲートウェイIPにpingできますか?」
  • 「DNSサーバーにpingできますか?」

ネットワークインターフェースの状態を確認するには、ipコマンドを実行してください:

$ ip link show
Check Network Interface Status

上記の出力から、2つのインターフェースがあることがわかります。最初のインターフェース – lo – はループバックアドレスであり、通常使用されません。ネットワークとインターネットへの接続性を提供するアクティブなネットワークインターフェースはenp0s3インターフェースです。出力からインターフェースの状態がUPであることがわかります。

ネットワークインターフェースがダウンしている場合、状態DOWNの出力が表示されます。

Network Interface Down

その場合は、次のコマンドを使用してインターフェースをアップにできます:

$ sudo ip link set enp0s3 up
Active Network Interface

または、以下に示すifconfigコマンドを実行することもできます。

$ sudo ifconfig enp0s3 up
$ ip link show
Enable Network Interface

ルーターまたはDHCPサーバーからIPアドレスを取得したことを確認するには、ifconfigコマンドを実行してください。

$ ifconfig
Check Server IP Address

IPv4アドレスは、inetパラメータによって示される接頭辞で表されます。例えば、このシステムのIPアドレスは192.168.2.104で、サブネットまたはネットマスクは255.255.255.0です。

$ ifconfig
Check Server IP Address

また、システムのIPアドレスを確認するには、次のようにip addressコマンドを実行することもできます。

$ ip address

デフォルトゲートウェイのIPアドレスを確認するには、次のコマンドを実行してください:

$ ip route | grep default

デフォルトゲートウェイのIPアドレスは、ほとんどの場合、DHCPサーバーまたはルーターとして示されます。IPネットワークでは、デフォルトゲートウェイにpingを送信できるはずです。

Check Network Gateway

使用しているDNSサーバーを確認するには、systemdシステムで次のコマンドを実行してください。

$ systemd-resolve --status
Check DNS Servers

A better way to check the DNS servers in use is to run the nmcli command shown

$ ( nmcli dev list || nmcli dev show ) 2>/dev/null | grep DNS
Check DNS Using nmcli Command

ご覧の通り、ネットワークトラブルシューティングのかなりの部分がここで行われます。

レイヤー2:データリンク層

基本的に、データリンク層はネットワーク上のデータ形式を決定します。ここで、ホスト間のデータフレームの通信が行われます。この層で主要なプロトコルはARPアドレス解決プロトコル)です。

ARPはリンク層アドレスを発見し、レイヤー3のIPv4アドレスをMACアドレスにマッピングする責任があります。通常、ホストがデフォルトゲートウェイに接触する場合、ホストはIPアドレスを持っていますが、MACアドレスは持っていません。

ARPプロトコルは、レイヤー3とレイヤー2の間を架ける橋で、レイヤー3上の32ビットIPv4アドレスをレイヤー2上の48ビットMACアドレスに翻訳し、その逆も行います。

PCがLANネットワークに参加したとき、ルーター(デフォルトゲートウェイ)はそれに識別用のIPアドレスを割り当てます。もう一つのホストがPCに送信されるデータパケットをデフォルトゲートウェイに届けるために、ルーターはARPを要求し、IPアドレスに合わせたMACアドレスを探し出します。

各システムには独自のARPテーブルがあります。ARPテーブルを確認するには、以下のコマンドを実行します。

$ ip neighbor show
Check Network ARP Table

お気づきのように、ルーターのMACアドレスが記録されています。解決問題のために、コマンドが出力を返さないことに注意してください。

レイヤー3: ネットワーク/インターネットレイヤー

これは、システム管理者が熟悉しているIPv4アドレスを独自に操作するレイヤーです。ICMPやARPなど、私たちがカバーしたプロトコルと他のもの、RIP(路由情報プロトコル)を含みます。

一般的な問題には、デバイスの不正設定や、ルーターやスイッチなどのネットワークデバイスに関する問題があります。トラブルシュootingを始めるのに適切な場所は、システムがIPアドレスを選択したかどうかを確認する場所です。

$ ifconfig
Check Server IP Address

pingコマンドを使用することで、インターネット接続を確認することができます。これは、ICMPechoパケットを、GoogleのDNSに送信します。-cフラグは、送信されるパケットの数を示します。

$ ping 8.8.8.8 -c 4
Check Network Activity

出力は、GoogleのDNSからの肯定の返答を示し、0パケットの損失を示します。不十分な接続を持っている場合、tracerouteコマンドを以下のように使用して、パケットが失われているポイントを確認することができます。

$ traceroute google.com
Trace Network Activity

星号(*)は、パケットが失われているかロストしているポイントを示します。

nslookupコマンドは、DNSを問い合わせて、ドメインやホスト名に割り当てられたIPアドレスを取得します。これは、前向きDNS查找と呼ばれます。

たとえば。

$ nslookup google.com

nslookupコマンドは、google.comドメインに割り当てられたIPアドレスを揭露します。

Server:		127.0.0.53
Address:	127.0.0.53#53

Non-authoritative answer:
Name:	google.com
Address: 142.250.192.14
Name:	google.com
Address: 2404:6800:4009:828::200e

digコマンドは、ドメイン名に割り当てられたDNSサーバーについての質問を行うためのものです。たとえば、DNS名サーバーを質問するには以下のようにします。

$ dig google.com

阶层4: 伝達層

トランスポート層は、TCPUDPプロトコルを使用してデータの送信を処理します。おさらいですが、TCPは接続指向型のプロトコルであり、一方UDPは接続レス型です。実行中のアプリケーションは、ポートとIPアドレスで構成されるソケットでリスンします。

アプリケーションが必要とする可能性のあるブロックされたTCPポートを含む一般的な問題が発生することがあります。ウェブサーバーの実行状態を確認したい場合は、netstatまたはssコマンドを使用して、ウェブサービスがポート80でリスンしているかどうかを確認してください。

$ sudo netstat -pnltu | grep 80
OR
$ ss -pnltu | grep 80
Check Network Ports Status

システム内で実行中のサービスがポートを使用している場合、別のサービスがそのポートを使用するように設定する必要がある場合があります。

まだ問題が解決しない場合は、ファイアウォールを確認し、興味のあるポートがブロックされていないか確認してください。

トラブルシューティングのほとんどは、これらの4つの層で行われます。セッション、プレゼンテーション、およびアプリケーション層では、トラブルシューティングはほとんど行われません。これは、これらの層がネットワークの機能においてよりアクティブな役割を果たしていないためです。ただし、これらの層で何が起こるかについて簡単に概要を把握しましょう。

レイヤー5:セッション層

セッション層は、セッションと呼ばれる通信チャネルを開き、データの送信中にそれらが開いたままであることを確保します。また、通信が終了したらそれらを閉じます。

6层次:表示層

表示層は、アプリケーション層が使用するデータを合成します。この層では、デバイスがデータを暗号化、エンコード、や압縮する方法を決め、远くの端から正しく受信できるようにします。

7层次:アプリケーション層

最後に、終端ユーザーに最も近いアプリケーション層を考えます。この層には、HTTP、HTTPS、POP3、IMAP、DNS、RDP、SSH、SNMP、NTPなどの多样的なプロトコルがあります。

結論

Linuxシステムのトラブルシューティング時に、OSIモデルを基に阶层の取り組みをすることは、最下位層から始めて、何がおかしいのか理解し、問題を狭めるのに非常に役立ちます。

Source:
https://www.tecmint.com/basic-network-troubleshooting-tips/