$Date: 2026/01/06 20:08:04 $
株式会社 JPIX ( 以下、 JPIX ) が提供する「v6プラス」を利用してインターネット接続をする機能を提供します。
※ 「v6プラス」は、 JPIX の登録商標 ( または商標 ) です。
| 変更前 | 変更後 |
|---|---|
| dns server pp 1 dns server dhcp lan2 (dns server select 500000 dhcp lan2 any .) dns server select 500001 pp 1 any . restrict pp 1 |
dns server pp 1 dns server dhcp lan2 dns server select 500000 dhcp lan2 aaaa . dns server select 500001 pp 1 any . restrict pp 1 |
ヤマハ RT シリーズでは、以下の機種およびファームウェアで、v6プラス対応機能をサポートしています。
| 機種 | ファームウェア | |
|---|---|---|
| IPv6/IPv4 インターネットサービス |
固定 IP サービス | |
| RTX840 | すべてのリビジョン | すべてのリビジョン |
| RTX3510 | ||
| RTX1300 | ||
| RTX1220 | ||
| RTX830 | Rev.15.02.03 以降 | Rev.15.02.03 以降 |
| NVR510 | Rev.15.01.13 以降 | Rev.15.01.09 以降 |
| NVR700W | Rev.15.00.14 以降 | Rev.15.00.10 以降 |
| RTX1210 | Rev.14.01.28 以降 | Rev.14.01.26 以降 |
| RTX5000 | Rev.14.00.32 以降 | Rev.14.00.26 以降 |
| RTX3500 | Rev.14.00.32 以降 | Rev.14.00.26 以降 |
NWR100 の対応ファームウェアは以下を参照ください。
「v6プラス」のサービス利用下における IPv4 の VPN 接続は、以下の機種およびファームウェアで動作可能です。
| 機種 | ファームウェア | |||
|---|---|---|---|---|
| IPv6/IPv4 インターネットサービス |
固定 IP サービス | |||
| IPsec ( イニシエーター ) |
IPsec | L2TP/IPsec | L2TPv3/IPsec L2TPv3 | |
| RTX840 | すべてのリビジョン | すべてのリビジョン | すべてのリビジョン | すべてのリビジョン |
| RTX3510 | ||||
| RTX1300 | ||||
| RTX1220 | Rev.15.04.03 以降 | Rev.15.04.03 以降 | ||
| RTX830 | Rev.15.02.03 以降 | Rev.15.02.03 以降 | Rev.15.02.20 以降 | Rev.15.02.20 以降 |
| NVR510 | - | - | Rev.15.01.21 以降 | - |
| NVR700W | Rev.15.00.14 以降 | Rev.15.00.14 以降 | Rev.15.00.22 以降 | Rev.15.00.22 以降 |
| RTX1210 | Rev.14.01.28 以降 | Rev.14.01.28 以降 | Rev.14.01.40 以降 | Rev.14.01.40 以降 |
| RTX5000 | Rev.14.00.32 以降 | Rev.14.00.32 以降 | Rev.14.00.32 以降 | Rev.14.00.32 以降 |
| RTX3500 | Rev.14.00.32 以降 | Rev.14.00.32 以降 | Rev.14.00.32 以降 | Rev.14.00.32 以降 |
「v6プラス」のサービス利用下における IPv4 の VPN 接続は、以下の VPN 接続の設定例を参考に、「v6プラス」のサービスと組み合わせてご利用ください。
( ※ ) MAP-E について
・IPIP トンネリング ( IPv4 over IPv6 トンネル接続 ) を利用して行います。この時、トンネルに設定した IP マスカレードでグローバル IPv4 アドレスに変換され、ポート番号が割り当てられます。このグローバル IPv4 アドレスやポート番号は、 MAP-E のマップルールに従って自動的に決定されます。これらを固定で設定する事はできません。
・マップルールは、ルーターの起動後やトンネル設定後に、自動的にサーバーから取得します。取得したルールに従って、即時に、 IPv4 アドレスやポート番号を決定します。
・マップルールを取得できていない時は、トンネルはダウンして通信はできません。
既存の以下のコマンドに map-e というキーワードが設定できます。
| 設定値 | 説明 |
|---|---|
| ipsec | IPsec トンネル |
| ipip | IPv6 over IPv4 トンネル、 IPv4 over IPv6 トンネル、 IPv4 over IPv4 トンネルまたは IPv6 over IPv6 トンネル |
| pptp | PPTP トンネル名 |
| l2tp | L2TP/IPsec トンネル |
| l2tpv3-raw | L2TPv3 トンネル |
| l2tpv3 | L2TPv3/IPsec トンネル |
| ipudp | IPUDP トンネル |
| map-e | MAP-E トンネル |
| 設定値 | 説明 |
|---|---|
| IP アドレス | 1 個の IP アドレスまたは間に - をはさんだ IP アドレス ( 範囲指定 ) 、およびこれらを任意に並べたもの |
| ipcp | PPP の IPCP の IP-Address オプションにより接続先から通知される IP アドレス |
| primary | ip interface address コマンドで設定されている IP アドレス |
| secondary | ip interface secondary address コマンドで設定されている IP アドレス |
| map-e | MAP-E で自動的に生成された IP アドレス |
| 適用インタフェース | LAN | PP | トンネル |
|---|---|---|---|
| ipcp | × | ○ | × |
| primary | ○ | × | × |
| secondary | ○ | × | × |
| IP アドレス | ○ | ○ | ○ |
| map-e | × | × | ○ |
tunnel1# show status tunnel
TUNNEL[1]:
説明:
インタフェースの種類: MAP-E
IPv6: 2001:db8::1
トンネルインタフェースは接続されています
開始: 2018/01/19 15:53:05
通信時間: 28分50秒
受信: (IPv4) 2 パケット [184 オクテット]
(IPv6) 0 パケット [0 オクテット]
送信: (IPv4) 2 パケット [184 オクテット]
(IPv6) 0 パケット [0 オクテット]
# show nat descriptor address
NAT/IPマスカレード 動作タイプ : 2
参照NATディスクリプタ : 1, 適用インタフェース : TUNNEL[1](1)
Masqueradeテーブル
外側アドレス: map-e/203.0.113.1
ポート範囲: 8176-8177, 12272-12273, 16368-16369, 20464-20465, 24560-24561,
28656-28657, 32752-32753, 36848-36849, 40944-40945, 45040-45041, 49136-49137, 5
3232-53233, 57328-57329, 61424-61425, 65520-65521 43 セッション
-*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*-
No. 内側アドレス セッション数 ホスト毎制限数 種別
1 192.168.100.240 41 65534 dynamic
2 192.168.100.1 1 65534 dynamic
3 192.168.100.2 1 65534 dynamic
---------------------
有効なNATディスクリプタテーブルが1個ありました
( ※ ) マップルールが取得できていない時は、外側アドレスやポート範囲の情報は表示されません。
| 光回線 | 契約 | WAN 側の接続機器 | 確認事項 | 設定例 | ||
|---|---|---|---|---|---|---|
| フレッツ 光ネクスト | IPv6/IPv4 インターネットサービス |
ONU | ひかり電話契約 なし | 1 | ||
| ひかり電話契約 あり | 2 | |||||
| ホームゲートウェイ ( HGW ) |
- | 3 | ||||
| 固定 IP サービス ( 1 IP ) |
ONU | ひかり電話契約 なし | 4 | |||
| ひかり電話契約 あり | 5 | |||||
| ホームゲートウェイ ( HGW ) |
ひかり電話契約 なし | 4 | ||||
| ひかり電話契約 あり | HGW がルーターへ RA を広告 | 4 | ||||
| HGW がルーターへ DHCPv6-PD による IPv6 アドレスを配布 | 5 | |||||
| 固定 IP サービス ( 8/16 IP ) |
ONU | ひかり電話契約 なし | LAN 側でグローバル IPv4 アドレスを使用する場合 | 6 | ||
| LAN 側でグローバル IPv4 アドレスとプライベート IPv4 アドレスを使用する場合 | 8 | |||||
| 静的 NAT でプライベート IPv4 アドレスをグローバル IPv4 アドレスへ 変換して使用する場合 |
10 | |||||
| ひかり電話契約 あり | LAN 側でグローバル IPv4 アドレスを使用する場合 | 7 | ||||
| LAN 側でグローバル IPv4 アドレスとプライベート IPv4 アドレスを使用する場合 | 9 | |||||
| 静的 NAT でプライベート IPv4 アドレスをグローバル IPv4 アドレスへ 変換して使用する場合 |
11 | |||||
| ホームゲートウェイ ( HGW ) |
ひかり電話契約 なし | LAN 側でグローバル IPv4 アドレスを使用する場合 | 6 | |||
| LAN 側でグローバル IPv4 アドレスとプライベート IPv4 アドレスを使用する場合 | 8 | |||||
| 静的 NAT でプライベート IPv4 アドレスをグローバル IPv4 アドレスへ 変換して使用する場合 |
10 | |||||
| ひかり電話契約 あり | HGW がルーターへ RA を広告 | LAN 側でグローバル IPv4 アドレスを使用する場合 | 6 | |||
| LAN 側でグローバル IPv4 アドレスと プライベート IPv4 アドレスを使用する場合 |
8 | |||||
| 静的 NAT でプライベート IPv4 アドレスを グローバル IPv4 アドレスへ変換して使用する場合 |
10 | |||||
| HGW がルーターへ DHCPv6-PD による IPv6 アドレスを配布 |
LAN 側でグローバル IPv4 アドレスを使用する場合 | 7 | ||||
| LAN 側でグローバル IPv4 アドレスと プライベート IPv4 アドレスを使用する場合 |
9 | |||||
| 静的 NAT でプライベート IPv4 アドレスを グローバル IPv4 アドレスへ変換して使用する場合 |
11 | |||||
| フレッツ 光クロス | IPv6/IPv4 インターネットサービス |
ONU | - | 2 | ||
| ホームゲートウェイ ( HGW ) |
- | 3 | ||||
| 固定 IP サービス ( 1 IP ) |
ONU | - | 5 | |||
| ホームゲートウェイ ( HGW ) |
HGW がルーターへ RA を広告 | 4 | ||||
| HGW がルーターへ DHCPv6-PD による IPv6 アドレスを配布 | 5 | |||||
| 固定 IP サービス ( 8/16 IP ) |
ONU | LAN 側でグローバル IPv4 アドレスを使用する場合 | 7 | |||
| LAN 側でグローバル IPv4 アドレスとプライベート IPv4 アドレスを使用する場合 | 9 | |||||
| 静的 NAT でプライベート IPv4 アドレスをグローバル IPv4 アドレスへ変換して使用する場合 | 11 | |||||
| ホームゲートウェイ ( HGW ) |
HGW がルーターへ RA を広告 | LAN 側でグローバル IPv4 アドレスを使用する場合 | 6 | |||
| LAN 側でグローバル IPv4 アドレスとプライベート IPv4 アドレスを使用する場合 | 8 | |||||
| 静的 NAT でプライベート IPv4 アドレスをグローバル IPv4 アドレスへ変換して使用する場合 | 10 | |||||
| HGW がルーターへ DHCPv6-PD による IPv6 アドレスを配布 |
LAN 側でグローバル IPv4 アドレスを使用する場合 | 7 | ||||
| LAN 側でグローバル IPv4 アドレスとプライベート IPv4 アドレスを使用する場合 | 9 | |||||
| 静的 NAT でプライベート IPv4 アドレスをグローバル IPv4 アドレスへ変換して使用する場合 | 11 | |||||
( ※ ) ホームゲートウェイの動作は、ホームゲートウェイの設定をご確認ください。
| 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
【 MAP-E の設定 】 ( ※2 )
tunnel select 1
tunnel encapsulation map-e
ip tunnel mtu 1460
ip tunnel nat descriptor 1
tunnel enable 1
nat descriptor type 1 masquerade
nat descriptor address outer 1 map-e
【 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 フィルター関連設定 】
tunnel select 1
ip tunnel secure filter in 200030 200039
ip tunnel secure filter out 200099 dynamic 200080 200082 200083 200084 200098 200099
tunnel enable 1
ip filter 200030 pass * 192.168.100.0/24 icmp * *
ip filter 200039 reject *
ip filter 200099 pass * * * * *
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 ) RTX5000/3500 では、以下を設定してください。
・nat descriptor backward-compatibility 2
| 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
【 MAP-E の設定 】 ( ※2 )
tunnel select 1
tunnel encapsulation map-e
ip tunnel mtu 1460
ip tunnel nat descriptor 1
tunnel enable 1
nat descriptor type 1 masquerade
nat descriptor address outer 1 map-e
【 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 フィルター関連設定 】
tunnel select 1
ip tunnel secure filter in 200030 200039
ip tunnel secure filter out 200099 dynamic 200080 200082 200083 200084 200098 200099
tunnel enable 1
ip filter 200030 pass * 192.168.100.0/24 icmp * *
ip filter 200039 reject *
ip filter 200099 pass * * * * *
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 ) RTX5000/3500 では、以下を設定してください。
・nat descriptor backward-compatibility 2
| 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
【 MAP-E の設定 】( ※2 )
tunnel select 1
tunnel encapsulation map-e
ip tunnel mtu 1460
ip tunnel nat descriptor 1
tunnel enable 1
nat descriptor type 1 masquerade
nat descriptor address outer 1 map-e
【 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 パブリックDNSサーバー ( IPv6 )
【 IPv4 フィルター関連設定 】
tunnel select 1
ip tunnel secure filter in 200030 200039
ip tunnel secure filter out 200099 dynamic 200080 200082 200083 200084 200098 200099
tunnel enable 1
ip filter 200030 pass * 192.168.100.0/24 icmp * *
ip filter 200039 reject *
ip filter 200099 pass * * * * *
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 ) RTX5000/3500 では、以下を設定してください。
・nat descriptor backward-compatibility 2
| 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 ( BR の IPv6 アドレス )
ip tunnel mtu 1460
ip tunnel nat descriptor 1
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 フィルター関連設定 】
tunnel select 1
ip tunnel secure filter in 200030 200039
ip tunnel secure filter out 200099 dynamic 200080 200082 200083 200084 200098 200099
tunnel enable 1
ip filter 200030 pass * 192.168.100.0/24 icmp * *
ip filter 200039 reject *
ip filter 200099 pass * * * * *
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:/v6plus_address_notification.lua
embedded file v6plus_address_notification.lua <<EOF
--[[
■ v6プラス IPv6 アドレス通知用 サンプルスクリプト
Ver. 1.00
2021.03.16 ヤマハ株式会社
本スクリプトは、v6プラスの固定 IP サービス において、
指定したインターフェースに新しい IPv6 プレフィックスが付与されたとき、
アップデートサーバーに IPv6 アドレスの更新通知を行う Lua スクリプト
のサンプルです。
新しい IPv6 プレフィックスが付与されたことは、ルーターの SYSLOG を監視し、以下
のログが出力された場合に検知しています。
( IPv6 アドレスが LAN1 に設定されている場合の例 )
Add IPv6 prefix xxxx:xxxx:xxxx:xxxx::/xx (Lifetime: xxxxxx) via LAN1 by DHCPv6
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 = "パスワード"
-- IPv6 アドレスを設定するインターフェース名
IPv6_IF = "LAN1"
-- IPv6 プレフィックスが追加されたときの
-- SYSLOG パターン
LOG_PTN = "Add%s+IPv6%s+prefix.+%(Lifetime%:%s+%d+%)%s+via%s+" .. IPv6_IF .. "%s+by"
-- リトライの間隔 ( s )
RETRY_INTVL = 10
-- リトライ回数
RETRY_NUM = 3
-- SYSLOG のレベル
LOG_LEVEL = "info"
-- SYSLOG のプレフィックス
LOG_PFX = "[v6plus]"
-- 通知失敗時のメッセージ
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?user=%s&pass=%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 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 アドレス | なし |
| 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 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 dhcp service client
【 BR に対する IPIP の設定 】
tunnel select 1
tunnel encapsulation ipip
tunnel endpoint address ( BR の IPv6 アドレス )
ip tunnel mtu 1460
ip tunnel nat descriptor 1
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 フィルター関連設定 】
tunnel select 1
ip tunnel secure filter in 200030 200039
ip tunnel secure filter out 200099 dynamic 200080 200082 200083 200084 200098 200099
tunnel enable 1
ip filter 200030 pass * 192.168.100.0/24 icmp * *
ip filter 200039 reject *
ip filter 200099 pass * * * * *
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:/v6plus_address_notification.lua
embedded file v6plus_address_notification.lua <<EOF
--[[
■ v6プラス IPv6 アドレス通知用 サンプルスクリプト
Ver. 1.00
2021.03.16 ヤマハ株式会社
本スクリプトは、 v6プラスの固定 IP サービス において、
指定したインターフェースに新しい IPv6 プレフィックスが付与されたとき、
アップデートサーバーに IPv6 アドレスの更新通知を行う Lua スクリプト
のサンプルです。
新しい IPv6 プレフィックスが付与されたことは、ルーターの SYSLOG を監視し、以下
のログが出力された場合に検知しています。
( IPv6 アドレスが LAN1 に設定されている場合の例 )
Add IPv6 prefix xxxx:xxxx:xxxx:xxxx::/xx (Lifetime: xxxxxx) via LAN1 by DHCPv6
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 = "パスワード"
-- IPv6 アドレスを設定するインターフェース名
IPv6_IF = "LAN1"
-- IPv6 プレフィックスが追加されたときの
-- SYSLOG パターン
LOG_PTN = "Add%s+IPv6%s+prefix.+%(Lifetime%:%s+%d+%)%s+via%s+" .. IPv6_IF .. "%s+by"
-- リトライの間隔 ( s )
RETRY_INTVL = 10
-- リトライ回数
RETRY_NUM = 3
-- SYSLOG のレベル
LOG_LEVEL = "info"
-- SYSLOG のプレフィックス
LOG_PFX = "[v6plus]"
-- 通知失敗時のメッセージ
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?user=%s&pass=%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
| IPv4 アドレス | (xxx.xxx.xxx.0)/29 |
| LAN1 | IPv4 アドレス | (xxx.xxx.xxx.1)/29 |
| IPv6 アドレス | ( RA で取得したプレフィックス )::( インターフェース ID )/64 | |
| LAN2 | IPv4 アドレス | なし |
| IPv6 アドレス | なし |
| IPv4 アドレス | (xxx.xxx.xxx.2-6)/29 |
| デフォルトゲートウェイ | (xxx.xxx.xxx.1) |
| DNS サーバー | (xxx.xxx.xxx.1) |
| UPD_SV | アップデートサーバーの URL |
| USERNAME | ユーザー名 |
| PASSWORD | パスワード |
【 経路設定 】
ip route default gateway tunnel 1
【 LAN 設定 】
ip lan1 address (xxx.xxx.xxx.1)/29
【 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 ( BR の IPv6 アドレス )
ip tunnel mtu 1460
tunnel enable 1
【 DNS の設定 】
dns host lan1
dns service fallback on
dns server dhcp lan2
dns server select 500000 dhcp lan2 any .
【 IPv4 フィルター関連設定 】
# LAN1 のグローバル IPv4 アドレスへのアクセスを許可する必要がある場合は、 in フィルターを適宜追加してください
tunnel select 1
ip tunnel secure filter in 200030 200039
ip tunnel secure filter out 200099 dynamic 200080 200082 200083 200084 200098 200099
tunnel enable 1
ip filter 200030 pass * (xxx.xxx.xxx.0)/29 icmp * *
ip filter 200039 reject *
ip filter 200099 pass * * * * *
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:/v6plus_address_notification.lua
embedded file v6plus_address_notification.lua <<EOF
--[[
■ v6プラス IPv6 アドレス通知用 サンプルスクリプト
Ver. 1.00
2021.03.16 ヤマハ株式会社
本スクリプトは、v6プラスの固定 IP サービス において、
指定したインターフェースに新しい IPv6 プレフィックスが付与されたとき、
アップデートサーバーに IPv6 アドレスの更新通知を行う Lua スクリプト
のサンプルです。
新しい IPv6 プレフィックスが付与されたことは、ルーターの SYSLOG を監視し、以下
のログが出力された場合に検知しています。
( IPv6 アドレスが LAN1 に設定されている場合の例 )
Add IPv6 prefix xxxx:xxxx:xxxx:xxxx::/xx (Lifetime: xxxxxx) via LAN1 by DHCPv6
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 = "パスワード"
-- IPv6 アドレスを設定するインターフェース名
IPv6_IF = "LAN1"
-- IPv6 プレフィックスが追加されたときの
-- SYSLOG パターン
LOG_PTN = "Add%s+IPv6%s+prefix.+%(Lifetime%:%s+%d+%)%s+via%s+" .. IPv6_IF .. "%s+by"
-- リトライの間隔 ( s )
RETRY_INTVL = 10
-- リトライ回数
RETRY_NUM = 3
-- SYSLOG のレベル
LOG_LEVEL = "info"
-- SYSLOG のプレフィックス
LOG_PFX = "[v6plus]"
-- 通知失敗時のメッセージ
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?user=%s&pass=%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 ra-prefix@lan2::/64
・ipv6 lan1 rtadv send 1 o_flag=on
・ipv6 lan1 dhcp service server
| IPv4 アドレス | (xxx.xxx.xxx.0)/29 |
| LAN1 | IPv4 アドレス | (xxx.xxx.xxx.1)/29 |
| IPv6 アドレス | ( DHCPv6-PD で取得したプレフィックス )::( インターフェース ID )/64 | |
| LAN2 | IPv4 アドレス | なし |
| IPv6 アドレス | なし |
| IPv4 アドレス | (xxx.xxx.xxx.2-6)/29 |
| デフォルトゲートウェイ | (xxx.xxx.xxx.1) |
| DNS サーバー | (xxx.xxx.xxx.1) |
| UPD_SV | アップデートサーバーの URL |
| USERNAME | ユーザー名 |
| PASSWORD | パスワード |
【 経路設定 】
ip route default gateway tunnel 1
【 LAN 設定 】
ip lan1 address (xxx.xxx.xxx.1)/29
【 NGN との接続設定 】 ( ※ )
ngn type lan2 ntt
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 dhcp service client
【 BR に対する IPIP の設定 】
tunnel select 1
tunnel encapsulation ipip
tunnel endpoint address ( BR の IPv6 アドレス )
ip tunnel mtu 1460
tunnel enable 1
【 DNS の設定 】
dns host lan1
dns service fallback on
dns server dhcp lan2
dns server select 500000 dhcp lan2 any .
【 IPv4 フィルター関連設定 】
# LAN1 のグローバル IPv4 アドレスへのアクセスを許可する必要がある場合は、 in フィルターを適宜追加してください
tunnel select 1
ip tunnel secure filter in 200030 200039
ip tunnel secure filter out 200099 dynamic 200080 200082 200083 200084 200098 200099
tunnel enable 1
ip filter 200030 pass * (xxx.xxx.xxx.0)/29 icmp * *
ip filter 200039 reject *
ip filter 200099 pass * * * * *
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:/v6plus_address_notification.lua
embedded file v6plus_address_notification.lua <<EOF
--[[
■ v6プラス IPv6 アドレス通知用 サンプルスクリプト
Ver. 1.00
2021.03.16 ヤマハ株式会社
本スクリプトは、v6プラスの固定 IP サービス において、
指定したインターフェースに新しい IPv6 プレフィックスが付与されたとき、
アップデートサーバーに IPv6 アドレスの更新通知を行う Lua スクリプト
のサンプルです。
新しい IPv6 プレフィックスが付与されたことは、ルーターの SYSLOG を監視し、以下
のログが出力された場合に検知しています。
( IPv6 アドレスが LAN1 に設定されている場合の例 )
Add IPv6 prefix xxxx:xxxx:xxxx:xxxx::/xx (Lifetime: xxxxxx) via LAN1 by DHCPv6
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 = "パスワード"
-- IPv6 アドレスを設定するインターフェース名
IPv6_IF = "LAN1"
-- IPv6 プレフィックスが追加されたときの
-- SYSLOG パターン
LOG_PTN = "Add%s+IPv6%s+prefix.+%(Lifetime%:%s+%d+%)%s+via%s+" .. IPv6_IF .. "%s+by"
-- リトライの間隔 ( s )
RETRY_INTVL = 10
-- リトライ回数
RETRY_NUM = 3
-- SYSLOG のレベル
LOG_LEVEL = "info"
-- SYSLOG のプレフィックス
LOG_PFX = "[v6plus]"
-- 通知失敗時のメッセージ
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?user=%s&pass=%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
| IPv4 アドレス | (xxx.xxx.xxx.0)/29 |
| LAN1 | IPv4 アドレス | 192.168.100.1/24 |
| IPv6 アドレス | ( RA で取得したプレフィックス )::( インターフェース ID )/64 | |
| LAN2 | IPv4 アドレス | なし |
| IPv6 アドレス | なし | |
| LAN3 | IPv4 アドレス | (xxx.xxx.xxx.1)/29 |
| IPv6 アドレス | なし |
| IPv4 アドレス | (xxx.xxx.xxx.3-6)/29 |
| デフォルトゲートウェイ | (xxx.xxx.xxx.1) |
| DNS サーバー | (xxx.xxx.xxx.1) |
| UPD_SV | アップデートサーバーの URL |
| USERNAME | ユーザー名 |
| PASSWORD | パスワード |
【 経路設定 】
ip route default gateway tunnel 1
【 LAN 設定 】
ip lan1 address 192.168.100.1/24
ip lan3 address (xxx.xxx.xxx.1)/29
【 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 ( BR の IPv6 アドレス )
ip tunnel mtu 1460
ip tunnel nat descriptor 1
tunnel enable 1
【NAT設定】
nat descriptor type 1 masquerade
nat descriptor address outer 1 (xxx.xxx.xxx.2)
nat descriptor address inner 1 192.168.100.1-192.168.100.254
【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 フィルター関連設定 】
# LAN3 のグローバル IPv4 アドレスへのアクセスを許可する必要がある場合は、 in フィルターを適宜追加してください
tunnel select 1
ip tunnel secure filter in 200030 200031 200039
ip tunnel secure filter out 200099 dynamic 200080 200082 200083 200084 200098 200099
tunnel enable 1
ip filter 200030 pass * 192.168.100.0/24 icmp * *
ip filter 200031 pass * (xxx.xxx.xxx.0)/29 icmp * *
ip filter 200039 reject *
ip filter 200099 pass * * * * *
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:/v6plus_address_notification.lua
embedded file v6plus_address_notification.lua <<EOF
--[[
■ v6プラス IPv6 アドレス通知用 サンプルスクリプト
Ver. 1.00
2021.03.16 ヤマハ株式会社
本スクリプトは、v6プラスの固定 IP サービス において、
指定したインターフェースに新しい IPv6 プレフィックスが付与されたとき、
アップデートサーバーに IPv6 アドレスの更新通知を行う Lua スクリプト
のサンプルです。
新しい IPv6 プレフィックスが付与されたことは、ルーターの SYSLOG を監視し、以下
のログが出力された場合に検知しています。
( IPv6 アドレスが LAN1 に設定されている場合の例 )
Add IPv6 prefix xxxx:xxxx:xxxx:xxxx::/xx (Lifetime: xxxxxx) via LAN1 by DHCPv6
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 = "パスワード"
-- IPv6 アドレスを設定するインターフェース名
IPv6_IF = "LAN1"
-- IPv6 プレフィックスが追加されたときの
-- SYSLOG パターン
LOG_PTN = "Add%s+IPv6%s+prefix.+%(Lifetime%:%s+%d+%)%s+via%s+" .. IPv6_IF .. "%s+by"
-- リトライの間隔 ( s )
RETRY_INTVL = 10
-- リトライ回数
RETRY_NUM = 3
-- SYSLOG のレベル
LOG_LEVEL = "info"
-- SYSLOG のプレフィックス
LOG_PFX = "[v6plus]"
-- 通知失敗時のメッセージ
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?user=%s&pass=%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 ra-prefix@lan2::/64
・ipv6 lan1 rtadv send 1 o_flag=on
・ipv6 lan1 dhcp service server
| IPv4 アドレス | (xxx.xxx.xxx.0)/29 |
| LAN1 | IPv4 アドレス | 192.168.100.1/24 |
| IPv6 アドレス | ( DHCPv6-PD で取得したプレフィックス )::( インターフェース ID )/64 | |
| LAN2 | IPv4 アドレス | なし |
| IPv6 アドレス | なし | |
| LAN3 | IPv4 アドレス | (xxx.xxx.xxx.1)/29 |
| IPv6 アドレス | なし |
| IPv4 アドレス | (xxx.xxx.xxx.3-6)/29 |
| デフォルトゲートウェイ | (xxx.xxx.xxx.1) |
| DNS サーバー | (xxx.xxx.xxx.1) |
| UPD_SV | アップデートサーバーの URL |
| USERNAME | ユーザー名 |
| PASSWORD | パスワード |
【 経路設定 】
ip route default gateway tunnel 1
【 LAN 設定 】
ip lan1 address 192.168.100.1/24
ip lan3 address (xxx.xxx.xxx.1)/29
【 NGN との接続設定 】 ( ※ )
ngn type lan2 ntt
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 dhcp service client
【 BR に対する IPIP の設定 】
tunnel select 1
tunnel encapsulation ipip
tunnel endpoint address ( BR の IPv6 アドレス )
ip tunnel mtu 1460
ip tunnel nat descriptor 1
tunnel enable 1
【NAT設定】
nat descriptor type 1 masquerade
nat descriptor address outer 1 (xxx.xxx.xxx.2)
nat descriptor address inner 1 192.168.100.1-192.168.100.254
【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 フィルター関連設定 】
# LAN3 のグローバル IPv4 アドレスへのアクセスを許可する必要がある場合は、 in フィルターを適宜追加してください
tunnel select 1
ip tunnel secure filter in 200030 200031 200039
ip tunnel secure filter out 200099 dynamic 200080 200082 200083 200084 200098 200099
tunnel enable 1
ip filter 200030 pass * 192.168.100.0/24 icmp * *
ip filter 200031 pass * (xxx.xxx.xxx.0)/29 icmp * *
ip filter 200039 reject *
ip filter 200099 pass * * * * *
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:/v6plus_address_notification.lua
embedded file v6plus_address_notification.lua <<EOF
--[[
■ v6プラス IPv6 アドレス通知用 サンプルスクリプト
Ver. 1.00
2021.03.16 ヤマハ株式会社
本スクリプトは、v6プラスの固定 IP サービス において、
指定したインターフェースに新しい IPv6 プレフィックスが付与されたとき、
アップデートサーバーに IPv6 アドレスの更新通知を行う Lua スクリプト
のサンプルです。
新しい IPv6 プレフィックスが付与されたことは、ルーターの SYSLOG を監視し、以下
のログが出力された場合に検知しています。
( IPv6 アドレスが LAN1 に設定されている場合の例 )
Add IPv6 prefix xxxx:xxxx:xxxx:xxxx::/xx (Lifetime: xxxxxx) via LAN1 by DHCPv6
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 = "パスワード"
-- IPv6 アドレスを設定するインターフェース名
IPv6_IF = "LAN1"
-- IPv6 プレフィックスが追加されたときの
-- SYSLOG パターン
LOG_PTN = "Add%s+IPv6%s+prefix.+%(Lifetime%:%s+%d+%)%s+via%s+" .. IPv6_IF .. "%s+by"
-- リトライの間隔 ( s )
RETRY_INTVL = 10
-- リトライ回数
RETRY_NUM = 3
-- SYSLOG のレベル
LOG_LEVEL = "info"
-- SYSLOG のプレフィックス
LOG_PFX = "[v6plus]"
-- 通知失敗時のメッセージ
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?user=%s&pass=%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
| IPv4 アドレス | (xxx.xxx.xxx.0)/29 |
| LAN1 | IPv4 アドレス | 192.168.100.1/28 |
| IPv6 アドレス | ( RA で取得したプレフィックス )::( インターフェース ID )/64 | |
| LAN2 | IPv4 アドレス | なし |
| IPv6 アドレス | なし |
| IPv4 アドレス | 192.168.100.2-9/28 |
| デフォルトゲートウェイ | 192.168.100.1 |
| DNS サーバー | 192.168.100.1 |
| UPD_SV | アップデートサーバーの URL |
| USERNAME | ユーザー名 |
| PASSWORD | パスワード |
【 経路設定 】
ip route default gateway tunnel 1
【 LAN 設定 】
ip lan1 address 192.168.100.1/28
【 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 ( BR の IPv6 アドレス )
ip tunnel mtu 1460
tunnel enable 1
【 静的 NAT の設定 】
tunnel select 1
ip tunnel nat descriptor 1
tunnel enable 1
nat descriptor type 1 nat
nat descriptor address outer 1 (xxx.xxx.xxx.0-xxx.xxx.xxx.7)
nat descriptor static 1 1 (xxx.xxx.xxx.0)=192.168.100.2
nat descriptor static 1 2 (xxx.xxx.xxx.1)=192.168.100.3
nat descriptor static 1 3 (xxx.xxx.xxx.2)=192.168.100.4
nat descriptor static 1 4 (xxx.xxx.xxx.3)=192.168.100.5
nat descriptor static 1 5 (xxx.xxx.xxx.4)=192.168.100.6
nat descriptor static 1 6 (xxx.xxx.xxx.5)=192.168.100.7
nat descriptor static 1 7 (xxx.xxx.xxx.6)=192.168.100.8
nat descriptor static 1 8 (xxx.xxx.xxx.7)=192.168.100.9
【 DNS の設定 】
dns host lan1
dns service fallback on
dns server dhcp lan2
dns server select 500000 dhcp lan2 any .
【 IPv4 フィルター関連設定 】
tunnel select 1
ip tunnel secure filter in 200030 200039
ip tunnel secure filter out 200099 dynamic 200080 200082 200083 200084 200098 200099
tunnel enable 1
ip filter 200030 pass * 192.168.100.0/24 icmp * *
ip filter 200039 reject *
ip filter 200099 pass * * * * *
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:/v6plus_address_notification.lua
embedded file v6plus_address_notification.lua <<EOF
--[[
■ v6プラス IPv6 アドレス通知用 サンプルスクリプト
Ver. 1.00
2021.03.16 ヤマハ株式会社
本スクリプトは、v6プラスの固定 IP サービス において、
指定したインターフェースに新しい IPv6 プレフィックスが付与されたとき、
アップデートサーバーに IPv6 アドレスの更新通知を行う Lua スクリプト
のサンプルです。
新しい IPv6 プレフィックスが付与されたことは、ルーターの SYSLOG を監視し、以下
のログが出力された場合に検知しています。
( IPv6 アドレスが LAN1 に設定されている場合の例 )
Add IPv6 prefix xxxx:xxxx:xxxx:xxxx::/xx (Lifetime: xxxxxx) via LAN1 by DHCPv6
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 = "パスワード"
-- IPv6 アドレスを設定するインターフェース名
IPv6_IF = "LAN1"
-- IPv6 プレフィックスが追加されたときの
-- SYSLOG パターン
LOG_PTN = "Add%s+IPv6%s+prefix.+%(Lifetime%:%s+%d+%)%s+via%s+" .. IPv6_IF .. "%s+by"
-- リトライの間隔 ( s )
RETRY_INTVL = 10
-- リトライ回数
RETRY_NUM = 3
-- SYSLOG のレベル
LOG_LEVEL = "info"
-- SYSLOG のプレフィックス
LOG_PFX = "[v6plus]"
-- 通知失敗時のメッセージ
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?user=%s&pass=%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 ra-prefix@lan2::/64
・ipv6 lan1 rtadv send 1 o_flag=on
・ipv6 lan1 dhcp service server
| IPv4 アドレス | (xxx.xxx.xxx.0)/29 |
| LAN1 | IPv4 アドレス | 192.168.100.1/28 |
| IPv6 アドレス | ( DHCPv6-PD で取得したプレフィックス )::( インターフェース ID )/64 | |
| LAN2 | IPv4 アドレス | なし |
| IPv6 アドレス | なし |
| IPv4 アドレス | 192.168.100.2-9/28 |
| デフォルトゲートウェイ | 192.168.100.1 |
| DNS サーバー | 192.168.100.1 |
| UPD_SV | アップデートサーバーの URL |
| USERNAME | ユーザー名 |
| PASSWORD | パスワード |
【 経路設定 】
ip route default gateway tunnel 1
【 LAN 設定 】
ip lan1 address 192.168.100.1/28
【 NGN との接続設定 】 ( ※ )
ngn type lan2 ntt
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 dhcp service client
【 BR に対する IPIP の設定 】
tunnel select 1
tunnel encapsulation ipip
tunnel endpoint address ( BR の IPv6 アドレス )
ip tunnel mtu 1460
tunnel enable 1
【 静的 NAT の設定 】
tunnel select 1
ip tunnel nat descriptor 1
tunnel enable 1
nat descriptor type 1 nat
nat descriptor address outer 1 (xxx.xxx.xxx.0-xxx.xxx.xxx.7)
nat descriptor static 1 1 (xxx.xxx.xxx.0)=192.168.100.2
nat descriptor static 1 2 (xxx.xxx.xxx.1)=192.168.100.3
nat descriptor static 1 3 (xxx.xxx.xxx.2)=192.168.100.4
nat descriptor static 1 4 (xxx.xxx.xxx.3)=192.168.100.5
nat descriptor static 1 5 (xxx.xxx.xxx.4)=192.168.100.6
nat descriptor static 1 6 (xxx.xxx.xxx.5)=192.168.100.7
nat descriptor static 1 7 (xxx.xxx.xxx.6)=192.168.100.8
nat descriptor static 1 8 (xxx.xxx.xxx.7)=192.168.100.9
【 DNS の設定 】
dns host lan1
dns service fallback on
dns server dhcp lan2
dns server select 500000 dhcp lan2 any .
【 IPv4 フィルター関連設定 】
tunnel select 1
ip tunnel secure filter in 200030 200039
ip tunnel secure filter out 200099 dynamic 200080 200082 200083 200084 200098 200099
tunnel enable 1
ip filter 200030 pass * 192.168.100.0/24 icmp * *
ip filter 200039 reject *
ip filter 200099 pass * * * * *
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:/v6plus_address_notification.lua
embedded file v6plus_address_notification.lua <<EOF
--[[
■ v6プラス IPv6 アドレス通知用 サンプルスクリプト
Ver. 1.00
2021.03.16 ヤマハ株式会社
本スクリプトは、v6プラスの固定 IP サービス において、
指定したインターフェースに新しい IPv6 プレフィックスが付与されたとき、
アップデートサーバーに IPv6 アドレスの更新通知を行う Lua スクリプト
のサンプルです。
新しい IPv6 プレフィックスが付与されたことは、ルーターの SYSLOG を監視し、以下
のログが出力された場合に検知しています。
( IPv6 アドレスが LAN1 に設定されている場合の例 )
Add IPv6 prefix xxxx:xxxx:xxxx:xxxx::/xx (Lifetime: xxxxxx) via LAN1 by DHCPv6
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 = "パスワード"
-- IPv6 アドレスを設定するインターフェース名
IPv6_IF = "LAN1"
-- IPv6 プレフィックスが追加されたときの
-- SYSLOG パターン
LOG_PTN = "Add%s+IPv6%s+prefix.+%(Lifetime%:%s+%d+%)%s+via%s+" .. IPv6_IF .. "%s+by"
-- リトライの間隔 ( s )
RETRY_INTVL = 10
-- リトライ回数
RETRY_NUM = 3
-- SYSLOG のレベル
LOG_LEVEL = "info"
-- SYSLOG のプレフィックス
LOG_PFX = "[v6plus]"
-- 通知失敗時のメッセージ
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?user=%s&pass=%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