ARMA
           ARMA Net           製品とサポート           通信販売           会社概要           求人情報       
マニュアル目次

はじめに

第1章 ARMA とは

第2章 インストール
2.1 インストールの準備
2.2 インストール
2.3 ORCAの設定
2.4 データ DVD-R/CD-R の作成
2.5 Windows 下での ARMA
  のブート CD-R の作成

2.6 ブートUSBの作成
2.7 NVIDIA ドライバの設定
2.8 AMD(ATI) ドライバの設定
2.9 無線 LAN の設定

第3章 システムの設定
3.1 管理ツール
3.2 パッケージ管理
3.3 マウントとアンマウント
3.4 デバイスファイル
3.5 ブートローダ
3.6 TCP/IPネットワーク
3.7 基本的なネットワークの設定
3.8 ssh による暗号化通信
3.9 X Window System
3.10 時刻合わせの設定

第4章 アプリケーション
4.1 ログインと基本的なコマンド
4.2 シェル
4.3 テキスト処理ツール
4.4 テキストエディタ
4.5 WWWブラウザ
4.6 電子メール
4.7 ダウンロードコマンド
4.8 音楽系ツール
4.9 DVD-RW/CD-RW の
  パケットライティング

4.10 動画再生環境の構築
4.11 システム管理上のヒント

第5章 アップグレード
5.1 ARAM2.2/2.1 から ARMA3.0
  へのアップグレード

5.2 ARMA2.1(ORCA版) から
  ARMA3.0 へのアップグレード


第6章 プレインストール
6 プレイストールのセットアップ



※プリントされた本マニュアルは
通信販売よりご購入いただけます。
(印刷はモノクロとなります。また
HTML版・オンライン版と若干バージ
ョンが異なる場合がございます。)
 
3.6 TCP/IP ネットワーク
 
 
3.6.1 プロトコルの階層構造
 
 コンピュータネットワークはネットワークに参加するハードウェア・ソフトウェアが共通の仕様に則って通信することによって成立しています。この共通の通信仕様をネットワークプロトコル(Network Protocol)、あるいは単にプロトコルと呼びます。
 プロトコルは、ネットワークアプリケーションの実装からハードウェアの電気的な設計に至るまで様々な分野に渡って定義されていますが、これでは余りにも広大で全体を一目で見渡すことができないので、プロトコルは「通信内容をどう捉えるか」という観点で分類して考えるようになっています。例えば、アプリケーションは通信内容を「データ」として扱いますが、同じものを OS は「パケット」として、さらにハードウェアは「電気信号」として扱っています。こうして分類されたプロトコルは、ユーザに近い方、即ちアプリケーション側を上位、逆にハードウェア側を下位とする階層構造に並べることができます。
 このプロトコルの階層構造(プロトコルスタック)には、「OSI 参照モデル」に定義された 7 階層が標準ですが、インターネットではこれをアプリケーション・トランスポート・インターネットとそれより下位の層にまとめなおしています。具体的に言うと、アプリケーションが発する「データ」は、トランスポート層で「パケット」に分解され、ネットワーク層で配信ルートを決定され、ネットワークインタフェース層で「電気信号」として送信されると言った具合です。受信側でこれと逆の操作を行って電気信号をデータに復元して無事アプリケーションに届けられれば、めでたく通信が確立します。
 ところで、ネットワークアプリケーションは、発信したデータが相手に届きさえすればよく、途中でどんなパケットに分割されどんな電気信号になろうとアプリケーション層には無関係です。このようにプロトコルは層ごとに独立しているので、各階層のプロトコルは入れ替えることもできます。
 
 
 それでは、実際に各層の概要を紹介していきましょう。
 
アプリケーション層
 
 ○
 
階層ごとに複数のプロトコルが存在することができます。
 アプリケーション同士がデータをやりとりする層で、OSI 参照モデルでは第 5,6,7 階層に相当します。ここではネットワークアプリケーションごとに Web ブラウザは HTTP, ファイル転送は FTP, 電子メールは SMTP/POP …などとプロトコルが定義されています。この多数のプロトコルを整理するために 0 〜 65535 番の「ポート」(Port) があり、各プロトコルのサーバは別々の決まった番号のポートで待ち受けをするようにしています。主なサーバとポート番号の割り当て表は /etc/services にありますが、ここでは特に有名なポート番号を例として挙げておきましょう。
 
