【RouterBoard】transix(DS-Lite)で常時接続の設定方法【2020/09/24更新】

以前の手順では、IPv6アドレスが変わった際、手作業で設定が必要だったため、記事を更新しました。

検証を加えたところ以下の手順で問題なく常時接続する事ができました。(自身のIPv6アドレスの確認・設定を削除)

ここでは、Mikrotikルータで、NTTフレッツ光の「インターネット(IPv6 IPoE)接続」に対応した、「transix(トランジックス)」サービス(DS-Lite方式)の設定方法をご紹介します。
※transix(トランジックス)はインターネットマルチフィード株式会社が提供しているサービスです。
※接続にはtransix(トランジックス)サービス提供事業者と契約が必要です。

①IPv6の有効化
Mikrotikルータは標準で、IPv6が有効になっていませんので、Sytem – Packagesより「ipv6」を開き、有効(Enabled)にします。
有効にしたら、ルータを再起動します。

②LAN内のIPv6の有効化
①のIPv6有効化だけでは、LAN内のIPv6接続が有効になりませんので、有効化します。

/ipv6 settings
set accept-redirects=no accept-router-advertisements=yes

③DS-Liteへ接続するための「ipipv6」設定
以下のコマンドで、ipipv6接続の設定を追加します。

/interface ipipv6 add dscp=0 !keepalive  name=ipipv6-dslite remote-address=2404:8e00::feed:100(以下の接続先参照)

NTT東日本エリア
2404:8e00::feed:100
2404:8e00::feed:101

NTT西日本エリア
2404:8e01::feed:100
2404:8e01::feed:101

④インターネットのルート設定
以下のコマンドで、DS-Liteからインターネットへ出ていくように、ルートの設定を行います。

/ip route
add distance=1 gateway=ipipv6-dslite

⑤スクリプトの追加
以下のコマンドで自動接続プログラムを追加します。(本スクリプトはインターネット接続を監視して、切断された場合にインターフェースの無効・接続先の変更をしています。PPPoE接続も設定している場合は切断にご注意ください。)

/system script
add dont-require-permissions=no name=dslite-check owner=adminhot policy=\ ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ global dsliteIP1 \"2404:8e00::feed:100\";\r\ \n:global dsliteIP2 \"2404:8e00::feed:101\";\r\ \n\r\ \n:if ([/ping 8.8.8.8 count=5 interface=ipipv6-dslite] = 0) do={ \r\ \n\t:log warning \"IPv4 Down\";\r\ \n\t:if ([/ping \$dsliteIP1 count=5] = 0) do={\r\ \n\t\t:log warning \"IPv6 Down\";\r\ \n\t\t/interface set [find name=\"ether1\"] disabled=yes;\r\ \n\t\t:delay 10;\r\ \n\t\t/interface set [find name=\"ether1\"] disabled=no;\r\ \n\t\t:delay 20;\r\ \n\t\t:if ([/ping \$dsliteIP1 count=5] = 0) do={\r\ \n\t\t\t:log warning \"IPv6 NG\";\r\ \n\t\t}\r\ \n\t} else={\r\ \n\t\t:local remoteIP [/interface ipipv6 get [find name=\"ipipv6-dslite\"\ ] remote-address];\r\ \n\t\t:if (\$remoteIP = \$dsliteIP1 ) do={\r\ \n\t\t\t/interface ipipv6 set [find name=\"ipipv6-dslite\"] remote-addres\ s=\$dsliteIP2;\r\ \n\t\t} else={\r\ \n\t\t\t/interface ipipv6 set [find name=\"ipipv6-dslite\"] remote-addres\ s=\$dsliteIP1;\r\ \n\t\t}\r\ \n\t\t:if ([/ping 8.8.8.8 count=5 interface=ipipv6-dslite] = 0) do={ \r\ \n\t\t\t:log warning \"IPv4 NG\";\r\ \n\t\t\t/system scheduler set [find name=\"dslite-check\"] interval=5m\r\ \n\t\t} else={\r\ \n\t\t\t:log warning \"IPv4 OK\";\r\ \n\t\t}\r\ \n\r\ \n\r\ \n\t}\r\ \n} else={\r\ \n\t:local intervelM [/system scheduler get [find name=\"dslite-check\"] \ interval];\r\ \n\t:if (\$intervelM = \"00:05:00\" ) do={\r\ \n\t\t/system scheduler set [find name=\"dslite-check\"] interval=1m\r\ \n\t}\r\ \n}"

プログラム先頭のdsliteIP1,dsliteIP2はNTT東日本とNTT西日本で異なります。③の通り変更願います。

⑥スケジュールの追加

以下のコマンドでスクリプトの自動実行を行います。

/system scheduler
add interval=1m name=dslite-check on-event=dslite-check policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
    start-time=startup

■その他
・LANとフレッツ光が接続されているポート(ここではether1)は同一ブリッジに存在しないとIPv6インターネット接続は出来ません。
・本設定はファイヤーウォールについて、設定をしておりませんので、必ず設定をお願いします。
・本プログラムの設定により、発生し得る不具合について一切の責任を負いかねますので、自己責任にてお願いします。

Microtikルータのお取り扱いをしております。ライフシードまでお気軽にご連絡ください。