最終更新:
どのシステムでも安全に運用できるという検証はしておりません、あしからず。
FreeBSDで1枚のNICでも複数のIPアドレスを割り当てることができる。方法は/etc/rc.confに次のような記述をするだけだ。
ifconfig_de0="inet 192.168.0.100 netmask 255.255.255.0"
ifconfig_de0_alias0="inet 192.168.0.101 netmask 255.255.255.255"
ifconfig_de0_alias0
の最後の数字を1つずつ変えて増やしていくことでもっとIPアドレスを割り当てることができる。またネットワークアドレスがオリジナルと同じになる場合は、ネットマスクを255.255.255.255
にしておかなければならない。
・・・と、ここまでならいろいろなサイトでも書かれていることだが。
いかねーよ、俺んトコ!
仮想PCにFreeBSD6.1の時はすんなりOKだったが、それをFreeBSD7.1または7.2にアップデートしたシステムでは全てのアクセスが止まってしまう。何回立ち上げなおしても同じ。しかし次のコマンドを試したところ、設定が反映されて複数IPでアクセスできるようになった。
% ifconfig de0 down % ifconfig de0 up
しかし、これを/usr/local/etc/rc.d/とか/etc/crontabの起動時に登録したとしても・・・たぶん遅いよな。nfsdとかntpdateとかの起動に間に合わないといかんし。
どこかの参考サイトで/etc/rc.d/あたりでifconfig
を書いておけとかいう情報があったので、その辺りのスクリプトを眺めてみる。で。
ifalias_up()
{
_ret=1
alias=0
while : ; do
eval ifconfig_args=\$ifconfig_$1_alias${alias}
if [ -n "${ifconfig_args}" ]; then
ifconfig $1 ${ifconfig_args} alias
ifconfig $1 down
ifconfig $1 up
alias=$((${alias} + 1))
_ret=0
else
break
fi
done
return $_ret
}
この部分のこの2行を追加することで、/etc/rc.confの変更で反映されるようになった。めでたし、めでたし?。
Samba 3.0.23がコンパイルされて動いていたFreeBSDで、Samba 3.3.7をコンパイル&インストールしてみた。しかし共有ライブラリが見つからないとエラーになってしまう。
(執筆中)
そこで次のコマンドを使うと見つけることができるようになる。現在の「ライブラリへのパス」に指定したディレクトリを追加する。
% ldconfig -m /usr/local/samba/lib
起動スクリプトでも組み込んでおける。
start)
ldconfig -m /usr/local/samba/lib
nmbd -D
smbd -D
;;
他にも設定する方法もあるみたいだけど、この方法のほうがsambaを起動させる時だけにライブラリへのパスを設定する感じなので、これはこれでイイかも。