mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
3869 文字
10 分
実験1 よく使うネットワークコマンド
2022-07-01

実験1 よく使われるネットワークコマンド#

1、実験の目的#

  • LinuxのコマンドラインとWindowsのコマンドラインの使用を理解する
  • よく使われるネットワークコマンドの基本的な使い方に慣れる
  • 基づくpingifconfigtraceroutearpnetstatネットワーク状態分析と測定技術を習得する

2、実験環境#

  • ハードウェア要件:Alibaba Cloud の ECS を1台。
  • ソフトウェア要件:Linux/ Windows OS

3、実験内容#

3.1 pingの基本的な使い方#

pingコマンドを使用してネットワークの到達性をテストします。これにより、ネットワークが正しく接続されているか、ネットワーク接続の状況を確認するのに非常に役立ちます。pingが正しく動作している場合、大まかに言ってネットワークアクセス層、NIC、モデムの入出力線、ケーブル、ルータなどの故障を排除でき、問題の範囲を絞り込むことができます。

ping -c 4 www.baidu.com
ping -c 4 166.111.4.100

3.2 ifconfig/ipconfig(Windows)の基本的な使い方#

ifconfig実用プログラムは、現在のTCP/IP設定値を表示するために使用されます。これらの情報は、手動で設定したTCP/IP設定が正しいかどうかを検証するのに一般的に用いられます。

ifconfig
ifconfig eth0

3.3 tracerouteの基本的な使い方#

tracerouteコマンドを使用してルーティング状況を測定します。つまり、データパケットが目的のホストに到達するまでに経由する経路を表示するためのものです。

traceroute www.sohu.com
traceroute 166.111.4.100

3.4 ARPの基本的な使い方#

ARPはTCP/IPプロトコル群の重要なプロトコルで、対応するIPアドレスのネットワークカード物理アドレスを特定するために使用されます。arpコマンドを使用すると、ローカルコンピュータまたは別のコンピュータのARPキャッシュの現在の内容を表示できます。

arp –a
arp -i eth0

3.5 netstatの基本的な使い方#

netstatコマンドは、アクティブなTCP接続、コンピュータがリッスンしているポート、Ethernetの統計情報を表示できます。netstatはアクティブなTCP接続を表示します。

netstat –a
netstat -t

4、実験結果と分析#

4.1 pingの基本的な使い方#

ping -c 4 www.baidu.com
ping -c 4 166.111.4.100

p4lJiLgDakWBonr.png

image-20220409224423767

Ping は TCP/IP ネットワーク階層のアプリケーション層のサービスコマンドで、主に特定の宛先ホストへ ICMP(Internet Control Message Protocol / インターネット制御メッセージプロトコル)Echo 要求パケットを送信し、宛先が到達可能かどうかと関連状態を把握するために使用されます。ネットワークの到達性テストでは、ping は ICMP のエコー要求とエコー応答を生成します。宛先ホストが ICMP のエコー要求パケットを受信すると直ちに応答パケットを返します。送信元ホストが ICMP のエコー応答を受け取れる場合、宛先ホストへ到達したネットワークは正常であることを示します。

Linux で使用できるオプション -c は、送信(または受信)されるエコー要求の数を指定します。ここでは www.baidu.com166.111.4.100 が到達可能かどうかをテストします。スクリーンショットには、4つのデータパケットがすべて正常に受信され、損失がないことが示され、ネットワークが通り、ホスト www.baidu.com および 166.111.4.100 は到達可能で、平均往復時間はそれぞれ 10.105 ms と 31.997 ms です。

4.2 ifconfig/ipconfig(Windows)の基本的な使い方#

ifconfig
ifconfig eth0

3vtchm2ryeR1kXa.png

image-20220409230049094

ipconfig は Windows 系統でネットワーク設定情報を表示するコマンドです。Windows の ipconfig ユーティリティは、現在の TCP/IP 設定を表示するために使用できます。これらの情報は、手動で設定した TCP/IP 設定が正しいかどうかを検証するために一般的に用いられます。

ifconfig は Linux 系統でネットワーク設定情報を表示または設定するためのコマンドです。ifconfig はネットワークインタフェースを表示、設定、有効化または無効化するために使用される非常に一般的なツールで、システム起動時に必要なネットワークインタフェースパラメータを設定するために用いられます。このツールを使って NIC の IP アドレス、サブネットマスク、ブロードキャストアドレス、ゲートウェイなどを一時的に設定することができます。また、それをファイルに書き込むこともできます(例えば /etc/rc.d/rc.local)、そうすればシステム起動後にそのファイルを読み込み、NIC に IP アドレスを設定します。

