現代PCの基礎知識(11):現代のPCには欠かせない!ネットワーク

2017年4月25日(火)
沖 勝(おき まさる)

はじめに

かつて隆盛を誇り、2010年Oracleに買収されたワークステーションメーカーのSun Microsystemsは“The network is the computer”というスローガンを掲げていた。現在のコンピュータ事情を鑑みると、あらためて力説する必要もなくネットワークなしには成り立たない。クラウド環境のようなネットワークを形作る際も専用機器ではなくコンピュータ(ソフトウェア)が使われている。ビジネス面ではともかく、技術面ではSunに先見の明があったと言えるだろう。

今回は、そんな現代のPCに欠かせないネットワークについて解説する。

かつてネットワーク機能はオプションだった

現在マザーボードおよび据置型PCにほぼ標準搭載されているLANポートは8P8Cと呼ばれるもので、一般にはRJ45と呼ばれている。LANポートを通じたネットワーク通信はNIC(Network Interface Chip)が司る。PCIeスロットなどに挿入して使う拡張ボードもChipをCardに読み替えて同様にNICと呼ぶことがある。文脈によって厳密には異なるが、「ネットワーク機能を司る」という意味では大差ないため、混乱することはないだろう。USB端子に挿してLAN接続するUSB-EtherもNICの一種と言っていい。

通常我々が使うNICはイーサネット(Ethernet)と呼ばれる規格で繋がっている。大昔はこれに相当する拡張ボード(当然現在のものよりずっと速度は遅い)が30万円くらいで売られていた(それも、モノによってはEthernetではなくARCNETだったりToken Ringだったりした)。スマートフォンの性能を昔と比べる際に「掌に当時のスーパーコンピュータ並みの性能」などと言われるが、スマートフォンに限った話ではないということだ。コンピュータに関してはムーアの法則(「半導体の集積率は18か月で2倍になる」という経験則)に限らず、変化が著しい。

なお、かつては企業ネットワークなどでEthernet以外にもFDDIやATM(Asynchronous Transfer Mode)などが使われていたが、古くから稼働し続けているものを除けばほぼEthernetによる通信に置き換えられているため、その他の通信方式についての詳細な説明は省く。

LANとWAN

LAN(Local Area Network)は、名前の通り近隣を繋ぐネットワークである。基本的に屋内あるいは構内ネットワークを想像してもらえればいい。また、WAN(Wide Area Network)も名前の通り広域ネットワークを意味する。一般的な認識としてはインターネット接続がこれに当たる。なお、MAN(Metropolitan Area Network)という用語もあるが、一般には普及していない。

LANとEthernet

企業や大学などで構内ネットワークとして有線LAN接続が使われ始めた頃、まだマザーボード上にオンボードでLANが載っているPCはなかった。ネットワーク接続用のハードウェアを内蔵していたのは、サーバーあるいはワークステーションと呼ばれる機械だった。現在はサーバーと言えば概ねメモリやストレージを大量に搭載し、パワフルなプロセッサを載せたPCサーバーを示すことが一般的だが、大昔は高性能なPCシステムは存在せず、SPARCやMIPSなどのRISC(Reduced instruction set computing)プロセッサを載せたものばかりだった(RISC登場以前はモトローラのMC68000系プロセッサが主役だった)。

Ethernetの規格は全般的にIEEE(The Institute of Electrical and Electronics Engineers, Inc.:アイ・トリプル・イー)と呼ばれる通信・電子・情報工学とその関連分野を対象とする学会により決められている。IEEE 802で(無線を含む)LANおよびMANについて定義され、IEEE 802.3がEthernetの規格となっている。

1990年代のEthernetメディアの速度は10Mbpsが標準的だった。メディアには10BASE2、10BASE5、10BASE-Tがあり、RJ45を用いる10BASE-Tが1990年代中盤ごろから一般にも普及しはじめた(図1)。ちょうどWindows 95が発売されたころで、PCがネットワークに繋がるのが当たり前になり始めるのもこのころからだ。

