YAMAHA RTX1200でIPoE IPv4 over IPv6を設定する

Pocket

概要

 これまで、自宅に設置したサーバにIPv4接続を設定するためにPPPoE IPv4でRTX1200を設定していました。PPPoEではPPPoEクライアントに対して通常1つのIPアドレス単位で割当がなされるのに対して、IPoEによるIPv4 over IPv6を設定した場合は、1つのIPv4アドレスをを複数クライアントで共有する形となるので、サーバーの提供等には適さないためです。

 しかしながら昨年から続くコロナ禍でのリモートワークの拡大で、PPPoEの終端装置の混雑によりまともな回線品質が担保されない状況になっていました。そこで、既存のPPPoE接続と併用させる形でIPoE IPv6の設定を追加し、IPv4 over IPv6を設定することにしました。サーバ等を設置する領域として新たにvlanを切った上で、別個のvlanに対してのみIPv6接続およびIPv4 over IPv6のトンネリングを適用する設定です。下記はその設定に関する記録です。

IPv4 over IPv6について

 IPoE接続方式はIPv6による接続をサポートしています。しかしながら、世間一般では従来のIPv4でのみ提供されているサービスが数多くあります。これらのサービスの提供を受けるためには、IPoEによる接続方式でIPv4を実現する必要があります。

 IPoE IPv6を通してこれらのIPv4の接続を行う規格を総称して、IPv4 over IPv6といいます。これらのIPv4パケットはIPv6接続によりトンネリングされた通信網を抜けて、事業者側とユーザ側の各終端で自動的に変換されます。

 現在のところ日本国内の各事業者がIPv4 over IPv6を実現するための仕組みは、大まかにmap-e方式とds-lite方式に二分されています。

map-eとds-lite

map-e

 map-e方式は日本国内では日本ネットワークイネイブラー(JPNE)により提供されるIPv4 over IPv6方式です。map-e方式ではユーザ側終端(customer edge)と事業者側リレー(border relay)間をIPoE IPv6回線網によりトンネリングし、その間でIPv4の通信を行います。

 この際にIPv4でのNAPTがユーザ側終端により行われることが特徴です。ユーザ側に割り当てられたIPv6アドレスとをもとに、該当のセッションに割り当てられたIPv4アドレスおよびポート範囲を逆算することが出来ます。

 NAPT変換その他map-eのencapsulationに関する詳細はRFC 7597 – Mapping of Address and Port with Encapsulation (MAP-E)を参照してください。

ds-lite

 map-e方式がユーザ側終端でIPv4 NAPTを行うのに対して、センター側(通信事業者側)でNAPTを行う方式の一つにds-liteがあります。ds-lite方式もmap-e方式同様にIPv6トンネル上にIPv4パケットをcapsulationして流す点では相違ありませんが、事業者側でIPv4アドレス及びポート割当をステートフルに行う特徴があります。

VNE事業者について

 map-eあるいはds-liteの各接続方式のどれを利用可能な環境かは、各IPv6のVirtual Network Enabler事業者の対応により異なります。各事業者がどの接続方式を利用しているかどうかは下記に列挙します。

インターネットマルチフィード株式会社(transix)ds-lite
BBIX株式会社独自方式(IPIP tunneling)
日本ネットワークイネイブラー株式会社map-e
ビッグローブ株式会社map-e
株式会社朝日ネット(v6connect)ds-lite
エヌ・ティ・ティ・コミュニケーションズ株式会社map-e
株式会社ファミリーネット・ジャパン不詳
アルテリア・ネットワークス株式会社ds-lite
楽天モバイル株式会社(提供予定)ds-lite

 ものすごく雑なVNEの特定方法ですが、IPoE IPv6を設定した段階でユーザー側に割り当てられたIPv6アドレスをwhoisすると、現在利用しているISPがどのVNE事業者を利用しているか(ふんわりと)特定することが出来ます。

RTX1200上での設定について

 ここからはYamaha RTX1200を使用して具体的に設定していきます。configの内容は下記のファームウェアのバージョンで設定、動作を確認しています。

RTX1200 Rev.10.01.78 (Wed Nov 13 16:29:42 2019)

 RTX1200を本設定では使用していますが、lanインターフェースが少ないRTX810でも同様な設定がおそらく可能だとは思います。無論、後継機種であるRTX1210, RTX1220やRTX830でも可能です。また、NVR510で同じく設定可能で接続に問題ないことを実機上で確認しました。

vlanの作成

 設定では使用するlanインターフェースのうち、デフォルトのlan1をPPPoE IPv4で、タグ付きvlanのlan1/1をIPoE IPv6 + IPv4 over IPv6で設定していきます。今回はタグvlanで設定していますが、RTX1200およびRTX1210などのRTXシリーズではポートvlan機能も使用できるので、適宜設定は読み替えてください。

 設定ではlan1及びlan1/1にdhcpサービスを提供して、それぞれローカルIPアドレスとして192.168.100.1/24および192.168.101.1/24で割当を行っています。またlan1/1ではvlanタグ101を使用しています。

