コンピュータ・ネットワーク実習資料
compnet3
作成者：坪井一洋

コンピュータ・ネットワーク
ＵＮＩＸにおけるネットワーク実習
第３回 ＵＮＩＸ環境におけるネットワークの実際
０． ネットワーク設定の概要
標準的なＵＮＩＸマシンにはＴＣＰ／ＩＰのネットワークに必要なソフトウエアは既に含まれている．
ＯＳＩのネットワーク参照モデルでいうと，5 層のセッション層から下位のレイヤはＵＮＩＸのカーネルに組み込まれており，6 層と 7 層はさまざまなネットワークのコマンドとデーモン・プログラムによって構成されている．しかし，ＵＮＩＸマシンを ethernet に接続するだけでネットワークを利用できるわけではない．ＯＳがインストールされているＵＮＩＸマシンをＴＣＰ／ＩＰのネットワークに接続して利用するには，それぞれの環境に応じた設定が必要である．以下の各項目は最低限必要なものである．
① ＩＰアドレスの決定．
② ホスト名の決定．
③ ホスト・データベース（/etc/hosts）の作成④ /etc/rc.local の記述
hostname でホスト名を設定
ifconfig によるネットワークのスタート
これら以外にも NFS(Network File System)や NIS(Network Information Service)を使用する場合にはそれらの設定が必要である．なお，これらの設定はスーパーユーザとなって行う必要がある．
ここでは，すでにネットワーク環境が設定されている工学部キャンパスサーバｈｃｓを使ってそのネットワーク環境を調べてみる．そのために，TELNET を使って工学部キャンパスサーバ（ホスト名「ｈｃｓ」）に接続し，手元の DOＳ／Ｖパソコンを「ｈｃｓ」の端末として利用できるようにする．
手順（0） Windows が起動した状態で，「スタート」，「プログラム」「コマンドプロンプト」の順に選択．
手順（１） コマンドプロンプトのウィンドウ内で「telnet hcs enter」と入力すると，TELNET のウィンドウが開き以下のメッセージが表示されるので，各自のユーザ名（例えば，tsuboi）とパスワードを入力する．なお，パスワードは画面に表示されないので入力に注意すること．また，文字は半角英数字を使う．
Digital UNIX (hcs.ipc.ibaraki.ac.jp) (ttypb)
login: tsuboi
Password:（ユーザ・パスワード）
手順（２） 入力したユーザ名とパスワードが正しいと，TELNET によるネットワーク接続が完了し，-1-コンピュータ・ネットワーク実習資料
compnet3
作成者：坪井一洋

