MacOS X で DHCPv6 を使った動的 IPv6アドレスの割り当て
Windows では、Vista 以降、DHCPv6クライアントが内蔵されていて、DHCPv6サーバが存在するネットワークに繋げば、
すぐにアドレスを取得することができるのですが、どうも MacOS X は対応していない様子です。
そこで、ISC の DHCPクライアントを自動起動するようにして、MacOS X でも DHCPv6 を使っちゃいましょう。
※MacOS X もちゃんと ra では IPv6アドレスをもらえるので、ネットワーク内でDHCPv6サーバが動いている特殊な環境人向けの設定ですね ;-)
ISC DHCPのダウンロード
% wget http://ftp.isc.org/isc/dhcp/dhcp-4.2.0.tar.gz
ISC DHCPのコンパイル
% tar xzf dhcp-4.2.0.tar.gz
% cd dhcp-4.2.0
% ./configure
checking for a BSD-compatible install... /usr/bin/install -c
・
・
・
config.status: executing depfiles commands
% make
Making all in bind
・
・
・
make[1]: Nothing to be done for `all-am'.
ISC DHCPのインストール
% sudo make install
自動起動設定
% sudo mkdir /Library/StartupItems/dhclient/
Password:
% sudo cp client/scripts/macos /Library/StartupItems/dhclient/
% sudo -i
# cat > /Library/StartupItems/dhclient/StartupParameters.plist
Description
dhclient
Messages
restart
restarting dhclient
start
Starting dhclient
stop
Stopping dhclient
OrderPreference
Late
Provides
dhclient
Requires
Network
Uses
Network
^D
# cat > /Library/StartupItems/dhclient/dhclient
#!/bin/sh. /etc/rc.common
StartService() {
/usr/local/sbin/dhclient -6 -d -nw en0 -sf /Library/StartupItems/dhclient/macos &
/usr/local/sbin/dhclient -6 -d -nw en1 -sf /Library/StartupItems/dhclient/macos &
}StopService() {
killall dhclient
sleep 2
killall -9 dhclient
}RestartService() {
StopService
StartService
}RunService "$1"
^D
chmod 755 /Library/StartupItems/dhclient/dhclient
スクリプト修正
/Library/StartupItems/dhclient/macos の 133行目、151行目、176行目、186行目、の ifconfig を /sbin/ifconfig にする。あとは再起動すれば、DHCPv6でアドレスが取得できるとおもいます。