ip lan1 address 192.168.100.1/24
vlan lan1/1 802.1q vid=101 name=internel
ip lan1/1 address 192.168.101.1/24
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.100.2-192.168.100.191/24
dhcp scope 101 192.168.101.2-192.168.101.191/24

PPPoE IPv4の設定

 特に捻る箇所もありませんが、PPPoE IPv4をlan2インターフェース及びlan1インターフェースに設定していきます。natして一部サーバを提供している都合上、nat descriptor設定が追加されていますが特にサービスを公開する予定がない場合はip pp nat descriptor 1000行は削除してください。

pp select 1
 pp keepalive interval 30 retry-interval=30 count=12
 pp always-on on
 pppoe use lan2
 pppoe auto disconnect off
 pp auth accept pap chap
 pp auth myname プロバイダから提供されたアカウント パスワード
 ppp lcp mru on 1454
 ppp ipcp ipaddress on
 ppp ipcp msext on
 ppp ccp type none
 ip pp nat descriptor 1000
 pp enable 1
dns host lan
dns service fallback on
dns server pp 1

IPoE IPv6の設定

 IPoEを使用してのIPv6の割当について設定を行っていきます。今回はlan1インターフェースにはIPv6アドレスを割り当てずにlan1/1のvlan内でのみIPv6を利用可能なように設定していきます。またIPv6の特性上、各LAN内の端末にはIPv6のグローバルアドレスが割り当てられるため、必要に応じてipv6 filterを設定してください。下記では省略して記述しています。

ipv6 prefix 1 ra-prefix@lan2::/64
ipv6 source address selection rule lifetime
ipv6 lan1/1 address ra-prefix@lan2::1/64
ipv6 lan1/1 prefix change log on
ipv6 lan1/1 rtadv send 1 o_flag=on
ipv6 lan1/1 dhcp service server
ngn type lan2 ntt
dns server dhcp lan2

 ここまでの設定で、lan1インターフェース上ではPPPoEのIPv4にnatさせる接続が、lan1/1のvlanインターフェース上ではIPoE IPv6接続が利用可能になります。

IP over IP Tunnelingの設定

 上記までの設定に加えて、vlanのlan1/1インターフェースでIPv4接続を利用するための設定を行っていきます。

 どのVNE事業者を経由してIPv6接続を利用しているかによって、このipip tunneling設定内容が変わります。自身の環境でどのVNE事業者を利用しているかがわからない場合には、ルータに割り当てられたIPv6アドレスをwhoisすることで簡単に求められます。

> show ipv6 address 

一部抜粋すると

LAN1/1 scope-id 12 [up]
 Received:    524471 packets 46103963 octets
 Transmitted: 0 packet 0 octet

 global     2405:6584:*:*:*:*/64 (lifetime: 604692/2591892)
 link-local fe80::2a0:deff:fe67:1e91/64
 link-local ff02::1/64
 link-local ff02::2/64
 link-local ff02::1:2/64
 link-local ff02::1:ff00:1/64
 link-local ff02::1:ff67:1e91/64

 更に、割り当てられたglobalアドレスをwhoisしていくと

$ whois 2405:6584:*:*:*:*
% [whois.apnic.net]
% Whois data copyright terms    http://www.apnic.net/db/dbcopyright.html

% Information related to '2405:6580::/29'

% Abuse contact for '2405:6580::/29' is 'hostmaster@nic.ad.jp'

inet6num:       2405:6580::/29
netname:        ASAHI-NET-JPNIC-JP-20160518
descr:          Japan Network Information Center
country:        JP
admin-c:        JNIC1-AP
tech-c:         JNIC1-AP
remarks:        Email address for spam or abuse complaints : ap-net@asahi-net.or.jp
remarks:        JPNIC Allocation Block
remarks:        Authoritative information regarding assignments and
remarks:        allocations made from within this block can also be
remarks:        queried at whois.nic.ad.jp. To obtain an English
remarks:        output query whois -h whois.nic.ad.jp x.x.x.x/e
mnt-irt:        IRT-JPNIC-JP
mnt-by:         MAINT-JPNIC
mnt-lower:      MAINT-JPNIC
status:         ALLOCATED PORTABLE
last-modified:  2016-05-18T05:31:09Z
source:         APNIC

 となります。上記の内容から、VNE事業者は株式会社朝日ネットを利用しているので、ds-liteで設定することでASAHI-NETのv6connectのサービスを利用可能であると分かります。

 基本的には、利用しているインターネットプロバイダによって、利用しているVNE事業者はそれぞれ異なります。また同じプロバイダでも契約時期、IPv4 over IPv6の提供開始時期などによってVNE事業者が異なる場合もあるようです。

