カテゴリー
FreeBSD

VIMAGE + JailなマシンをIPv6対応にしよう

うちはIPv4グローバルアドレスが1つしかないので、いくらJailで仮想マシンを一杯作っても、他人に提供できない。よろしい、ならばIPv6だ。「v6! v6! v6!」

前提条件として、既にIPv6が動いているネットワークであることとする。もしまだIPv6が動いていないネットワークだったら、OCN IPv6サービスでも使ってなんとかすること。Jailの親マシンをIPv6対応にする作業は他に優秀な文献がたくさんあるので割愛する。

/usr/local/etc/ezjail/test01(抜粋)

export jail_test01_exec_prestart0="ifconfig epair1 create up"
export jail_test01_exec_prestart1="ifconfig vswitch0 addm epair1a"
export jail_test01_exec_poststart0="ifconfig epair1b vnet test01"
export jail_test01_exec_poststart1="jexec test01 /sbin/ifconfig epair1b 192.168.0.101/24"
export jail_test01_exec_poststart2="jexec test01 /sbin/route add default 192.168.0.1"
export jail_test01_exec_poststart3="jexec test01 /sbin/ifconfig epair1b inet6 accept_rtadv up"
export jail_test01_exec_poststart4="jexec test01 /sbin/rtsol epair1b"
export jail_test01_exec_poststop0="ifconfig epair1a destroy"

poststart3は、インターフェースに対して「IPv6のルータ広告(RA)パケットを受け入れますよ」と指示を出す。これで、このインターフェースはルータからRAパケットが来たら、自分自身のアドレスやらデフォルトルータやらを良きに計らって設定してくれる。
poststart4は、RAパケットを待つコマンド。

で、なんとこれで終わりだ。Jailマシン側の設定は必要ない。
「/usr/local/etc/rc.d/ezjail stop test01」「/usr/local/etc/rc.d/ezjail start test01」と実行すれば、晴れて君のJailマシンもv6世界の一員だ。

Share this...