設定例集#65: ダイナミックDNSサービスを利用したホスト名(FQDN)によるフレッツ網内VPN接続(ルーティング構成)
本設定例では、ソフトイーサ社が提供する「OPEN IPv6 ダイナミック DNS for フレッツ・光ネクスト」サービスを利用して、フレッツ・光ネクスト網内のIPv6折り返し通信でGRE + IPsec VPNを構築し、拠点間をレイヤー3で接続する手順を説明します。
IPv6ネットワーク上にVPNを構築するには接続先VPNルーターのグローバルIPv6アドレスを指定する必要がありますが、ダイナミックDNSサービスを利用すれば、VPNの接続先をIPv6アドレスではなく、ダイナミックDNSサービスサイトに登録したホスト名(FQDN)で指定できるようになります。これにより、すべての拠点が動的IPv6アドレスの場合でも、VPNを構築できるようになります。
ルーターは起動時に自身のWAN側インターフェース情報(IPv6アドレス)をダイナミックDNSサーバーに登録します。そして、その後IPv6アドレスが変更されたときには、自動的に登録アドレスを更新します。これにより、DNSサーバーはつねにルーターのホスト名に対応する最新のIPv6アドレスを保持することができます。
なお、ここではルーターAを本製品とし、ルーターBは弊社AT-AR4050Sを想定しています。
構成

(本製品) |
(AR4050S) |
|
| WAN側物理インターフェース | eth1 | eth1 |
| WAN側(eth1)IPv6アドレス | 自動設定(SLAAC) | 自動設定(SLAAC) |
| LAN側(eth0/vlan1)IPアドレス | 192.168.10.1/24 | 192.168.20.1/24 |
| IKEバージョン | ||
| ローカルID | sample1.i.open.ad.jp | sample2.i.open.ad.jp |
| リモートID | sample2.i.open.ad.jp | sample1.i.open.ad.jp |
| 更新専用URL* | http://ddnsapi-v6.open.ad.jp/api/renew/?ABCDEFGHIJKLMNOPQR | http://ddnsapi-v6.open.ad.jp/api/renew/?RQPONMLKJIHGFEDCBA |
| ホスト名(FQDN) | sample1.i.open.ad.jp | sample2.i.open.ad.jp |
| * ルーターが取得したIPv6アドレスを「OPEN IPv6 ダイナミック DNS for フレッツ・光ネクスト」サービスに登録したホスト名(FQDN)と関連付けるには、「専用更新URL」を使用します。 * ルーターが使用するホスト名(FQDN)や専用更新URLは、あらかじめ取得してあるものとします。 |
||
[事前共有鍵]
- ルーターA・B間: secret
ダイナミックDNSサーバーへのIPv6アドレス登録(更新)までの流れ:
- ルーターA、Bは、ダイナミックDNSサーバーのIPv6アドレス情報を知るため、DHCPv6で取得したDNSサーバー宛に名前解決を行います。
- ダイナミックDNSクライアント機能により自身のIPv6アドレスをダイナミックDNSサーバーへ通知します。
IPsec通信開始までの流れ:
- 対向機器のLAN側IPアドレス宛ての通信が発生すると、ルーターのトンネルインターフェースに設定されている宛先FQDNアドレスの名前解決をするため、DHCPv6で取得したDNSサーバー宛に問い合わせを行います。
- 名前解決後、取得したIPv6アドレス情報でIPsecの接続を開始します。
障害 復旧時:
- ルーターA、Bで通信断が発生すると、IPsec DPDが動作しタイムアウト後にSAを削除します。
- ルーターA、BはダイナミックDNSクライアント機能により1分間隔で自身のIPv6アドレスをダイナミックDNSサーバーへ通知します。
- ルーターのトンネルインターフェースに設定されている宛先FQDNアドレスの名前解決をするため、DHCPv6で取得したDNSサーバー宛に問い合わせを行います。
- 名前解決後、取得したIPv6アドレス情報でIPsecの接続を開始します。
AT-NFV-APLの事前設定
本設定例は、あらかじめ AT-NFV-APL側で以下のような設定を行っていることを前提としています。使用するインターフェースの番号や数は適宜変更してかまいません。
事前設定の流れについては「AT-NFV-APL」/「準備」をご覧ください。