ifconfig はネットワークデバイス情報を表示でき、ifconfig eth0 は最初のネットワークカードである eth0 のみの情報を表示します。ここではホストのネットワークデバイス情報を確認したところ、最大転送単位は 1500、NIC の IP アドレスは 172.16.2.6、ブロードキャストアドレスは 172.16.2.255、マスクは 255.255.255.0 が見えます。

一方、lo はホストのループバックアドレスを表します。通常はネットワークプログラムのテストに用い、LAN 内部または外部のユーザーには閲覧させず、このホスト上でのみ実行・確認します。例えば HTTPD サーバをループバックに割り当て、ブラウザに 127.0.0.1 と入力すると、構築した Web サイトを閲覧できます。ただし、閲覧できるのは自分だけで、LAN 内の他のホストやユーザーには分かりません。

4.3 tracerouteの基本的な使い方#

traceroute www.sohu.com
traceroute 166.111.4.100
traceroute www.xju.edu.cn
traceroute www.xju.edu.cn -T

MBVg4aXbmCf1w2k.png

image-20220409232055284

Linux の traceroute コマンドは、データパケットがホスト間を通る経路を表示します。traceroute コマンドはネットワークデータパケットのルーティング経路を追跡します。デフォルトのパケットサイズは 40Bytes、ユーザーは別途設定できます。

Traceroute の設計は ICMP および IP ヘッダの TTL(Time To Live)フィールドを利用します。まず、traceroute は TTL が 1 の IP データグラムを目的地へ送信します。経路上の最初のルータがこのデータグラムを受信すると TTL を1減らします。TTL が 0 になるため、そのルータはこのデータグラムを破棄し、ICMP time exceeded メッセージを返します。traceroute がこのメッセージを受け取ると、このルータがこの経路上に存在することを知り、次に TTL が 2 のデータグラムを送信して 2 番目のルータを発見します……traceroute は送信するデータグラムの TTL を毎回 1 増やして次のルータを発見します。この繰り返しは、データグラムが目的地に到達するまで続きます。

当Tracerouteが UDP データグラムを目的地へ送信する際、宛先ポート番号は一般的なアプリケーションが使用しない番号(30000 以上)を選択します。したがって、この UDP データグラムが目的地に到達すると、そのホストは ICMP Port Unreachable のメッセージを返します。Traceroute がこのメッセージを受け取ると、目的地へ到達したことを知ることになります。したがって、Traceroute はサーバ側にも Daemon プログラムが存在しません。

Traceroute は ICMP TTL 到達メッセージを送信先の IP アドレスを抽出してドメイン名解決を行います。毎回、Traceroute は一連のデータを表示し、経由したルータのドメイン名と IP アドレス、3 パケットの往復に要する時間を表示します。

ここでは traceroute の最も基本的で一般的な方法 traceroute hostname を使用して、ホストから www.baidu.com および 166.111.4.100 への経路を測定します。図では、レコードがシリアル番号1から開始され、各レコードは1跳を表します。各跳は1つのゲートウェイを表し、各行の3つの時間は ms 単位で、各ゲートウェイへデータパケットを3つ送信して応答を受け取るのに要した時間を示します。さらに、後半の行が星印で表示されることがあります。このような場合、ファイアウォールが ICMP の返答情報をブロックしている可能性があり、関連するデータパケットの返却データを得られません。-T オプションは TCP SYN による探査を意味します。

4.4 ARPの基本的な使い方#

arp –a
arp -i eth0

9mabXeSE87TA3ri.png

image-20220409233845980

ARPは TCP/IP プロトコル群の重要なプロトコルで、対応する IP アドレスのネットワークカード物理アドレスを特定するために使用されます。arp コマンドを使用すると、ARP キャッシュ表を表示・変更できます。ARP キャッシュには、IP アドレスとその解決済みのEthernet または Token Ring 物理アドレスを格納した1つ以上の表が含まれます。本質的には、IP アドレスと MAC アドレスが対応する表です。

arp コマンドは Linux で使用されるオプション -a は、すべてのインタフェースの ARP キャッシュ表を表示します(コンピュータに搭載された各 Ethernet または Token Ring ネットワークアダプタには、それぞれ独立したテーブルがあります)。arp -i eth0 は、指定デバイスの ARP キャッシュを表示できます(つまり eth0 の ARP キャッシュです)。HWaddress は現在の eth0(1 番目のネットワークカード)の物理アドレスが ee:ff:ff:ff:ff:ff であることを示します。

4.5 netstatの基本的な使い方#

netstatコマンドは、アクティブなTCP接続、コンピュータがリッスンしているポート、Ethernetの統計情報を表示できます。netstatはアクティブなTCP接続を表示します。

netstat –a
netstat -t

SCv6fGV2RJpn4Ux.png

image-20220410000001138

DdMLpEe7uTjWItg.png

image-20220410000017070