当初はISAバスの拡張カードとしてNE2000やその互換製品などが多く使われていたが、10BASE2を採用しBNCコネクタを持った製品も数多く存在した。10BASE2はT字コネクタやターミネータと組み合わせて同軸ケーブルでネットワークを構成するが、必要なパーツが多く繋ぎ変えなどが煩わしかった記憶がある。RJ45コネクタとツイストペアケーブルで簡単に接続可能な10BASE-Tが普及するにつれ、10BASE2は見かけなくなっていった。

図1:古いルータの背面。右の2つが10BASE-T対応のLAN端子だ

当初のEthernetでは、ネットワーク機器側と端末側(NIC)で同じRJ45コネクタを使っていてもピンの役割が違っていた。NIC側をMDI(Medium-dependent interface)、ネットワーク機器側をMDI-X(MDI crossover)と呼び、MDIとMDI-Xの接続にはストレートケーブルが、MDI同士の接続にはピン配置を変えたクロスケーブルが使われていた。やがてどのピンがどの信号に使われているかを自動検知するAuto MDI-X機能が普及すると、たいていの場合はストレートケーブルだけで事足りるようになった。

1990年代終盤から2000年代初頭にかけて100Mbpsの速度が出せるFast Ethernetが普及し始める。規格で言うとIEEE 802.3uだ。いくつかある規格のうち、100BASE-TXが最も普及した(図2)。これは10BASE-T同様にRJ45を使っており、10BASE-Tの機器と接続した際には自動的に通信速度を決定するオートネゴシエーションと呼ばれる機能を持つ。

図2:VIA製の古いマザーボード上に搭載されているオンボードの100BASE-TX端子。RJ45のため見た目では速度を判別することは不可能だ

このころもまだNICはマザーボード上にはなく拡張カードだったが、拡張バスの主流がPCIとなったことから、PCIカードのNICが販売の多数を占めるようになった。安価なものでは台湾Realtek社のNICを載せた製品が使われることが多く、チップに刻印されたメーカーロゴから通称「蟹」と呼ばれている(図3)。額面通りの速度が出せないNICも多く、筆者は高性能と言われていた今は亡きDEC(Digital Equipment Corporation)の21140というNICを好んで使っていた。

図3:Realtek製のGbE NIC。インタフェースはPCI。メーカーロゴが「蟹」と呼ばれる所以だ

2010年代は1Gbpsの速度が出せるGbE(Gigabit Ethernet)が普及してきた。規格はIEEE 802.3zである。接続規格はいくつもあるが、最も一般に普及しているのは1000BASE-Tだ。現在PCのマザーボードにオンボードで搭載されているLAN端子は、あえて高速なものを選ぶなどしなければたいていは1000BASE-Tだろう。1000BASE-TもRJ45で接続する。オートネゴシエーションやAuto MDI-Xの実装が必須となり10BASE-Tや100BASE-TXとの相互接続が可能だ。GbEでもRealtekの「蟹」がよく使われており、他にもQualcomm AtherosやBroadcom、IntelのNICが多く使われている。

なお、機器によってはオートネゴシエーション機能をオフにして速度を固定できるが、繋ぐ機器同士で同じ設定にしないと(一方を速度固定、もう一方をオートネゴシエーションのまま)お互いの速度や通信モードが一致しない状態となり、想定よりも速度が出ないといったトラブルの原因となる。設定変更の際には接続相手の設定も確認しよう。

2003年に10BASE-Tおよび100BASE-TXによるLAN接続と同時にLANケーブルを通して電源を供給するPoE (Power over Ethernet)がIEEE 802.3afとして標準化された。この規格に準拠するデバイスでは最大15.4Wの直流電力を供給あるいは受電できることになっている。平たく言えば、供給側と受電側がともにPoE対応機器であればLANケーブルを繋ぐだけで電源供給も可能となり動作する(図4)。