以下に示す UNIX からのプロンプトが表示される．
Last login: Thu Jan 13 16:59:30 from stokes.dse.ibara
Digital UNIX V4.0E (Rev. 1091); 1999 年 10 月 27 日 16 時
39 分 32 秒
DIGITAL UNIX Japanese Support V4.0E (rev. 120)tsuboi@hcs[1]:この「tsuboi@hcs[#]」というのが UNIX のプロンプトで，コンピュータがコマンドの入力待ち状態にあることを示す．すなわち，今の場合 DOS/V パソコンを「hcs」というホスト名のコンピュータの端末として使用することができる．ここで，プロンプトの「#」の部分はコマンドを入力した順番を示す番号であり，入力する毎にカウントアップしていく．なお，ｈｃｓの設定ではこのプロンプトは「ユーザID＠ホスト名[#]」を表す．
手順（３） 漢字コードを「ＥＵＣ」に設定する．設定は TELNET ウィンドウのツールバーのある「ターミナル」の「基本設定」から「漢字コードセット」を「日本語 EUC」を選択する．
実習０
上の手順にしたがってｈｃｓにログインしなさい．
１． ネットワーク関連のファイル
ここでは，ＵＮＩＸを使ったネットワーク構築に際して必要となるファイルのいくつかを説明する．
ただし，関連ファイルの種類や名称はＵＮＩＸのヴァージョンやプラットフォームの種類にもよることに注意する． 以下の表ではバークレー版ＵＮＩＸ（4.2ＢＳＤ）システムにおける標準的なファイルを示す．これらのうちでキャンパスサーバにも使われているファイルを詳しく説明する．
ファイル名/etc/hosts/etc/networks/etc/services/etc/inetd.conf/etc/protocols/etc/gateways/etc/ethers/etc/hosts..equiv~/.rhosts/etc/ftpusers~/.netrc/etc/ttys/etc/rc/etc/rc.local

概要
ホスト・データベース
ネットワーク・データベース
サービス・データベース
インターネット・サービスデーモン用データベース
プロトコル・データベース
routed 参照のゲートウェイ・データベース
Ethernet アドレステーブル
リモート・アクセス許可ファイル（システム毎）
リモート・アクセス許可ファイル（ユーザ毎）
ftp 使用禁止者リスト
ftp オートログイン・ファイル
端末データベース
システム起動時のコマンドファイル
システム起動時のコマンドファイル（ネットワークの起動）-2-コンピュータ・ネットワーク実習資料
compnet3
作成者：坪井一洋/etc/hosts.lpd/etc/printcap
1.1

リモートプリントできるホストのリスト
リモートプリントのための設定

ホスト・データベース （ /etc/hosts ）ホスト・データベースは，ネットワーク上のホスト名とＩＰアドレスを対応させるファイルで，ＴＣＰ／ＩＰのネットワーク設定において最も重要なファイルである．このファイルの書式は以下のようになる．
ＩＰアドレスオフィシャル・ホスト名

エイリアス名 ・・・ （複数指定可）

hosts ファイルの記述では，各ホストはひとつのオフィシャル・ホスト名（正式名）と複数のエイリアス名（別名）をもつことができる．なお，ファイル中で「＃」はコメントの始まりである．
実習１
コマンド「cat /etc/hosts」あるいは「more /etc/hosts」を実行してホスト・データベースファイルの内容を確認しなさい．
1.2

ネットワーク・データベース （ /etc/networks ）ネットワーク・データベースは，ネットワーク上のネットワーク名とネットワーク番号を対応させるファイルである．ネットワーク番号というのは，ＩＰアドレスのうちのネットワーク部分の値のことである．サブネットを使用している場合は，ネットワーク番号としてサブネットを指定する．ネット
ワーク・データベース・ファイルの書式は以下のとおりである．
ネットワーク名

ネットワーク・アドレス

エイリアス名 ・・・ （複数指定可）

なお，このファイルは主としてルーティングなどのネットワーク管理の際に参照されるので特に指定しなくてもネットワークの運用に支障はない．
実習２
実習１と同様にしてネットワーク・データベースファイルの内容を確認しなさい．
1.3

サービス・データベース（ /etc/services ）サービス・データベースは，ネットワーク上でのサービス名（アプリケーション）とそのポート番号の対応を行うファイルである．ファイルの書式は以下のとおりである．
サービス名

ポート番号／プロトコル

エイリアス名

一般にポート番号とは，ネットワークを通してアプリケーションどうしが通信を行うためのＩＤであるが，ここでいうポート番号はリモートからのコネクションを待つ際にアプリケーションを定め-3-コンピュータ・ネットワーク実習資料
compnet3
作成者：坪井一洋

るために決められているポート（アプリケーションのＩＤ）のことである．このポート番号はネットワーク内で統一してきめておかなくてはならない番号である．ＤＡＲＰＡインターネット・プロトコルで決められているポートは一般に"well-known port"といわれる．
このファイルは通常変更する必要はないが，ＴＣＰ／ＩＰネットワーク上でのアプリケーション・プログラムを新たに作成する際には，このファイルにサービス名とポート名を登録する必要がある．
実習３
まず，コマンド「man services」を入力し，services についてのオンラインマニュアルを読みなさい．
そして，サービス・データベースファイルの内容を確認しなさい．これらのサービスの中に実習で使ったサービスが含まれていることを確認しなさい．
1.4

プロトコル・データベース（ /etc/protocols ）プロトコル・データベースは，ＩＰ層の上位層（ＴＣＰやＵＤＰなど）を区別するためのプロトコルＩＤが定義されているファイルである．
ＩＰのデータグラムで転送されたパケット（データ）は，ＩＰパケット中のプロトコル番号に上位層のプロトコル番号が設定されており，プロトコル番号に応じて各上位層に転送される．
このファイルの書式は以下である．
プロトコル名プロトコル番号エイリアス名

なお，このファイルの内容をアプリケーション・プログラムで使用することはまずないので，通常ユーザが変更する必要はない．
実習４
オンラインマニュアルで「protocols」を調べたのち，プロトコル・データベースファイルの内容を確認しなさい．
1.5

ネットワークデーモン用データベース（ /etc/inetd.conf ）このファイルは，インターネット・サービス・デーモン /etc/inetd がクライアントからのリクエス
トに対して，どのように処理を行うかを記述したデータベースである．通常，このファイルを変更する必要はないが，ＴＣＰ／ＩＰ上でサーバ／クライアント型の通信プログラムを作成し，/etc/inetd から起動される形のプログラムにしたい場合は，このファイルに登録する必要がある．記述の書式はひとつのサービスを１行で記述し，各フィールドはスペースまたはタブで区切る．

-4-コンピュータ・ネットワーク実習資料
compnet3
作成者：坪井一洋

サービス名stream/dgram

プロトコル名 wait/nowait

プログラム名（引数）サービス名/etc/services に登録されているサービス名
ソケットタイプ
socket シ ス テ ム コ ー ル の ソ ケ ッ ト タ イ プ に "SOCK_STREAM"(stream) あ る い は"SOCK_DGAM"(dgram)が設定される．
プロトコル名/etc/protocols に登録されているプロトコル名．通常，ｔｃｐまたは udp を指定する．サービス名
からポート番号を取得する関数のプロトコル識別に設定される．
ウェイト
リクエストを受け付けたとき，処理が終わるまで同じリクエストを受け付けない（wait）か新しいサーバ・プロセスを起動する（nowait）かを設定する・
プログラム名
サーバ・プログラムのフルパス名．クライアント側からのコネクト・リクエストがあったときに起動されるプログラムのパス名を記入する．
引数
サーバ・プログラムの引数を指定する．５個まで指定できる．
実習５
ネットワーク・デーモン用データベース・ファイルの内容を確認しなさい．
２． ネットワーク関連デーモンプログラム
ネットワーク関連の代表的なデーモン・プログラムに以下のものがある．
ファイル名/etc/inetd/usr/lib/sendmail/etc/routed/usr/local/lbin/ftpd/etc/telnetd/etc/rwhod/usr/sbin/rlpdaemon

名称
インターネット・サービス・デーモン
メイラ・デーモン
ネットワーク・ルーティング・デーモン
ftp デーモン
telnet デーモン
rwho デーモン
プリンタ・デーモン

なお，デーモン（daemon）・プログラムとは，起動のための条件が満たされれば動き出すプログラムのことである．これに対して，通常のプログラムは，そのプログラム名を入力することで起動する．デーモンは主としてシステム管理のために用いられるもので，ユーザの関知しないバックグラウンドジョブとして常に起動を待っている．
上記のデーモンの中でも，インターネット・サービス・デーモンは telnet や ftp などほとんどのネットワークコマンドのサーバとなるデーモン・プログラムである．例えば，リモートホストに telnet の-5-

コンピュータ・ネットワーク実習資料
compnet3
作成者：坪井一洋

コネクト要求を行ったとき，まず，接続を受け付けるのは/etc/inetd である．/etc/inetd はコネクションを受け付けたらクライアントからのリクエストによって各コマンドのデーモンを起動する．どのようなコマンドが/etc/inetd によって接続要求できるのかは/etc/inetd.conf ファイルに記述する．
/etc/inetd が正しく動いていないと，ネットワークが正しく設定されていても telnet や ftp のコマンドによって接続を受け付けることができない．
実習６
以下のコマンドを入力して，現在，動いているデーモン・プログラムを探しなさい．
ps -u root | more

３． アドレス解決プロトコル（ＡＲＰ）
ethernet に接続されたＴＣＰ／ＩＰホストは，２つの異なるアドレス，ethernet アドレスとＩＰアドレスをもつことになる．そして，最終的なデータ通信は各コントローラに固有の ethernet アドレスを使って行われる．そこで， ethernet アドレスとＩＰアドレスの対応が必要になるが，これを行うのがＡＲＰ（Address Resolution Protocol）である．ＡＲＰの手順は以下のとおりである．
① ホストは自分のＩＰアドレスと ethernet アドレスをそれぞれ Sender IP address と Sender
Ethernet address に設定し，ethernet アドレスを知りたいホストのＩＰアドレスを Target IPaddress に設定したパケット（ＡＲＰパケット）を作成する．このとき，Target Ethernet
address は空白になっている．
② このＡＲＰパケットを ethernet のブロードキャスト・アドレスに対して送信し，ネットワーク上のすべてのホストはこのパケットを受信する．各ホストは受け取ったＡＲＰリクエストが自分に対するものであれば，自分の ethernet アドレスを空白の Target Ethernet address に設定しＡＲＰリクエストに応える．（これをＡＲＰのレスポンス・パケットという．）③ ＡＲＰパケットを送信したホストは帰ってきたレスポンス・パケットから，知りたいホストのＩＰアドレスと ethernet アドレスの対応表をカーネル・メモリ中にキャッシュ（ＡＲＰテーブル）する．
実習７．
以下のコマンドを使って現在のＡＲＰテーブルを表示しなさい．
/usr/sbin/arp -a |more
４． ルーティング・テーブル
ルータがルーティングを行うには経路表（ルーティング・テーブル）が不可欠である．このルーティング・テーブルを作成するには大きく 2 種類の方法がある．
４．１ Static routing-6-コンピュータ・ネットワーク実習資料
compnet3
作成者：坪井一洋

Static routing では管理者がルーティング・テーブルを手動で作成する．この方法では，ルーティング情報をルータ間でやりとりする必要がないためネットワークへの負荷がないが，ネットワークの変更や拡張に際して，つねにルーティング・テーブルを作成し直す必要がある．
したがって，小規模なネットワークに用いられる．
４．２ Dynamic routing
各ルータが他のルータと交信しながら必要なルーティング情報を交換し，自動的にルーティング・テーブルを作成する．ネットワークの変更や拡張にも自動的に対応できるので，大規模なネットワーク向きであるが，ルーティング情報の交換のためのネットワーク負荷が大きい．
Dynamic routing を行うためのプロトコルがルーティング・プロトコルであり，RIP(Routing
Information Protocol)，OSPF(Open Shortest Path First)などがある．
RIP(Routing Information Protocol)
各ルータは自分のルーティング情報を一定の時間間隔で隣のルータへ送り，隣から送られた情報に新しいものがあればルーティング・テーブルを更新する．このようにして，ルーティング情報はルータからルータへとネットワーク間を伝わっていくことができる．ただし，ルーティング情報の伝達はルータの数にして１５までと決められている．ＲＩＰは代表的なルーティン
グ・プロトコルであり，ＵＮＩＸでは routed というデーモン・プログラムで実行される．
OSPF(Open Shortest Path First)
大規模なネットワークの管理に向くよう，ネットワークを「エリア」で管理する．各「エリア」を管理するルータは，そのエリアと他のエリアのルータとの関係を決め，それらの情報をＷＡＮやインターネットに向けてブロードキャスト（一斉送信）する．ブロードキャストされた情報を受信したルータは，これらの最新情報から他のエリアへの最短距離を導き出し，それをルーティング・テーブルとして保持する．このとき，エリア内でのテーブル変更は他のエリアからは直接関係がないようになっている．
実習８．
次のコマンドでルーティング・テーブルを表示させてみなさい．
/usr/sbin/netstat -r
また，コマンド「netstat」のオンラインマニュアルをみて，表示された内容について考えなさい．
５． ネットワーク・インターフエース
ネットワーク・インターフエース
ネットワーク・インターフエースとはネットワークに接続されているデバイスのことである．バー
クレー版系列のＵＮＩＸシステムでは，ネットワーク・インターフエース・デバイスはディスクやテープ・デバイスなどのようにスペシャル・デバイスというユーザ・インターフエースをもたない．つまり，/dev ディレクトリにネットワークのためのスペシャル・デバイス名はない．そのかわりに，ユ-7-コンピュータ・ネットワーク実習資料
compnet3
作成者：坪井一洋

ーザ・アプリケーションとのインターフエースになっているのは「ソケット・インターフエース」と呼ばれるプロセス間通信のためのシステム・コール群である．
アプリケーション・プログラムからはソケットによってネットワークにアクセスするが，ネットワー
クの設定，管理を行う場合にはネットワーク・インターフェースによってアクセスする．ＵＮＩＸシ
ステムでＬＡＮを構築する場合に知っておく必要があるインターフェースは，ethernet，ループバック，非同期回線（RS-232C）を用いる場合のＳＬＩＰである．Ethernet インターフェース
名は各ベンダーやＯＳによって異なる名称をもつはずである（ｈｃｓの場合には「lan」）が，ＳＬＩＰやループバック・インターフェース名は通常，それぞれ「sl」および「lo」である．各インターフ
ェースには，実装されているデバイスの数によってユニット番号が「０」から順に付く．
実習９．
次のコマンドを実行して，ネットワーク・インターフェースを確認しなさい．
/usr/sbin/netstat -i課題
今回の実習（工学部キャンパスサーバのネットワーク環境について）の感想を下記までメールしなさい．なお，このメールで出席とします．
tsuboi@dse.ibaraki.ac.jp
以上．

-8-