jail環境をpfのNATの下で動かす。
- FreeBSD 8.2 Release
- re0(192.168.100.220): 外につながるI/F
- re0 alias(192.168.100.221): jail用alias
- lo0 alias(192.168.200.1): jail用alias
EUCJPのファイル名を持つエリア(更新あり)をjail内のsambaを使ってUTF-8に出力し、それをホスト環境側でmount_smbfsでUTF-8のエリアとしてマウントし、さらにそれをFTPやsambaでUTF-8によるアクセスが可能な形にしたいと思っています。
はじめ、jail内samba環境のアドレスをre0 aliasの192.168.100.221/24として動かしていました。しかし、これだとWindowsからホスト環境のNetBIOS名にpingを打ったとき、221で返ってきてしまうことがあります。困った。ちなみに/32とすると、mount_smbfsを受け付けてくれなくなります。困った。
そこで、jail内samba環境をre0のaliasからlo0のaliasに変更して、外部に公開されるのはホスト環境のsambaだけに絞ってみようと思いました。
しかし、これではjail内samba環境から外部へのアクセス(portsのアップデートなど)ができないので、ちと不便です。そこで、lo0経由でpfを使ったNATをすることにより、VMwareの仮想NATインターフェースのような振る舞いをlo0 aliasで実現させてみたいというところです。
まず、jail環境用のサブネットとして192.168.200.0/24を使うことにします。/etc/rc.confにてlo0のaliasを作っておきます。
# vi /etc/rc.conf ifconfig_lo0_alias0="inet 192.168.200.1 netmask 255.255.255.0" gateway_enable="YES"
pf.confを編集し、外部インターフェースがre0となるNAT用の設定を書きます。
# vi /etc/pf.conf ext_if="re0" jails_subnet="192.168.200.0/24" nat on $ext_if from $jails_subnet to ! $jails_subnet -> ($ext_if)
rc.confでpfを有効にします。
# vi /etc/rc.conf pf_enable=YES" pf_rules="/etc/pf.conf" # vi /boot/loader.conf pf_load="YES"