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