標準Network通論
■各種ハードウェア
ネットワーク内でパケットを中継する機器には幾つかの種類があります。例えば、リピータ、ブリッジ、ルーター、ゲートウェイと呼ばれるものです。
これらは歴史的な流れから混合されて使われたり、同一視されてしまうものもありますが、本書では次のような定義で解説します。
○リピータ
リピータとはパケット内のデータ内容に関与せずに、パケットを電気や光の信号と見なし、単にそのパケットを中継する機器です。単純に言えば、電流の増幅と整流のみ行うわけです。
イメージ的に、1本のホースにもう1本のホースを繋げるために、その間に存在する連結装置のようなものです。もちろん、ホースの中を流れる水がパケットを意味しています。この連結装置はあくまで連結だけが仕事で、水を調べたり、水の流れをせき止めたりはしません。
LAN内で使われるケーブル(同軸ケーブルやツイストペアケーブル)の距離があまりにも長くなると、データが最後まで到達できない現象が起こることがあります。なぜならば、ケーブルは信号(電気信号や光信号)を通る導体ですが、若干抵抗が存在するので、途中で電気信号が弱まってしまうからです。これを解決するのがリピータです。リピータは弱まった電気信号を正常にして、次のケーブルに流します。これによって、ネットワークが拡大したときでも、正常なネットワーク通信が実現できます。
純粋なリピータの他にも、リピータハブと呼ばれる機器もリピータの種類に分類できます。
ハブと言うのは複数のコンピュータを同時に接続できるようにした機器です。
リピータの機能を持っているハブをリピータハブと言います。ハブには他にもスイッチングハブと呼ばれるものもありますが、これは次のブリッジの種類に分類されます。
○ブリッジ
ブリッジとはパケットの先頭にあるMACヘッダの内容によって、パケットの宛先を判断して、中継する機器です。
例えば、スイッチングハブ(レイヤ2スイッチとも呼ばれる)はブリッジに分類されます。また、単にスイッチと呼ばれる機器もブリッジに含まれます。
○ルーター
ルーターとはデータ転送レベルのプロトコルヘッダの内容によって送り先を判断してパケットを中継する機器です。ここでいうデータ転送レベルのプロトコルとはTCP/IPプロトコルなどを意味します。
○ゲートウェイ
リピータ、ブリッジ、ルーターとは異なる方式でパケットを中継する機器の総称をゲートウェイと呼びます。
ゲートウェイは異なる方式のネットワークを結ぶために、アプリケーションレベルでデータを受信してから、再度それを送り直すという動きをします。
ファイアウォール機器はアプリケーションレベルでパケットを判断して、パケットフィルタリングを実現したり、侵入検知を行うので、ゲートウェイの中に含まれると言えます。
■リピータハブ
リピータハブは内部にリピータ回路とMAUとRJ-45を内蔵しています。
リピータ回路は弱くなった信号を増幅したり、乱れた信号の波形(※1)を正常に戻す機能を持っています。正常に戻した信号はそれぞれのMAUに渡されます。
MAU(Media Attachment
Unit)は信号の送受信を担当します。MAUは送信機(トランスミッタ)と受信機(レシーバー)を組み合わせた機能を持つので、トランシーバーと呼ばれることもあります。

