Jails on FreeBSD 6

FreeBSD6での大量jail環境構築中。

大量なので、システムディレクトリは全部 unionfs -b でやろうとしたのだ が、あれれ、FreeBSD 6って、unionfsがまた不安定でやんの。unionfsの ディレクトリにたいしてrsync書き込みすると落ちる。lockまわりか ()。

てことで、nullfs に変更。システムディレクトリをroマウント、/varだけ rwマウント。書き込みの起きるパーティションは全部 /var ということで手を打っ た。そんでもって50個のjailを作って50個同時にmakeをさせてみた。多少反応が 鈍くなる程度。よろしい。昔は jexec がなかったから 同時に大量のジョブを流し込むのが面倒だったような記憶が。

さてさて現状では50個のjailに50個のLANアドレスを付けている。 プライベートアドレスだからIPv4としてはぜいたくな/24をつけているのだが、 さすがに50個も消費するともったいない。てことで、loopback インタフェース で頑張る。

% sudo -H zsh
# ifconfig lo1 create
# for i in {100..149}; do
  ifconfig lo1 alias 192.168.1.$i netmask 0xffffffff
  done

てな感じでlo1にIP aliasを付けまくって、それらに対してjailを起動する。

外から来たSSHリクエストにだけこたえるようにするにはipfwでfwdを指定す る。たとえば、10000+n 番ポートに来たリクエストを 192.168.1.(100+n) の22番ポートに振るには

% sudo -H zsh
# for i in {0..49}; do
  ipfw add 30000 fwd 192.168.1.$((100+n)):22 from any to me $((10000+n))
  done

という感じ。ついでに、帰りパケットが外に出て行くために親環境の ほうで、natdをあげておかないといけないのでちうい。


後日otsuneさんより FreeBSD unionfsの改善提案というページがあることを教えて いただいた。


叱咤激励感想ツッコミはゲストブック

Generated with mkdiary.rb
yuuji@example.org
Fingerprint16 = FF F9 FF CC E0 FE 5C F7 19 97 28 24 EC 5D 39 BA
HIROSE Yuuji - ASTROLOGY / BIKE / EPO / GUEST BOOK / YaTeX [Tweet]