$Date: 2021/03/26 05:00:23 $
インターネットマルチフィード株式会社が提供する「transix」を利用したインターネット接続の設定例です。
※「transix」は、インターネットマルチフィード株式会社の登録商標(または商標)です。
ヤマハRTシリーズでは、以下の機種およびファームウェアで、「transix」のサービスが動作可能です。
機種 | ファームウェア | |
---|---|---|
IPv4接続(DS-Lite) | IPv4接続(固定IP) | |
RTX1220 | すべてのリビジョン | すべてのリビジョン |
RTX830 | すべてのリビジョン | Rev.15.02.03以降 |
NVR510 | すべてのリビジョン | Rev.15.01.09以降 |
NVR700W | すべてのリビジョン | Rev.15.00.10以降 |
RTX1210 | すべてのリビジョン | Rev.14.01.26以降 |
NVR500 | すべてのリビジョン | - |
(※) IPv4接続(固定IP)は、Luaスクリプト機能 バージョン "1.08" に対応したファームウェアリビジョン
(※) DS-Lite は、IPIPトンネリング(IPv4 over IPv6トンネル接続)を利用して行います。この時、ルーターはIPv4パケットをIPv6でカプセル化し、IPv6ネットワークに設置された AFTR(Address Family Transition Router)にIPv6パケットを転送します。AFTRにて、カプセル化されたIPv4パケットをIPv6パケットから取り出し、IPマスカレードによる変換を行い、IPv4インターネットへとIPv4パケットを転送します。
契約 | WAN側の接続機器 | 確認事項 | 設定例 | |
---|---|---|---|---|
IPv4接続(DS-Lite) | ONU | ひかり電話契約 なし | 1 | |
ひかり電話契約 あり | 2 | |||
ホームゲートウェイ (HGW) |
ひかり電話契約 なし | 1 | ||
ひかり電話契約 あり | HGWがルーターへ RA を広告 | 1 | ||
HGWがルーターへ DHCPv6-PD によるIPv6アドレスを配布 |
2 | |||
IPv4接続(固定IP) | ONU | ひかり電話契約 なし | 3 | |
ひかり電話契約 あり | 4 | |||
ホームゲートウェイ (HGW) |
ひかり電話契約 なし | 3 | ||
ひかり電話契約 あり | HGWがルーターへ RA を広告 | 3 | ||
HGWがルーターへ DHCPv6-PD によるIPv6アドレスを配布 |
4 |
(※) ホームゲートウェイの動作は、ホームゲートウェイの設定をご確認ください。
LAN1 | IPv4アドレス | 192.168.100.1/24 |
IPv6アドレス | (RAで取得したプレフィックス)::1/64 | |
LAN2 | IPv4アドレス | なし |
IPv6アドレス | なし |
【経路設定】 ip route default gateway tunnel 1 【LAN設定】 ip lan1 address 192.168.100.1/24 【NGNとの接続設定】(※1) ngn type lan2 ntt ipv6 prefix 1 ra-prefix@lan2::/64 ipv6 lan1 address ra-prefix@lan2::1/64 ipv6 lan1 rtadv send 1 o_flag=on ipv6 lan1 dhcp service server ipv6 lan2 dhcp service client ir=on 【AFTRに対するIPIPの設定】 tunnel select 1 tunnel encapsulation ipip tunnel endpoint name gw.transix.jp (※2) tunnel enable 1 【DHCPの設定】 dhcp service server dhcp server rfc2131 compliant except remain-silent dhcp scope 1 192.168.100.2-192.168.100.191/24 【DNSの設定】 dns server dhcp lan2 【IPv4フィルター関連設定】 ip tunnel secure filter in 200030 200039 ip tunnel secure filter out 200097 200098 200099 dynamic 200080 200082 200083 200084 200098 200099 ip filter 200030 pass * 192.168.100.0/24 icmp * * ip filter 200039 reject * ip filter 200097 pass * * icmp * * ip filter 200098 pass * * tcp * * ip filter 200099 pass * * udp * * ip filter dynamic 200080 * * ftp ip filter dynamic 200082 * * www ip filter dynamic 200083 * * smtp ip filter dynamic 200084 * * pop3 ip filter dynamic 200098 * * tcp ip filter dynamic 200099 * * udp 【IPv6フィルター関連設定】 ipv6 lan2 secure filter in 200030 200031 200038 200039 ipv6 lan2 secure filter out 200099 dynamic 200080 200081 200082 200083 200084 200098 200099 ipv6 filter 200030 pass * * icmp6 * * ipv6 filter 200031 pass * * 4 ipv6 filter 200038 pass * * udp * 546 ipv6 filter 200039 reject * ipv6 filter 200099 pass * * * * * ipv6 filter dynamic 200080 * * ftp ipv6 filter dynamic 200081 * * domain ipv6 filter dynamic 200082 * * www ipv6 filter dynamic 200083 * * smtp ipv6 filter dynamic 200084 * * pop3 ipv6 filter dynamic 200098 * * tcp ipv6 filter dynamic 200099 * * udp |
(※1) LAN1の接続機器がIPv6を使用せずIPv4通信のみを行う場合、以下は設定しないでください。
・ipv6 prefix 1 ra-prefix@lan2::/64
・ipv6 lan1 rtadv send 1 o_flag=on
・ipv6 lan1 dhcp service server
(※2) NVR500 では、tunnel endpoint address コマンドを使用して、AFTRのIPv6アドレスを指定してください。
LAN1 | IPv4アドレス | 192.168.100.1/24 |
IPv6アドレス | (DHCPv6-PDで取得したプレフィックス)::1/64 | |
LAN2 | IPv4アドレス | なし |
IPv6アドレス | (DHCPv6-PDで取得したプレフィックス)::(EUI-64で生成されたインターフェースID)/64 |
【経路設定】 ip route default gateway tunnel 1 【LAN設定】 ip lan1 address 192.168.100.1/24 【NGNとの接続設定】(※1) ngn type lan2 ntt ipv6 route default gateway dhcp lan2 ipv6 prefix 1 dhcp-prefix@lan2::/64 ipv6 lan1 address dhcp-prefix@lan2::1/64 ipv6 lan1 rtadv send 1 o_flag=on ipv6 lan1 dhcp service server ipv6 lan2 address dhcp ipv6 lan2 dhcp service client 【AFTRに対するIPIPの設定】 tunnel select 1 tunnel encapsulation ipip tunnel endpoint name gw.transix.jp (※2) tunnel enable 1 【DHCPの設定】 dhcp service server dhcp server rfc2131 compliant except remain-silent dhcp scope 1 192.168.100.2-192.168.100.191/24 【DNSの設定】 dns server dhcp lan2 【IPv4フィルター関連設定】 ip tunnel secure filter in 200030 200039 ip tunnel secure filter out 200097 200098 200099 dynamic 200080 200082 200083 200084 200098 200099 ip filter 200030 pass * 192.168.100.0/24 icmp * * ip filter 200039 reject * ip filter 200097 pass * * icmp * * ip filter 200098 pass * * tcp * * ip filter 200099 pass * * udp * * ip filter dynamic 200080 * * ftp ip filter dynamic 200082 * * www ip filter dynamic 200083 * * smtp ip filter dynamic 200084 * * pop3 ip filter dynamic 200098 * * tcp ip filter dynamic 200099 * * udp 【IPv6フィルター関連設定】 ipv6 lan2 secure filter in 200030 200031 200038 200039 ipv6 lan2 secure filter out 200099 dynamic 200080 200081 200082 200083 200084 200098 200099 ipv6 filter 200030 pass * * icmp6 * * ipv6 filter 200031 pass * * 4 ipv6 filter 200038 pass * * udp * 546 ipv6 filter 200039 reject * ipv6 filter 200099 pass * * * * * ipv6 filter dynamic 200080 * * ftp ipv6 filter dynamic 200081 * * domain ipv6 filter dynamic 200082 * * www ipv6 filter dynamic 200083 * * smtp ipv6 filter dynamic 200084 * * pop3 ipv6 filter dynamic 200098 * * tcp ipv6 filter dynamic 200099 * * udp |
(※1) LAN1の接続機器がIPv6を使用せずIPv4通信のみを行う場合、以下は設定しないでください。
・ipv6 prefix 1 dhcp-prefix@lan2::/64
・ipv6 lan1 rtadv send 1 o_flag=on
・ipv6 lan1 dhcp service server
(※2) NVR500 では、tunnel endpoint address コマンドを使用して、AFTRのIPv6アドレスを指定してください。
LAN1 | IPv4アドレス | 192.168.100.1/24 |
IPv6アドレス | (RAで取得したプレフィックス)::(インターフェースID)/64 | |
LAN2 | IPv4アドレス | なし |
IPv6アドレス | なし |
UPD_SV | アップデートサーバーのURL |
USERNAME | ユーザー名 |
PASSWORD | パスワード |
【経路設定】 ip route default gateway tunnel 1 【LAN設定】 ip lan1 address 192.168.100.1/24 【NGNとの接続設定】(※) ngn type lan2 ntt ipv6 prefix 1 ra-prefix@lan2::/64 ipv6 lan1 address ra-prefix@lan2::(インターフェースID)/64 ipv6 lan1 rtadv send 1 o_flag=on ipv6 lan1 dhcp service server ipv6 lan2 dhcp service client ir=on 【BRに対するIPIPの設定】 tunnel select 1 tunnel encapsulation ipip tunnel endpoint address (固定IPトンネル終端装置のIPv6アドレス) ip tunnel nat descriptor 1 ip tunnel tcp mss limit auto tunnel enable 1 【NAT設定】 nat descriptor type 1 masquerade nat descriptor address outer 1 (固定IPv4アドレス) 【DHCPの設定】 dhcp service server dhcp server rfc2131 compliant except remain-silent dhcp scope 1 192.168.100.2-192.168.100.191/24 【DNSの設定】 dns host lan1 dns service fallback on dns server dhcp lan2 dns server select 500000 dhcp lan2 any . 【IPv4フィルター関連設定】 ip tunnel secure filter in 200030 200039 ip tunnel secure filter out 200097 200098 200099 dynamic 200080 200082 200083 200084 200098 200099 ip filter 200030 pass * 192.168.100.0/24 icmp * * ip filter 200039 reject * ip filter 200097 pass * * icmp * * ip filter 200098 pass * * tcp * * ip filter 200099 pass * * udp * * ip filter dynamic 200080 * * ftp ip filter dynamic 200082 * * www ip filter dynamic 200083 * * smtp ip filter dynamic 200084 * * pop3 ip filter dynamic 200098 * * tcp ip filter dynamic 200099 * * udp 【IPv6フィルター関連設定】 ipv6 lan2 secure filter in 200030 200031 200038 200039 ipv6 lan2 secure filter out 200099 dynamic 200080 200081 200082 200083 200084 200098 200099 ipv6 filter 200030 pass * * icmp6 * * ipv6 filter 200031 pass * * 4 ipv6 filter 200038 pass * * udp * 546 ipv6 filter 200039 reject * ipv6 filter 200099 pass * * * * * ipv6 filter dynamic 200080 * * ftp ipv6 filter dynamic 200081 * * domain ipv6 filter dynamic 200082 * * www ipv6 filter dynamic 200083 * * smtp ipv6 filter dynamic 200084 * * pop3 ipv6 filter dynamic 200098 * * tcp ipv6 filter dynamic 200099 * * udp 【IPv6アドレスの通知設定】 ipv6 lan1 prefix change log on lan linkup send-wait-time lan2 5 schedule at 1 startup * lua emfs:/transix_ra.lua embedded file transix_ra.lua << EOF --[[ ■ 「transix」サービス IPv6アドレス通知用 サンプルスクリプト Ver. 1.00 2021.03.16 ヤマハ株式会社 本スクリプトは、「transix」の IPv4接続(固定IP)の RAプロキシ において 指定したインターフェースに新しいIPv6プレフィックスが付与されたとき、 アップデートサーバーにIPv6アドレスの更新通知を行うLuaスクリプト のサンプルです。 新しいIPv6プレフィックスが付与されたことは、ルーターのSYSLOGを監視し、以下 のログが出力された場合に検知しています。 (IPv6アドレスがLAN1に設定されている場合の例) Add IPv6 prefix xxxx:xxxx:xxxx:xxxx::/xx (Lifetime: xxxxxx) via LAN1 by RA 以下のコマンドが設定されていないと、上記ログは出力されないため、 必ず設定するようにしてください。 ipv6 lan1 prefix change log on [注意事項] ・本スクリプトは、schedule atコマンドでルーターの起動時に実行されるようにし てください。 ・スクリプト中の「設定値」の値は、ご使用の環境に応じて変更した上でご使用く ださい。 [更新履歴] 2021.03.16 Ver.1.00 初版作成 ]] ---------------------------------------- -- 設定値 -- ---------------------------------------- -- アップデートサーバーのURL UPD_SV = "アップデートサーバーのURL" -- ユーザー名 USERNAME = "ユーザー名" -- パスワード PASSWORD = "パスワード" -- IPIPトンネルを貼るインターフェース名 TUNNEL_IF = "LAN1" -- WANインターフェース名 WAN_IF = "LAN2" -- IPv6プレフィックスが追加されたときの -- SYSLOGパターン LOG_PTN = "Add%s+IPv6%s+prefix.+%(Lifetime%:%s+%d+%)%s+via%s+" .. TUNNEL_IF .. "%s+by" -- ステートレスDHCPv6でDNS情報を取得するコマンド DHCPv6_IR_CMD = "ipv6 " .. string.lower(WAN_IF) .. " dhcp service client ir=on" -- リトライの間隔 (s) RETRY_INTVL = 10 -- リトライ回数 RETRY_NUM = 3 -- SYSLOGのレベル LOG_LEVEL = "info" -- SYSLOGのプレフィックス LOG_PFX = "[transix]" -- 通知失敗時のメッセージ FAIL_MSG = "アップデートサーバーへの通知に失敗しました。 (リトライ: 残り%d回)" ---------------------------------------- -- SYSLOGを出力する関数 -- ---------------------------------------- function logger(msg) rt.syslog(LOG_LEVEL, string.format("%s %s", LOG_PFX, msg)) end ---------------------------------------- -- メインルーチン -- ---------------------------------------- local rtn, count, 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" -------------------- -- 監視 while true do -- SYSLOGを監視する rtn = rt.syslogwatch(LOG_PTN) -- パターンにマッチした if rtn then -- リトライ回数をリセット count = RETRY_NUM while true do -- HTTPリクエストを実行 res_t = rt.httprequest(req_t) if res_t.rtn1 then -- リクエストに成功 logger("アップデートサーバーへの通知を実行しました。") -- アップデートの結果をログに出力する if res_t.code == 200 then result = "成功" else result = "失敗" end log = string.format("アップデートに%sしました。(code=%d, body=%s)", result, res_t.code, res_t.body) logger(log) -- ループを抜け、SYSLOGの監視を再開する break else -- リクエストの応答がない場合、DNS情報が取得できていない可能性があるため -- DNS情報を再取得する rt.command(DHCPv6_IR_CMD) end -- リクエストに失敗 count = count - 1 if count > 0 then -- (RETRY_INTVL)秒後、リトライ logger(string.format(FAIL_MSG, count)) rt.sleep(RETRY_INTVL) else -- リトライ上限を超えたので諦め、SYSLOGの監視を再開する logger("アップデートサーバーへの通知に失敗しました。") break end end end end EOF |
(※) LAN1の接続機器がIPv6を使用せずIPv4通信のみを行う場合、以下は設定しないでください。
・ipv6 prefix 1 ra-prefix@lan2::/64
・ipv6 lan1 rtadv send 1 o_flag=on
・ipv6 lan1 dhcp service server
LAN1 | IPv4アドレス | 192.168.100.1/24 |
IPv6アドレス | (DHCPv6-PDで取得したプレフィックス)::(インターフェースID)/64 | |
LAN2 | IPv4アドレス | なし |
IPv6アドレス | (DHCPv6-PDで取得したプレフィックス)::/64 |
UPD_SV | アップデートサーバーのURL |
USERNAME | ユーザー名 |
PASSWORD | パスワード |
【経路設定】 ip route default gateway tunnel 1 【LAN設定】 ip lan1 address 192.168.100.1/24 【NGNとの接続設定】(※) ngn type lan2 ntt ipv6 route default gateway dhcp lan2 ipv6 prefix 1 dhcp-prefix@lan2::/64 ipv6 lan1 address dhcp-prefix@lan2::(インターフェースID)/64 ipv6 lan1 rtadv send 1 o_flag=on ipv6 lan1 dhcp service server ipv6 lan2 address dhcp-prefix@lan2::/64 ipv6 lan2 dhcp service client 【BRに対するIPIPの設定】 tunnel select 1 tunnel encapsulation ipip tunnel endpoint address (固定IPトンネル終端装置のIPv6アドレス) ip tunnel nat descriptor 1 ip tunnel tcp mss limit auto tunnel enable 1 【NAT設定】 nat descriptor type 1 masquerade nat descriptor address outer 1 (固定IPv4アドレス) 【DHCPの設定】 dhcp service server dhcp server rfc2131 compliant except remain-silent dhcp scope 1 192.168.100.2-192.168.100.191/24 【DNSの設定】 dns host lan1 dns service fallback on dns server dhcp lan2 dns server select 500000 dhcp lan2 any . 【IPv4フィルター関連設定】 ip tunnel secure filter in 200030 200039 ip tunnel secure filter out 200097 200098 200099 dynamic 200080 200082 200083 200084 200098 200099 ip filter 200030 pass * 192.168.100.0/24 icmp * * ip filter 200039 reject * ip filter 200097 pass * * icmp * * ip filter 200098 pass * * tcp * * ip filter 200099 pass * * udp * * ip filter dynamic 200080 * * ftp ip filter dynamic 200082 * * www ip filter dynamic 200083 * * smtp ip filter dynamic 200084 * * pop3 ip filter dynamic 200098 * * tcp ip filter dynamic 200099 * * udp 【IPv6フィルター関連設定】 ipv6 lan2 secure filter in 200030 200031 200038 200039 ipv6 lan2 secure filter out 200099 dynamic 200080 200081 200082 200083 200084 200098 200099 ipv6 filter 200030 pass * * icmp6 * * ipv6 filter 200031 pass * * 4 ipv6 filter 200038 pass * * udp * 546 ipv6 filter 200039 reject * ipv6 filter 200099 pass * * * * * ipv6 filter dynamic 200080 * * ftp ipv6 filter dynamic 200081 * * domain ipv6 filter dynamic 200082 * * www ipv6 filter dynamic 200083 * * smtp ipv6 filter dynamic 200084 * * pop3 ipv6 filter dynamic 200098 * * tcp ipv6 filter dynamic 200099 * * udp 【IPv6アドレスの通知設定】 ipv6 lan1 prefix change log on lan linkup send-wait-time lan2 5 schedule at 1 startup * lua emfs:/transix_pd.lua embedded file transix_pd.lua << EOF --[[ ■ 「transix」サービス IPv6アドレス通知用 サンプルスクリプト Ver. 1.00 2021.03.16 ヤマハ株式会社 本スクリプトは、「transix」の IPv4接続(固定IP)の DHCPv6-PD において 指定したインターフェースに新しいIPv6プレフィックスが付与されたとき、 アップデートサーバーにIPv6アドレスの更新通知を行うLuaスクリプト のサンプルです。 新しいIPv6プレフィックスが付与されたことは、ルーターのSYSLOGを監視し、以下 のログが出力された場合に検知しています。 (IPv6アドレスがLAN1に設定されている場合の例) Add IPv6 prefix xxxx:xxxx:xxxx:xxxx::/xx (Lifetime: xxxxxx) via LAN1 by DHCPv6 以下のコマンドが設定されていないと、上記ログは出力されないため、 必ず設定するようにしてください。 ipv6 lan1 prefix change log on [注意事項] ・本スクリプトは、schedule atコマンドでルーターの起動時に実行されるようにし てください。 ・スクリプト中の「設定値」の値は、ご使用の環境に応じて変更した上でご使用く ださい。 [更新履歴] 2021.03.16 Ver.1.00 初版作成 ]] ---------------------------------------- -- 設定値 -- ---------------------------------------- -- アップデートサーバーのURL UPD_SV = "アップデートサーバーのURL" -- ユーザー名 USERNAME = "ユーザー名" -- パスワード PASSWORD = "パスワード" -- IPIPトンネルを貼るインターフェース名 TUNNEL_IF = "LAN1" -- IPv6プレフィックスが追加されたときの -- SYSLOGパターン LOG_PTN = "Add%s+IPv6%s+prefix.+%(Lifetime%:%s+%d+%)%s+via%s+" .. TUNNEL_IF .. "%s+by" -- リトライの間隔 (s) RETRY_INTVL = 10 -- リトライ回数 RETRY_NUM = 3 -- SYSLOGのレベル LOG_LEVEL = "info" -- SYSLOGのプレフィックス LOG_PFX = "[transix]" -- 通知失敗時のメッセージ FAIL_MSG = "アップデートサーバーへの通知に失敗しました。 (リトライ: 残り%d回)" ---------------------------------------- -- SYSLOGを出力する関数 -- ---------------------------------------- function logger(msg) rt.syslog(LOG_LEVEL, string.format("%s %s", LOG_PFX, msg)) end ---------------------------------------- -- メインルーチン -- ---------------------------------------- local rtn, count, 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" -------------------- -- 監視 while true do -- SYSLOGを監視する rtn = rt.syslogwatch(LOG_PTN) -- パターンにマッチした if rtn then -- リトライ回数をリセット count = RETRY_NUM while true do -- HTTPリクエストを実行 res_t = rt.httprequest(req_t) if res_t.rtn1 then -- リクエストに成功 logger("アップデートサーバーへの通知を実行しました。") -- アップデートの結果をログに出力する if res_t.code == 200 then result = "成功" else result = "失敗" end log = string.format("アップデートに%sしました。(code=%d, body=%s)", result, res_t.code, res_t.body) logger(log) -- ループを抜け、SYSLOGの監視を再開する break end -- リクエストに失敗 count = count - 1 if count > 0 then -- (RETRY_INTVL)秒後、リトライ logger(string.format(FAIL_MSG, count)) rt.sleep(RETRY_INTVL) else -- リトライ上限を超えたので諦め、SYSLOGの監視を再開する logger("アップデートサーバーへの通知に失敗しました。") break end end end end EOF |
(※) LAN1の接続機器がIPv6を使用せずIPv4通信のみを行う場合、以下は設定しないでください。
・ipv6 prefix 1 dhcp-prefix@lan2::/64
・ipv6 lan1 rtadv send 1 o_flag=on
・ipv6 lan1 dhcp service server