ftp
20,21
ssh
22
telnet
23
smtp
25
http
80
pop3
110
 
 逆に、クライアントは決まった番号ではなく OS に割り当てられた適当な空きポートを使い、サーバに接続するときにそのポート番号を知らせます。するとサーバはそのポートにたいして応答しますので、サーバとクライアントの間で間違いのない一対一の通信が可能になっています。
 
 
トランスポート層
 
 通信を「制御する」層で、OSI 参照モデルでは第 4 階層に相当します。
 アプリケーションから発信され、ポートからトランスポート層に入ってきたデータは、ここでパケットに分割されます。
 トランスポート層のプロトコル一覧は /etc/protocols にありますが、この中で最も有名なものは TCP (Transmission Control Protocol) です。TCP はパケットの内容が通信中に化けていないか、パケットが順番通り漏れなく届いたかなど、正常に通信できたかどうかを確認できるプロトコルです。従って TCP で行われた通信は確実ですが、確認やエラーパケットの再送信などの手間のために通信速度が遅く、一定の速度を保ちづらいという欠点もあります。
 そのため、動画配信など、若干データが狂うリスクを覚悟で高速・等速度通信を求める場合は TCP に代わって UDP (User Datagram Protocol) を使います。UDP はインターネット層とアプリケーション層をそのままつなぐプロトコルで、エラーチェックなどは行いません。
 
 
インターネット層 (1) - IP アドレスとネットワーク部・ホスト部
 
 インターネット上のホストからホストへパケットを届けるルートを決める層で、OSI 参照モデルでは第 3 階層に相当します。インターネット層のプロトコルは、その名の通りの IP (Internet Protocol) です。
 IP では、データを送受信する機器のそれぞれに IP アドレスという相異なる番号をつけて機器を区別しています。現在の IP (IPv4) では IP アドレスは 32bit で、分かりやすく記述するために 8bit ずつ 4 つに "." で区切り、各 8bit を 0 〜 255 の 10 進数で表記します。例えば 11000000101010000000000100000001 は 192.168.1.1 です。
 IP アドレスの 32bit はネットワーク部とホスト部の 2 つに分けられます。ネットワーク部は「ネットワークのネットワーク」たるインターネットを構成する個々の「ネットワーク」を指し、ホスト部でその中の個々のホストを表します。
 例えば、192.168.1.1 の先頭 24bit がネットワーク部だとすると、ネットワーク自体を表す IP アドレス = ネットワークアドレスは 192.168.1.1 の先頭 24bit を切り出して残りを 0 で埋めた 192.168.1.0 となります。また、ネットワーク内の最大の IP アドレスである 192.168.1.255 は「ブロードキャスト」というネットワークの全ホストにデータを送るための IP アドレスとして使います。そして残りの 192.168.1.1 〜 254 をホストに割り当てるのが慣習です。
 ○
 
ポートは正確に言えばアプリケーション層内部ではなく、トランスポート層との境界にあるデータ受け渡しの窓口です。
 この「ネットワーク部は何 bit か?」を表すのが「サブネットマスク」です。サブネットマスクは、IP アドレスとの and がネットワークアドレスとなるように決められます。例えばネットワーク部が 24bit ならサブネットマスクは先頭 24bit に 1 を立てた 255.255.255.0 となり、ネットワークアドレスは以下のように計算できます。
 
 
     192.168.  1.  1 = 11000000 10101000 00000001 00000000
and  255.255.255.  0 = 11111111 11111111 11111111 00000000
-----------------------------------------------------------
     192.168.  1.  0 = 11000000 10101000 00000001 00000000
 
 
