第2号発行! Linux & ネットワークをメインテーマにした初級アドミニストレータの初級アドミニストレータによる初級アドミニストレータのためのWebマガジン「それ行け、リナちゃん」がついに創刊!
未経験にも関わらず幸運にも職場で Linux をベースにしたネットワークの構築・運用・管理を担当することになりました。なにぶん初心者なのでいろいろお勉強をしながらの作業となりそうです。
そこで、「せっかくの機会だから、僕がお勉強したことを適当にまとめて、同じように始めてネットワーク構築をする人の役に立つものをつくろう!」と、このコーナーを立ち上げることにしました。
最後に、「このコーナーが皆様のお役に立てば幸いです。」 |
|
![]() 読者の皆様へお願い
したがいまして当コーナーの記述に致命的誤りがあった場合には、上記の意図の通りに当コーナーを利用してくださる方々のサイトに大変な問題(セキュリティなど)を引き起こすかもしれません。 が、しかしやはりこの「それ行け、リナちゃん」も「進め!中級プログラマー」同様、僕が適当に作成したドキュメントを適当にまとめただけのものですので、内容にタイプミス、不適切な表現、勘違いが相当数あるものと思われます。 そこで、ご面倒だとは思いますが、そのような誤り等を発見されました方は是非杉浦までご連絡いただけますようよろしくお願いいたします。(指摘されました点に関しましては確認でき次第、内容に反映させていきたいと思っております) また、いつものお約束事ですが「この文書に書かれた内容によって生じたいかなる損害に対しても当方は責任を持ちません。自己責任のもとで当文書をご利用下さい」ということでお願いします。 なお、「それ行け、リナちゃん」に掲載されています各種解説文に関しましては「情報の出所(当Webサイト)を明記した場合は転載自由」とさせていただきますのでよろしくお願いいたします。
|
|
バックナンバー
|
--- 1999 10/31 発行 --- ![]()
第 2 号
![]()
|
それ行け、リナちゃん 第2号
![]() 今回のテーマ TCP/IPネットワークの基本
創刊号「専用線を引こう!」では低価格専用線を用いてインターネットへ接続する勧めをつらつらと書きました。 |
![]() 1. TCP/IP
|
![]() (2)TCP/IPスイートのプロトコル階層
ではまず、「TCP/IP」のプロトコル階層を示し、その後それぞれの階層について解説します。 ![]()
a.アプリケーション層 最終的にユーザが利用するネットワークサービスの多くがここに属します。
・SMTP....メール転送プロトコル
b.トランスポート層 この層の仕事について注意しなければならないのは、この層ではホスト間の通信に関しては何も感知していないという点です。データを相手先のホストに届けるのは下位のプロトコル(インターネット層以下)の仕事なのです。 ここで混乱してしまった方はいないでしょうか? 「データを相手先のコンピュータに届けるのが下位の層の仕事なら、一体トランスポート層の仕事は何なの?」と... くどいですが、トランスポート層の仕事は「プロセス間の通信を実現する」ことにあります。通信元と通信先のアプリケーションを特定し、それらの間でデータを送受信できるようにすることがトランスポート層の仕事なのです。 一般に1台のホスト(コンピュータ)上では複数のプロセス(アプリケーション)が動作しています。したがって、下位の層によってデータがきちんとホストまで運ばれてきても、それを処理すべきプロセスが分からなければ通信は成り立たないのです。この部分を処理するのがトランスポート層だというわけです。 このことをもう少し分かりやすい例で捉えなおしてみます。 葉書を考えて下さい。葉書を出すときは相手の住所だけでなく名前も書くはずです。住所さえわかれば葉書を特定の家庭まで届けることは可能ですが、その家庭内の誰がその葉書を受け取るべきかは宛先に名前が指定されていなければ分かりません。 つまり、この例での住所がホストを指し、名前がプロセスを指しているのです。家庭まで葉書を届けてくれる郵便屋さんの役目をインターネット層以下が担当し、届いた葉書を特定の住人まで届けてくれる誰かの役目をトランスポート層が担当しているわけです。 勿論、葉書の場合はその内容を読めば誰がそれを最終的に受け取るべきか判断することができますが、コンピュータはそんな気の利いたことをしないのが普通なので、インターネットの世界では相手先の名前(プロセス)が必須です。
・UDP(User Datagram Protocol)
・TCP(Transport Control Protocol)
![]()
c.インターネット層 大雑把に言って、この層の仕事は「とにかくパケットを相手先(コンピュータ等の端末)まで届ける」ということに尽きます。書くは簡単ですが、実際パケットを相手先に届けるのには大変な困難が伴います。例えば、無線と有線というようなハードウェア的に異なるネットワーク間でもパケットを送らなくてはなりませんし、そもそも相手先を指定されたときにそれがどこにあるのかを調べなくてはなりません。 インターネットではIPと呼ばれるプロトコルがこれらの仕事を一手に引き受けています。これについては解説しなければならないことがたくさんあるため、後でおいおい詳しく解説していくことにします。 なお、トランスポート層の解説を読んで察しがついた方もいるでしょうが、インターネット層ではデータの伝送誤りや受信確認といった通信の信頼性に関わる制御は一切行いません。それらはトランスポート層以上の層が担当します。勿論、通信信頼性のための制御は必須というわけではないので不要な場合は上位層においても行う必要はありません。
・IP(Internet Protocol) ![]()
IPが行う重要な仕事には、大きく以下の2種類があります。
d.ネットワークアクセス層 この層の仕事は、通信に絡むハードウェアを制御し、そこに直接接続されているネットワークとデータを送受信することです。つまり、実際にデータをネットワークに流す処理はこの層で行われているのです。 念の為確認しておきますが、この層だけでは同一ネットワーク内の通信しか実現できない点に注意して下さい。異ネットワーク間通信を可能にするのはあくまでもインターネット層の仕事なのです。 そのため、(意外かもしれませんが)TCP/IPスイートの中で最も仕事量が多いのはこの層だといえます。ネットワークの媒体毎にプロトコルや機器制御用のデバイスドライバを用意せねばならないためです。 とはいえ、一般にTCP/IPではハード屋さんでもないかぎりこの層のことをそれほど意識する必要はありませんので、ここでもこれ以上の解説はしないことにします。(第一聞かれても分かりません。僕では... ^-^;) ![]()
![]()
![]() |
![]() 2. 名前とアドレス
|
![]() (1)論理アドレス(IPアドレス)
・LANカードによりLANに繋がっている
![]() まず、ダイアルアップ接続していない状態で「MS-DOSプロンプト」を起動させて以下のコマンドを実行して下さい。
![]()
1バイト目が127以下のもの(先頭ビットが0)で、先頭バイトがネットワーク部、後ろ3バイトがホスト部となる。したがって、このクラスに属するネットワーク数は2^7(=127)個で、各ネットワークには2^24(=16,777,216)個ものIPアドレスが割当てられる。
1バイト目が128以上191以下のもの(先頭2ビットが10)で、先頭2バイトがネットワーク部、後ろ2バイトがホスト部となる。したがって、このクラスに属するネットワーク数は2^14(=16,384)個で、各ネットワークには2^16(=65,536)個ものIPアドレスが割当てられる。
1バイト目が192以上223以下のもの(先頭3ビットが110)で、先頭3バイトがネットワーク部、後ろ1バイトがホスト部となる。したがって、このクラスに属するネットワーク数は2^21(=2,097,152)個で、各ネットワークには2^8(=256)個のIPアドレスが割当てられる。
1バイト目が224以上239以下のもの(先頭4ビットが1110)で、マルチキャストアドレスと呼ばれる。これは特定の端末を指すのではなく、特定のアプリケーションを共有するコンピュータのグループを指す。
1バイト目が240以上のもの(先頭4ビットが1111)で、これは将来のために予約されている。したがって、インターネットで使用することはできない。
![]()
![]()
![]() ![]() |
![]() (2)ホスト名
|
![]() (3)物理アドレス
![]() |
![]() 3. 名前解決の仕組み (0)概論
|
![]() (1)正引き
![]() 上の例をみてわかるとおり、問い合わせを行う端末(例でのA)が名前解決のために行うべきことは「どこかのDNSサーバに問い合わせを送るだけで良い」という点に注意して下さい。問い合わせを行った端末には、名前解決の際に裏側で行われているDNSサーバ同士の通信の部分は隠蔽されて見えないのです。(実際、上の例でのホストAはDNSサーバCとしか通信を行っていません。) ![]() |
![]() (2)逆引き
![]()
(題)IPアドレスが 213.128.23.146/28 となるホスト inetsrv.nari-kobo.co.jp の逆引き設定
![]() このように、若干複雑にはなっていますが、サブネット化された場合の逆引きの名前解決も正引きと同じロジックで処理されているということを理解しておいて下さい。 ![]() |
![]() 4. ルーティングの仕組み (0)概論
![]()
![]()
では、本題のルーティングの解説に入ることにします。
![]() なお、そのような唯一の外部ネットワークへの経路をデフォルトルートと呼びます。 では、2つ以上のネットワークとつながっている場合は何を手がかりにルーティングが行われるのでしょうか? 現実社会を考えてみましょう。現実社会でも目的地への経路はたいていの場合複数あります。現実社会で今まで行ったことのない場所に行く場合、僕達は何を手がかりに経路を決定するでしょうか? しかもなるべく効率的な経路を、です。 そんな場合、僕等は恐らくガイドブックを利用するのではないでしょうか。ガイドブックには目的地へ行くための効率的な経路が記されています。 TCP/IPネットワークの世界でもそのガイドブックに相当するものがあります。TCP/IPネットワークでのガイドブックのことを「ルーティングテーブル」と呼びます。そしてルーティング処理はこのルーティングテーブルを基に行われます。 ルーティングテーブルの中身は「netstat -rn」コマンドで見ることができます。例を示します。
![]() |
![]() (1)静的ルーティング
[経路の削除]
[オプションの意味]
|
![]() (2)動的ルーティング
@RIP(Routing Information Protocol)
AOSPF(Open Shortest Path First)
BBGP(Border Gateway Protocol) ![]() |
![]() 最後に
ああ、新生児の世話がこれほど大変だとは.... |
![]() |
トップページに戻る |