10Gbpsのイーサネット回線が足りなくなったら、一番簡単な対処法は平行に10Gbpsの回線を増やす方法です。L2のスイッチであればチャネル接続やLAG。L3であればマルチパス等呼ばれる接続手法です。

しかし、増やした回線に都合よくトラフィックが分散するとは限りません。パケットネットワークでは経路によって到達順序が入れ替わってしまう可能性があります。受け取る側の実装では順序が入れ替わったパケットは破棄され、せっかく届けても到達していないと判断されます。そのために、一緒の”フロー”。端末側で同じ処理と認識しているパケットは同じ回線に流す必要があります。複数の経路があるからと言って順番、もしくはランダムに異なる回線には分散できないのです。

このフローの認識方法には色々あります。L2スイッチでは基本的にはイーサネットアドレス(MACアドレス)しか参照しませんので同じ目的MACアドレスのパケットであれば、いくら使える回線が複数あってもそのうちの一つに常に流します。機種によっては偏りも減らすために送信元MACアドレスとの組み合わせで流す回線を判断することにより偏りを減らす工夫がされています。

L3デバイスではIPアドレスを参照するのでIPネットワークアドレス単位で使う回線を選びます。つまり、特定のネットワークに対するトラフィックが多ければ複数回線を用意してもそのうちの一本に集中しパケットの廃棄が発生するのです。

この話をするときによく聞かれるのは、回線の使用率をみて流す回線を判断すれば良いのではないかと言う事です。パケットをどの経路で流すかを判断する経路管理では古くから提示されてきた命題です。しかし、現時点では回線使用率によって自動的に経路を変更するシステムは運用されていません。その理由は、回線使用率は実にダイナミックに変化するからです。snmpなどの管理システムで所得する回線使用率は一般的には5分間の平均値です。この値でプロットすると、時間によって緩やかに増えたり減ったりのグラフになりますがもっと細かい時間間隔で計測するとギザギザです。

ですので、どの時間間隔で回線の使用率を経路の判断に適応するのか、また経路を変更したことにより当然回線使用率が変化しますので状態がフラップする可能性が高くこれをどう制御するのか汎用的な答えはありません。結果として、完全自動ではなくオペレータが都度判断して運用しているのです。

このように、一つの”フロー”のトラフィックが増えると回線の並列化は偏りが大きくなり10Gを10本並べても100G一本に比べてパケット廃棄率を下げることができなくなります。20本に増やしても効果はないでしょう。やはりより高速な回線への導入が一番の対策なのです。

マルチレーン

実は、100GBASE-LR4の回線は4本のレーンを束ねたものです。これをマルチレーンと呼びます。先の文章で回線の並列化には問題があると言いながら結局平行化回線なのであれば同じではないかとの指摘があるかもしれません。しかし、マルチレーンは単純に回線容量を増やすことができます。

大きな違いはレーン毎の到達時間の差が無いことを前提にしているからです。この区間では追い抜きは発生しません。ですので、パケットのフローに関係なく回線の分散処理が行えます。マルチレーンにより回線容量の確保の手法なPCの内部バスであるPCIバスでも多用され、現在のコンピュータシステムはいたるところでマルチレーンによる分散の集約を繰り返しているのです。

(2017/06/23 ver 1.2)


コメント欄を読み込み中