VLAN間ルーティングの高速化
目次
フロー
VLAN間ルーティングは、これまでに見てきたとおり外部に接続したルータ、もしくはレイヤ3スイッチの内部ルータを経由することになります。しかし、すべてのデータがルータを経由する必要がないケースがあります。
たとえば、FTP(File Transfer Protocol)で何Mバイトという大きなサイズのファイル転送を行うと、MTUの制限からIPによってデータは複数に分割され、送信先で組み立てられます。この複数に分割されたデータは、「すべて同じ送信先」になっているはずです。同じ送信先とは、つまり、同じ送信先IPアドレス、同じ送信先ポート番号が指定されていることを指しています。もちろん、送信元IPアドレス、送信元ポート番号も同じはずです。これら一連のデータの流れを「フロー」と呼びます。
フローのひとつめのデータをルーティングすると、続く2つ目以降のデータも同じようにルーティングされるはずです。ここで、フローの2つ目以降のデータをわざわざルータによって処理をさせないようにすると、さらに高速にVLAN間ルーティングを行うことができるようになります。
VLAN間ルーティングの高速化の仕組み
高速にVLAN間ルーティングについて、レイヤ3スイッチを利用したケースを考えていきます。
まず、フローのひとつ目のデータは、スイッチから内部ルータに送られてルーティングされ、再びスイッチから目的のポートに転送します。ここでひとつ目のデータをルーティングした結果をスイッチにキャッシュしておきます。キャッシュしておく情報としては、
- 送信先IPアドレス
- 送信元IPアドレス
- 送信先ポート番号
- 送信元ポート番号
- 入力ポート番号
- 出力ポート番号
- あて先MACアドレス
などです。
フローの2つ目以降のデータがスイッチに届くと、先ほどキャッシュした情報を参照すると「出力ポート番号」の情報からどのポートに転送すればいいのかがわかります。
そこで、わざわざ内部ルータに送らずに、スイッチのキャッシュ情報からすぐにあて先のポートに転送することができるようになります。このとき、まるでルータを経由してルーティングされたようにあて先MACアドレスと送信元MACアドレス、IPヘッダのTTLやチェックサムの情報が書き換えられています。
スイッチにルーティングした結果をキャッシュすることによって、ワイヤスピードで送られてきたデータを取りこぼすことなく、ルーティングすることも可能になります。
ただし、このようなVLAN間ルーティングを高速化させる手法はベンダ独自の技術によって実現されています。また、機能の名称もベンダごとに異なっています。たとえば、シスコのCatalystスイッチでは、このような機能を「マルチレイヤスイッチング」と呼んでいます。また、外部ルータでも、機種によってはこのような高速VLAN間ルーティングをサポートしているものも存在します。