Feedback Based Routing
Stanfordの人の論文。ACM SIGCOMM CCR 2003.
とりあえず、この論文の内容の覚書。
基本的には、Stanfordで行われているTRIADという新しいインターネット・アーキテクチャの
研究の一環として、"Wide-area Relay Addressing Protocol(WRAP) Packet Delivery"ってのが
あって、そいつのルーティングに関して書いてあるのだが。。。
主張はBGPは以下の理由でだめだ。
1. 一つのルータによる攻撃でやられる。弱い。
2. 将来的にスケーラビリティが心配
3. 収束が遅い。(平均3分)
で、解決策としてstructual informationとdynamic informationをわけたんだそうだ。
structual informationとはリンク・ステートのこと。dynamic informationとは経路情報の
こと。
このルーティングの方式の特徴は、
1. ASレベルのリンク・ステート型経路制御でASNでソースルーティングを行う。
2. 各PeeringがEdge(Link)とみなされ、そのEdgeに付随する属性としては以下の3種類
のルールセットであり、src/dstアドレスのprefix matchを行う。
1. positive rule set: これに引っかからないと、そのdstはその先にない
2. negative rule set: これに引っかかると、そのdstにはこのEdgeを使っていけない
3. traffic enginnering rule set: こいつはAccess Routerがみて、送ったり送らなかったりする。
3. エンドASはボーダーにAccess Router, Transit ASはTransit Routerをおく。
4. エンドAS内部では普通にInterior Routingされて、Access Routerへ。
5. Access Routerはpropagateされた情報を元に、そのdstへのAS Pathを考える。で、
IP headerと上位プロトコルの間にAS Listを入れたshim headerをはさんで送る。
みたいな感じ。で、途中のルータがそれを見て送るわけだが、dst側で受け取るときは
A-B-CみたいなAS Listで来た場合は、C-B-Aという風に帰りの順序を知ることができる
(ようだ。Homepageの情報によると。。。)
で、本質的なアルゴリズムは、
1. structual information propagation
2. route quality monitoring
3. measurement based routing preference
であり、access routerは広告された全てnetwork prefixに対して2つの経路を考える。
そして、それぞれのqualityを調べて、いいほうを使う。
本音は、追記に書くとするか。
こんなもん通すのか、ACMが、という感じだな。
裏のねんごろが見え隠れして、人生を考え直そうかと思わせる。
まず、access routerが他の経路のqualityを知る方法だが、RTTを計り比較する。
方法として、src hostがdstへ送ったSYNと帰りのSYN ACKをsnoopする。
さて、そこで普通疑問になるのは、帰りの経路や入り口が一緒なのかー、
マルチホームしてる場合はどうなるんよ。と思うわけだけど、それに対しては、
"We assume that there is one access router per organization, since here is no reason
for more than one."とある。ここまで言い切られると、ははー、恐れ入りました。
という感じかな。。。
で、このSYN-SYN-ACKでのRTT計測だけど、一度snoopしてそこにあることが分かったら、
定期的にこのAccess RouterがSYNをgenerateして接続しにいってRTTを計るそうだ。
たとえば人気web siteでは、定常的にDistributed SYN attackが起きるんじゃないかと
思わせる。
で、TCPのポートのない場合はどうするかというとICMP Echoで代用するそうだ。しかし、
ICMPがフィルターされている場合は特に想定してないようだ。
AS単位のソースルーティングはそんなに新しいわけでもないけど、ありだと思う。
トラックバック(0)
このブログ記事を参照しているブログ一覧: Feedback Based Routing
このブログ記事に対するトラックバックURL: http://www.imaq.net/cgi-bin/mt/mt-tb.cgi/67

コメントする