さくらさんに ntpd の脆弱性放置してんじゃねーよ、と怒られたので 9.2-STABLE に更新。何度やってもリモートのカーネル入れ替えはドキドキだ!
— Kiyono, Goro (@goro1080) February 13, 2014
そうか、 FreeBSD 9.2-STABLE になっても 6rd はまだ組み込まれてないのか…。そういえばこのパッチを当てるのが面倒だったから 9-STABLE で放置してたんだったな(←最悪だ
— Kiyono, Goro (@goro1080) February 13, 2014
さくらの VPS で動かしてた FreeBSD 9-STABLE を FreeBSD 9.2-STABLE(r261797) に上げたら 6rd が動かなくなってて、それを直すのに若干苦戦したのでメモ。
6rd 使うのにパッチ必要だったんだっけー、と思って http://people.allbsd.org/~hrs/FreeBSD/stf_6rd_20100923-1.diffをあてようとしたら結構リジェクトされました。
でググったところ、同じことに悩んでなんとかした FreeBSD 9.2 で 6rd を使うって記事をハッケソ。感謝しつつ喜び勇んでパッチを落として当てたら綺麗にあたったので安心して make したら
clang -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I. -I@ -I@/contrib/altq -fno-common -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -mno-aes -mno-avx -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -Qunused-arguments -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -Wno-error-tautological-compare -Wno-error-empty-body -Wno-error-parentheses-equality -c /usr/src/sys/modules/if_stf/../../net/if_stf.c /usr/src/sys/modules/if_stf/../../net/if_stf.c:987:1: error: function 'stf_is_up' is not needed and will not be emitted [-Werror,-Wunneeded-internal-declaration] stf_is_up(struct ifnet *ifp) ^ 1 error generated. *** [if_stf.o] Error code 1 Stop in /usr/src/sys/modules/if_stf.
と…。 stf_is_up が使われてないから使うか消すかしろよってことみたいですね。厳しいな clang…
stf_is_up 周りをごっそり削ったら make 出来て、ちゃんと IPv6 で通信できるようになったのでこれでいいみたいです。パッチにしておいたので必要な人はどーぞ。
つーかさくらさんは設定方法を更新しておいてくださいよ…。