はじめに
「ルータとL3スイッチの違いがわからない」というツイートを見かけたのでまとめてみました。
「L3スイッチ」と「ルータ」って何が違うんでしょう?
— はけた@ピボットテーブル+PowerQuery本 発売中 (@excelspeedup) 2020年2月22日
L3スイッチがハード処理寄り、ルータがソフト処理寄り、というイメージはあるんですが。
厳格な区別はあるんでしょうか。
どうしてこのような疑問が生まれるのか
どちらもルーティングできちゃうからですよね。混乱しがちです。
ざっくりとした違いまとめ
昔CCNAの勉強してたときに書いてあったなーと思い、CCNAの黒本を発掘してきました。
黒本には、以下のように紹介されています。
ルータ | L3スイッチ | |
---|---|---|
転送速度 | 低速(ソフトウェア処理) | 高速(ハードウェア処理) |
インターフェース | イーサネット、シリアルなど | イーサネット |
ポート単価 | 高い | 安い |
自分がツイートした回答もだいたい同じことを言っています。
こんな感じですね。
— おれさまラボ (@skksky_tech) 2020年2月22日
ルータ(①)とL3スイッチ(②)の違い
>用途: ①WAN、②LAN(まれにWAN)
>ポート数: ①少ない、②多い(収容密度高)
>ルーティング処理: ①S/W、②H/W
→ ②は高速
>②でできないこと
・NAT/NAPT
・トンネリング/カプセリング
・TCP MSS調整
・tcp/ip以外の通信プロトコル利用
「まれにWAN」と書いたのは、広域イーサだとL3スイッチ使う場合もあるからです。
ただ、ちょっとこれだけでは「うーん」ってなっちゃう人も多いんじゃないでしょうか。
まぁ納得感はないですよね。
L3スイッチが生まれた歴史的な背景
IT全般に言えますが、機器が存在している理由とかアプリケーションでの実装の謎とかというのはだいたい歴史的な背景を学ぶと答えが自ずから見えてきます。
ネットワーク機器ベンダであるアライドテレシス社のサイトにL3スイッチの成り立ちが記載されています。
簡単にまとめると、アプリケーション利用の方式が変化したことによって、通信量が増大し、大量のトラフィックをルータでは処理しきれなくなったためL3スイッチが生まれました。
もともとスイッチはLAN内に分散して配置されていますから、スイッチ上でルーティングができればわざわざルータまでルートを聞きに行く必要がないので、ルータの負荷を下げることができるわけです。つまりルータは、WANやインターネットとの通信に必要なルーティングに専念できるわけです。
また、L3スイッチ誕生の背景にはVLANの誕生も関わっています。日経NETWORK 2010年5月号によると、VLAN間通信にはルーティング処理を行う必要があり、この課題を解決するためにスイッチ上でルーティング可能なL3スイッチが誕生したとの記載があります。
ルーティング処理の負荷分散とVLAN間通信の必要性のどちらが先の話かはわからなかったですが、こうしてL3スイッチが生まれることとなったようです。
さて、当初のL3スイッチでは、ルーティング処理はまだソフトウェアで行われていたようです。そのため、ソフトウェアでのルーティング処理速度の問題は依然として残っていました。そこで、L3スイッチでのルーティング処理をハードウェアに任せることで高速化も実現されました。
ASICとは
このハードウェア処理は一般にASIC(Application Specific Integrated Circuit)を利用します。ASICとは、ある特定の目的のために設計された集積回路のことです。なので、ネットワークの専門用語ではありません。
詳しく知りたい方は、以下資料がわかりやすかったので読んでみてください。
www.slideshare.net
ルーティング処理やQoS処理をASICに任せることで、処理速度が向上します。
ルータはなぜソフトウェア制御なのか
ここで、「ルータもハードウェアでルーティング処理をすればいいのでは?」という疑問が生まれます。これには明確な回答があり、ルータがソフトウェアでルーティング処理を行うのはさまざまな通信プロトコルに対応する必要があるからです。
WANサービスは「専用型」「交換型」「インターネット」の3つに分類されます。
それぞれの概要は以下表のとおりです。
仕組み | メリット | デメリット | コスト | |
---|---|---|---|---|
専用線 | ポイントツーポイント接続とも呼ばれ、2拠点間を1対1でダイレクトに結ぶ通信方式。 | サービス契約者専用の回線のため、ユーザーは帯域幅を100%利用して安定したデータ通信を実現可能。また回線を占有できることから一般にセキュリティレベルが高いとされる。 | 他のサービスと比べて回線コスト高。 | コストは拠点間の距離と帯域幅に依存する。 |
回線交換 | 接続先は固定ではなく、複数の中から選択する1対多の接続方式。常時接続ではなく、必要なときにだけ相手にダイヤルし、接続できたことを確認してから通信を行う方式。 | 接続中は回線を専有してデータを送るため、専用線と同様のメリットを得られる。 | データが流れていない場合でも専有されるため利用効率が悪くなる。 | コストは距離と接続時間によって決まる従量課金制。 |
パケット交換 | データをパケットと呼ばれる単位に分割して送信する通信方式。 | 複数の回線を通じて効率よく伝送可能。コストが安価。 | 回線を他のユーザーと共有するため輻輳等の影響を受けやすい。また、通信速度は保証されない。 | コストは定額制がほとんど。 |
2020年現在においてはインターネットやパケット交換型(IP-VPN、広域イーサ)が主流です。これらはいずれもIP通信ですので「ルータがさまざまな通信プロトコルに対応する必要がある」といってもピンとこないですが、以前は主流だったISDN用のインターフェイス(BRI、PRI)を持っていたり、PPPを利用してNetBEUI、AppleTalkのようなTCP/IP以外の通信プロトコルを処理するためにルーティング処理をソフトウェア実装にしているというわけです。
ASICを搭載したルータは作れないのか
ASICを搭載した製品を見つけることはできませんでした。ご存知の方がいれば教えて下さい。
たとえばCisco 4000 シリーズ ISR では、ASICでは無いようですが、専用プロセッサが搭載されているようです。
高性能マルチコア プロセッサが、高速 WAN接続をサポートします。データ プレーンには、特定用途向け集積回路(ASIC)と同様のパフォーマンスを提供する、エミュレート型 Flow Processor(FP)が使用されています。サービスを追加してもパフォーマンスが低下することはありません。
また、以下サイトの記述も気になるところです。
コアルーターならば、数十万ルート以上のルートを作れる膨大な量のルーティングテーブルを持っています。 これを調べてパケットの転送先を決めるには、相当な処理能力を要求されます。 そこで、コアルーターでは、前述のような専用のチップがいくつも必要になり、分散処理をします。 経路の検索は、方々から来るパケットごとに行われます。 そのため、経路の検索には時間がかかります。 高い処理能力が要求されます。 そのため、ルーターメーカーは、前述のように専用チップを搭載するなど、いろいろ工夫してきました。
最近では、ホワイトボックススイッチを使ったSD-WANルータなんかが出回っていますが、そういったものではASICを使っているという記述を見たことがあります。Fortinet社の最新FortigateのFシリーズでもASIC搭載が謳われているようです。SD-WANルータはインターネットを前提していますから、対応すべき通信プロトコルは限られて来ます。ASICを積んでいてもおかしくはないですよね。
まとめ
ルーターとL3スイチはいずれも「ルーティングができる」という点で同一視してしまいがちですが、歴史的背景からみてもその成り立ちはまったく異なるものです。
ルーターはWAN接続に用いられ、さまざまな通信プロトコルに対応する必要があるためソフトウェアで実装されています。また、本記事では細かくは書きませんでしたが、NAT/NAPTやBGPのようなWANには必要な仕組みもL3スイッチでは実現できないことが大きな特徴といえるでしょう。
L3スイッチは通信容量が大きくなってきたことでルーターにかかっていた負荷をLAN内に分散する目的であったり、VLAN間通信を効率的にルーティングするために誕生しました。高速なルーティング処理が要求されるため、ハードウェア(ASIC)にルーティング処理を任せています。これが実現できるのは、LAN内ではイーサネット+TCP/IP通信に対応すればよいというプロトコル数の少なさに依るところが大きいと言えるでしょう。
以上