ルーター
ルーターまたはルータ(router)は、コンピュータネットワークにおいて、データを2つ以上の異なるネットワーク間に中継する通信機器である。通信プロトコルにTCP/IPが使われるようになってから普及した。データをネットワーク層で、どのルートを通して転送すべきかを判断するルート選択機能を持つ。
ルーターはネットワーク間を相互接続する通信機器であり、通常はOSI基本参照モデルでの第1層(物理層)から第3層(ネットワーク層)までの接続を担う。一般的に用いられるルーターは、基本機能として各ネットワーク間でのIPパケット(第3層)をやり取りできるようにする装置であるが、暗号化やフィルタリングなど、さまざまな付加機能を実現している。
ハードウェアとしてのルーターは、おおまかに通信事業者 (ISP) 向けのコアルーターと企業向けのエッジルーター、コンシューマー向けのブロードバンドルーターに分けられる。それぞれベンダーの設計思想や販売戦略によって製品区分が異なるため、呼称は一定ではない。
ルーター内部のソフトウェア (OS) については、米ジュニパーネットワークス社のJUNOSや米エクストリームネットワークス社のExtremeXOSなど、主要なOSはUnixの修正版である。米シスコシステムズ社のみは、独自のCisco IOSを展開しているが、IOS XRではUNIX系のマイクロカーネルを採用した。また、2005年にはOSSとしてDebianLinuxベースのVyattaが開発され、日アライドテレシス社は同社製AlliedWare PlusにLinuxカーネルを採用するなど、Linuxの利用も広まっている。
1964年MITのラリー・ロバーツがARPA(Advanced Research Projects Agency、DARPAの前身)のJ.C.リックライダーと出会い、コンピュータ同士の接続に意欲を燃やす。1966年にARPAに異動したラリーはARPANETの設計責任者となって、従来の「回線交換」にかわる「パケット交換」を基本とすることに決定。1968年よりARPANETの実計画がスタートし、1970年に最初の4箇所での接続によって稼動開始。ARPANETは、米BBN社 (Bolt Beranek and Newman) が開発したIMP (Interface Message Processor) と呼ばれる、単一プロトコルのみで動作するパケット交換機を中心に構成されていた。1972年にARPAに着任したボブ・カーンは、様々なインターフェースを備え、パケットをカプセル化する機能を持つ「ゲートウェイ」と呼ぶ装置を構想していた。プログラミングに詳しいスタンフォード大学のビントン・サーフは、カーンと協力し、1974年に、2人は、IEEEの学術誌に、現在のTCP/IPの原型となる、TCPを発表した。1977年に最初のネットワーク相互接続実験が行われ、衛星通信を介したパケットの送信に成功した。ゲートウェイという名称は、1980年代後半にルーターと呼ばれるようになるまで使い続けられた。
その後、2人のTCPプロトコルはアプリケーション同士の通信を担当する部分 (TCP) とパケット中継を担当する部分 (IP) に分割され、1981年には洗練されたプロトコルとして現在の「TCP/IP」が発表された。
1976年には、米BNN社の手によってARPANETに接続するIP対応ルーターが、世界で初めて製品化された。この「ルーター」は、米DEC社の16ビット・ミニコン「PDP-11」上において、アセンブリ言語で書かれた20Kバイトのプログラムによってパケットを処理する仕組みであり、処理速度は100パケット/秒程度であった。
1982年には、ARPANETの内部や米国・欧州を合わせて20以上のルーターと数百のホスト・コンピュータが1つに接続され、これが今のインターネットの原型となった。
1986年には米プロテオン社より、マルチプロトコルに対応した世界初の商用ルーター「ProNET p4200」が発売された。1990年には米シスコシステムズ社が「Cisco7000」を、1997年にインターフェースカード(ラインカード)に分散アーキティクチャを導入した「Cisco12000」を発売し、10Mパケット/秒クラスの性能に至った。
1987年には世界初の商用インターネットプロバイダ (ISP) UUNETが誕生し、一般固定電話が定額制だったことから、コアルーターをDCE、アナログモデムをDTEとした、ハブスポーク型トポロジによるネットワークが米国において定着するCATVやADSLが広まった後も、安定したインフラクチャであるナローバンドとしての利用は続いた。。
1995年頃、回線の高速化(ISDNやCATVの普及)に伴うトラフィックの増加に伴い、X.25に代わるWANプロトコルとして、エラー制御処理の簡略化によって高速化したフレームリレーが導入された。その後、ルーターは様々な種類の物理インタフェースをサポートするようになった(ルーター#基本機能を参照)。
また、この頃からLAN回線(トークンリング、イーサネット、FDDI (Fiber-Distributed Data Interface))上で動作するネットワーク層プロトコル (AppleTalk、IP、IPX) とWANプロトコルをリンクさせる役割をルーターが担うことになり、同時に、LAN回線に比べて速度で劣るWAN回線を効率よく使用するため、WAN側に設置されたルーターをデータ端末装置 (DTE) として扱うことで、過剰なトラフィックをWAN側に流さないようになった。ルーターは、ISPによるWAN網のバックボーンとなるコアルーターと、そのDCEもしくはDTEとなるエッジルーターとに分かれることになる。
1995年、標準ネットワーク機能としてTCP/IPを実装するOS「Windows 95」が発売され、企業におけるPCとLAN回線の普及が進むと、企業ネットワークの世界はISPセンターとPCを接続するトポロジから、セグメントごとにハブを介して専用線経由で接続するトポロジに変わり、LAN側セグメント間のルーティング機能が重視されるようになった。こうした状況の変化にともない、ネットワーク中継装置としてレイヤ2スイッチが注目されるようになり、やがてレイヤ2スイッチは利便性向上のため、VLAN (Virtual LAN) を実装するに至った。
一方で、コンシューマーにおいては前者のハブスポーク型トポロジは継続した。日本では、接続回線にISDNが広まったことから、アナログモデムからダイアルアップルーターに移行した。やがて1990年代後半からのブロードバンド回線の普及にともない、ブロードバンドルーターが広まることになったただし、ブロードバンド普及についての経緯や規模は各国の政策、通信事情により異なる。。
VLAN技術により、ポートの効率化が可能になると、次はLAN側トラフィックの急増によってセグメント間ネットワーク層のルーティングがボトルネックとなった。
レイヤ3スイッチは、レイヤ2スイッチとルーターのルーティング機能を1つの筐体に同居させることで、レイヤ2スイッチとルーター間のボトルネックを解消した。ルーティング機能は、汎用CPUを使ったソフトウェア処理からASIC (Application Specific Integrated Circuit) とよばれる半導体チップによる処理に変更したことにより、処理の高速化を実現したレイヤ2スイッチもASIC実装に至る。。また、コストの面から利用するプロトコルをTCP/IPに特化し、インターフェースをイーサネットに限定したことが、広域イーサネットやIP-VPNといった次世代のWAN側サービスと合致したため、ユーザーの需要が高まることとなった。
当初、レイヤ3スイッチは高価であったが、2000年代に米エクストリームネットワーク社が安価で多彩な機能を持ったレイヤ3スイッチである「Summit」シリーズを発売し、センタールータの代替として、企業や官庁を中心にレイヤ3スイッチは普及した。
2000年頃から、企業ネットワークの主流がこれまでの専用線から、より安価で接続範囲を限定されないインターネットによるVPN (Virtual Private Network) に移行した。通信業者はMPLSとVRによる有料サービス「IP-VPN」を提供したが、企業や個人にも独自にVPN環境を構築する動きが広がり、IPsecトンネルやPPTPを経路とするインターネットVPNを実装するエッジルーターやブロードバンドルーターが開発された。
2002年には、データリンク層をギガビットイーサネットで繋ぐ、広域イーサネットによるサービスが広まり、そのデバイスとしてレイヤ2スイッチが再度注目されることとなった。
2000年代後半より、IP電話や第3世代 (IMT-2000) 以降の携帯電話の発展に応じて、コアネットワーク(バックボーン)のオールIP化を志向した次世代ネットワーク (NGN) が提唱され、通信業者のバックボーンは、これまでの電話交換機による電話網からルーターやスイッチ類などによるIP網に再構築された。また、2010年6月には次世代イーサネット規格として、40Gbps/100Gbpsという2つの異なる伝送速度に応じたIEEE 802.3baが承認された。40Gbpsはサーバなどの機器間での接続に、100Gbpsは主にネットワーク間のバックボーンに使われるとの見通しで、各ベンダーの設計もこの規格に基づき、おこなわれている。
ルーターの基本機能は4つある。
ルーターは、ネットワークセグメントの異なるLAN側のインターフェースや、WAN側のインターフェースなどの中から2つ以上の物理インターフェースを有する。
ISDN PRI/BRI
WAN網に送出されるデータはデータリンク層プロトコルによりカプセル化される。プロトコルの種類には、HDLC、PPP、X.25/LAPB、フレームリレー、ATMなどがあるInfonetics Researchは、「EthernetとIPサービスへの移行が早まっている。2015年までにはATMやフレームリレーは実質的になくなるだろう、一方、専用線はもう少し先まで残る」と予測している。。
イーサネット (Ethernet) - いわゆる「ブロードバンドルーター」やインターネットサービスプロバイダ・インターネットエクスチェンジにあるルーターはこの形態である。
AUI - 10BASE5のトランシーバーへのインターフェイス
RJ-45 ポート(ツイストペアケーブル用)
シリアルポート - LANが一般的でなかった頃のエッジルーター(ダイヤルアップルーター)はこの形態だった。
イーサネット (Ethernet)
RJ-45 ポート(ツイストペア)
それぞれの物理インターフェースは、様々な回線種別に対応しており、タイプとして固定型とモジュラー型に分かれるモジュラー型はインターフェースカードをスロットに差し込むことでユニット交換が可能であり、拡張性に優れている。。タイプを選択することにより、ユーザーのサービスにあわせた柔軟な対応ができる。ATMを使ったセルリレーや、フレームリレーなどデータリンク層への接続には、WAN側のインタフェースカードの交換、シリアルケーブルでデバイス (DTE) と接続、インターフェースの設定フレームリレーの場合、ルーターをFRAD (Frame Relay Access Device) に設定し、接続先をデータ回線終端装置 (DCE) とする。を行うことによって接続が可能となる。
ルーターは、受信パケットの宛先情報から経路選択をおこなう。これをルーティング (Routing) という。ルーティングを実施する際にルーティングテーブルの情報が参照される。その情報を元にパケットの転送をおこなう。これをフォワーディング (Forwarding) という。
IPv4パケットの場合の流れを説明すると、
ルーターが、IPパケットを受信すると、その中のIPパケット・ヘッダーから宛先アドレス (Destination Address) を読み取る。
ルーティング・テーブルと宛先アドレスを照合し、合致するものがあれば、ネクストホップ (Nexthop) のIPアドレスから、ネクストホップに到達するためのレイヤ2アドレスを調べる。
ARPテーブルを参照し、なければARPパケットを送信して、宛先MACアドレスを取得し、ARPリクエストにレスポンスがあれば、ARPテーブルを更新し、パケットを転送する。なければ、送信元アドレス (Source Address) にパケット到着不可である事を示すメッセージ (ICMP「Host Unreachable」) を送信元に返す。
パケットのヘッダをネクストホップに書き換える。
パケットを転送先のインターフェース (Interface) に送信する。
ルーターにデフォルトルートの設定がなく、ルーティングテーブルにマッチしなければ、未知の宛先とみなされ、パケットは破棄されて、送信元アドレス (Source Address) にパケット到着不可である事を示すメッセージ (ICMP「Net Unreachable」) を送信する。
となるルーターがIPパケットをルーティングする際、IPパケット・ヘッダーのTTL(Time To Live、IPパケットの寿命を表す数値)を1減らす。また、NAT/NAPTなどのアドレス変換時も、IPパケット・ヘッダーを書き換える。また、転送先のルートに合わせて、IPパケットを分割する場合もある。。
この時に用いられるルーティングテーブルには、ネクストホップ情報、宛先アドレス情報、そのルーターに接続するためのインターフェース情報など、転送に用いる経路情報が記録される。ルーターの性能は、このルーティングテーブルやARPテーブルの参照処理能力と、スループット値などにより決まる。なお、レイヤ3スイッチの場合は、最初のパケットをコントロールプレーン (Control Plane) のCPUで処理し、ルーティングテーブルとARPテーブルで算出した情報をASICのレイヤ3テーブルに追加する。2回目以降のパケットをデータプレーン (Data Plane) のASICで処理する。
ルーターは、WAN側から受け取ったIPパケットに応じて、フィルタによって転送せずに破棄したり、QoS (Quality of Service) によって優遇してLAN側に転送するなど、パケットの選別機能を持つ。
IPヘッダー、TCP/UDPヘッダー、パケット内の有意なデータ(URLなど)を設定して、条件に該当するIPパケットを破棄する。特定のパケット通信を排除できるcisco社ではアクセスリストまたはアクセス制御リスト (Access Control List) として実装する。。
QoSは、LAN側の帯域が大きく、WAN側の帯域が小さいという構成において、ルーター内部のキューにパケットが溜まる状態で、どのパケットを優先して出力するかの方法を選択し、制御する機能である。下記にその方法を示す。
優先すべきIPパケットとそれ以外を、IPアドレスやポート番号などによって区別し、優先度を割り当てる。この方法をプライオリティ・キューイング(Priority Queuing)と呼ぶ。
一定時間ごとにインターフェースのパケット量を監視し、閾値以上になれば超過したパケットを破棄する。この方法をポリシング (Policing) と呼ぶ。また、超過したパケットを破棄せずにバッファリングによってキューに保持し、間隔をおいて平滑的に伝送されるようにスケジューリングする方法をシェーピング (Shaping) と呼び、どちらかの方法を選択して設定する。
ルーターは、経路情報を持つルーティングテーブルルーティングテーブルは、宛先アドレス、ネクストホップ、送出元のインタフェースの各情報を持つ。の管理をおこなう。
直接接続された他のインターフェースとの通信により、経路情報を自動的に学習する。しかし、ルーターは「直接接続されていないインターフェース」には接続できないため、それを含めた経路情報を設定する必要がある。
経路情報を設定する方法には、ネットワーク管理者が手動で設定する静的ルート (Static Route) と、ルーティングプロトコルで設定された動的ルート (Dynamic Route) がある。
動的ルートは、ルーティングプロトコルが設定されると、相互接続された他のルーターとの通信によって経路情報を交換し合い、自動的にルーティングテーブルを最適な状態に保つ。この状態を収束または収斂(コンバージェンス)というcisco社では、これをアドバタイズメント (advertisement) と呼ぶ。。
この経路情報の収集につかわれるルーティングプロトコルには2種類あり、異なる自律システム (AS) 間で使われるEGP (Exterior Gateway Protocol) と、同一のAS内で使われるIGP (Interior Gateway Protocol) がある。EGPとしてはBGP-4、IGPとしてはRIP、OSPFが有名である。
また、通信制御用プロトコルであるICMPを周囲に発信し、エラーや回線の状態を監視するルーターもあるヤマハのRTシリーズなどでは、ネットワークバックアップ機能と呼ばれる。。
これらにより、あらかじめ伝送路の2重化や迂回経路への切り替えを設定しておけば、伝送路に障害が発生した場合、RIP、OSPF、BGPといったプロトコルを利用せずに別経路への自動的な切り替えが行われる。
ルーターの内部について、代表的なアーキテクチャには分散型と集中型がある。アーキテクチャはインターフェースカード、スイッチカード、制御部で構成される。
インターフェースカードは、パケット処理エンジン、パケットバッファ用メモリ、ルーティングテーブル用メモリ、各種テーブルメモリにより構成される。そして、ルーターの内部の処理は4段階に分かれる。
複数のパケット処理エンジンをクロスバー・スイッチ(スイッチカード)で接続する。複雑なルーティング処理をコントロールプレーンで実施し、単純なパケット処理をデータプレーン(フォワーディングプレーン)のスイッチ用LSIとパケット処理エンジンで分散することで処理を高速化するアーキテクチャ。高拡張性、高価格、処理エンジンのI/O負荷が高いため電力量が多い。
データプレーンでのパケット処理を、1つのパケット処理エンジンに集中させ処理をおこなう。分散アーキティクチャに比べシンプルな構造。
受信した信号をインターフェース回路がビット列に変換し、受信処理を行うパケット処理エンジンに入力データを渡す。パケット処理エンジンでは受け取ったIPフレームをあらかじめ区切られたルーティングテーブル用メモリバッファに蓄積する。この入力バッファ領域は1フレームが十分に収まる長さごとに区切られている。メモリーのサイズは限りがあるため、転送処理が滞って後から来たパケットがメモリーに格納出来なくなればそのパケットは破棄される。これが「パケット・ロス」と呼ばれる現象である。
パケット処理エンジンは、ルーティングテーブル用メモリに蓄積されたIPパケットのヘッダーを読み取り、ルーティングテーブルの検索をおこない、出力先インターフェースを決める。同時にQoSとアクセス制御リストを参照する。条件にあえばその処理を行う。解析で得られた情報は、パケットバッファ用メモリのIPパケットに付加しておく。
ルーティングテーブルの検索方法は3種類ある。
リニアサーチ (Linear Search)
パトリシアツリー (Patricia Tree)
全エントリ同時検索 : CAMを利用した方法
加工されたパケットは以下のように処理される。
パケットをスイッチングする。
出力制御部のキューへFIFOにより送信する。
出力回線ごとに備えた複数のFIFOはQoSに従い、パケットを蓄積する。
スケジューラによりFIFOからパケットを読み出して出力する。
パケットの送出を担当するパケット処理エンジンは、各種テーブルメモリからパケットを読み出して、「解析」処理で得られたQoSにより、出力インターフェイスを振り分け、パケットバッファ用メモリに蓄積する。スケジューラにより、パケットバッファ用メモリからパケットを読み出して出力する。
ネットワーク上での障害を回避したり最小限にする技術に冗長化(または冗長構成 (redundant configuration))がある。
ルーターやレイヤー3スイッチを複数備えると、障害時に切り替える物理的な冗長化がおこなわれる。このままでは障害発生を検知して自動的に予備機に切り替えることはできないため、ルーターを仮想化するプロトコルによって冗長構成の制御をおこなう。複数のVRRPグループに仮想ルーターの設定をおこなうことでロードバランスが可能となる。標準化されあるいは、ベンダー独自のプロトコルが複数存在する。
VRRP : 1つの仮想アドレスをマスター機とバックアップ機の2台に持たせることで、正常時はマスター機が仮想アドレスを使い、障害発生時にはバックアップ機が仮想アドレスをそのまま使って動作を引き継ぐ方法。
ベンダーによっては、VRRPに類似した、もしくはVRRPを拡張したプロトコルを提供している。
HSRP (Hot Standby Router Protocol) : シスコ・システムズ社独自のRFC2281による方式規格
VRRP-E (VRRP-Extend) : Foundry社(現Broadcom社)
FSRP (Foundry standby router protocl) : Foundry社
ESRP (Extreme Standby Router Protocol) : Extreme Networks社
NSRP (NetScreen Redundancy Protcol) : NetScreen Technologies社(現Juniper Networks社)
また、リンク・アグリゲーション(en:Link aggregation、Cisco社ではEtherChannel)によって、複数の通信回線を物理的に束ねて、仮想的に1回線として使用すれば、一部の通信回線に障害が発生しても、残りの回線で通信が可能なため、通信の途絶が回避できる。
スパニング・ツリー (Spanning Tree Protocol, STP) や通信速度の改良をおこなったラピッド・スパンニング・ツリー (Rapid Spanning Tree Protocol, RSTP) などの冗長化技術などの、データリンク層で使用するプロトコルによる冗長化技術は本項では扱わない。スイッチングハブ
2008年現在では、ルーターを含む大規模なネットワークの利便性向上のためにさまざまな技術が生まれている。下記にルーターに関係が深い技術を示す。
MPLS (Multi protocol label switching) は、MACヘッダーの後ろにMPLSシム・ヘッダーと呼ばれるラベルを付加して、MPLS対応ルーター同士での転送先識別に利用する。MPLS対応ルーター同士はLPS(ラベル・スイッチ・パス)と呼ばれる仮想パスで結ばれる。レイヤー3スイッチと違い、ルーターの使用によって優先制御や帯域制御といった機能、特定のパケットだけを別経路にう回させたり、回線障害の発生時に瞬時(数ミリ秒)に迂回路を設定する「ファスト・リルート」機能などによって高い利便性が提供される。
VPLS (Virtual private LAN) はMPLSを利用したMACアドレスを転送先アドレスとして使用する、ルーターによって構成される広域イーサネット技術。企業のローカル拠点のLANをVPLS網に繋ぐことで、そのままイーサネットのMACフレームによるやり取りが行える。VPLS網の端に位置するエッジ・ルーターはMACアドレスとパスの対応表を持ち、ローカルLANから受け取ったフレームのパケットの宛先MACアドレスからパスを見付け出してラベルを付けてVPLS網に送り出す。コア・ルーターでは、ラベルだけを頼りにフレームを転送してMACアドレスは扱わない。ローカルLANから見れば、VLPSネットワークは大きなLANスイッチと同じように機能する。MPLSの利点であるQoS機能やファスト・リルート機能が提供される。