実は、サブネットマスクは IPv4 に後付けで考えられた仕組みです。初期の IPv4 では IP アドレスをクラス A 〜 C に分類し、クラスごとにネットワーク部のビット数を事前に決めてありました。クラス A は 0.0.0.0 〜 126.255.255.255 でネットワーク部 8bit、クラス B は 128.0.0.0 〜 191.255.255.255 でネットワーク部 16bit、クラス C は 192.0.0.0 〜 223.255.255.255 でネットワーク部 24bit です。(この他にクラス D,E (224.0.0.0 〜) もありますが、一般には使わないのでここでは説明しません。)しかし、この「クラス」の意味はサブネットマスク導入によって薄れ、現在ではどのクラスの IP も同様にホスト部を 3,4bit にまで細かく区切って配分されています。ところで、127.0.0.0/8 が空いていますが、これはループバックという「自分自身を表す」IP アドレスとして使われています。通常 127.0.0.1 をループバックアドレスとし、ここに送ったパケットは自分に届くようになっています。
 
 
インターネット層 (2) - ルーティング
 
 それでは、実際にパケットを送る処理の説明に移りましょう。まず、トランスポート層から来た TCP/UDP のパケットに、インターネット層では送信・受信ホストの IP アドレスなどの情報を含んだ IP ヘッダを付けて IP パケットを作ります。
 さて、このパケットを相手に届けようと思っても、インターネットを横断して世界中に直接パケットを送れるわけではありません。通常、パケットを直接送れるのは同じネットワーク内のホストだけです。しかし、インターネットには複数のネットワークが乗り入れる接点に「ルータ」というネットワークの乗り換えポイントが用意されています。このルータには「ルーティングテーブル」という、パケットの宛先別に次にパケットを送るルータを書いた表が用意されています。パケットはこの表に従ってルータからルータへとネットワークを横断していけば、最終的にいつか目的地に届くという訳です。また、ルータでない一般のホストにもルーティングテーブルはありますが、これには「直接送れないホスト宛のパケットはネットワーク内のルータに送る」とだけ書くのが一般的です。
 例えば、192.168.0.0/24 と 192.168.1.0/24 という 2 つのネットワークに、192.168.0.2・192.168.1.2 というホストと、両ネットワークをつなぐルータの 192.168.0.1 + 192.168.1.1 がある環境を考えます。このとき、192.168.0.2 → 192.168.1.2 は直接パケットを送れないので、192.168.0.2 は自分のルーティングテーブルを参照してルータにパケットを送ります。ここでルータのルーティングテーブルに、192.168.1.0/24 宛のパケットは自分の 192.168.1.1 から送信するよう書いてあれば、パケットが 192.168.1.2 に届くというわけです。
 インターネットでは、このルータが多ければ数十個もつながってパケットをルーティングしています。先ほど挙げたものは極めて簡単な例ですが、実際の現場のネットワークの基幹部にあるルータも同じ原理で動いています。
 
 
インターネット層 (3) - グローバルアドレスとローカルアドレス
 
 ○
 
これをまとめてネットワークを 192.168.1.0/255.255.255.0、またはもっと簡単に 192.168.1.0/24 のように表すことができます。
 IP アドレスには、これとは別に「グローバルアドレス」と「ローカルアドレス」という区分もあります。
 グローバルアドレスはインターネットに接続するホストに割り当てられる IP アドレスで、世界中に二つと同じグローバルアドレスを持つホストがないよう、ICANN を総元締めに管理されています。このため、私たちが勝手なグローバルアドレスを名乗ることは許されず、プロバイダによって割り当てられたグローバルアドレスでしかインターネットに接続できません。
 これに対し、ローカルアドレスは個々のネットワーク内でのみ有効な IP アドレスで、ネットワーク内の裁量で自由にホストに割り当てられる代わりに、ネットワークの外のホストとは交信できないと定められています。ローカルアドレスに割り当てられている IP アドレスは以下の範囲です。
 
 
 10.  0.  0.  0 〜  10.255.255.255 (クラス A が   1 個)
172. 16.  0.  0 〜 172. 31.255.255 (クラス B が  16 個)
192.168.  0.  0 〜 192.168.255.255 (クラス C が 256 個)
 
 
 ただし、ローカルアドレスしか持っていないホストも、NAT (Network Address Translation) を経由してローカルアドレスとグローバルアドレスを変換すればネットワーク外と交信できます。NAT はローカルとグローバルの両方のアドレスを持つホストに装備し、自分を通る「ローカル発グローバル行」の IP パケットのヘッダを、自分の空きポートを使って「グローバル発」に書き換え、さらに相手からの返信パケットのヘッダを今度は逆に書き換えるという作業をします。
 ○
 
