情報工学実験1「ネットワーク管理コマンド活用」


【目次】


【注意事項】

  1. 報告書の提出期限は 1班:6/6(Tue)、2班:6/16(Fri) とする。(提出遅れは減点する)
  2. 報告書の作成・提出は、以下の通り行うものとする。
    1. 個人単位で報告書を作成すること。(LaTeXを推奨するが、Open Officeなどでも可)
    2. 報告書はPDF化してslab1-network-command@n-lab.infoに添付メールで提出すること。
      なお、PDFのファイル名は、各自の学籍番号(例:1657xxx.pdf)とすること。(ユーザーIDではないので注意)
      また、情報工学科のメールアドレス(例:e1657xx@ie.u-ryukyu.ac.jp)から送信すること。
    3. 報告書には表紙を付けて、実験テーマ名・組名・学籍番号・氏名・提出日を明記すること。
    4. 報告書に実行結果を添付する場合は、全ての出力を添付するのではなく、説明に必要な部分を抜粋すること。

到達目標

コンピューターなどのネットワーク機器をネットワークに接続する際、IPアドレス、サブネットマスク、デフォルトゲートウェイ(ルーター)、DNSサーバーなどを設定する必要がある。これらを自動設定する仕組み(DHCPなど)もあるが、手動であれ自動であれ、ネットワーク機器をネットワークに接続するためには、これらをネットワーク機器に設定しなければならない。しかし、これらが正しく設定されていても、コンピューターやネットワークに何らかのトラブルがあると、正しくネットワークに接続できない場合がある。

このように、ネットワークを利用する上で、何らかのトラブルに直面したとき、それがコンピューター側の問題なのか、ネットワーク側の問題なのかを判断したり、対処する方法を検討・実施する(これを「トラブルシューティング」という)ためには、コンピューターやネットワークの状態を知る必要がある。

本実験では、コンピューターやネットワークの状態を確認したり設定するための基本的なネットワーク管理コマンドについて、その機能や動作原理を理解して使用方法を習得することを目標とする。

1 ネットワーク管理コマンド演習

以下では、いくつかの基本的なネットワーク管理コマンドについて概説する。さらに詳細な解説は、manコマンドやgoogleなどの検索エンジンで調べること。また、各コマンドの概説の後にある実験課題を行い、報告書にまとめること。

なお、以下のすべの実験及び課題は、Mac Bookのファイアウォール機能を無効の状態で行うこと。

1.1 ping

ping(packet inter network groper)は、ネットワークの接続性を調べるために利用されるネットワーク管理コマンドである。

pingコマンドの基本形式は以下の通りである。

[書式]
ping [-c パケット数] [-s パケットサイズ] [ホスト名 or IPアドレス]

pingは、ある大きさのパケットを相手のコンピューターに送り、それに対する応答が返ってくるかどうかを確かめている。問題が発生した場合は、pingを使うことでネットワーク接続の段階で問題が発生しているのか、アプリケーションレベルで問題が発生しているのかを判断できる。

例えば、WWWやSSHを利用したアプリケーションを使おうとしたが通信相手にアクセスできない場合は、pingを実行して相手のコンピューターから応答が返ってくればネットワーク接続に関しては問題がなく、アプリケーションレベルで問題が発生している可能性が高いと判断できる。

また、pingを利用することで、相手のコンピューターまでのパケットの往復時間(RTT:Round Trip Time)を測定することもできる。

pingはICMP(Internet Control Message Protocol)(RFC792)の「エコー要求(Type8)メッセージ」と「エコー応答(Type0)メッセージ」を利用している(ICMPメッセージには複数の異なるタイプが定義されている)。具体的には、クライアントがエコー要求メッセージをサーバーに送り、サーバーがエコー応答メッセージをクライアントに返す。

pingの動作原理を、図1.1に示す。

img1-1.png
【図1.1: pingの動作原理】

■課題1:
各自のコンピューターから他のコンピューターへ以下のpingコマンド実行し、表示される結果について説明せよ。また、相手のコンピューターが正しくネットワークに接続されているのにエコー応答が返ってこない場合は、その理由を考察せよ。(ヒント:セキュリティー対策の観点から考察してみよ)

ping -c 5 [ホスト名 or IPアドレス]

■課題2:
課題1と同様に、他のコンピューターへpingコマンドを実行する際、以下のようにパケットサイズをデフォルト値ではなく、さらに大きなサイズにした場合に、相手のコンピューターによってはエコー応答メッセージが返ってこない場合がある。パケットサイズの違いによってエコー応答メッセージが返ってくる場合とそうでない場合の実例を示し、その理由を考察せよ。(ヒント:セキュリティー対策や相手のコンピュータの通信能力の観点から考察してみよ)