図4:Cisco製のIP電話機。PoEによる電源供給を受けているため、LANケーブル以外は接続されていない

近頃IT業界で話題のIoT(Internet of Things)でも小型の機器(センサーなど)を設置する際に配線の煩わしさを軽減するためPoEが使われることがある。PoEの規格は2009年にアップデートされたIEEE 802.3atにより最大25.5Wまで拡張され、PoE+などと呼ばれたりする。現在は55Wの供給とNBASE-Tや10GBASE-Tにも対応したIEEE 802.3btが策定中で、2018年に標準化される予定だ。

より大容量な規格へ

「一般に普及している」とは言い難いが、データセンター内のネットワークやISP、ネットワークキャリアなどでは10Gbps、25Gbps、40Gbps、100Gbpsといった、より大容量の接続が使われている(図5)。そのうち10Gbps回線(10GbE)では当初IEEE802.3aeと呼ばれる光ファイバー向けの規格が定義された。RJ45を使用する10GBASE-Tの規格IEEE802.3anも2006年に定義されたが、一般に普及どころか企業等でもあまり使われていない。PCマザーボードのうちサーバー向けの数種類でこの10GBASE-Tをオンボード搭載している。

図5:Cavium(QLogic)製の100Gbps対応NIC。インタフェースはPCIe 3.0 x16だ

ネットワーク機器同士を光ファイバーケーブルで接続する機器も多い。光ファイバーはマルチモードシングルモードに分かれ、機器の接続規格によりどちらを用いるかが決まっている(10GBASE-LX4や1000BASE-LXはどちらのモードにも対応している)。光ファイバーは銅線と比較して長距離(100メートル以上)のケーブルが使用できるのも特徴の1つだ。規格によっては、光ファイバーケーブルでLANの範囲を超えた40kmの距離を結ぶことも可能となっている。

コネクタはSFP(Small Form-factor Pluggable)+と呼ばれる金属製のコネクタ(+が付かないSFPはGbE用)や、より高速な通信用として40GbE用のQSFP(Quad SFP)100GbE用のQSFP28などが使われる。これらのコネクタに差し込めるプラグを両端に持ち、直接銅線で結ぶDAC(Direct Attach Cable)は光トランシーバを介して光ファイバー接続ができるようになっている(図6)。

図6:左から100Gbps対応のQSFP28 DAC、10Gbps対応のSFP+ DAC、そしておなじみのRJ45。並べてみるとコネクタのサイズの違いが実感できる

また、GbEと10GbEの間を補完する新規格として2.5GbE5GbE(NBASE-Tと呼ばれIEEE 802.3bzで定義)が作られ企業向けに製品が出始めているが、普及するのか、一般用として製品が安価に出回るようになるかは未知数である。

LANケーブルにはカテゴリが規定されている

さて、これまで紹介したRJ45を使用したEthernet規格の接続には両端にRJ45プラグのあるLANケーブルが用いられる。このLANケーブルは銅線のツイストペアケーブルであるが、信号の品質を表す「カテゴリ」が定義されている。カテゴリは「CAT」に続けて数字で表記され、CAT5、CAT6などと書かれていることが多い(図7)。

図7:LANケーブル。ケーブル上の印字によりカテゴリは5eだとわかる

カテゴリはISO(International Organization for Standardization)ANSI(American National Standards Institute)TIA(elecommunications Industry Association)等で規定されているが、中にはケーブルメーカーが自称する独自規格のものもある(表1)。

表1:LANケーブルのカテゴリと仕様

