最近巷で流行の兆しが見えてきている、MikroTik社のRouterboardですが、自宅でIPv6を使用したいけど、使用できないという方は、Hurricane Electric IPv6 Tunnel Broker(以下HE.net)というサービスがあります。
ここは無償でIPv6アドレスのTunnelを作り仮想的にIPv6アドレスを払いだしてくれるサービスです。
というわけで、RouterboardでHE.netを利用するコマンドを以下に紹介します。
手順
Hurricane Electric Internet Services - Internet Backbone and Colocation Provider
/interface 6to4 add comment="Hurricane Electric IPv6 Tunnel Broker" \
disabled=no local-address=<ルータ側に割り当てられたIPv6アドレス> \
mtu=1280 name=sit1 remote-address=<he.netの対向のIPv4アドレス>
/ipv6 route add comment="" disabled=no distance=1 dst-address=2000::/3 \
gateway=<Server IPv6 Address:で指定されているIPv6アドレス> scope=30 target-scope=10
/ipv6 address add address=<Client IPv6 Address:で指定されているIPv6アドレス> \
advertise=yes disabled=no eui-64=no interface=sit1
一旦ここでRouterboard自身からping6を実行し、間違いなくIPv6通信ができることを確認します。
[admin@MikroTik] > ping [:resolve ipv6.google.com]
HOST SIZE TTL TIME STATUS
2404:6800:4004:805::1012 56 59 15ms echo reply
2404:6800:4004:805::1012 56 59 8ms echo reply
2404:6800:4004:805::1012 56 59 7ms echo reply
2404:6800:4004:805::1012 56 59 15ms echo reply
2404:6800:4004:805::1012 56 59 9ms echo reply
2404:6800:4004:805::1012 56 59 7ms echo reply
2404:6800:4004:805::1012 56 59 15ms echo reply
sent=7 received=7 packet-loss=0% min-rtt=7ms avg-rtt=10ms max-rtt=15m
あとは、RouterBoard自身のDHCPv6Server機能を利用して、内側のネットワーク内にIPv6を払い出すようにしてやることで、外部にIPv6通信ができるようになると思います。
/ipv6 dhcp-server
add address-pool=he.net disabled=no interface=internal name=kometch.local
/ipv6 pool
add name=he.net prefix=<HE.netで払いだされたIPv6アドレスレンジ>/64 prefix-length=64
/ipv6 address
add address=<Server IPv6 Address:で指定されたIPv6アドレス> comment="default gateway ipv6" interface=internal
add address=<Client IPv6 Address:で指定されたIPv6アドレス> interface=sit1
add distance=1 dst-address=2000::/3 gateway=<HE.netで払いだされたIPv6アドレスレンジ>
/ipv6 firewall filter
add chain=input comment="Router - Allow IPv6 ICMP" protocol=icmpv6
add chain=forward comment="LAN - Accept ICMPv6 " protocol=icmpv6
add chain=input comment="Router - Accept established connections" connection-state=\
established
add chain=input comment="Router - Accept related connections" connection-state=related
add chain=input comment="Router- UDP" protocol=udp
add chain=forward comment="LAN - Accept UDP" protocol=udp
add chain=forward comment="LAN - Accept established Connections" connection-state=\
established
add chain=forward comment="LAN - Accept related connections" connection-state=related
add action=log chain=forward comment="LAN - Log everything else" disabled=yes \
log-prefix="Log IPv6"
add action=drop chain=input comment="Router - Drop invalid connections" \
connection-state=invalid
add action=drop chain=input comment="Router - Drop other traffic"
add action=drop chain=forward comment="LAN - Drop invalid Connections" connection-state=\
invalid
/ipv6 settings
set accept-router-advertisements=yes
後は内側にあるPCからもpingを実行し、外部とのIPv6通信の疎通ができることを確認します。
C:\Users\kometch>ping -6 ipv6.google.com
ipv6.l.google.com [2404:6800:4004:805::1012]に ping を送信しています 32 バイトの
データ:
2404:6800:4004:805::1012 からの応答: 時間 =8ms
2404:6800:4004:805::1012 からの応答: 時間 =9ms
2404:6800:4004:805::1012 からの応答: 時間 =10ms
2404:6800:4004:805::1012 からの応答: 時間 =12ms
2404:6800:4004:805::1012 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 8ms、最大 = 12ms、平均 = 9ms
今回は全てコマンドで実施しましたが、これらの操作は全てWebfigならびにWinBoxを利用したGUIからも行うことが出来ます。
それでは楽しいIPv6ライフを。
ちなみに
Example Configurationとして、トンネルを作成すると対応するパラメータに合わせた設定を出力してくれるのでそれを利用するのもありだと思います。