RJ-45(※2)はMAUとクロスされて接続されているコネクタのことです。ここで、「クロス」という言葉が現れました。まず、「クロス」の意味を知る必要があります。「クロス」というのは「ねじれている」、一方「ストレート」というのは「まっすぐそのまま」という意味合いを持ちます。ただし、カスケードと呼ばれる部分においては、RJ-45とMAUはストレートで接続されています。
RJ-45はコネクタであるので、ポートに当たります。これはポート番号とは全く異なるものなので注意してください。
通常のポートはリピータハブ内部ですでにクロスしているので、ストレートケーブルでコンピュータのLANカードに接続されます。LANカードはEthernetコントローラとMAUとRJ-45を備えた拡張カードです。一般的に、マザーボードにデフォルトで装備しているか、PCI部分でマザーボードに装着する装置です。もちろん、LANカード内部のMAUも信号の送受信を行います。RJ-45から入ってきたパケットはMAUに渡され、次にEthernetコントローラに渡されます。Ethernetコントローラはコンピュータにインストールされているデバイスドライバ(※3)に渡して、最終的にパケットはアプリケーションレベルで処理されます。もちろん、逆にパケットを送出する場合も、これの逆を辿るだけです。
ここでしっかり理解して欲しいことは、<B>リピータハブとコンピュータを接続する場合はストレートケーブルを使う</B>ということです。というのも、リピータハブ内部でMAUとRJ-45の配線がクロスしており、これによって、一方の送信部が送った信号が、もう一方の受信部に届くからです。
ちなみに、どのポートがクロスかどうかはハードウェアにMDI-X、MDIという表記から判断できます。MDI-X(Media-Dependent
Interface Crossover)はクロス結線、MDI(Media-Dependent
Interface)はストレート結線を意味します。
また、カスケードと呼ばれる部分の存在について、先ほど触れました。カスケードのポートはカスケード接続用ポートまたはアップリンク用ポートと呼ばれます。このカスケード接続用ポートは、リピータハブを増やしてネットワークを拡大する場合に主に使われます。カスケード接続用ポートと他のリピータハブをストレートケーブルで接続すると、実質ネットワークを拡大したことになります。
カスケード接続用ポートとコンピュータのLANカードを接続するも可能です。そのときはストレートケーブルではなく、クロスケーブルを使う必要があります。これはカスケード接続用ポートの内部はクロスせずにストレートなので、ケーブルの方でクロスする必要があるからです。

では、ちょっとリピータハブのことは置いておいて、2台のコンピュータがあり、それぞれのLANカードを接続して、2台だけでパケットのやり取りしたい場合はクロスケーブル、ストレートケーブルのどちらを使えばよいのでしょうか?ここまで読んできた方ならば、ピンと来ると思いますが、正解はクロスケーブルです。クロスケーブルを使うことによって、一方の送信部が送った信号が、もう一方の受信部に届けるわけです。あまり2台だけでやり取りすることはないかもしれませんが、「コンピュータ同士を接続するときはクロスケーブルだ」と暗記しておいてもよいでしょう。リピータハブの内部やLANカードの内部の配線図を忘れたときでも、暗記したこの文章によって、逆に思い出せる可能性があるからです。学習においては多角的アプローチが何よりも重要です。

[注釈]
(※1)電気信号や光信号は波形で表されます。電気信号の場合凹凸な波形、光信号の場合波打つ波形ですが、いずれにしてもsin関数やcos関数といった三角関数の組み合わせで構成されていることが数学的に証明されています。この辺の話は数学の解析学のフーリエ解析と呼ばれる分野で論じられています。
(※2)RJとはモジュラージャックの規格のことです。例えば、RJ-11は日本の一般家庭の電話機で使われるモジュラージャックの規格であり、RJ-45はアメリカの電話機で使われるモジュラージャックの規格です。見た目はRJ-11よりRJ-45の方が一回りほど大きいです。本文中でも述べた通り、RJ-45は日本のLAN内における10BASE-Tや100BASE-XTにも利用されています。
(※3)コンピュータがハードウェアを認識するように作られたプログラムのこと。
■スイッチングハブ
元々、リピータハブは受信した信号をネットワーク全体(全てのポート)に対して、転送するように設計されています。簡単に言えば、これは「受け取ったパケットを全部のホストに送りつけて、あとは本来受け取るホストが判断してね」と言っているようなものです。これだと、装置時代は簡単ですが、データのやり取りの効率が悪くなってしまい、最悪の場合、<B>コリジョン</B>という衝突状態が発生してデータのやり取りが一時的にできなくなってしまいます。
これを解消するために設計されたのが、スイッチングハブです。一言で言ってしまえば、<B>「リピータハブよりスイッチングハブの方が頭がよい」</B>ということです。
スイッチングハブ(レイヤ2スイッチ)はリピータハブにアドレステーブルとメモリという概念を拡張した機器です。リピータハブ内部に存在したリピータ回路は無く、その変わりにスイッチ素子が存在します。