カテゴリ 規格 伝送速度 伝送周波数 注意点
CAT3 TIA/EIA-568-B 10Mbps 16MHz 4本結線
CAT5 ANSI/TIA/EIA-568-A 1Gbps 100MHz
CAT5e TIA/EIA-568-B 1Gbps 100MHz
CAT6 ANSI/TIA/EIA-568-B.2-1 10Gbps 250MHz
CAT6A TIA-568-B.2-10 10Gbps 500MHz STP
CAT6e ケーブルメーカー独自 10Gbps 独自規格
CAT7 ISO/IEC 11801 10Gbps 600MHz STP
CAT7A ISO/IEC 11801 Amendment 10Gbps 1000MHz STP

カテゴリは一般に数字の大きいほうが品質も良く、同じ伝送速度であれば最大の距離が延びるといった関係となっている。例えばCAT6ケーブルで10Gbpsを伝送する場合は最大で37メートルあるいは55メートル、CAT7ケーブルでは100メートルとなる。

最初に注意してほしいのは、現在では恐らく見かけることも少ないとは思うがCAT3ケーブルだ。現在のGbEでは8P8Cと呼ばれるRJ45の8ピンがすべて結線されているケーブルを使用するが、CAT3ケーブルは8ピン中4ピンだけが結線されていれば良いというものである。これを使うと、ネゴシエーションの際に8ピンすべてが結線されてないことにより、繋ぐ機器がGbEに対応していても1Gbpsの通信はできない。

もうひとつ注意してほしいのはSTP(Shielded Twisted Pair)と書かれたケーブルだ。金属のシールドで覆われており、本来はRJ45そのものではなくシールド部の結線に対応したGG45コネクタもしくはTERAコネクタと接続するものである。GG45あるいはTERAコネクタを介してシールドが機器を通じて接地されることで信号の安定化を図るのだが、UTP前提のRJ45コネクタを持つ機器間の接続に使うとシールドが接地されてないためノイズの影響を受けるなど、通信品質の低下を引き起こす可能性がある。実際、ANSI/TIA/EIA-568-BではSTPの使用は推奨しないと明記されている。昨今のモバイル環境における通信制限のように1/100の速度になるといった差が出るわけではないが、LANケーブルの購入で通信品質を重視する際は十分注意されたい。

余談だが、LANケーブルの爪はよく折れる。爪の折れたケーブルは何かの拍子に抜けてしまうこともあり、ある日「通信の調子が悪い」「通信できなくなった」というのであちこち調べて首を傾げていたところ、実はケーブルが抜けていたなんて経験をしたことも一度や二度ではない。爪の折れたケーブルはなるべく使わないほうが良いだろう(図8)。最近は爪が折れないことをウリにしたLANケーブルも売られているが、筆者は爪の折れた爪の折れないLANケーブルを持っている。いつ折れたのかまったく気づかなかったのだが、こういうこともあるため過信は禁物だ。

図8:RJ45の爪。右のケーブルは爪が折れている

PCと接続する様々なネットワーク機器

前述のとおり、大昔の機器やデータセンター内などでは別の接続規格が使われることがあるが、一般的にはRJ45のLANポートを持った機器同士をLANケーブルで接続すれば物理的なネットワーク接続は完了する。PC同士を直結しても良いし、間にネットワーク機器を挟んでも良い。

だが、ひと言でネットワーク機器と言っても様々なものがある。スイッチングハブやルーターといった類の機器であるが、これらはネットワーク通信をどう制御しているかによって分類されるため、一般的に外観から区別するのは困難だ。それぞれの機器の役割を把握するには、ネットワーク通信のレイヤーおよびプロトコルの知識が必要だ。

また、ネットワークに接続しただけではうまく繋がらないケースが多々あることも経験済みの方は多いと思うが、これらのトラブルシュートにもプロトコルの知識は有用である。順に見ていこう。

現代ネットワーク通信の基礎技術
EthernetとTCP/IP接続

ネットワーク通信で用いるデータは最終的に1つないし複数のパケット(packet:直訳すると小包)と呼ばれるものに分割されて送受信される。ガラケーの時代では1パケットいくら、通信しすぎると料金が跳ね上がって「パケ死」するなどと言われていたので、パケットという言葉自体にはなじみのある方も多いだろう。このパケットの最小サイズは64バイト、通常のEthernetフレームであれば最大1518バイトとなる。この最大サイズは、送信側ではMTU(Maximum Transmission Unit)、受信側ではMRU(Maximum Receive Unit)と呼ばれる。