Netstatはコマンドラインのツールで、TCP/IP ネットワークを監視するのに非常に有用です。ルーティングテーブル、実際のネットワーク接続、および各ネットワークインタフェースデバイスの状態情報を表示します。Netstatは IP、TCP、UDP、ICMP プロトコルに関連する統計データを表示するために用いられ、一般的にはローカルマシンの各ポートのネットワーク接続状況を検証するのに用いられます。

netstatコマンドは Linux で使用されるオプション -a により、現在のすべての接続をリストします。上図では、前述のコマンドが tcpudpunix プロトコルのすべてのソケット接続を列挙し、デフォルトでは LISTEN 関連を表示しません。一方、netstat -t ではホストは tcp 関連のみを表示できます。

5、実験のまとめ#

5.1 問題と解決策#

traceroute コマンドを使用するとき、-bash: traceroute: command not found というエラーが発生する。解決方法は yum install traceroute コマンドを実行して traceroute をインストールします。 Windows 10 で ping -c 4 www.baidu.com コマンドを実行するとエラーになる。解決方法は ping /? コマンドで ping コマンドの使い方を参照し、-n オプションでリクエスト数を設定する必要があることが分かりました。

5.2 感想#

  • 本実験レポートは、よく使われるネットワークコマンドの習熟を完成させ、授業で学んだ知識の検証を実現しました。今回の実験を通じて、私は Linux のターミナルのコマンドラインの使用法を身につけ、よく使われるネットワークコマンドの基本的な使い方を理解し、自己のプログラミング能力を向上させました。
  • Linux と Windows 環境では、同じ機能のソフトウェアでも、パラメータが異なる場合があることを認識しました。測定を行う際には、ヘルプを参照して正しくパラメータオプションを設定してください。
  • これらのよく使われるネットワークコマンドの操作を通じて、ネットワークの異なる層のハードウェア・ソフトウェアのさまざまな側面を操作し、授業で学んだ知識を裏付けることができました。
共有

この記事が役に立ったときは、ぜひ他の人に共有してください!

実験1 よく使うネットワークコマンド
https://dreaife.tokyo/jp/posts/network-commands-lab/
著者
dreaife
公開日
2022-07-01
ライセンス
CC BY-NC-SA 4.0

一部の情報は古い可能性があります

関連した投稿 スマート
1
実験2 IPプロトコル分析
cs-base 本実験は、IPパケット形式と各フィールドの意味を理解し、tcpdumpとWiresharkの使い方を習得することを目的としています。実験環境にはAlibaba Cloudホストと各種OSを使用します。tcpdumpでのパケット取得とWiresharkでの解析を通じて、IPプロトコル構造と関連コマンドの活用を学び、tracerouteコマンドやXftp接続の問題を解決し、プログラミング能力とIPプロトコル理解を向上させました。
2
実験5 電子メール
cs-base 本実験は、SMTPやPOP3を含む電子メールシステムの基本構造と通信プロトコルを理解することを目的としています。メールエージェント、クライアント、Webメール、telnetコマンドを用いて送受信を行い、その通信過程とプロトコルを解析しました。実験結果として、メール送信の具体的な流れとSMTPプロトコル解析への理解が深まり、プログラミング能力とプロトコル理解の向上につながりました。
3
実験3 UDPプロトコル分析
cs-base 本実験は、UDPプロトコルの内容と動作原理を把握し、DNSクエリおよびQQ通信のUDPパケットを解析することを目的としています。tcpdumpとWiresharkを用いたパケット取得・解析を行い、結果としてUDPパケットが送信元ポート、宛先ポート、長さ、チェックサムで構成されることを確認しました。実験を通じてtracerouteコマンドやXftp接続の問題を解決し、IPプロトコル解析への理解とプログラミング能力を高めました。
4
実験6 DNSプロトコル分析と測定
cs-base 本実験は、DNSプロトコルとその基本概念(ドメイン名の構造、DNSサーバー、名前解決の原理など)を理解することを目的としています。DNSシステムの設定、digツールを用いたDNS情報の測定、tcpdumpとWiresharkによるDNSクエリパケットの解析を行います。結果としてDNSクエリ各フィールドの意味を確認し、実験中に遭遇した問題と解決策をまとめることで、DNSプロトコルへの理解とプログラミング能力を高めました。
5
実験4 TCPプロトコル分析
cs-base 本実験は、TCPプロトコルの基本概念とパケット構造を理解し、接続確立と切断の過程を分析し、tcpdumpとWiresharkを用いたTCPプロトコル解析技術を習得することを目的としています。wgetでWebページを取得してパケットをキャプチャし、TCPヘッダおよび各フィールドを解析し、3ウェイハンドシェイクと4ウェイハンドシェイク(切断)の過程を検討します。最後に実験中の問題と解決方法をまとめ、IPプロトコルとTCPパケット構造への理解を深めました。

目次