アドレステーブルとはMACアドレスとポートの番号(これはネットワークのポート番号とは異なり、あくまでコネクタのポートの番号のこと)を登録した一覧表のことです。Ethernetパケット(IPヘッダの先頭にMACヘッダを追加したもの)のヘッダには送信先MACアドレスが含まれています。その送信元MACアドレスが一覧表に追加され、そのとき通ってきたポートの番号が一覧表に対応付けされます。 例えば、ポートの番号4を通って、スイッチングハブに到達したEthernetパケットが到達するとします。まず、ケーブルからRJ-45コネクタを介して、EthernetパケットがMAUに到達します。すると、MAUに隣り合っているバッファメモリに受信したパケットを一時的に格納します。そして、先頭部分の宛先のMACアドレスと同じものがアドレステーブルに登録されていないかを検索します。検索結果、もし、登録されていれば、そのポートにパケットを送信します。もし、登録されていなければ、そのアドレスを持つ機器がどこにあるか分からないので、全てのポートに対してパケットを送信します。どちらにせよ、途中でスイッチ素子で解析され、送信元MACアドレスの00-11-22-AA-BB-CCを一覧表の行に追加します。そして、経路情報もその行に追加されます。即ち、アドレステーブルの1行には、MACアドレスとポートの番号と経路情報の3つのフィールドがあることになります。これによって、次回のパケット転送のために役立つアドレステーブルが出来上がります。
コンピュータやルーターはIPを使ってデータの転送を行うため、送信先を判断する材料としてIPアドレスが使われます。一方、スイッチングハブはIPという高度な通信プロトコルを利用できないため、IPアドレスではなく、MACアドレスを判断する材料として使われます。
[補講1]海外のホテルでは日本のLANケーブルのプラグと同じ形(RJ-45)をした電話線の差込口が設置されていることがあります。このような差込口とノートPCのLANポートあるいはLANカードを接続すると、LANシステムよりも高い電圧がかかるために、PCのLANポートあるいはLANカードを破壊してしまいます。部屋にある説明書やフロントでLANが設置されていることを確認できなければ、このようなポートを利用しないほうが安全です。また、回線チェッカーを差し込んでみてLEDが点灯しなければ、問題が生じる可能性は低くなります。
ちなみに、スイッチングハブによっては、スイッチ素子ではなく、共有メモリまたはバスを利用するものもあります。また、図ではMAUそれぞれにバッファメモリが隣り合っていますが、機器によっては全体で一つのメモリを共有するものもあります。
スイッチングハブは、このようなアドレステーブルを参考にするので、データ転送を行うことができます。そのほかにも、複数のパケットが同時に実行することもできるという恩恵もあります。

スイッチングハブもリピータハブ同様にカスケード接続用ポートが存在します。
最近のスイッチングハブは切り替えスイッチによって、カスケード接続用ポートの内部をクロスにしたり、ストレートにしたりできます。
さらに、オートMDIと機器に記述してあれば、スイッチングハブ内で自動的にMDI-XやMDIを調整してくれます。最近はこのタイプのスイッチングハブをよく見かけます。
これらによって、他のハブを増やす場合であっても、カスケード接続用ポートにLANカードと接続しようとする場合であっても、どちらの場合でも、ストレートケーブルだけで統一できるような配慮されています。