実際にWebページのテキストや画像、映像などのデータは最終的にパケットになるのだが、これらのデータを等分割するといった単純なものではなく、通信に関わる宛先などの情報が階層化されてパケットの一部に含まれる。それぞれの階層(レイヤー)では決められた手順(プロトコル)で通信することで、どのパケットが画像でどのパケットがテキストかなどの情報が識別されるようになっている。

例えば、Webブラウザであるページを閲覧することを考えてみよう。URLの情報からHTTP(HyperText Transfer Protocol)HTTPS(HTTP over SSLあるいはHTTP Secureが揺らいで現在はHTTP over TLSを指す)と呼ばれるプロトコルで宛先を特定し、ページ内容の取得リクエストを送信してレスポンス(結果)を受信する。これがアプリケーションレベルの話で、ネットワーク階層としてはアプリケーション層と呼ばれる

HTTPの場合、1つ下の階層ではWebサーバーの80番ポートへTCP(Transmission Control Protocol)で接続し(これをセッションという)、リクエストやレスポンスをそれぞれ1つのTCPセグメントとして通信する。これはトランスポート層と呼ばれる。トランスポート層にはTCP以外にもUDP(User Datagram Protocol)SCTP(Stream Control Transmission Protcol)などがある。UDPでは通信の単位をデータグラムと呼んでいる。

TCPでサーバーに接続する場合、IP(Internet Protocol)を用いてサーバーのIPアドレスにパケットを送信する(ネットワーク層)。IPパケットを送信する場合は、中継するネットワーク機器を宛先としてEthernetフレームを送信する(データリンク層)。電気信号レベルでのタイミングなどを規定するのが物理層といった具合である。

冒頭で「最終的にパケットとなる」と書いたが、正確に表現するならば「Ethernetフレームになる」となる。ただし誤解を生むような文脈はほぼないため、フレームやパケット、セグメントを特に区別せずパケットと呼ぶことも多い。

厳密な定義としてはOSI(Open Systems Interconnection)モデルの7階層があるが、現在主に使われているネットワークではデータリンク層(Layer 2:L2)、ネットワーク層(L3)、トランスポート層(L4)までははっきり分かれているものの、それ以上は明確に分かれていないことが多い(表2)。また、大手キャリアなどで使われるMPLS(Multiprotocol Label Switching)は2.5層と呼ばれることもあり、身近に使われているPPPoE(Point-to-Point Protocol over Ethernet)はデータリンク層だが同じデータリンク層のEthernet上で処理されるプロトコルとなっている。すべてのプロトコルを厳密に「どの階層である」と定義づけるのは難しく、理想的なモデルと比較すると現実は複雑であると言える。

表2:ネットワークの階層と使用されるプロトコル

レイヤー プロトコル
アプリケーション層 HTTP,HTTPSなど
トランスポート層(L4) TCP
ネットワーク層(L3) IP
データリンク層(L2) Ethernet
物理層(L1)

スイッチングハブやルーターといった機器は、どのレイヤーを処理する機器かが違っているのだ。それぞれのレイヤーについて簡単に紹介しよう。

Ethernet通信の要、MACアドレス

有線LANのレイヤー2(L2)、つまりデータリンク層として最も広く使われているのがEthernetだ。Ethernetフレームは送出元(source)と宛先(destination)の情報を先頭部分(パケットヘッダと呼ばれる)に描き込んだ形となる。このsourceとdestinationに使われるのがMAC(Media Access Control)アドレスと呼ばれるものだ。物理アドレスと呼ばれることもあり、6バイトの値で一般には16進数2桁の1バイトの値をコロン(:)で区切ることで表現される。例えば、00:E0:4D:00:00:01といった具合である。

