復路の経路情報も表示するtraceRroute

Download Report

Transcript 復路の経路情報も表示するtraceRroute

復路の経路情報も表示する
traceRroute
ayumi
INSAT
Introduction (1)
• 既存のtraceroute
– インターネットでは経路の対称性が保証されて
いない
– 往路の経路情報しか取得できない
– 復路の経路情報を取得するのが困難である
• 自分で対向ホストからtracerouteする
• オペレーターに対向ホストからの経路情報を送信し
てもらう
片方向回線を含むネットワーク
復路上の
・障害の検知
・問題の切り分け
が困難である。
往路:衛星回線
復路:地上回線
Introduction(2)
• ネットワークの経路情報をより正確に把握し、
より効率的なオペレーションを実現したい。
• 経路の非対称性に対応した双方向の経路
情報を取得できるシステムが必要
目的
• 復路の経路情報も表示するプログラムを設
計・実装する
– プログラミングの知識と経験を積む
– AI3テストベットネットワーク上で実際の運用に役
立てたい
• インターネットの仕組みを理解するきっかけ
– tracerouteのアーキテクチャを理解する
問題点
• 既存のtraceroute –g
– 往路と復路の経路情報を示す手法
• 本来の宛て先ホストを経由ルータとして指定し、自
分自身を宛て先ホストとして指定できる。
– ソースルーティングによって実現している
• セキュリティ上の理由でネットワークのポリシーとし
て、ソースルーティングが許可されていない場合が
多い。
– ソースルーティングに依存した従来の方法で
は、双方向の経路情報を取得できない
解決方法
• traceRroute
– ソースルーティングに依存しない
– 経路の非対称性に対応した双方向の経路情
報を取得する
traceRrouteの設計
• クライアント・サーバモデル
– traceRrouteサーバがサーバからクライアントへ
の復路の経路情報を返すことで、クライアント上
の往路だけでなく復路の経路情報も標準出力に
表示できる
• traceRrouteクライアント
– サーバへの往路の経路情報を保持する
– サーバに復路の経路情報を要求し、取得する
• traceRrouteサーバ
– クライアントへの経路情報を要求に応じて取得し、
クライアントに返す
クライアント・サーバモデル
Result of ②
---------------------------------------------------------------------
Result of ①
---------------------------------------------------------------------------------
②traceroute
socket
socket
①traceroute
A+B = 最終結果
Result of A+B
-----------------------------------------------------------------------------------------------------------------------------------------------------
・Aに①の実行結果を保存する。
・Bに②の実行結果を保存する。
・Serverからの②の実行結果を足す。
・Clientに②の実行結果を送る。
traceRrouteプログラムの流れ
Client側
Server側
1.
-------------------------------------------------- Server実行 (listenしている)
2.
Client実行
3.
Serverにtracerouteする
4.
3の実行結果をAにwriteする
5.
Serverに復路の経路情報を要求する
6.
-------------------------------------------------- 5の要求をacceptする
7.
-------------------------------------------------- Clientにtracerouteする
8.
-------------------------------------------------- 7の実行結果をBにwriteする
9.
-------------------------------------------------- Bの内容をClientに送信(write)する
10. Serverからの実行結果Bをreadする
11. 10でreadしたものをAに足す(writeする)
12. 標準出力に表示する
デモ(traceRroute)
• クライアント
– sfc-cpu.ai3.net
• サーバ
– sakuragaoka.usost.net
評価と今後の課題
• 実装が不十分な部分は今後も実装を継続
する予定である
– 経路情報を取得するために既存のtraceroute
を用いた →独自の実装を行う
• 上述した実装をAI3テストベットネットワー
ク上で実際の運用に役立てていく
自分への評価
• C言語をほぼゼロの状態から始めた
–
–
–
–
–
–
構造体、関数、配列、ポインタ
read/write, open/close
socket()システムコール
system()
httpクライアント
echoサーバ,echoクライアント
• traceRroute
– sizeof(buf)とstrlen(buf)の違い
質疑応答