■ルーター
ルーターはIPアドレスによってパケットを判断して中継する機器です。
ルーターはパケットを受信すると、何らかの理由でデータが破損していないかどうかをチェックします。エラーがあればそのパケットは破棄され、エラーが無ければ次の処理に進みます。
IPパケットの先頭にあるIPヘッダを検査します。このパラメータに誤りがないかどうかチェックします。誤りが無ければ、次に進みます。
次はパケットの中継先の選択を行います。このとき中継先を決定するために、ルーター内部にある経路表(ルーティングテーブルとも呼ばれる)を参考にします。経路表には宛先のIPアドレス、ゲートウェイのIPアドレス、ネットマスク、メトリック、インターフェース名の対応が記録されています。ここでちょっと複雑な処理をします。複雑な仕組みを知る必要は無い方はとりあえず、「ルーターはルーティングテーブルに書かれている対応で宛先アドレス(IPアドレスのネットワークアドレス)と次に到達すべきルーターやインターフェース(ネクストホップという)を決定して、データをリレーする」と覚えておいてください。
まず、経路表の行にあるサブネットマスクの値をチェックして、ネットワーク番号のビット数を計算して、そのビット数分だけ経路表の宛先のIPアドレスを比較します。そして、両者が一致すれば、それを候補とします。このような作業で経路表を検索すると、候補が幾つか現れます。その候補の中から、サブネットマスク値のビット数が最も長いものを選びます。
選び出したものが1つしかなければ、その行の宛先のIPアドレスが中継先となります
そして、選び出したものが複数合った場合、メトリック値をチェックして、最も小さいものを選び、その行の宛先のIPアドレスが中継先になります。メトリック値は宛先までの距離を意味する数字で、値が大きいほど遠回り、値が小さいほど近回りとなります。
このようなちょっと複雑な処理を行うことによって、ネットワーク番号が可変長であっても、正しい中継先を判別できるわけです。
判断後は、パケットをポートから出力します。しかし、出力先のネットワークは様々なものがあります。例えば、LANであってり、電話回線であったりと通信回線は状況によって異なります。そこで、出力するとき、パケットのMACヘッダを作り直す必要があります。
出力先がEthernetであれば、中継先のIPアドレスをARPキャッシュで探して、そこに登録されているMACアドレスをMACヘッダの宛先MACアドレス欄に代入します。ARPキャッシュに登録されていなければ、ARPの問い合わせを行い、MACアドレスを調べます。そして、調べたMACアドレスをMACヘッダの宛先MACアドレス欄に代入します。
MACヘッダの送信元MACアドレス欄には自分の出力ポートのMACアドレスを代入します。
この2つの作業でMACヘッダを作り直し、完了して初めてパケットを送り出します。
もし、出力先が電話回線やISDNならば、PPP用のヘッダを作ってパケットを送り出します。その際、回線は1対1で接続されるので、MACアドレスは不要であり、ヘッダの内容は変化せず、同じ値のまま伝送されます。
ルーターの設定はTelnetクライアントで接続するタイプとブラウザで設定するタイプのものがあります。安価なブロードバンドルーター(xDSL用のルーター)では、ブラウザで設定するタイプが主流です。
その設定において、80番をポートフォワーディング設定しておかないと、外部からルーターの設定画面にいくための認証ウィンドウが表示されてしまいます。最悪の場合、アタッカーにルーターの認証を突破され、ルーターに侵入されてしまい、設定を変更されてしまうことも考えられます。
■ここまでのまとめ
以上でリピータ、ブリッジ、ルーター、ゲートウェイの概要を説明し終えました。ここで復習として、各種ハードウェアのオールマインドシステムの図を次に示します。
ちなみに、図の中の矢印は本書で説明した流れを示すものです。

今後、何か調べることがあったら、この図を見ることによって、記憶が呼び起こされ、問題が解決するかもしれません。すぐに解決しなくても、図でどこに何が書いてあったのかすぐに分かると思いますので、そういう意味でも効率は良いと思います。
■ネットワーク機器の設置場所とセキュリティ
ハブやルーターといったネットワーク機器を1箇所にまとめておくとネットワーク管理において、運用を楽にするかもしれません。例えば、ネットワークを将来1つに繋げる可能性があれば、2つのハブを一箇所にまとめておくとよいでしょう。また、逆に、当初は単一だったネットワークを後で2つに分断したときも同じような環境になっていると思います。
しかし、アタッカーからの立場で考えると、ネットワーク機器が集まっている場所に簡単にアクセスでき、さらにまとめて設置されていれば容易にアタッカーが持ち込んだノートPCなどを接続される恐れがあります。よって、配線収納庫にはアクセス権限を設けるべきです。しかし、高度なアタッカーはタッピング(詳細は特別講座<タッピング編>を参照せよ)というテクニックでそれを意味の無いものしてしまうかもしれません。
■NATとNAPT
プライベートIPアドレスしか持たないコンピュータがインターネットを介して通信を行い場合、そのときだけグローバルIPアドレスに変換する仕組みが必要です。
この仕組みを実現化するために、NAT機能やNAPT機能という2つがあります。
●NAT
NAT(明示するためにベーシックNATとも呼ばれます)は、グローバルIPアドレスとプライベートIPアドレスを1対1で対応させて、書き換える仕組みです。
プライベートIPアドレスを割り当てたネットワーク側から、グローバルIPアドレスを割り当てたインターネット側へ、アクセスする場合などに使われます。
●NAPT
NAPT(たびたびIPマスカレードという別名でも呼ばれます)は、NATを拡張した仕組みで、複数のプライベートIPアドレスを一つのグローバルIPアドレスに対応させて、書き換える仕組みです。
NAPTは、IPパケットを中継するとき、IPアドレスに加えてポート番号も書き換えます。これによって、1対多という仕組みが実現されます。
■デフォルトゲートウェイ
ルーターは知らない宛先のパケットを受け取ったら、ひとまずあるルーターへ転送することになっています。この役割を果たすルーターをデフォルトゲートウェイと呼びます。
また、コンピュータがデータを送信するとき、まず最初にデフォルトゲートウェイにデータを渡します。
情報源 セキュリティアカデメイア
|