2019年6月3日月曜日

FreeBSDでQuaggaを動かす その1


正しそうな初期設定

正しそうな初期設定は別記事 (integrated configuration を使わない場合 / integrated configuration を使う場合) にまとめてみた。

経緯

先日参加したIHANet Hackathon@淡路町 & peering day #9で、トンネルを張るところまではできたが、起動した Quagga の zebra に telnet localhost 2601 したところ、以下のようにパスワードが設定されていないというエラーになった。
# telnet localhost 2601
Trying ::1...
Connected to localhost.
Escape character is '^]'.
Vty password is not set.
Connection closed by foreign host.
# 
/usr/local/etc/quagga/zebra.conf には
password zebra03
とパスワードを設定してあったが、これが有効になっていないようだった。

当日は時間切れで諦めてしまったが、後日改めて調査してみた。

調査した環境

FreeBSD 11.2-RELEASE-p10 に pkg install で quagga-1.2.4_4 をインストールした。

原因

/usr/local/etc/quagga/zebra.conf の他に /usr/local/etc/quagga/Quagga.conf があり、それが読まれていたため。

Quagga は当日初めて触ったために全く知識がなかった。そのため適当にググりながら設定を行ったのだが、zebra.conf の他に integrated configuration 用の Quagga.conf を置いてしまっていたのが敗因だった。

ちゃんとソースを追いかけるのが面倒だったので Quagga.conf がある状態とない状態で
# truss /usr/local/sbin/zebra
してシステムコールを追いかけてみたところ、以下のような結果だった。

Quagga.conf がある場合

stat("/usr/local/etc/quagga/Quagga.conf",{ mode=-rw------- inode=1448588,size=234,blksize=32768 }) = 0 (0x0)
Quogga.conf を stat して 0 が返っている。その後は zebra.conf にアクセスしている形跡はなかった。

Quagga.conf がない場合

stat("/usr/local/etc/quagga/Quagga.conf",0x7fffffffe6a0) ERR#2 'No such file or directory'
open("/usr/local/etc/quagga/zebra.conf",O_RDONLY,0666) = 6 (0x6)
Quagga.conf を stat して No such file or directory が返った後に zebra.conf を open している。

以上の挙動から Quagga.conf があると zebra.conf は読まれないという動作をしているようだ。

あとでマニュアルを見たら、ちゃんと書いてあった……。

0 件のコメント:

コメントを投稿