別の記事「YAMAHA RTX1300 でJPNE v6プラスのMAP-Eと固定IPv4アドレスを併用する」にMAP-E版を掲載しました。
ヤマハの家庭向けVPNルーターであるRTXシリーズに10ギガビットに対応したRTX1300が登場し、フレッツ 光クロスをこれまで通りの構成で活用できるようになりました。
この記事では、フレッツ光 クロスをRTX1300で収容し、IPv6とIPv4の通信、およびL2TP/IPsecを利用した外部からのリモートアクセスVPNを利用する設定を紹介します。
RTX1300とフレッツ 光クロスを利用していますが、RTX1210やフレッツ 光ネクストでも同様に利用可能と思われます。
まえおき
外から自宅のネットワークにVPN接続をするためには固定でなくていいのでグローバルIPv4アドレスがルーターに付いている必要があります。
これまではフレッツ 光ネクストを利用しており、プロバイダにはIIJのFiberAccess/NFを利用していたため、VPN接続のためのグローバルIPアドレスはIPv4 PPPoEで割り当てられるグローバルIPを利用していました。
しかしながら、IIJのFiberAccess/NFはフレッツ 光クロスには対応しておらず、プロバイダを変更することになります。
PPPoE対応プロバイダ
2023年3月現在のフレッツ 光クロスの東日本におけるPPPoE対応プロバイダは以下の通りです。
これまで通りIIJを利用しようと思うと IIJ FiberAccess/Fサービス になりますが、高くて躊躇しました。
いつもJANOGの展示ブースがちかいGLBBさんもやっていますが、料金がわかりませんでした。
ということで、PPPoEを利用するのはあきらめて、IPoEのみに対応したプロバイダから選んでいきます。
IPoE対応プロバイダ
2023年3月現在の対応プロバイダは以下の通りでした。
ここで、私が欲しい要件は次のとおりです。
- MAP-EではなくDS-Lite方式のIPv4 over IPv6サービスを提供していること (好みの問題)
- 固定IPv4が提供されていること
この条件を満たし、価格が高くないプロバイダということで、インターリンクのZOOT NATIVE (IPv4固定IP1個) を利用することにしました。
- IPv6はIPoEでそのままインターネットに出ていく (transix経由)
- 割り当てられて固定IPv4アドレスはIPIPトンネル (IPv4 over IPv6) でトンネル終端装置からインターネットに出ていく
また、ここには書かれていませんが、固定IPv4アドレスを使う場合にも、これまで通りの transix DS-Lite も利用できます。
ZOOT NATIVEでは転送料制限があり、一定量以上の通信を行った場合二週間に渡って100Mbpsの制限がかけられます。
目安は1日あたり50GB以下だそうです。
(2023年4月時点)
今回やること
改めて本記事で紹介する内容を以下に整理します。
- フレッツ 光クロスのONUはLAN3、端末はLAN1に接続されていることとする
- ルーターのIPアドレスは192.168.100.1/24とする
- RTX1300でフレッツ光 クロスを収容し、ZOOT NATIVEの固定IPv4を利用する
- 外からのL2TP/IPsec VPNの終端には割り当てられた固定IPv4アドレスを利用する
- 宅内からのインターネット接続は固定IPv4アドレスを利用せずにtransix DS-Liteを利用する
この構成を実現するためにRTXに設定することは以下の通りです。
- IPv6のプレフィックスをフレッツからDHCPv6で受け取りLAN1で使えるようにする
- フレッツからは
/56
のプレフィックスが割り当てられるため、そのうちの/64
を一つ使う
- フレッツからは
- tunnel1 にDS-Liteの設定を行う
- tunnel2 に固定IPv4アドレスの設定を行う
- 合わせてIPv6アドレスをインターリンクに通知するためのLuaスクリプトも設置する
- IPv4ルーティングテーブルの設定
- 固定IPv4を発信元とするパケットはtunnel2、それ以外はtunnel1をデフォルトゲートウェイとする
- L2TP/IPsecの設定を行う
設定を行う
IPv6アドレスの設定
LAN3でDHCPv6を受け取り、宅内の端末で使うIPv6アドレスとしてLAN1には dhcp-prefix@lan3::1:0:0:0:1/64
を割り当て、LAN3には固定IPv4アドレスのIPIPトンネル終端用として dhcp-prefix@lan3::feed/64
を割り当てます。
LAN3に割り当てるIPv6アドレスはインターリンクからの開通メールに記載されている「インターフェースID」である必要があります。
Subject: ZOOT NATIVE IPv4固定IP1個サービス 登録完了のご案内
(省略)
【インターフェースID】 ::feed (0000:0000:0000:feed)
(省略)
ngn type lan3 ntt
ipv6 route default gateway dhcp lan3
ipv6 lan3 address dhcp-prefix@lan3::feed/64
ipv6 lan3 dhcp service client
dns server dhcp lan3
ipv6 prefix 1 dhcp-prefix@lan3::1:0:0:0:1/64
ipv6 lan1 address dhcp-prefix@lan3::1:0:0:0:1/64
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan1 dhcp service server
tunne1 の設定
tunnel endpoint address
で指定するAFTRのアドレスはNTT東西で異なります。 2404:8e00::feed:100
このアドレスは東日本のAFTRのひとつです。
参考 : transixのIPv4接続(DS-Lite)でインターネット接続 ルーターの設定例:ひかり電話契約ありの場合
tunnel select 1
description tunnel DS-Lite
tunnel encapsulation ipip
tunnel endpoint address 2404:8e00::feed:100
ip tunnel tcp mss limit auto
tunnel enable 1
DS-LiteではNATをルーターでは行わないため、NATの設定は不要です。
tunnel2 の設定
2404:8e00::feed:141
はインターリンクからの開通メールに記載されている「固定IPトンネル終端装置 IPv6アドレス」です。
Subject: ZOOT NATIVE IPv4固定IP1個サービス 登録完了のご案内
(省略)
【固定IPトンネル終端装置 IPv6アドレス】 2404:8e00::feed:141
(省略)
tunnel select 2
description tunnel "Static IPv4"
tunnel encapsulation ipip
tunnel endpoint address 2404:8e00::feed:141
ip tunnel nat descriptor 1
ip tunnel tcp mss limit auto
tunnel enable 2
固定IPアドレスについてはNATをルーターで行う必要があるため、NATディスクリプたを設定しています。
割り当てられた固定IPv4アドレスはここで指定します。 217.178.XXX.XXX
の部分にはインターリンクのメールに記載された「グローバル固定IPv4アドレス」を指定していください。
nat descriptor type 1 masquerade
nat descriptor address outer 1 217.178.XXX.XXX
インターリンクにIPv6アドレスを通知するluaスクリプト
以下のスクリプトを手元のPCに transix.lua
として保存します。
この時、アップデートサーバのURLやユーザー名、パスワードはインターリンクからの開通メールに記載された情報を利用してください。
Subject: ZOOT NATIVE IPv4固定IP1個サービス 登録完了のご案内
(省略)
【アップデートサーバーユーザー名】 uXXXXXXXXXX
【アップデートサーバーパスワード】 YYYYYYYY
【アップデートサーバーURL】 http://update.transix.jp/request
(省略)
----------------------------------------
-- 設定値 --
----------------------------------------
-- アップデートサーバーのURL
UPD_SV = "http://update.transix.jp/request"
-- ユーザー名
USERNAME = "uXXXXXXXXXX"
-- パスワード
PASSWORD = "YYYYYYYY"
-- SYSLOGのレベル
LOG_LEVEL = "info"
-- SYSLOGのプレフィックス
LOG_PFX = "[transix]"
-- ステートレスDHCPv6でDNS情報を取得するコマンド
DHCPv6_IR_CMD = "ipv6 lan3 dhcp service client ir=on"
----------------------------------------
-- SYSLOGを出力する関数 --
----------------------------------------
function logger(msg)
rt.syslog(LOG_LEVEL, string.format("%s %s", LOG_PFX, msg))
end
----------------------------------------
-- メインルーチン --
----------------------------------------
local log, result
local req_t = {}
local res_t
-- HTTPリクエストの準備
req_t.url = string.format("%s?username=%s&password=%s", UPD_SV,
USERNAME, PASSWORD)
req_t.method = "GET"
-- HTTPリクエストを実行
res_t = rt.httprequest(req_t)
if res_t.rtn1 then
-- アップデートの結果をログに出力する
if res_t.code == 200 then
result = "successfully"
else
result = "failed"
end
log = string.format("Update %s (code=%d)", result, res_t.code)
logger(log)
else
-- リクエストの応答がない場合、DNS情報が取得できていない可能性があるため
-- DNS情報を再取得する
rt.command(DHCPv6_IR_CMD)
logger("Update failed")
end
これをSFTPでRTXの /scripts/transix.lua
としてアップロードします。
sftp 192.168.100.1
mkdir scripts
cd scripts
put transix.lua
このLuaスクリプトを毎分実行するように設定しておきます。
schedule at 1 */* *:*:10 * lua -- /scripts/transix.lua
IPv4ルーティングテーブルの設定
通常のパケットは tunnel1 をデフォルトゲートウェイとして利用しますが、 ルーター自身 (192.168.100.1) が発信元となるパケットは 217.178.XXX.XXX
を利用するためにtunnel2を経由するように設定します。
これを実現するためにポリシーベースルーティングを設定します。
ip filter 1001 pass 192.168.100.1 * * * *
ip route default gateway tunnel 2 filter 1001 gateway tunnel 1
L2TP/IPsecの設定を行う
L2TP/IPsecの設定については通常通りです。
参考 : L2TP/IPsecを使用したリモートアクセス : ルーター コマンド設定
pp select anonymous
pp bind tunnel100
pp auth request mschap-v2
pp auth username hoge hogepassword
ppp ipcp ipaddress on
ppp ipcp msext on
ppp ccp type none
ip pp remote address pool dhcp
ip pp mtu 1258
pp enable anonymous
tunneua select 100
tunnel encapsulation l2tp
ipsec tunnel 100
ipsec sa policy 100 100 esp aes-cbc sha-hmac
ipsec ike keepalive use 100 off
ipsec ike local address 100 192.168.100.1
ipsec ike log 100 key-info message-info payload-info
ipsec ike nat-traversal 100 on
ipsec ike pre-shared-key 100 text examplepsk
ipsec ike remote address 100 any
l2tp tunnel disconnect time off
l2tp keepalive use on 10 6
ip tunnel tcp mss limit auto
tunnel enable 100
l2tp service on
ipsec auto refresh on
ipsec transport 100 100 udp 1701
nat descriptor masquerade static 1 11 192.168.100.1 esp
nat descriptor masquerade static 1 12 192.168.100.1 udp 500
nat descriptor masquerade static 1 13 192.168.100.1 udp 4500
nat descriptor masquerade static 1 14 192.168.100.1 udp 1701
ip lan1 proxyarp on
まとめ
インターリンクのZOOT NATIVE (固定IPv4アドレスオプション) を利用することで、フレッツ光 クロスでもIPv6、IPv4、リモートアクセスVPNをつかうことができました。