(パケットサイズと変更して実行する例)
ping -c 5 -s 65000 [ホスト名 or IPアドレス]
*パケットサイズは上記の値以外にいくつかのパターンで実験しても良い。
*一定サイズ以上のパケットサイズでは管理者権限で実行する必要がる。
 (その場合は、sudoコマンドを使用するとよい)

(課題1,2を行う上での注意)
学外のサーバーに対してpingを実行する場合は、相手先に攻撃や不正通信と誤解されないよう注意すること。


1.2 traceroute

tracerouteは、IPパケットがどのようなルートを通るかを調べるために利用されるネットワーク管理コマンドである。

tracerouteコマンドの基本形式は以下の通りである。

[書式]
traceroute [ホスト名 or IPアドレス]

tracerouteは、IPヘッダの「TTL(Time To Live)フィールド」、及び、ICMPの「宛先到達不可(Type3)メッセージ」と「時間超過(Type11)メッセージ」を利用している。具体的には、相手のコンピューターに向けて、TTLの値を1から1ずつ大きくしながらエコー要求メッセージを送ることで、TTL=0となったルーターから時間超過メッセージが送信元に届き、これによって経由するルーターを知ることができる。最終的には、相手のコンピューターからエコー応答メッセージ、又は、1つ手前のルーターから宛先到達不可メッセージ(相手のコンピューターが存在しない場合)が送信元に届く。

tracerouteの動作原理を、図1.2に示す。

img1-2.png
【図1.2: tracerouteの動作原理】

■課題3:
各自のコンピューターから他のコンピューター(できれば学科外のコンピューター)へtracerouteコマンド実行し、tracerouteの動作原理を踏まえて、表示される結果について説明せよ。なお、課題1と同様の理由で、tracerouteの結果が正しく得られない場合があるため、本課題はpingエコー応答があるコンピューターに対して行うこと。


1.3 netstat

netstatは、ネットワークのコネクションとプロトコルに関する統計情報を調べるために利用されるネットワーク管理コマンドである。ネットワークインターフェース(以下、ネットワークI/F)の情報として、MTU(Maximum Transfer Unit)や入出力パケット数、エラーパケット数などが表示される。

netstatコマンドの基本形式は以下の通りである。

[書式]
netstat -i *ネットワークI/Fの統計情報の表示
netstat -s *プロトコル別の統計情報の表示
netstat -r *ルーティングテーブルの表示

■課題4:
各自のコンピューターで、netstatコマンドの「-l」オプションについて実行例を示し、表示される結果について説明せよ。ただし、説明するプロトコルは、tcp4、udp4のみでよい。


1.4 ifconfig

ifconfigは、ネットワークI/Fの状態を調べたり、設定するために利用されるネットワーク管理コマンドである。

ifconfigコマンドの基本機能は、以下の2つである。

  • ネットワークI/Fの状態を確認する。
  • ネットワークI/FにIPアドレス、サブネットマスク、ブロードキャストアドレスなどを設定する。

ifconfigコマンドの基本形式は以下の通りである。

[書式]
ifconfig -a
ifconfig (ネットワークI/F名)
ifconfig (ネットワークI/F名) (IPアドレス) netmask (サブネットマスク) [ broadcast (ブロードキャストアドレス) ]

■課題5:
各自のコンピューターで、ifconfigコマンドを使って、それまでDHCPサーバーから取得していたIPアドレス及びネットマスクと同じ内容を、PCのネットワークI/Fに設定せよ。なお、IPアドレス及びサブネットマスクの設定のために実行したコマンドの内容を示すとともに、「ifconfig (有線LANネットワークI/F名)」コマンドの実行結果を示せ。


1.5 route

routeは、ルーティングテーブルを設定するために利用されるネットワーク管理コマンドである。

ifconfigコマンドではネットワークI/FにIPアドレスやネットマスクなどを設定することができるが、routeコマンドではローカルネットワークとは別のネットワークと通信を行うためのゲートウェイ(ルーター)を設定することができる。

routeコマンドの基本形式は以下の通りである。

[書式]
(特定の対象ネットワーク向けのルーティングテーブルの設定)
route add -net (対象ネットワークアドレス) netmask (ネットマスク) (ゲートウェイ(ルーター)IPアドレス)
(デフォルトゲートウェイの設定)
route add default (ゲートウェイ(ルーター)IPアドレス)

■課題6:
各自のコンピューターで、routeコマンドを使って、デフォルトゲートウェイ(有線LAN接続の場合:10.0.15.254, 無線LAN接続の場合:10.10.15.254)を設定せよ。なお、デフォルトゲートウェイの設定のために実行したコマンドの内容を示すとともに、「netstat -r」コマンドの実行結果を示せ。
なお、既にデフォルトゲートウェイが設定されているとエラーが出る場合(DHCPからアドレスを取得している場合は、デフォルトゲートウェイが自動的に設定されています)は、以下のコマンドを実行してデフォルトゲートウェイを一旦削除してから設定してみること。

(デフォルトゲートウェイを削除する方法)
route delete default

1.6 nslookup

nslookupは、インターネットのネームサービスであるDNS(Domain Name System)への問い合わせのために利用されるネットワーク管理コマンドである。DNSはコンピューターのホスト名とIPアドレスをそれぞれ変換するための階層型分散データベースシステムである。なお、ホスト名からIPアドレスを検索することを「正引き」、IPアドレスからホスト名を検索することを「逆引き」と呼ぶ。

DNSのドメインには、TLD(Top Level Domain)、gTLD(generic Top Level Domain)などがあり、日本においては、TLDである「.jp」のセカンドレベルドメインの種類によって、一定の審査の上で付与される「co.jp」「or.jp」などの「属性型JPドメイン」や、セカンドレベルを自由に決めることができる「汎用型JPドメイン」などがある。

DNSの「正引き」及び「逆引き」の動作原理を、図1.6(1)(2)に示す。

img1-6(1).png
【図1.6(1): DNS(正引き)の動作原理】


img1-6(2).png
【図1.6(2): DNS(逆引き)の動作原理】

[※補足]
「arpa.」はトップレベルドメイン(TLD:Top Level Domain)の1つである。ARPANETから現在のインターネットに移行する際に一時的に作成されたドメインであったが、逆引きのために「in-addr.arpa.」(他に「ipv6.arpa.などがある)ドメインを作ることになり、arpa.ドメインは、形式上、存続することになった。

DNSデータベースは、ホストやドメインごとの属性を表す複数の異なるレコードが定義されている。

UNIXにおいてDNSを実装した代表的なサーバープログラムがBIND(Berlkeley Internet Name Domain)である。nslookupはBINDと一緒に配布されている。 nslookupは、引数を付けずに起動するとプロンプトを表示し入力待ち状態となる。これを「対話モード」と呼ぶ。また、1つの項目のみ問い合わせを行う場合は、検索したいキーワードを引数に与えて起動する。これを「非対話モード」と呼ぶ。nslookupは、/etc/resolv.confファイルに記述されているネームサーバーに対して問い合わせを行う。


■課題7:
nslookupの対話モード・非対話モードの両方で、任意のホスト名からIPアドレスを検索(正引き)し、表示される結果について説明せよ。また、任意のIPアドレスからホスト名を検索(逆引き)し、表示される結果について説明せよ。


■課題8:
nslookupの対話モードで、レコードの変更を行い、SOAレコード、NSレコード、MXレコードについて、任意のドメイン名を検索し、表示される結果について説明せよ。なお、レコード変更は、nslookupの対話モードで以下のコマンドを実行することで行える。

set type={SOA|NS|MX}

■課題9:
nslookupの対話モードで、/etc/resolv.confに設定されているデフォルトのDNSサーバーではなく、他の任意のDNSサーバーを使って課題7と同様に任意のホスト名からIPアドレスを検索し、その結果を示せ。

(他の任意のDNSサーバーの例)
総合情報処理センターのDNSサーバー: 133.13.7.2
Googleの公開DNSサーバー: 8.8.8.8


■課題10:
最新のBIND9系では、nslookupに代わって、hostコマンドやdigコマンドの使用が推奨されている。これらのコマンドを使って、課題7〜9と同等の結果を得るにはどのような操作(コマンド実行)が必要か示せ。


2 おわりに

本実験では、コンピューターやネットワークの状態を知るために利用するいくつかのネットワーク管理コマンドについて実習した。普段、パソコンをネットワークに接続する上で起こりうる問題のトラブルシューティングは、これらのネットワーク管理コマンドを使うことによって大抵は問題特定・解決できるであろう。しかし、複雑なサーバーやネットワーク環境では、あらゆる要因でトラブルが起こり得る。このような場合、さまざまなネットワークコマンドを駆使してトラブルシューティングを行う必要がある。特に、UNIX(Linux、MacOSXなど)では、数多くのネットワーク管理コマンドが提供されている。将来、システムエンジニアとしてネットワーク管理に携わるための必要スキルとして、是非おさえておきたい。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-06-03 (土) 11:02:58 (838d)