MACアドレスの前半3バイト(先の例では00:E0:4D)はOUI(Organizationally Unique Identifier)と呼ばれ、IEEEに有料で割り当ててもらう。後半の3バイトは割り当てを受けた組織などが機器ごとに重複しないよう割り当てられ、それぞれの機器がユニークなMACアドレスを持つ。つまり、機器のLANポート1つにつき1つの値が割り振られ、同じ値を持つ機器は存在しないIDとして機能する。

リピーターハブとスイッチングハブ

10BASE2や10BASE5のころは枝分かれしたケーブルの先に複数の機器がつながっていた。そのため、Ethernetフレームを送出するとき、すでに誰かが送出したフレームがケーブル上を流れていると、どちらのフレームも電気的に衝突して失われてしまっていた(コリジョンと呼ぶ)。これを検出して再送信するための手順がCSMA/CD(Carrier-sense multiple access with collision detection)である。10BASE-Tのケーブルは両端の機器を1:1でつなぐが、当時はまだリピーターハブと呼ばれる機器があり、これを介するとケーブルが分岐しているのと同じような状態になるため、他と同様にコリジョンが発生していた(図9)。

図9:10/100Mbps対応のリピーターハブ。15年以上前にパケットキャプチャ用として重宝していた

現在ネットワークを束ねるのによく使われているスイッチングハブ(SW-HUB)は、リピーターハブとは多少動作が異なる。リピーターハブは受信したパケットを他のすべてのポートに流すだけだったが、スイッチングハブは送出されたパケットのsource MACアドレスを覚えておくことでLANポートの先にどの機器がつながっているかを把握する。これをMACアドレス学習(Learning)と呼ぶ。この情報がない場合はリピーターハブと同様に全ポートへパケットを送るが、パケットの送り先となる機器がどのポートにつながっているか分かっている場合は、つながっていると把握しているポートにのみにパケットを送出する。こうすることでコリジョンの発生を抑えることができ、ネットワーク全体のスループットが向上する。GbEではリピーターハブは存在せず、ハブはすべてスイッチングハブである(図10)。

図10:GbE対応のスイッチングハブ。コンパクトなものや底面に磁石のついたものなどバリエーションが多いが、写真の製品はAC電源を直接つなぐためACアダプタを必要としないのが特徴だ

いずれにしてもEthernetフレームが届く範囲はハブが中継する機器間のみであり、この範囲をネットワークセグメントと呼ぶ。また、この範囲内でのみ有効な情報をリンクローカルと呼ぶ。リピーターハブを使う場合、あるいはスイッチングハブでもMACアドレス学習されていないケースを考えると、すべての機器がすべての機器にパケットを送ってしまう場合はコリジョンを避けられず、例えば何千台もの機器を同じネットワークセグメントにつなぐと通信効率の大幅な低下は避けられない。規模によってはネットワーク設計の際に十分な注意が必要だ。

余談だが、スイッチングハブが登場してもリピーターハブが重宝されていることがあった。それはパケットのキャプチャである。通信がうまくいかないときなどに通信内容を確認したい場合があるが、リピーターハブを経由して通信すれば通信内容がすべて別のポートにも届くため、中身を見れば通信内容を確認できる。ところが、スイッチングハブの場合はMACアドレスを学習するとパケットは宛先のポートにしか送信されなくなるのだ。高機能なスイッチングハブにはミラーリングと呼ばれる特定ポートの送受信内容を特定のポートにも送るという機能を設定できる製品があり、これらを使うことになる。昔はより安価な機器で可能だったことが、現在では高価な機器を必要とするようになってしまった。

ネットワーク層を司るIP

私たちが使っているパソコンやスマートフォンがリピーターハブやスイッチングハブだけを経由してGoogleやYahooなどのサイトにつながっているわけではない、ということは先の説明で明白かと思う。つまりネットワークセグメントを跨いだ通信が必要で、それを実現するのがネットワーク層でありIP(IPv4)である。

