IIJのブロードバンドサービス、IIJmioひかりや、IIJmio FiberAccess/NFでは、IPoEによるIPv6接続、およびDS-Lite(RFC6333)によるIPv4接続がご利用頂けます。
ここではDS-Liteに対応したブロードバンドルーターを使わずに、MacOS Xがインストールされたパソコン(以下、Mac)でDS-Liteを利用する方法を紹介します。
本記事では設定例を紹介いたしますが、この設定で確実に動作することを保証するものではない点、あらかじめご了承ください。MacOS Xでの設定方法についてのお問い合わせにはお答えできません。
事前準備
IIJmioひかりのHGW(ホームゲートウェイ)・ONUに、Macを接続します。IPv6でインターネットに接続できることを確認してください。
接続スクリプト
以下のスクリプトを適当な場所に保存します。
#!/bin/sh
# Number array of en interfaces.
EN_NUM="0 1 2 3"
# AFTR name
AFTR_FQDN="gw.transix.jp"
usage() {
echo "Usage: ${COM} [on|off]"
exit 1
}
enable() {
echo "Setting up DS-Lite Tunnel."
echo "Ethernet Interface: ${IF}"
echo "MY_GUA: ${MY_GUA}"
echo "AFTR_GUA: ${AFTR_GUA}"
sudo ifconfig gif0 inet6 tunnel ${MY_GUA} ${AFTR_GUA}
sudo ifconfig gif0 mtu 1500
sudo ifconfig gif0 inet 192.0.0.2/30 192.0.0.1
sudo route delete -inet default
sudo route add -inet default 192.0.0.1
sudo sysctl net.inet.ip.forwarding=1
sudo sysctl net.inet6.ip6.gifhlim=64
# sudo sysctl net.inet6.ip6.forwarding=1
}
disable() {
echo "Tearing down DS-Lite Tunnel."
sudo sysctl net.inet.ip.forwarding=0
sudo sysctl net.inet6.ip6.gifhlim=0
# sudo sysctl net.inet6.ip6.forwarding=0
sudo route delete -inet default -interface gif0
sudo ifconfig gif0 delete
sudo ifconfig gif0 -tunnel
sudo ifconfig gif0 mtu 1280
echo "Resetting ${IF} for DHCP refreshing."
sudo ifconfig ${IF} down
sleep 2
sudo ifconfig ${IF} up
}
get_my_gua() {
for i in ${EN_NUM}
do
MY_GUA=`ifconfig en${i} inet6| grep 'inet6 2409:[0-9a-f:]*ff:fe[0-9a-f:]*' | sed 's/\%.*//' | cut -d ' ' -f 2`
if [ "${MY_GUA}" ]; then
IF="en${i}"
return
fi
done
}
COM=`basename $0`
AFTR_GUA=`host ${AFTR_FQDN} | grep '2404:8e0' | sed -e '1!d' -e 's/.* address //'`
get_my_gua
if [ ! "${MY_GUA}" -o ! "${AFTR_GUA}" ]; then
echo "Error: My Global Unicast Address and/or AFTR IPv6 Address not found."
echo "MY_GUA: ${MY_GUA}"
echo "AFTR_GUA: ${AFTR_GUA}"
exit 1
fi
shopt -s nocasematch
case $1 in
on)
enable
exit 0
;;
off)
disable
exit 0
;;
*)
usage
esac
接続・切断
以下のコマンドを実行するとIPIP6トンネルが接続され、DS-LiteでIPv4が利用可能になります。
# dslite-ctl.sh on
以下のコマンドを実行するとIPIP6トンネルが切断されます。
# dslite-ctl.sh off