■ ルータの役割
前回の話から、続きと言うか、発展の話をしよう。
さて、ネット君。ホストから送信された別ネットワーク宛のパケットはどのように動く?
別のネットワーク宛?
そりゃ、デフォルトゲートウェイ(ルートプロセッサ)に送られて、ルーティングされるんですよ。
まぁ、その通りなわけだ。
つまり、こういう動きを示すわけだな。
[FigureSW16-01:別ネットワーク宛の送信の動作]
どうだ?
どうだって、……すごいですね。
またソレかね? 君は「すごいですね」以外の感想を持たないのかね?
まったく。シンプルなのは確かに有力だが、脳までシンプルというのはどうかと思うぞ?
えへへ。
褒めてねぇ。
はぅっ。
まぁ、ともかくだ。別ネットワーク宛のパケットは上図のような動作を行うわけだな。
あ、はい。別にこれといって変なところも、難しいところもないですよ?
うむ。ネット君、20/80ルールを覚えているか?
20/80ルール? え〜っと、BCMSNの第一回で教えてもらったルールですよね。
通信の割合が、同一サブネット内が20、外が80だってことですよね。
[FigureSW01-02:20/80ルール]
そうだ。つまり、ルータの処理の比重が非常に高くなる、ということだな。
先ほどの別ネットワーク宛のパケットの動作を見てわかるとおり、ルータはやることが多い。
そうですねぇ、自分のMACアドレスの確認はともかくとして、インバウンド・アウトバウンドACL、ルーティング、ARPキャッシュの確認とてんこ盛りですね。
うむ。特にソフトウェアベースのルータの場合、ルータこそがボトルネックになる可能性だってあるわけだ。
でも、それはしかたのないことなんでしょう?
■ フロー
確かにそうかもしれん。
だが、実際に行われる通信というものを考えてみると、ちょっと違った見方ができる。
実際に行われる通信? 違った見方?
IPというプロトコルはコネクションレス型通信だ。
つまり、今送ったパケットと、その1個前に送ったパケットとに因果関係はない、という前提で作られている。
そうですね、コネクションがないわけですから。
ルータというレイヤ3デバイスもその前提で作られている。
だが、実際の通信を、特にTCPを使った場合のものを、レイヤ2・3レベルで見るとどうなる?
[FigureSW16-02:HTTPフロー]
明らかに、同じ宛先、同じ送信元が連続して出てきている。
この同じものが連続して出てきていることに対し、ルータはコネクションレスが前提だから、それぞれ別のものとして扱う、つまり。
つまり?
毎回毎回、ACLを確認し、ルーティングし、ARPキャッシュを確認し……、という動作を行う。
なぁ、ネット君、これはなんとも…
無駄じゃないか?
無駄じゃないか?
えへへへ、読めてますよ、博士。
……覚えておけよ、ネット君。
まぁ、ともかくだ。このような一連の流れのことをフローと呼ぶ。
ふろー? フローチャートのフロー?
そうだ、そのフローだ。
一連の同宛先・同送信元で同種のパケットの流れ、という意味にでも取ってもらえればいい。
さっきの例だと、AからB宛のHTTP、という同種のパケットの流れですね。
うむ。このフローで使われるパケットは、同じ送信元から、同じ宛先へ流れるパケットだ。
これを毎回毎回ルーティングするのは遅延の元だし、ルータの負荷も高くなる。
そうですねぇ、ルーティング先は決まってるんですからね。
だろう? ルータというレイヤ3デバイスに任せてしまうと、どうしてもそうなってしまう。
じゃあ、ルータに任せない?
そうだ。これをスイッチに実行させる。それによりフローの高速化を実現させる。
この技術をMLSという。
えむえるえす。まるちれいやすいっちんぐ。
■ MLS
ルータでのルーティングというものは、特にソフトウェアベースならばどうしても遅延が発生してしまう。
20/80ルールの現在ではそれは致命的になる。
20/80ですと、ルータへの依存が高いですからね。
そうだ。なので、MLSではその処理をスイッチに任せてしまい、ハードウェアベースで行おう、という技術だ。それにより高速化を図る。
ん〜っと。それはレイヤ3スイッチのことですか?
レイヤ3スイッチは、完全にハードウェアベースのルーティングを行う機器で、MLSとはまた違う。
MLSはMLS対応スイッチとルートプロセッサという従来の機器の組み合わせで行う。
レイヤ3スイッチみたいに別物の機器を持って来るでなく。
いままでのものでもできるってことですね。
そうなる。実際の細かい動作はともかく、MLSがいかにフローを高速化させるか、概念の動作を説明しよう。
[FigureSW16-03:MLS]
どうだ?
え〜っと、え〜っと。
ちょっと混乱してます。確認させてください。
うむ、何もしなくても混乱してるのがネット君だからな。
よかろう。
つまり……フローの最初はいつも通り、ルータがルーティングする?
そうだ。あくまでの異なるネットワーク宛へのパケットにはルーティングが必要だ。
その絶対原則は変わらない。
で、スイッチはそのルーティングの結果によるパケットの流れを記憶する?
その通り。
でもって、フローの次からのパケットは、スイッチが記憶した情報を元にスイッチングする?
うむ。ちゃんと理解しているぞ、よしよし。
スイッチはルーティングするわけではない、あくまでもルーティング結果を記憶し、それを利用するわけだ。
は〜。なんというか詐欺っぽい?
どこらへんがだ。MLSとは名前の通り、マルチレイヤ(レイヤ2・3・4)でスイッチングする技術なのだよ。そのために、ルータが行ったルーティング結果をキャッシュするわけだな。
いやまぁ、強引というかなんというか。
まぁ、強引といえば確かにそうかもな。スイッチはルーティングできない。だからルーティング結果を記憶させる、という手だからな。これもフローは同じ宛先・送信元のパケットが連続して送信されるという点があるからこそだ。
は〜。確かにバラバラだったら、覚えさせるだけ無駄ですもんね。
つまり団体客の1人目はちゃんと案内するけれど、2人目以降は1人目の後を追わせるみたいな感じですね。
それはなかなか微妙な例えだな。
ともかく、レイヤ3スイッチとの違いがわかったかな? レイヤ3スイッチはあくまでも「ルーティングする」機器なのに対し…。
MLSは、「ルーティングを真似する」技術なんですね。
同じマルチレイヤで動作するスイッチなんですけど、根底は別物ですね。
そういうことだ。
MLSはこの動作原理から「route-once, switch-many」と呼ばれる処理を行うわけだな。
[FigureSW16-04:route-once,switch-many]
るーとわんす。ルータは一度だけ。
すいっちめにー。スイッチは複数。なるほど。
詳細な動作は次回以降で説明するとして、MLSの基本として覚えておきたまえ。
了解です。
■ MLSのコンポーネント
さて、先ほど「MLS対応スイッチ」と言ったが、MLSはすべてのスイッチが行えるわけではない。
必要な機器や、条件がある。
- Catalyst5000シリーズ
- スーパバイザエンジン ソフトウェア リリース 4.1(1)以降
- NFFCII搭載のスーパバイザエンジンIII またはIIIF
- RSFC、またはCiscoハイエンドルータ
- IOS 11.3(2)WAN4(4)以降
- Catalyst6000シリーズ
- スーパバイザエンジン ソフトウェア リリース 5.1CSX以降
- MSFC
- IOS 12.0(1a)WX5(6d)以降
?
まぁ、Catlystの5000/6000シリーズスイッチで、対応したスーパバイザエンジンを積んでいること。
最初にルーティングを行うルートプロセッサとして、RSFC(MSFC)か、外部にCiscoハイエンドルータがあること、ということだ。
は〜。
さて、MLSで使われる用語も覚えておいてもらおう。
以下の3つはこれから頻出するので忘れないよう。
- MLS-SE [MultiLayer Switching - Switching Engine]
- MLS-RP [MultiLayer Switching - Route Processor]
- MLSP [MultiLayer Switching Protocol]
ま、大体わかるよな。
…え、ええ。もちろんですよ、博士。
確実にわかってないのが明白なので、説明しよう。
なんでバレるんだろう?
先ほどの図を使って説明しよう。
[FigureSW16-05:MLSのコンポーネント]
ルータがMLS-RP、スイッチがMLS-SE?
うむ、そしてRPとSE間でMLSに必要な情報を交換するためのプロトコルがMLSPだ。
あぁ、図はわかりやすいように外部ルートプロセッサにしてあるが、RSFCのような内部ルートプロセッサでも同じだからな。
あ、はい。
あとは、正確に言えばMLS-SEはスイッチ、ではなく。
スイッチのスーパバイザエンジンカードにあるNFFCのことを指す。
ははぁ。えぬえふえふしー。
ま、今回はこんなところか。
はい。
しばらくはMLSの話が続くぞ。
了解ッス。
30分間ネットワーキングでした〜♪
- フロー
-
[Flow]
「流れ」の意味。
- フローチャート
-
[FlowChart]
プログラミングで使用されるプログラムの構造や流れを図にしたもの。
- MLS
- [MulitLayer Switching]
- NFFC
-
[NetFlow Feature Card]
ドータカードの1つ。フローのハードウェア処理を行わせるためのカード。
- ハイパーネット君の今日のポイント
-
- サブネット外への通信が多くなるとルータがボトルネックになる可能性がある。
- トラフィックの多くは一連のフローから成り立っている。
- MLSはフローをルーティングをなるべく行わず高速で処理する機能
- MLSではフローの最初のルーティングの結果をキャッシュに記憶する
- それ以後はキャッシュの結果を見て、スイッチングを行う