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

| WAN側物理インターフェース | eth1 |
| WAN側(eth1)IPv6アドレス | リンクローカルアドレス |
| LAN側(eth0)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側インターフェース(eth0)に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内のネットワークと通信します。
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 | 未指定 |
ルーターの設定
- 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側インターフェース(eth0)への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 eth0
- LAN側インターフェースeth0に対し、WANポートで受信したRAで通知されたプレフィックスとISPに指定されたインターフェースIDを組み合わせたIPv6アドレスを自動設定するよう設定します。これには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サーバー」をご覧ください。
※IPv4アドレス 192.168.10.1/24 は AT-NFV-APLの事前設定時に設定済みのため、ip addressコマンドを手で入力する必要はありません。
interface eth0 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 eth0
- 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 eth0 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 eth0 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分おきにeth0をダウン・アップさせることで、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/IPv6アドレスを表すゾーン「all」を作成します。
これには、zone、network、ip subnet、ipv6 subnetの各コマンドを使います。
zone all network ipv4 ip subnet 0.0.0.0/0 network ipv6 ipv6 subnet ::/0
- 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 eth0 host eth0 ipv6 address dynamic interface eth0
- 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」/「アプリケーション定義」をご覧ください。
DHCPv4パケットを表すカスタムアプリケーション「dhcpv4」を定義します。
application dhcpv4 protocol udp dport 67 to 68
- 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 - DHCPv4通信を許可します
・rule 20 - 内部から内部へのIPv4通信を許可します
・rule 30 - DHCPv6通信を許可します
・rule 40 - ICMPv6通信を許可します
・rule 50 - 内部から内部へのIPv6通信を許可します
・rule 60 - 内部から本製品(LAN側インターフェースに設定したアドレス)へのIPv6通信を許可します
・rule 70 - 内部から外部へのIPv6通信を許可します
・rule 80 - 本製品(LAN側インターフェースに設定したアドレス)から内部へのIPv6通信を許可します
・rule 90 - 本製品(LAN側インターフェースに設定したアドレス)から外部へのIPv6通信を許可します
・rule 100 - 本製品(WAN側インターフェースのリンクローカルアドレス)から外部へのIPv6通信を許可します
・rule 110 - ピア (1、2本目)から本製品(LAN側インターフェースに設定したアドレス)へのIPIPパケット(IPv4 over IPv6)を許可します
ファイアウォールの詳細は「UTM」/「ファイアウォール」をご覧ください。
firewall rule 10 permit dhcpv4 from all.ipv4 to all.ipv4 rule 20 permit any from ipv4-internal to ipv4-internal rule 30 permit dhcpv6 from all.ipv6 to all.ipv6 rule 40 permit icmpv6 from all.ipv6 to all.ipv6 rule 50 permit any from ipv6-internal to ipv6-internal rule 60 permit any from ipv6-internal to ipv6-internal.lan.eth0 rule 70 permit any from ipv6-internal to ipv6-internet rule 80 permit any from ipv6-internal.lan.eth0 to ipv6-internal rule 90 permit any from ipv6-internal.lan.eth0 to ipv6-internet rule 100 permit any from ipv6-internet.wan.eth1 to ipv6-internet rule 110 permit ipip from ipv6-internet.wan.Cloud_GW to ipv6-internal.lan.eth0 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
ルーターのコンフィグ
! 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 eth0 ! interface eth0 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 eth0 ! 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 eth0 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 eth0 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 all network ipv4 ip subnet 0.0.0.0/0 network ipv6 ipv6 subnet ::/0 ! 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 eth0 host eth0 ipv6 address dynamic interface eth0 ! 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 dhcpv4 protocol udp dport 67 to 68 ! application dhcpv6 protocol udp dport 546 to 547 ! application icmpv6 protocol ipv6-icmp ! application ipip protocol 4 ! firewall rule 10 permit dhcpv4 from all.ipv4 to all.ipv4 rule 20 permit any from ipv4-internal to ipv4-internal rule 30 permit dhcpv6 from all.ipv6 to all.ipv6 rule 40 permit icmpv6 from all.ipv6 to all.ipv6 rule 50 permit any from ipv6-internal to ipv6-internal rule 60 permit any from ipv6-internal to ipv6-internal.lan.eth0 rule 70 permit any from ipv6-internal to ipv6-internet rule 80 permit any from ipv6-internal.lan.eth0 to ipv6-internal rule 90 permit any from ipv6-internal.lan.eth0 to ipv6-internet rule 100 permit any from ipv6-internet.wan.eth1 to ipv6-internet rule 110 permit ipip from ipv6-internet.wan.Cloud_GW to ipv6-internal.lan.eth0 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 eth0 shutdown no shutdown
dis_act_ping-poll_1.scp
enable configure terminal ping-poll 1 no active active