ds-liteの場合

 新規にtunnelインターフェースの切り出しをtunnel1として行って、ip over ip tunnelingを設定していきます。設定中の各VNE事業者から提供されるAFTRアドレスについては、各事業者によって設定が異なります。また一部設定の場合はドメイン名での指定が出来ない(接続時に名前解決が出来ない)為、IPv6アドレスでの指定を行ってください。

ASAHI-NET v6connectdslite.v6connect.net2001:c28:5:301::11
transixgw.transix.jp2404:8e00::feed:100 or
2404:8e00::feed:101
xpassdgw.xpass.jp2001:f60:0:200::1:1
tunnel select 1
 tunnel encapsulation ipip
 tunnel endpoint address AFTRのアドレス
 ip tunnel mtu 1460
 ip tunnel tcp mss limit auto
 tunnel enable 1

map-eの場合

 時間があれば後ほど追記します。

デフォルトルートの設定

 ここまでの設定ではPPPoE IPv4とipip tunnelingでのIPv4 over IPv6を追加してきましたが、ローカルのIPv4からグローバルにnatする際のデフォルトルートを設定しないことには、外部とのIPv4での接続が出来ません。基本的な考え方としては、原則としてPPPoE IPv4にデフォルトルートを設定した上で、一部ローカルIPv4アドレスを持つ端末のみを IPv4 over IPv6のtunnelを利用するように設定していきます。

 今回はvlanを切ってdhcpを設定する際にアドレス範囲を指定していますので、このアドレス範囲を対象としてip filterを設定し、filterに合致する接続のみtunnelインターフェースに流していきます。ip route default gatewayの記法が紛らわしいですが、filter 100に合致する場合のみtunnel 1がデフォルトルートになります。

ip route default gateway tunnel 1 filter 100 gateway pp 1
ip filter 100 pass 192.168.101.2-192.168.101.191 * * * *

最終的なconfigの抜粋

 以上の設定内容をまとめるとこのようなconfigになります。

ip lan1 address 192.168.100.1/24
vlan lan1/1 802.1q vid=101 name=internel
ip lan1/1 address 192.168.101.1/24
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.100.2-192.168.100.191/24
dhcp scope 101 192.168.101.2-192.168.101.191/24
pp select 1
 pp keepalive interval 30 retry-interval=30 count=12
 pp always-on on
 pppoe use lan2
 pppoe auto disconnect off
 pp auth accept pap chap
 pp auth myname プロバイダから提供されたアカウント パスワード
 ppp lcp mru on 1454
 ppp ipcp ipaddress on
 ppp ipcp msext on
 ppp ccp type none
 ip pp nat descriptor 1000
 pp enable 1
dns host lan
dns service fallback on
dns server pp 1
ipv6 prefix 1 ra-prefix@lan2::/64
ipv6 source address selection rule lifetime
ipv6 lan1/1 address ra-prefix@lan2::1/64
ipv6 lan1/1 prefix change log on
ipv6 lan1/1 rtadv send 1 o_flag=on
ipv6 lan1/1 dhcp service server
ngn type lan2 ntt
dns server dhcp lan2
tunnel select 1
 tunnel encapsulation ipip
 tunnel endpoint address AFTRのアドレス
 ip tunnel mtu 1460
 ip tunnel tcp mss limit auto
 tunnel enable 1

接続の確認

 IPv6のグローバルアドレスが正常に割り当てられているかどうかは、linuxであれば ip addr、windowsであればipconfig等のコマンドから確認できます。割り当てられたIPv4アドレスがどうなっているかは、各lan1またはlan1/1に接続した端末から curl inet-ip.info等で確認してください。

 正常に設定できた場合は、lan1インターフェースに接続した端末からはIPv4のPPPoEで取得したグローバルアドレスが確認でき、lan1/1インターフェースに接続した端末からはIPv4 over IPv6で取得した共有グローバルアドレスが確認できます。またlan1の端末上ではipv4の192.168.100.1/24のアドレスとipv6のリンクローカルアドレスが、lan1/1の端末上ではipv4の192.168.101.1/24のアドレスとipv6のグローバルアドレスが確認できます。

参考にした資料等

DS-Lite(transix)でインターネット接続 : コマンド設定
RFC 7597 – Mapping of Address and Port with Encapsulation (MAP-E)
RFC 6333 – Dual-Stack Lite Broadband Deployments Following IPv4 Exhaustion

1件のコメント

  1. ピンバック:改めてIPv6 DS-Lite IPv4 over IPv6にチャレンジする、、、まとめ | 世の中知らないことだらけ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください