ラベル OSPF の投稿を表示しています。 すべての投稿を表示
ラベル OSPF の投稿を表示しています。 すべての投稿を表示

2007年2月10日土曜日

[OSPF] 表示 LSA

仮想リンクを有効にし、Quagga を OSPF ルータとして参加させて検証していた。
自作の OSPF のトポロジー図作成ツールのデバッグをしているとき、不思議な現象を見つけた。
サマリー LSA(タイプ 4) で、Link State ID と Advertising Router フィールドは同じものが。
ASBR へのルートがループしてるみたいに見える。
バグ??

OSPF デマンド回線の機能

シスコの Web サイトに回答があった。
表示 LSA なるものだと思う。
ちょっとした驚き。

2007年2月1日木曜日

ospfd (Quagga) のソースコードを読む

OSPF のお勉強中なので、ソースコードを覗いてみる。
ふむ、ふむ。
日本人の方がこのような素晴らしいお仕事をされていることがとても嬉しい。♪
RFC2328 を参照しながら、
探検してます。

$ sudo apt-get install global (ソースコードの探検ツール GNU GLOBAL のインストール)
$ wget 'http://www.quagga.net/download/quagga-0.98.6.tar.gz'
$ tar xvzf quagga-0.98.6.tar.gz
$ cd quagga-0.98.6
$ gtags
$ cd ospfd

まずはヘッダファイルを探検。

$ less ospfd.h (OSPF の定数)
$ less ospf_packet.h (OSPF パケットの構造体)
$ less ospf_lsa.h (LSA の構造体)

main() 関数から
ospf_main.c: main()
1. root で無ければ、処理を終了。
2. ospf_master_init (); をコール。
3. コマンドラインで与えられたオプションを解析
4. struct thread_master *master = om->master; を代入。
5. *_init (); 関数で各種初期化。
6. vty_read_config (config_file, config_default); 関数でコンフィグを読む。
7. daemon (0, 0); デーモンになる。
8. vty_serv_sock (vty_addr, vty_port, OSPF_VTYSH_PATH); 関数をコールし、VTY 用のソケットを準備。
9. thread_call (&thread); を呼び出し、アクティブなスレッドを順番にコールする。