管理IPアドレス
詳細は「AT-NFV-APL」/「ネットワーク基本設定」をご覧ください。| br0 | 192.168.10.254/24 |
ブリッジ
詳細は「AT-NFV-APL」/「ネットワーク基本設定」をご覧ください。| eth1~eth9 | 1 | 1 |
| eth10 | ||
仮想インターフェース割り当て
vFirewallアプリケーションインスタンスの初期設定時には、下記のように仮想インターフェースを割り当てます。詳細は「AT-NFV-APL」/「AW+ vFirewall」をご覧ください。
インターフェース名 |
タイプ |
VLAN ID |
インターフェース |
|
| eth0 | Virtual | 1 | - | 192.168.10.1/24 |
| eth1 | Physical | - | eth10 | 未指定 |
ルーターA(本製品)の設定
- DNS問い合わせ機能を有効にします。これには、ip domain-lookupコマンドを使います。
ip domain-lookup
- ダイナミックDNSクライアント機能を有効にします。これには、ddns enableコマンドを使います。
ddns enable
- アップデートサーバーにIPv6アドレスの更新情報を通知するためのダイナミックDNS(DDNS)サービス固有設定を作成します。
これには、ddns-update-methodコマンドでDDNSアップデートメソッドモードに入り、update-url、update-interval、suppress-ipv4-updatesの各コマンドで具体的なパラメーターを設定します。
ダイナミックDNSクライアント機能の詳細は「IP付加機能」/「ダイナミックDNSクライアント」をご覧ください。
※クエリーパラメーターの開始を表す「?」をCLIから入力するには、Ctrl/Vキーを入力してから?を入力してください。単に?を入力するとCLIヘルプが表示されてしまうためご注意ください。
ddns-update-method openddns update-url http://ddnsapi-v6.open.ad.jp/api/renew/?ABCDEFGHIJKLMNOPQR update-interval 1 suppress-ipv4-updates
- WANポートeth1でIPv6のステートレスアドレス自動設定(SLAAC)を有効にします。これにはipv6 enableコマンドを使います。
この設定により、ルーターから受信したRAのプレフィックス情報にもとづいてeth1のIPv6アドレスが自動設定されます。
また、DNSサーバーアドレスもDHCPv6サーバーから自動取得します。
IPv6インターフェースの詳細は「IPv6」/「IPv6インターフェース」をご覧ください。
さらにアップデートサーバーへのアドレス更新通知のためダイナミックDNSクライアント機能を有効にします。これには、ipv6 ddns-update-methodコマンドを使います。
interface eth1 ipv6 enable ipv6 ddns-update-method openddns
- LAN側インターフェースeth0のIPアドレスは、AT-NFV-APLの事前設定時に設定済みのため、次のコマンドを手で入力する必要はありません。
interface eth0 ip address 192.168.10.1/24
- IPv6パケット転送機能を有効化します。これにはipv6 forwardingコマンドを使います。
ipv6 forwarding
- ファイアウォールやNATのルール作成時に使うエンティティー(通信主体)を定義します。
エンティティー定義の詳細は「UTM」/「エンティティー定義」をご覧ください。
内部ネットワークを表すゾーン「private_ipv4」を作成します。
これには、zone、network、ip subnetの各コマンドを使います。
zone private_ipv4 network lan ip subnet 172.16.0.0/30 ip subnet 192.168.0.0/16
- 外部ネットワークを表すゾーン「external_ipv6」を作成します。
前記コマンドに加え、ここではipv6 subnet、host、ipv6 addressの各コマンドも使います。
zone external_ipv6 network wan ipv6 subnet ::/0 interface eth1 host eth1 ipv6 address dynamic interface eth1
- ファイアウォールのルール作成時に通信内容を指定するために使う「アプリケーション」を定義します。
これには、application、protocol、dportの各コマンドを使います。
アプリケーション定義の詳細は「UTM」/「アプリケーション定義」をご覧ください。
DHCPv6パケットを表すカスタムアプリケーション「dhcpv6」を定義します。
application dhcpv6 protocol udp dport 546 to 547
- IPsecのESPパケットを表すカスタムアプリケーション「esp」を定義します。
application esp protocol 50
- GREパケットを表すカスタムアプリケーション「gre」を定義します。
application gre protocol 47
- ICMPv6パケットを表すカスタムアプリケーション「icmpv6」を定義します。
application icmpv6 protocol ipv6-icmp
- ISAKMPパケットを表すカスタムアプリケーション「isakmp」を定義します。
application isakmp protocol udp dport 500
- 外部からの通信を遮断しつつ、内部からの通信は自由に行えるようにするファイアウォール機能の設定を行います。
これには、firewall、rule、protectの各コマンドを使います。
・rule 10 - 本製品のWAN側インターフェースからのIPv6通信を許可します
・rule 20 - ISAKMPパケットを許可します
・rule 30 - IPsec(ESP)パケットを許可します
・rule 40 - GREパケットを許可します
・rule 50 - DHCPv6パケットを許可します
・rule 60 - ICMPv6パケットを許可します
・rule 100 - 内部から内部へのIPv4通信を許可します
ファイアウォールの詳細は「UTM」/「ファイアウォール」をご覧ください。
firewall rule 10 permit any from external_ipv6.wan.eth1 to external_ipv6 rule 20 permit isakmp from external_ipv6 to external_ipv6.wan.eth1 rule 30 permit esp from external_ipv6 to external_ipv6.wan.eth1 rule 40 permit gre from external_ipv6 to external_ipv6.wan.eth1 rule 50 permit dhcpv6 from external_ipv6 to external_ipv6.wan.eth1 rule 60 permit icmpv6 from external_ipv6 to external_ipv6.wan.eth1 rule 100 permit any from private_ipv4 to private_ipv4 protect
- 対向ルーターとの間で使用するISAKMPの事前共有鍵を設定します。これにはcrypto isakmp keyコマンドを使います。
crypto isakmp key secret hostname sample2.i.open.ad.jp
- GREトンネルインターフェースtunnel0を作成します。
トンネルインターフェースはinterfaceコマンドで作成し、以下の設定を行います。
・トンネルインターフェースから送信するデリバリーパケットの始点(自装置)アドレス(tunnel source)
・トンネルインターフェースから送信するデリバリーパケットの終点(対向装置)アドレス(tunnel destination)
・トンネルインターフェースにおけるISAKMP 自装置ID(ローカルID)(tunnel local name)
・トンネルインターフェースにおけるISAKMP 対向装置ID(リモートID)(tunnel remote name)
・トンネルインターフェースに対するIPsec保護の適用(tunnel protection ipsec)
・トンネリング方式(tunnel mode gre)
・トンネルインターフェースのIPアドレス(ip address)
・トンネルインターフェースにおけるMSS書き換え設定(ip tcp adjust-mss)
トンネルインターフェースの詳細は「VPN」/「トンネルインターフェース」を、GREの詳細は「VPN」/「GRE」を、IPsecの詳細は「VPN」/「IPsec」をご覧ください。
interface tunnel0 tunnel source eth1 tunnel destination sample2.i.open.ad.jp tunnel local name sample1.i.open.ad.jp tunnel remote name sample2.i.open.ad.jp tunnel protection ipsec tunnel mode gre ipv6 ip address 172.16.0.1/30 ip tcp adjust-mss 1366
- ルーターBのLAN側(192.168.20.0/24)への経路を設定します。これにはip routeコマンドを使います。
IP経路設定の詳細は「IP」/「経路制御」をご覧ください。
ip route 192.168.20.0/24 tunnel0
- 以上で設定は完了です。
end
ルーターB(AR4050S)の設定
- LANポートにおいて初期状態で有効化されているスパニングツリープロトコル(RSTP)を無効化します。これにはspanning-tree enableコマンドをno形式で実行します。
スパニングツリープロトコルの詳細は「L2スイッチング」/「スパニングツリープロトコル」をご覧ください。
no spanning-tree rstp enable
- DNS問い合わせ機能を有効にします。これには、ip domain-lookupコマンドを使います。
ip domain-lookup
- ダイナミックDNSクライアント機能を有効にします。これには、ddns enableコマンドを使います。
ddns enable
- アップデートサーバーにIPv6アドレスの更新情報を通知するためのダイナミックDNS(DDNS)サービス固有設定を作成します。
これには、ddns-update-methodコマンドでDDNSアップデートメソッドモードに入り、update-url、update-interval、suppress-ipv4-updatesの各コマンドで具体的なパラメーターを設定します。
ダイナミックDNSクライアント機能の詳細は「IP付加機能」/「ダイナミックDNSクライアント」をご覧ください。
※クエリーパラメーターの開始を表す「?」をCLIから入力するには、Ctrl/Vキーを入力してから?を入力してください。単に?を入力するとCLIヘルプが表示されてしまうためご注意ください。
ddns-update-method openddns update-url http://ddnsapi-v6.open.ad.jp/api/renew/?RQPONMLKJIHGFEDCBA update-interval 1 suppress-ipv4-updates
- WANポートeth1でIPv6のステートレスアドレス自動設定(SLAAC)を有効にします。これにはipv6 enableコマンドを使います。
この設定により、ルーターから受信したRAのプレフィックス情報にもとづいてeth1のIPv6アドレスが自動設定されます。
また、DNSサーバーアドレスもDHCPv6サーバーから自動取得します。
IPv6インターフェースの詳細は「IPv6」/「IPv6インターフェース」をご覧ください。
さらにアップデートサーバーへのアドレス更新通知のためダイナミックDNSクライアント機能を有効にします。これには、ipv6 ddns-update-methodコマンドを使います。
interface eth1 ipv6 enable ipv6 ddns-update-method openddns
- LAN側インターフェースvlan1にIPアドレスを設定します。これにはip addressコマンドを使います。
IPインターフェースの詳細は「IP」/「IPインターフェース」をご覧ください。
interface vlan1 ip address 192.168.20.1/24
- IPv6パケット転送機能を有効化します。これにはipv6 forwardingコマンドを使います。
ipv6 forwarding
- ファイアウォールやNATのルール作成時に使うエンティティー(通信主体)を定義します。
エンティティー定義の詳細は「UTM」/「エンティティー定義」をご覧ください。
内部ネットワークを表すゾーン「private_ipv4」を作成します。
これには、zone、network、ip subnetの各コマンドを使います。
zone private_ipv4 network lan ip subnet 172.16.0.0/24 ip subnet 192.168.0.0/16
- 外部ネットワークを表すゾーン「external_ipv6」を作成します。
前記コマンドに加え、ここではipv6 subnet、host、ipv6 addressの各コマンドも使います。
zone external_ipv6 network wan ipv6 subnet ::/0 interface eth1 host eth1 ipv6 address dynamic interface eth1
- ファイアウォールのルール作成時に通信内容を指定するために使う「アプリケーション」を定義します。
これには、application、protocol、dportの各コマンドを使います。
アプリケーション定義の詳細は「UTM」/「アプリケーション定義」をご覧ください。
DHCPv6パケットを表すカスタムアプリケーション「dhcpv6」を定義します。
application dhcpv6 protocol udp dport 546 to 547
- IPsecのESPパケットを表すカスタムアプリケーション「esp」を定義します。
application esp protocol 50
- GREパケットを表すカスタムアプリケーション「gre」を定義します。
application gre protocol 47
- ICMPv6パケットを表すカスタムアプリケーション「icmpv6」を定義します。
application icmpv6 protocol ipv6-icmp
- ISAKMPパケットを表すカスタムアプリケーション「isakmp」を定義します。
application isakmp protocol udp dport 500
- 外部からの通信を遮断しつつ、内部からの通信は自由に行えるようにするファイアウォール機能の設定を行います。
これには、firewall、rule、protectの各コマンドを使います。
・rule 10 - 本製品のWAN側インターフェースからのIPv6通信を許可します
・rule 20 - ISAKMPパケットを許可します
・rule 30 - IPsec(ESP)パケットを許可します
・rule 40 - GREパケットを許可します
・rule 50 - DHCPv6パケットを許可します
・rule 60 - ICMPv6パケットを許可します
・rule 100 - 内部から内部へのIPv4通信を許可します
ファイアウォールの詳細は「UTM」/「ファイアウォール」をご覧ください。
firewall rule 10 permit any from external_ipv6.wan.eth1 to external_ipv6 rule 20 permit isakmp from external_ipv6 to external_ipv6.wan.eth1 rule 30 permit esp from external_ipv6 to external_ipv6.wan.eth1 rule 40 permit gre from external_ipv6 to external_ipv6.wan.eth1 rule 50 permit dhcpv6 from external_ipv6 to external_ipv6.wan.eth1 rule 60 permit icmpv6 from external_ipv6 to external_ipv6.wan.eth1 rule 100 permit any from private_ipv4 to private_ipv4 protect
- 対向ルーターとの間で使用するISAKMPの事前共有鍵を設定します。これにはcrypto isakmp keyコマンドを使います。
crypto isakmp key secret hostname sample1.i.open.ad.jp
- GREトンネルインターフェースtunnel0を作成します。
トンネルインターフェースはinterfaceコマンドで作成し、以下の設定を行います。
・トンネルインターフェースから送信するデリバリーパケットの始点(自装置)アドレス(tunnel source)
・トンネルインターフェースから送信するデリバリーパケットの終点(対向装置)アドレス(tunnel destination)
・トンネルインターフェースにおけるISAKMP 自装置ID(ローカルID)(tunnel local name)
・トンネルインターフェースにおけるISAKMP 対向装置ID(リモートID)(tunnel remote name)
・トンネルインターフェースに対するIPsec保護の適用(tunnel protection ipsec)
・トンネリング方式(tunnel mode gre)
・トンネルインターフェースのIPアドレス(ip address)
・トンネルインターフェースにおけるMSS書き換え設定(ip tcp adjust-mss)
トンネルインターフェースの詳細は「VPN」/「トンネルインターフェース」を、GREの詳細は「VPN」/「GRE」を、IPsecの詳細は「VPN」/「IPsec」をご覧ください。
interface tunnel0 tunnel source eth1 tunnel destination sample1.i.open.ad.jp tunnel local name sample2.i.open.ad.jp tunnel remote name sample1.i.open.ad.jp tunnel protection ipsec tunnel mode gre ipv6 ip address 172.16.0.2/30 ip tcp adjust-mss 1366
- ルーターAのLAN側(192.168.10.0/24)への経路を設定します。これにはip routeコマンドを使います。
IP経路設定の詳細は「IP」/「経路制御」をご覧ください。
ip route 192.168.10.0/24 tunnel0
- 以上で設定は完了です。
end
設定の保存
設定が完了したら、現在の設定内容を起動時コンフィグとして保存してください。これには、copyコマンドを「copy running-config startup-config」の書式で実行します。awplus# copy running-config startup-config
Building configuration...
[OK]
また、write fileコマンド、write memoryコマンドでも同じことができます。
awplus# write memory
Building configuration...
[OK]
その他、設定保存の詳細については「運用・管理」/「コンフィグレーション」をご覧ください。
ファイアウォールログについて
ファイアウォールのログをとるには、次のコマンド(log(filter))を実行します。awplus(config)# log buffered level informational facility local5
記録されたログを見るには、次のコマンド(show log)を実行します。ここでは、ファイアウォールが出力したログメッセージだけを表示させています。
awplus# show log | include Firewall
ルーターA(本製品)のコンフィグ
! ip domain-lookup ! ddns enable ! ddns-update-method openddns update-url http://ddnsapi-v6.open.ad.jp/api/renew/?ABCDEFGHIJKLMNOPQR update-interval 1 suppress-ipv4-updates ! interface eth1 ipv6 enable ipv6 ddns-update-method openddns ! interface eth0 ip address 192.168.10.1/24 ! ipv6 forwarding ! zone private_ipv4 network lan ip subnet 172.16.0.0/30 ip subnet 192.168.0.0/16 ! zone external_ipv6 network wan ipv6 subnet ::/0 interface eth1 host eth1 ipv6 address dynamic interface eth1 ! application dhcpv6 protocol udp dport 546 to 547 ! application esp protocol 50 ! application gre protocol 47 ! application icmpv6 protocol ipv6-icmp ! application isakmp protocol udp dport 500 ! firewall rule 10 permit any from external_ipv6.wan.eth1 to external_ipv6 rule 20 permit isakmp from external_ipv6 to external_ipv6.wan.eth1 rule 30 permit esp from external_ipv6 to external_ipv6.wan.eth1 rule 40 permit gre from external_ipv6 to external_ipv6.wan.eth1 rule 50 permit dhcpv6 from external_ipv6 to external_ipv6.wan.eth1 rule 60 permit icmpv6 from external_ipv6 to external_ipv6.wan.eth1 rule 100 permit any from private_ipv4 to private_ipv4 protect ! crypto isakmp key secret hostname sample2.i.open.ad.jp ! interface tunnel0 tunnel source eth1 tunnel destination sample2.i.open.ad.jp tunnel local name sample1.i.open.ad.jp tunnel remote name sample2.i.open.ad.jp tunnel protection ipsec tunnel mode gre ipv6 ip address 172.16.0.1/30 ip tcp adjust-mss 1366 ! ip route 192.168.20.0/24 tunnel0 ! end
ルーターB(AR4050S)のコンフィグ
! no spanning-tree rstp enable ! ip domain-lookup ! ddns enable ! ddns-update-method openddns update-url http://ddnsapi-v6.open.ad.jp/api/renew/?RQPONMLKJIHGFEDCBA update-interval 1 suppress-ipv4-updates ! interface eth1 ipv6 enable ipv6 ddns-update-method openddns ! interface vlan1 ip address 192.168.20.1/24 ! ipv6 forwarding ! zone private_ipv4 network lan ip subnet 172.16.0.0/24 ip subnet 192.168.0.0/16 ! zone external_ipv6 network wan ipv6 subnet ::/0 interface eth1 host eth1 ipv6 address dynamic interface eth1 ! application dhcpv6 protocol udp dport 546 to 547 ! application esp protocol 50 ! application gre protocol 47 ! application icmpv6 protocol ipv6-icmp ! application isakmp protocol udp dport 500 ! firewall rule 10 permit any from external_ipv6.wan.eth1 to external_ipv6 rule 20 permit isakmp from external_ipv6 to external_ipv6.wan.eth1 rule 30 permit esp from external_ipv6 to external_ipv6.wan.eth1 rule 40 permit gre from external_ipv6 to external_ipv6.wan.eth1 rule 50 permit dhcpv6 from external_ipv6 to external_ipv6.wan.eth1 rule 60 permit icmpv6 from external_ipv6 to external_ipv6.wan.eth1 rule 100 permit any from private_ipv4 to private_ipv4 protect ! crypto isakmp key secret hostname sample1.i.open.ad.jp ! interface tunnel0 tunnel source eth1 tunnel destination sample1.i.open.ad.jp tunnel local name sample2.i.open.ad.jp tunnel remote name sample1.i.open.ad.jp tunnel protection ipsec tunnel mode gre ipv6 ip address 172.16.0.2/30 ip tcp adjust-mss 1366 ! ip route 192.168.10.0/24 tunnel0 ! end