IPはRFC(Request For Comment) 791で定義されているインターネット標準だ。RFCはIETF(Internet Engineering Task Force)により取りまとめられている技術文書で、強制力のある規格ではないがIPだけでなく数多くのプロトコルが定義されている。中には提案レベルのものや定義されているが使われていないもの、4月1日に発行されるジョークRFCなどもあり、RFCとなったものから順に番号が付けられている。

IPによる通信でも送出元(source)と宛先(destination)の情報が必要だが、この情報としてIPアドレスが使われる。IPアドレスは4バイト(32ビット)の値で表され、人間が読み書きする際には4ケタの数字を並べて数字の間をドットで区切ったものを用いる。例えば192.168.0.1といった具合だが、1つの数字が1バイト、つまり0~255の範囲というのがポイントだ。IPアドレスの種類は0.0.0.0~255.255.255.255のいずれかで、32ビットで表せる範囲の約42億個が理論限界となる。しかし、組織や団体に区切りの良い範囲で切り出して割り当てられていたり、インターネット接続には使えないIPアドレスの範囲が決められていたりと、実際に使えるIPアドレスの数はもっと少ない。そのため、IPアドレスの枯渇といった問題が発生している。

なお、一般向けのテレビ番組などでIPアドレスを紹介する際に、123.456.789.012など単に3桁の数字を並べて紹介されることがあるが、前述した通り1つの数字は0~255なので、この例はIPアドレスとしてあり得ない

グローバルIPとプライベートIP

IPアドレスはMACアドレスのようにLANポートごとにユニークな値が存在するわけではないが、インターネットにつながっている機器はそれぞれユニークな(つまり重複しない)IPアドレスを持つ必要がある。この重複しないユニークなIPアドレスをグローバルIPアドレスあるいはグローバルIPと呼ぶ。

前述したようにグローバルIPは貴重で、個人がフレッツなどを契約したときには1つしか割り当てられないことがある。単純に言うと、グローバルIPを使うとインターネットに接続できる機器は1台だけとなってしまう。これを解決する技術をNAT(Network Address Translation)と呼び、組織内や家庭内などで使われるIPアドレス(プライベートIPアドレス)とグローバルIPアドレスとを相互変換する。プライベートIPアドレスはグローバルIPと重複しないようにアドレスの範囲が定められており、10.0.0.0~10.255.255.255、172.16.0.0~172.31.255.255、192.168.0.0~192.168.255.255のいずれかとなる。

ルーター

NAT機能を持ち、ネットワークセグメント間の通信を可能にするのがルーター(router)だ(厳密にはNAT機能を持たない製品もある)。ルーター(router)はEthernetフレームを受け取り、IPアドレスの情報を見て適切な宛先ポートにEthernetフレームを送出する。ハブはパケットの中身を一切書き換えなかったが、ルーターが送信するパケットのMACアドレスはルーター自身のものとなる(図11)。

図11:国際会議のブースで展示されていたIIJの企業向けルーター各種。技術者向けなので中身が見えるようにカバーを外している個体があった

また、ルーターとしての機能とは異なるが、ルーターはつながっている機器にローカルIPアドレスを割り振るDHCP(Dynamic Host Configuration Protocol)サーバーとしての機能を持つ製品が大半である。IPアドレスの割り当てを受ける側の機能はDHCPクライアントと呼ばれ、PC用として動作するWindows、macOS、LinuxなどのOSは大抵DHCPクライアント機能を持つ。割り当てがうまくいかないとルーターを介してインターネットに出ていくことができない。Windowsのトラブルシューティングでよくipconfigコマンドを使ってIPアドレスを見よと書かれているが、これはDHCPによるIPアドレスの割り当てが失敗するとWindowsにより169.254.x.xというIPアドレスが割り振られるため、こうなっているか確認するという意味だ。

