FreeBSD 10.2 with CARP の設定でどはまりをブッこいたメモ

某所の某サービスの構築をするにあたって、FreeBSD/CARPを使った冗長構成を取らなければならなくなったわけだ。

その際に、FreeBSDがMultiUser modeでlogin promptまで行かなくなったので、その記録。

NICの設定に際し、一般にFreeBSDでは、以下のように記述する

ifconfig_xn1="inet 192.0.2.2/24   -rxcsum -txcsum -tso -lro"

ここに、CARPの設定を入れる場合、aliasで設定する

ifconfig_xn1="inet 192.0.2.2/24   -rxcsum -txcsum -tso -lro"
ifconfig_xn1_alias0="inet vhid 1 advbase 1 advskew 100 pass Password-0-0-0 alias 192.0.2.1/32"

見た感じ、これで問題なさそうに見るのだが、実はこの設定を行うと、boot時にlogin promptまでたどり着かないことがある。

なぜそうなるかを追いかけるために /etc/rc.d/netif → /etc/network.subr の順に、そして呼ばれる関数ごとにprintf debugをかけた。 実は最後までは追いかけていないのだが、printf debugの結果

で、ここをexpandするために無限loopしているのではないかと推測される。

さすがに、こんなのわからないわけで…

というわけで、こういうパスワードを入れるのはやめましょう。絶対に。