ローカルアドレスのことを「プライベートアドレス」とも呼びます。

 ○
 
ICANN = Internet Corporation for Assigned Names and Numbers
 NAT の例を示すために、先ほどルーティングの説明で使ったネットワークの例をもう一度使いましょう。今回は cosmos がグローバルアドレスも持った NAT 装備機でインターネットにつながっているとします。すると 192.168.0.2 発の 「192.168.0.2:X → www.omoikane.co.jp:80」というパケットが cosmos を通るとき、NAT は IP ヘッダを 「cosmos:Y → www.omoikane.co.jp:80」 に書き換えます。そして、この返信の「www.omoikane.co.jp:80 → cosmos:Y」というパケットも「www.omoikane.co.jp:80 → 192.168.0.2:X」に書き換えて 192.168.0.2 に送ります。こうすると、確かに 192.168.0.2 は www.omoikane.co.jp:80 と交信できたことになりますが、インターネットにはローカルアドレスを含むパケットは流れていないという訳です。
 
 
それより下位の層
 
 実際にデータを電気信号や光信号として送るハードウェアに密着した層で、OSI 参照モデルでは第 1,2 層に相当します。この層で主に使われるプロトコルは Ethernet と PPP (Point to Point Protocol) です。
 ○
 
X,Y は WWW ブラウザや NAT に OS が割り当てた空きポート番号を表しています。
 Ethernet は主に LAN (Local Area Network) に使われており、その30年以上の歴史の中で様々な規格がありましたが、現在普及しているのは 10-BASE-T, 100-BASE-TX, 1000BASE-T の 3 つです。これらの規格は、いずれも UTP ケーブルの両端に RJ-45 端子を付けハブに接続して配線するという点は同じですが、通信速度はその名の通り 10Mbps, 100Mbps, 1000Mbps と違います。そして、Ethernet ではひとつひとつの機器に MAC (Media Access Control) アドレスという 48bit の相異なる番号を付けて各機器を区別しています。
 さて、Ethernet では IP パケットに、さらに宛先 MAC アドレスなどの情報を含んだ Ethernet ヘッダを付け、電気信号として Ethernet パケットを発信します。電気信号ですので電線で繋がった全機器に Ethernet パケットが届いてしまいますが、受け取った機器ではそれぞれ自分の MAC アドレス宛でない Ethernet パケットを捨てます。こうすると同じ MAC アドレスを持つ機器はひとつしかないので、最終的にパケットを受け入れる機器はひとつだけとなり、きちんと通信ができたことになります。
 しかし、この原理上 Ethernet ではネットワークに繋がる機器が増えるほどパケットが衝突する (コリジョンが発生する) 確率が高くなります。コリジョンが発生すると、その時点で Ethernet 上にあるパケットは全て無効となり後で再送信されるので、通信速度が遅くなってしまいます。ただし、ハブにスイッチングハブを使うと、Ethernet パケットを理解して不必要なパケットを流さないようにするため、コリジョンを減らすことができます。
 
 
 PPP は、主に電話回線を通してインターネットに接続するときに使われるプロトコルです。PPP のパケットはモデムやターミナルアダプタ (TA) から電話回線を通ってプロバイダ側のモデムや TA に届き、そこから Ethernet など別のプロトコルに乗り換えてインターネットにつながっていきます。
 
 
 
3.6.2 IPv4 アドレスの枯渇と IPv6
 
 現在主流の IP = IPv4 では IP アドレスは 32bit です。従って、単純計算では全部で 43 億弱の IP アドレスが存在することになりますが、ルーティング効率の問題もあり、クラス D,E ・ネットワークアドレス・ブロードキャストアドレスなど、43 億の中にはホストに割り当てられないアドレスが多く含まれています。さらに割り当ての都合上使われない IP アドレスというものが相当量あります。例えば 20 台のホストがあるネットワークではホスト部が最低でも 5bit 必要ですが、すると 10 個ものアドレスが無駄になってしまいます。こうして考えると、インターネットに存在できるホストは 43 億よりもかなり少なくなり、ごく近い将来インターネットの IP アドレスは枯渇する(割り当てがおこなわれない)と考えられています。
 IPv4 に代わる方式として IPv6 (IP version6) を使い、IP アドレスを増やすことで根本的に問題を解決する試みが始まっています。IPv6 では IP アドレスは 128bit (10 進法で 39 桁) という膨大な数になるので枯渇の心配は基本的になくなります。現在、IPv6 は Linux にも実装され、いくつかのプロバイダが参加して利用が広まりつつある段階です。近い将来には IPv4 からの移行が進むものと思われます。
 
 
3.6.3 ホスト名と名前解決
 
 ○
 
前半 24bit はメーカに割り当てられ、後半 24bit を各メーカで製品ひとつひとつに割り当てています。
 インストーラでも尋ねられますが、ARMA (UNIX 系 OS) ではコンピュータにマシンに「ホスト名」という名前を付けます。また、ネットワークにもドメインという名前を付けます。
 例えば www.omoikane.co.jp ではマシン名が www で、ドメイン名が omoikane.co.jp です。見て分かるように、ドメイン名は . (ドット) 区切りの階層構造になっており、後ろの区切りほど上位の階層で広い領域を表します。また、各区切りを、後ろからトップレベルドメイン (TLD = Top Level Domain)、セカンドレベルドメイン…と呼びます。この例では jp は日本を、以下 co は営利組織を、omoikane はオモイカネを表します。
 この「ホスト名+ドメイン名」で表すマシンのフルネーム (FQDN = Fully Qualified Domain Name) は IP アドレスに対応し、IP アドレスの代わりに使うことができます。例えば、www.omoikane.co.jp202.216.241.67 に対応しています。さらに、自分と同じドメインのマシンはドメイン名を省略してマシン名だけでアクセスできます。例えば、omoikane.co.jp 内のマシンなら www だけで www.omoikane.co.jp にアクセスできます。
 従って、FQDN も IP アドレスのようにインターネットで重複がないように ICANN によって管理されています。そのため、ドメイン名も IP アドレスと同様に ICANN の承認が必要なのですが、IP アドレスとは違い、好きな名前を申請して既に登録された名前でなければ受理されるようになっています。ちなみに、ホスト名についてはネットワーク内の裁量で、ネットワーク内で重複がなければ勝手に付けて構いません。
 しかし、こうして FQDN とホストの対応関係を作れても、IP は IP アドレスしか理解できないのでマシン名ではパケットを送信できません。そこで、何らかの方法で FQDN を IP アドレスに変換して、IP にはあくまで IP アドレスで指示を与えられるようにする仕組みが必要になります。この変換作業を「名前解決」、特に FQDN → IP アドレスを「正引き」、IP アドレス → FQDN を「逆引き」と言います。
 最も簡単に名前解決をするには、/etc/hosts を使います。
127.0.0.1      localhost
192.168.0.1    cosmos
192.168.0.2    kakitsubata
192.168.0.3    syakuyaku
 極めて単純ですが、このファイルを参照すれば正・逆引きどちらにも使えます。小規模な LAN では、この /etc/hosts を全てのホストに書いて名前解決をする方法でも実用に耐え、かつ一番面倒が少ないでしょう。しかし、インターネット全体のホストの名前解決の情報は膨大かつ刻々と変化するので、これでは対処しきれません。
 そこで、各ドメインに FQDN と IP アドレスを相互変換する DNS (Domain Name System) サーバを立てる方法を使います。DNS サーバは、自分のドメイン内のホスト名と IP アドレスの対応や、自分の 1 階層下の子ドメインの DNS サーバの IP アドレスなどの情報を持っており、寄せられる名前解決の依頼に以下の 3 通りの反応を返します。
 
(1)
自分のドメイン内のホストに関する依頼ならば、自分で答える。
 
(2)
自分の子ドメインについての依頼ならば子 DNS サーバに尋ねる。
 
(3)
上記のどれでもなければ、自分の親 DNS サーバに尋ねる。
 
 
 また、解決した案件について何回も他の DNS サーバに尋ねることをしないために、一定時間答えを記憶しておくキャッシュも持っています。このようにして、世界中のホストの名前解決が行えるようになっています。
 ○
 
Domain : 和訳は色々考えられますが、この場合は「領域」がよいでしょうか?

COPYRIGHT (C)2022, オモイカネ株式会社 (Omoikane Inc.)
E-mail: info@omoikane.co.jp