なお、ここで言うIPとはIP version 4 (IPv4)を指す。現在はIPv4の他にIP version 6 (IPv6)が使われるケースもある。IPv6のIPアドレス(IPv6アドレス)は16バイト(128ビット)に拡張されており、IPv4アドレスの枯渇対策として全世界で導入が進んでいる。

ファイヤウォールは何層?

企業などで外部からの不正な侵入を阻止するファイヤウォールと呼ばれる機器はレイヤー4より上位のアプリケーション層で通信をチェックし、不正な通信と見なされたパケットを拒否、あるいは捨てるといった処理を実行する。このような処理はDPI(Deep Packet Inspection)などと呼ばれる。ハードウェア機器ではなくソフトウェアによるファイヤウォールもあり、Windowsファイヤウォールはその1つだ。企業内ネットワークからのインターネットアクセスは全面的あるいは一部制限されている会社がほとんどだと思うが、ある程度以上の従業員数がいる大きな会社では専用のファイヤウォール機器を導入しているのではないだろうか。

サーバーのリモート管理技術IPMI

WindowsであれMacであれ、通常PCはモニターとキーボードやマウスをつないで操作する。遠隔操作でもリモートデスクトップなどで画面を持ってくることはできても、電源オフの機器をリモートで電源オンにはできないのが普通だろう。また、BIOSやUEFIといったOS起動前の画面もリモートからは操作できないのが普通だ。

しかし、これらの遠隔操作を実現するIPMI(Intelligent Platform Management Interface)と呼ばれる技術がある。IPMIは1998年9月にインテルから初版が公開され、現在では200以上のベンダーで採用されている業界標準の管理インタフェースである。インタフェースと言ってもUSBやシリアルその他の独自端子を使うものではなく、IPMI専用のLANポートあるいは通常の通信で使用するLANポートを共有し、IP通信によりPCの各種制御や状態監視を実行する(図12)。そのため、PCの電源がオフでもATX電源から電力供給を受け、IPパケットを送受信できる制御マイコンが動き続けている。

図12:筆者が所持しているマシンのバックパネル。左上にあるのがIPMIだが、LANはどれもRJ45のため見た目では区別できない

PCの電源制御など根本に近い部分に係るため、最初からIPMI機能を内蔵しているか、あるいはオプションでIPMIボードを装着されることを想定しているマザーボード以外では、後からIPMI機能を持たせることは難しい。IPMI以前には昔、ビデオカードのフリをしてシリアルI/Oに文字を出力し、シリアルI/Oからの入力をキーボードエミュレーションするという特殊な拡張カードが販売されていたりもした。

IPMIはバージョン2.0でKVM(Keyboard、Video、Mouseの頭文字を取ったもの。Linuxの仮想化技術KVMとは無関係) over IPと呼ばれる、OSを介在しないリモートデスクトップ機能やvirtual mediaというネットワーク越しにCD-ROMやDVD-ROMなどのイメージを物理ドライブのように見せる技術が追加されている。これにより、LANと電源さえつなげておけばネットワーク的につながっている場所から遠隔でOSのインストールなども可能となる。

まとめ

今回は、ネットワークの中でも有線LAN、Ethernetの概要とIPの役割について簡単に解説した。詳細な解説は専門書等に譲るが、スイッチングハブやルータなどの機器や用語について何となくでも分かってもらえれば幸いである。

著者
沖 勝(おき まさる)
株式会社インターネットイニシアティブ
前職時代は「沖@沖」と名乗り、X68000用のフリーソフトウェアを発表していた。2001年より株式会社インターネットイニシアティブに勤務、自社開発の高機能ルータSEIL(ザイル)の開発に従事し、OS移植やデバイスドライバ開発などに携わった。2013年よりオープンソースソフトウェアLagopus(ラゴパス)の開発に従事、パケット処理機能の設計及びプログラミングを担当している。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています