設定例集#94: ”クラウドゲートウェイ アプリパッケージ” によるクラウドサービスへの接続(ひかり電話契約なし)
NTT東日本が提供する「クラウドゲートウェイ アプリパッケージ」を利用して、Amazon Web Services(以下 AWS)と接続し、IPv4ネットワークを使用した通信を可能とする設定例です。
構成

| WAN側物理インターフェース | eth1 |
| WAN側(eth1)IPv6アドレス | リンクローカルアドレス |
| LAN側(vlan1)IPv6アドレス | ルーター通知(RA)で取得したIPv6プレフィックスにもとづいて設定 |
| ピアIPv6アドレス(1本目) | 2001:db8:3c:10::1 |
| ピアIPv6アドレス(2本目) | 2001:db8:3c:10::2 |
| AmazonルータのピアIP(1本目) | 172.30.0.1/24 |
| AmazonルータのピアIP(2本目) | 172.31.0.1/24 |
| AWS VPC IPv4 CIDR | 192.168.100.0/24 |
ここでは、次の方針で設定を行います。
- ルーターのWAN側インターフェース(eth1)で受信したルーター通知(RA)パケットのIPv6プレフィックスにもとづいてLAN側インターフェース(vlan1)にIPv6アドレスを設定します。また、受信したRAの送信元IPv6アドレスをIPv6のデフォルトゲートウェイとして登録します。WAN側インターフェースではリンクローカルアドレスを使用します。
- DHCPv6でDNSサーバーアドレスを取得します。
- NDプロキシー機能により、WAN側からLAN側端末へのNS(Neighbor Solicitation)パケットに対し、本製品が自身のMACアドレスでNA(Neighbor Advertisement)を代理応答します。
- LAN側に接続されたコンピューターは、ルーターのLAN側インターフェースから送信されるRAによってIPv6アドレス、デフォルトゲートウェイ、DNSサーバーアドレスを自動設定します。
- ルーターのLAN側インターフェースでDHCPv4サーバーを動作させ、LAN側コンピューターに対してIPv4アドレスをリースするほか、デフォルトゲートウェイ、DNSサーバーアドレスとしてルーター自身のIPv4アドレスを通知します。
- ルーターのDNSリレー機能をオンにして、LAN側コンピューターからのDNSリクエストをDNSサーバーに転送します。
- AWSとルーター間を2本のDS-Liteトンネルで接続します。
- DS-Liteトンネルを経由してAWS VPC内のネットワークと通信します。
設定開始前に
自動設定の確認と削除
本設定例に掲載されているコマンドは、設定がまったく行われていない本製品の初期状態(スタートアップコンフィグなしで起動した状態)から入力することを前提としています。そのため、通常は erase startup-config を実行し、スタートアップコンフィグが存在しない状態で起動してから、設定を始めてください。
ただし、本製品はスタートアップコンフィグなしで起動した場合でも、特定の条件を満たすと自動的な設定を行うことがあるため、その場合は設定例にしたがってコマンドを入力しても、コマンドがエラーになったり、全体として意図した動作にならない可能性があります。
これを避けるため、設定開始にあたっては次のいずれかの方法をとることをおすすめします。
- ネットワークケーブルを接続せずに起動する。
起動時に自動設定が実行されるための条件の一つに、特定インターフェースのリンクアップがあります。
ネットワークケーブルを接続しない状態で起動することにより、自動設定の適用を回避できます。
- 自動設定を手動で削除してから設定を行う。
前記の方法を採用できず自動設定が適用されてしまった場合は、「自動的な設定内容の削除」にしたがって、これらを手動で削除してから設定を開始してください。
システム時刻の設定
ログなどの記録日時を正確に保ち、各種機能を適切に動作させるため、システム時刻は正確にあわせて運用することをおすすめします。ご使用の環境にあわせ、次のいずれかの方法でシステム時刻を設定してください。
- 手動で設定する方法 - 「運用・管理」/「システム」
- NTPで自動設定する方法 - 「運用・管理」/「NTP」
ルーターの設定
- LANポートにおいて初期状態で有効化されているスパニングツリープロトコル(RSTP)を無効化します。これにはspanning-tree enableコマンドをno形式で実行します。
スパニングツリープロトコルの詳細は「L2スイッチング」/「スパニングツリープロトコル」をご覧ください。
no spanning-tree rstp enable
- DNS問い合わせ機能を有効にします。これには、ip domain-lookupコマンドを使います。
ip domain-lookup
- アップデートサーバーにIPv6アドレスの更新情報を通知するためのダイナミックDNS(DDNS)サービス固有設定を作成します。
これには、ddns-update-methodコマンドでDDNSアップデートメソッドモードに入り、update-url、password、suppress-ipv4-updates、accept-invalid-sslcertの各コマンドで具体的なパラメーターを設定します。
ダイナミックDNSクライアント機能の詳細は「IP付加機能」/「ダイナミックDNSクライアント」をご覧ください。
※クエリーパラメーターの開始を表す「?」をCLIから入力するには、Ctrl/Vキーを入力してから?を入力してください。単に?を入力するとCLIヘルプが表示されてしまうためご注意ください。
※以下はNTT東日本エリアから接続する場合の例です。NTT西日本エリアから接続する場合は、update-urlコマンドで次のURLを指定してください。
https://auth-west.cloudgw.e-ntt.cast.flets-west.jp/regist.php?<PASSWORD>
ddns-update-method V6UPDATE update-url https://auth-east.cloudgw.e-ntt.cast.flets-east.jp/regist.php?<PASSWORD> password passwdA update-interval 10 suppress-ipv4-updates accept-invalid-sslcert
- ダイナミックDNSクライアント機能を有効にします。これには、ddns enableコマンドを使います。
ddns enable
- WANポートeth1にリンクローカルアドレスを自動設定し、RAを受信できるようにします。ただし本例では、実際にRAにもとづくアドレスを設定するのはLAN側インターフェースであるため、初期設定で有効になっているアドレス自動設定(SLAAC)は無効化します。また、WANポートで受信したNSに代理応答するためLAN側インターフェース(vlan1)へのNDプロキシー機能を有効にします。これには、ipv6 enable、ipv6 nd accept-ra-pinfo、ipv6 nd proxy interfaceコマンドを使います。
interface eth1 ipv6 enable no ipv6 nd accept-ra-pinfo ipv6 nd proxy interface vlan1
- LAN側インターフェースvlan1に対し、IPv4アドレスを固定設定します。また、WANポートで受信したRAで通知されたプレフィックスとISPに指定されたインターフェースIDを組み合わせたIPv6アドレスを自動設定するよう設定します。これにはip address、ipv6 address autoconfigコマンドを使います。
また、IPv6設定情報をLAN側クライアントに通知するため、RAの送信を有効にします。これには、ipv6 nd suppress-ra、ipv6 nd dns-serverコマンドを使います。
さらにアップデートサーバーへのアドレス更新通知のためダイナミックDNSクライアント機能を有効にします。これには、ipv6 ddns-update-methodコマンドを使います。
IPv6インターフェースの詳細は「IPv6」/「IPv6インターフェース」をご覧ください。また、DHCPv6サーバーについては「IP付加機能」/「DHCPv6サーバー」をご覧ください。
interface vlan1 ipv6 ddns-update-method V6UPDATE ip address 192.168.10.1/24 ipv6 address autoconfig eth1 no ipv6 nd suppress-ra ipv6 nd dns-server vlan1
- IPv6パケット転送機能を有効化します。これにはipv6 forwardingコマンドを使います。
ipv6 forwarding
- LAN側ネットワークに接続されているコンピューターのためにDHCPサーバー機能の設定を行います。
DHCPサーバー機能の詳細は「IP付加機能」/「DHCPサーバー」をご覧ください。
これには、ip dhcp poolコマンドでDHCPプールを作成し、以下の情報を設定します。
・サブネット(network)
・リースするIPアドレス(range)
・デフォルトゲートウェイ(default-router)
・DNSサーバーアドレス(dns-server)
・リース時間(lease)
ip dhcp pool pool10 network 192.168.10.0 255.255.255.0 range 192.168.10.100 192.168.10.131 dns-server 192.168.10.1 default-router 192.168.10.1 lease 0 2 0
- DHCPサーバーを有効化します。これには、service dhcp-serverコマンドを使います。
service dhcp-server
- DS-Liteトンネルインターフェースtunnel0を作成します。
DS-Liteの詳細は「IPv6」/「DS-Lite」をご覧ください。
・トンネルインターフェースから送信するデリバリーパケットの始点(自装置)アドレス(tunnel source)
・トンネルインターフェースから送信するデリバリーパケットの終点(対向装置)アドレス(tunnel destination)
・トンネリング方式(tunnel mode ds-lite)
・IPv4アドレス(ip address)
・MSS書き換え(ip tcp adjust-mss)
interface tunnel0 tunnel source vlan1 tunnel destination 2001:db8:3c:10::1 tunnel mode ds-lite ip address 192.0.0.2/29 ip tcp adjust-mss pmtu
- 同様にしてDS-Liteトンネルインターフェースtunnel1を作成します。
interface tunnel1 tunnel source vlan1 tunnel destination 2001:db8:3c:10::2 tunnel mode ds-lite ip address 192.0.2.2/29 ip tcp adjust-mss pmtu
- IPの経路情報をスタティックに設定します。これにはip routeコマンドを使います。
・ip route 172.30.0.0/24 tunnel0 - ピア (1本目)との接続性確認用
・ip route 172.31.0.0/24 tunnel1 - ピア (2本目)との接続性確認用
・ip route 192.168.100.0/24 tunnel1 10 - ピア (2本目)経由のAWS VPC宛て経路
IP経路設定の詳細は「IP」/「経路制御」をご覧ください。
ip route 172.30.0.0/24 tunnel0 ip route 172.31.0.0/24 tunnel1 ip route 192.168.100.0/24 tunnel1 10
- トンネルインターフェース tunnel0 経由でピア (1本目)への接続性を監視するPingポーリング「1」を作成します。
これには、ping-poll、ip、source-ip、normal-interval、critical-interval、up-count、fail-count、sample-sizeの各コマンドを使います。
Pingポーリングの詳細は「IP付加機能」/「Pingポーリング」をご覧ください。
ping-poll 1 ip 172.30.0.1 source-ip 192.168.10.1 normal-interval 20 critical-interval 20 up-count 1 fail-count 3 sample-size 3
- 同様に、トンネルインターフェース tunnel1 経由でピア (2本目)への接続性を監視するPingポーリング「2」を作成します。
ここでは、前記コマンドに加え、activeコマンドも使用しています。
ping-poll 2 ip 172.31.0.1 source-ip 192.168.10.1 normal-interval 20 critical-interval 20 up-count 1 fail-count 3 sample-size 3 active
- Pingポーリングトリガー、定期実行トリガー、再起動トリガーを作成します。
これには、trigger、type ping-poll、type periodic、type reboot、scriptの各コマンドを使います。
・trigger 1 - tunnel0 経由でのピア (1本目)への接続性が失われた場合に、ピア (1本目)経由のAWS VPC宛て経路を削除し(tunnel0_down.scp)、ピア (2本目)への接続性を監視するPingポーリング「2」を有効化(act_ping-poll_2.scp)。さらに、trigger 5を有効化して、tunnel0の自動復旧を試みる(act_tri.scp)
・trigger 2 - tunnel0 経由でのピア (1本目)への接続性が回復した場合に、ピア (1本目)経由のAWS VPC宛て経路を追加し(tunnel0_up.scp)、trigger 5を無効化して、tunnel0の自動復旧を停止(dis_tri.scp)。さらに、ピア (2本目)への接続性を監視するPingポーリング「2」を無効化(dis_ping-poll_2.scp)
・trigger 3 - tunnel1 経由でのピア (2本目)への接続性が失われた場合に、trigger 5を有効化して、tunnel0の自動復旧を試みる(act_tri.scp)
・trigger 4 - tunnel1 経由でのピア (2本目)への接続性が回復した場合に、trigger 5を無効化して、tunnel0の自動復旧を停止する(dis_tri.scp)
・trigger 5 - 10分おきにvlan1をダウン・アップさせることで、tunnel0の自動復旧を試みる(shut_noshut.scp)
・trigger 6 - ルーター起動時にスクリプトを自動実行することで、起動直後のトリガーの状態がいつも同じになることを保証する
トリガースクリプトの具体的内容は「トリガースクリプト」を、トリガーの詳細は「運用・管理」/「トリガー」をご覧ください。
trigger 1 type ping-poll 1 down script 1 tunnel0_down.scp script 2 act_ping-poll_2.scp script 3 act_tri.scp trigger 2 type ping-poll 1 up script 1 tunnel0_up.scp script 2 dis_tri.scp script 3 dis_ping-poll_2.scp trigger 3 type ping-poll 2 down script 1 act_tri.scp trigger 4 type ping-poll 2 up script 1 dis_tri.scp trigger 5 type periodic 10 script 1 shut_noshut.scp trigger 6 type reboot script 1 tunnel0_down.scp script 2 act_ping-poll_2.scp script 3 act_tri.scp script 4 dis_act_ping-poll_1.scp
- ファイアウォールのルール作成時に使うエンティティー(通信主体)を定義します。
エンティティー定義の詳細は「UTM」/「エンティティー定義」をご覧ください。
IPv4の内部ネットワークを表すゾーン「ipv4-internal」を作成します。
これには、zone、network、ip subnetの各コマンドを使います。
zone ipv4-internal network AWS ip subnet 172.30.0.0/24 ip subnet 172.31.0.0/24 ip subnet 192.168.100.0/24 network lan ip subnet 192.0.0.0/29 ip subnet 192.0.2.0/29 ip subnet 192.168.10.0/24
- IPv6の内部ネットワークを表すゾーン「ipv6-internal」を作成します。
前記コマンドに加え、ここではipv6 subnet、host、ipv6 addressの各コマンドも使います。
zone ipv6-internal network lan ipv6 subnet ::/0 interface vlan1 host vlan1 ipv6 address dynamic interface vlan1
- IPv6インターネットを表すゾーン「ipv6-internet」を作成します。
zone ipv6-internet network wan ipv6 subnet ::/0 interface eth1 host Cloud_GW ipv6 address 2001:db8:3c:10::1 ipv6 address 2001:db8:3c:10::2 host eth1 ipv6 address dynamic interface eth1
- ファイアウォールのルール作成時に通信内容を指定するために使う「アプリケーション」を定義します。
これには、application、protocol、dportの各コマンドを使います。
アプリケーション定義の詳細は「UTM」/「アプリケーション定義」をご覧ください。
DHCPv6パケットを表すカスタムアプリケーション「dhcpv6」を定義します。
application dhcpv6 protocol udp dport 546 to 547
- ICMPv6パケットを表すカスタムアプリケーション「icmpv6」を定義します。
application icmpv6 protocol ipv6-icmp
- IPIPパケットを表すカスタムアプリケーション「ipip」を定義します。
application ipip protocol 4
- 外部からの通信を遮断しつつ、内部からの通信は自由に行えるようにするファイアウォール機能の設定を行います。
これには、firewall、rule、protectの各コマンドを使います。
・rule 10 - 内部から内部へのIPv4通信を許可します(ここでは本製品・端末間の通信)
・rule 100 - 内部から内部へのIPv6通信を許可します(ここでは本製品・端末間の通信)
・rule 110 - 内部から外部へのIPv6通信を許可します
・rule 120 - 本製品(LAN側インターフェースに設定したアドレス)から外部へのIPv6通信を許可します
・rule 130 - 外部から本製品(LAN側インターフェースに設定したアドレス)へのICMPv6通信を許可します
・rule 140 - 外部から本製品(WAN側インターフェースのリンクローカルアドレス)へのDHCPv6通信を許可します
・rule 150 - ピア (1、2本目)から本製品(LAN側インターフェースに設定したアドレス)へのIPIPパケット(IPv4 over IPv6)を許可します
ファイアウォールの詳細は「UTM」/「ファイアウォール」をご覧ください。
firewall rule 10 permit any from ipv4-internal to ipv4-internal rule 100 permit any from ipv6-internal to ipv6-internal rule 110 permit any from ipv6-internal to ipv6-internet rule 120 permit any from ipv6-internet.wan.eth1 to ipv6-internet rule 130 permit icmpv6 from ipv6-internet to ipv6-internal.lan.vlan1 rule 140 permit dhcpv6 from ipv6-internet to ipv6-internet.wan.eth1 rule 150 permit ipip from ipv6-internet.wan.Cloud_GW to ipv6-internal.lan.vlan1 protect
- DNSリレー機能を有効にします。これには、ip dns forwardingコマンドを使います。
DNSリレー機能の詳細は「IP付加機能」/「DNSリレー」をご覧ください。
ip dns forwarding
- 以上で設定は完了です。
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
ルーターのコンフィグ
! no spanning-tree rstp enable ! ip domain-lookup ! ddns-update-method V6UPDATE update-url https://auth-east.cloudgw.e-ntt.cast.flets-east.jp/regist.php?<PASSWORD> password passwdA update-interval 10 suppress-ipv4-updates accept-invalid-sslcert ! ddns enable ! interface eth1 ipv6 enable no ipv6 nd accept-ra-pinfo ipv6 nd proxy interface vlan1 ! interface vlan1 ipv6 ddns-update-method V6UPDATE ip address 192.168.10.1/24 ipv6 address autoconfig eth1 no ipv6 nd suppress-ra ipv6 nd dns-server vlan1 ! ipv6 forwarding ! ip dhcp pool pool10 network 192.168.10.0 255.255.255.0 range 192.168.10.100 192.168.10.131 dns-server 192.168.10.1 default-router 192.168.10.1 lease 0 2 0 ! service dhcp-server ! interface tunnel0 tunnel source vlan1 tunnel destination 2001:db8:3c:10::1 tunnel mode ds-lite ip address 192.0.0.2/29 ip tcp adjust-mss pmtu ! interface tunnel1 tunnel source vlan1 tunnel destination 2001:db8:3c:10::2 tunnel mode ds-lite ip address 192.0.2.2/29 ip tcp adjust-mss pmtu ! ip route 172.30.0.0/24 tunnel0 ip route 172.31.0.0/24 tunnel1 ip route 192.168.100.0/24 tunnel1 10 ! ping-poll 1 ip 172.30.0.1 source-ip 192.168.10.1 normal-interval 20 critical-interval 20 up-count 1 fail-count 3 sample-size 3 ! ping-poll 2 ip 172.31.0.1 source-ip 192.168.10.1 normal-interval 20 critical-interval 20 up-count 1 fail-count 3 sample-size 3 active ! trigger 1 type ping-poll 1 down script 1 tunnel0_down.scp script 2 act_ping-poll_2.scp script 3 act_tri.scp trigger 2 type ping-poll 1 up script 1 tunnel0_up.scp script 2 dis_tri.scp script 3 dis_ping-poll_2.scp trigger 3 type ping-poll 2 down script 1 act_tri.scp trigger 4 type ping-poll 2 up script 1 dis_tri.scp trigger 5 type periodic 10 script 1 shut_noshut.scp trigger 6 type reboot script 1 tunnel0_down.scp script 2 act_ping-poll_2.scp script 3 act_tri.scp script 4 dis_act_ping-poll_1.scp ! zone ipv4-internal network AWS ip subnet 172.30.0.0/24 ip subnet 172.31.0.0/24 ip subnet 192.168.100.0/24 network lan ip subnet 192.0.0.0/29 ip subnet 192.0.2.0/29 ip subnet 192.168.10.0/24 ! zone ipv6-internal network lan ipv6 subnet ::/0 interface vlan1 host vlan1 ipv6 address dynamic interface vlan1 ! zone ipv6-internet network wan ipv6 subnet ::/0 interface eth1 host Cloud_GW ipv6 address 2001:db8:3c:10::1 ipv6 address 2001:db8:3c:10::2 host eth1 ipv6 address dynamic interface eth1 ! application dhcpv6 protocol udp dport 546 to 547 ! application icmpv6 protocol ipv6-icmp ! application ipip protocol 4 ! firewall rule 10 permit any from ipv4-internal to ipv4-internal rule 100 permit any from ipv6-internal to ipv6-internal rule 110 permit any from ipv6-internal to ipv6-internet rule 120 permit any from ipv6-internet.wan.eth1 to ipv6-internet rule 130 permit icmpv6 from ipv6-internet to ipv6-internal.lan.vlan1 rule 140 permit dhcpv6 from ipv6-internet to ipv6-internet.wan.eth1 rule 150 permit ipip from ipv6-internet.wan.Cloud_GW to ipv6-internal.lan.vlan1 protect ! ip dns forwarding ! end
ルーターのトリガースクリプト
tunnel0_down.scpenable configure terminal no ip route 192.168.100.0/24 tunnel0
tunnel0_up.scp
enable configure terminal ip route 192.168.100.0/24 tunnel0
act_ping-poll_2.scp
enable configure terminal ping-poll 2 active
dis_ping-poll_2.scp
enable configure terminal ping-poll 2 no active
act_tri.scp
enable configure terminal trigger 5 active ddns-update-method V6UPDATE update-interval 10
dis_tri.scp
enable configure terminal trigger 5 no active ddns-update-method V6UPDATE update-interval 60
shut_noshut.scp
enable configure terminal interface vlan1 shutdown no shutdown
dis_act_ping-poll_1.scp
enable configure terminal ping-poll 1 no active active