$Date: 2023/10/27 11:36:11 $
株式会社 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 サービス | |
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 以降 |
「v6プラス」のサービス利用下における IPv4 の VPN 接続は、以下の機種およびファームウェアで動作可能です。
機種 | ファームウェア | |||
---|---|---|---|---|
IPv6/IPv4 インターネットサービス |
固定 IP サービス | |||
IPsec ( イニシエーター ) |
IPsec | L2TP/IPsec | L2TPv3/IPsec L2TPv3 | |
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