v6プラス「固定IPサービス」をRouterboardで設定してみた。

この記事は約8分で読めます。
株式会社JPIX
JPIXは日本初の商用IXとして1997年11月にIXサービスを開始し、ISP事業者、CATV事業者、さらにコンテンツ事業者と国内外含む最大級の顧客数を持ち中立的な運営を行うIXプロバイダーであり、日本のインターネットの心臓部として重要な役割を担ってきました。またVNE(Virtual Networ...

2019年5月8日:訂正

v6プラスの固定IPサービスの場合、MAP-Eにより通信しているわけではないため、件名より、MAP-Eを削除いたしました。お詫びして訂正いたします。

2019年5月8日:追記

MAP-E自体を設定できるわけではありません。v6プラスの固定IPサービスの場合、HGWからDHCPv6を払い出し、それを受けてIPv4 over IPv6トンネルを張ることでIPv4を、IPv6はネイティブでの通信を実現しています。言葉足らずで申し訳ありません。


最近はISPが提供するNTTフレッツを使用したIPv4 PPPoEなサービスでは、特定の時間での速度の低下がよく聞かれますが、それを回避する手段として、IPv6な回線にオフロードする手段が取り上げられるようになりました。

IIJなどが提供するDS-liteや、JPNEが提供するMAP-E(v6プラス)などがあります。

DS-liteなどはIPv4 over IPv6トンネルが設定できるルータであれば使用できるようで、結構YAMAHA RTXやNEC IXなどの設定が散見されます。

一方でMAP-E(v6プラス)ですが、サービス提供方法が特殊なせいで、設定できるルータが限定されています。ひかり電話を使用していればHGWがあるのでどれでも使用できますが、余計なランニングコストがかかってしまいます。

ですが、なんやら特定の条件?でv6プラスについては、固定IPサービスが使用できるようです。そして、この場合であれば、IPv4 over IPv6トンネルが設定できるルータであれば使用できるのです。

一番下に追記アリ(2017-11-12):

全体的に設定見直し(2021/01/30)

最初に

まぁ、すでにRouterboardを使用してIPv4 over IPv6トンネルを設定した方法での手順については、公開されている方々がいらっしゃいます。

https://hr-sano.net/blog/2017/10/17/how-to-configure-ipv6-ipoe-ds-lite-in-routerboard/
こちらの方々はIIJのDS-liteの場合です。筆者の場合はv6プラスを使用した環境で設定できたので、備忘録として残しておこうと思います。

といっても、IPv4 over IPv6を使用していることには代わりはないので、とくに目新しいことはありません。

上で上げている方々は基本的にGUI(wegfig)での設定のようなので、今回はCLIで設定をした場合にしようかと思います。

ちなみに筆者の環境は、【ひかり電話を契約している場合:DHCPv6-PD】なので、HGWを使用していない場合は若干違う可能性があります。

設定方法

1. IPIPv6トンネルを設定するインターフェースの設定

/ipv6 dhcp-client
add add-default-route=yes interface=<ONUと接続しているインターフェース> pool-name=<適当に> request=prefix

2. IPIPv6トンネルインターフェースの受け側の設定

/ipv6 address
add address=<プロバイダから払い出されるネットワークのマスクアドレス> comment="default gateway ipv6" from-pool=<1. で設定したpool名> \
interface=<ONUに接続しているインターフェース>

3. BRとのIPIPv6トンネルの接続のためのIPv6アドレス設定

/interface ipipv6
add clamp-tcp-mss=yes comment=v6_plus local-address=<2. で割り振られたIPアドレス> mtu=\
    1460 name=ipipv6-v6plus remote-address=<プロバイダから通知されたBRのアドレス>

4. IPIPv6トンネルへ透過させるIPv4アドレス設定

/ip address
add address=<プロバイダから通知された固定IPアドレス> interface=ipipv6-v6plus

5. LAN側インターフェース設定

/ipv6 address
add address=::1 comment="default gateway ipv6" from-pool=<1. で設定したpool名> interface=bridge1

6. NAT設定

/ip firewall nat 
add action=masquerade chain=srcnat comment="NAT ipipv6" out-interface=ipipv6-tunnel1 
/ip firewall mangle 
add action=change-mss chain=forward comment="Clamp MSS to PMTU" new-mss=clamp-to-pmtu passthrough=yes \ 
protocol=tcp tcp-flags=syn
/ipv6 firewall mangle 
add action=change-mss chain=forward comment="Clamp MSS to PMTU" new-mss=clamp-to-pmtu passthrough=yes \ 
protocol=tcp tcp-flags=syn

7. DHCP設定

/ip dhcp-server
add address-pool=dhcp_pool1 disabled=no interface=bridge1 name=dhcp1
/ip dhcp-server network
add address=192.168.88.0/24 gateway=192.168.88.1

8. 経路設定

/ip route
add check-gateway=ping distance=1 gateway=ipipv6-tunnel1
/ipv6 route
add dst-address=::/0 gateway=ether1 distance=1

check-gatewayを有効にすると、IPIPv6トンネルがLinkupしないので注意。

9. DNS設定

/ip dns
set allow-remote-requests=yes cache-size=50000KiB max-concurrent-queries=200 \
    max-concurrent-tcp-sessions=40 servers=208.67.222.222,208.67.220.220,2620:0:ccc::2,2620:0:ccd::2

上記に記載した設定については、あくまで最低限のものになります。

見てわかりますように、/ip firewall filter/ipv6 firewall filterの設定がありません。基本的にはIPv4についてはPPPoEで接続していたときの設定が使用できると思います。ただし、in-interfaceなどを使用している場合は、all pppなどを使用していないことを確認してください。今回の場合はPPPoEなどでの設定ではないので、all pppなどを使用していると、そのルールは使用されません。

IPv6については、特にベーシックなものから変更や特別に追記するようなルールは無いはずです。(筆者のほうで記憶違いがありましたらご指摘ください。)

筆者の場合は、通常のIPv4 PPPoE → IPv4 PPPoE + IPoE → v6プラス →v6プラス固定IPサービス と、どんどんとネットワーク環境を切り替えてきたため設定を昔から引き継いでおり、秘伝のタレと化していたことがちょっとハマりどころでした。というのも、/ip firewall natmangleに設定していたパラメータが悪さをしており、パケットがLANからWANへ飛ぶものの、replyが返ってこないという状況でした。(これで3週間ほど悩んでおりました。)

これでPingやtracerouteなどを使用していただくと、外への通信が可能になるかと思います。

確認

以下のWebサイトなどを使用していただくと、IPv6のISPがJPNEになっていることを確認できるかと思います。

IPv6 test - IPv6/4 connectivity and speed test
IPv6-test.com is a free service that checks your IPv6 and IPv4 connectivity and speed. Diagnose connection problems, discover which address(es) you ar...

ということで、RouterboardもDS-liteおよびv6プラス固定IPサービスに(非公式ながら)対応していますよ、という内容になります。(まぁRFCに規定されているの設定はできるはずです)

ここの内容間違っているよ、や、ここがよく分からない、などありましたら、コメントやTwitterなどでご連絡いただければ、なるべくご回答するようにいたします。

参考スループット

  • CCR1009-8G-1S-1S+
  • RouterOS v6.48beta40
  • v4 filter 84個
  • v6 filter 27個

CCR1009初期型であること、計測した時間が混雑する時間であることから低いかなと思います。CCR1009から見るとCPU使用率については100%で張り付くようなことになっているものはありませんでした。また、計測する時間帯については、今度朝一番などに計測してみようと思います。

その他

公式で対応しているよ、というメーカ様の設定Webサイトは以下になります。

タイトルとURLをコピーしました