Cisco ASAvインスタンスで2つ目のENIを使ってインターネットへ接続する

2017.02.21

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、ももんが大好きの小山です。みなさんいかがお過ごしでしょうか?

きょうは、EC2上のASAvインスタンスにアタッチした2つ目のENIをoutsideインターフェイスとしてインターネットへ接続する方法についてご紹介したいと思います。

準備

あらかじめ以下の手順に従ってASAvインスタンスを用意します。混乱を避けるため、まずはENIが2つだけ (managementインタフーフェイスとoutsideインターフェイス) の状態で設定することをおすすめします。

EC2に起動したCisco ASAvインスタンスをASDMから操作する | Developers.IO

前提

  • ASAvインスタンスに2つのENIがアタッチされていること
  • アタッチされたENIのうち、最初の1つがmanagementインターフェイスとして設定されていること (初期設定)
  • managementインターフェイスからはDHCPでデフォルトルートが設定されていること (初期設定)
  • 2つ目のインターフェイスはPublicサブネットにあり、Elastic IPアドレスを与えられていること
  • Static routesにはまだ何も設定していないこと。

インターフェイスの設定

2つ目のインターフェイスを使えるようにするため、GigabitEthernet0/0インターフェイスを有効化する必要があります。ASDMのConfiguration > Device Setup > Interface Settingsから未使用のインターフェイスを選択して、画面右のEditを選択しましょう。

表示されたEdit Interfaceではインターフェイスの名前、セキュリティレベルやIPアドレスを設定できます。これらを以下の要領で設定し、OKを選択します。

  • Interface Name: outside
  • Enable Interface: はい
  • Security Level: 0
  • IP Address: Obtain Address via DHCP
  • For the client identifier in DHCP option 61, Use "Cisco-<MAC>-<interface_name>-<host>."
  • Obtain default route using DHCP: はい
  • DHCP Learned Route Metric: 1

Interfacesに戻ったら、画面下のApplyを選択しましょう。

以上の操作を行うと、以下の設定が追加されます。

interface GigabitEthernet0/0
 nameif outside
 security-level 0
 ip address dhcp setroute

CLIコンソールで操作するのと同じように、ASDMで行った設定はApplyを選択した時点で即座に適用されます。画面右下に以下のような表示があるときは、未保存の設定があることを示しています。再起動で設定が失われないようにするには、必要に応じてツールバーのSaveを選択しましょう。

設定したインターフェイスのDHCPステータスを確認するには、Monitoring > Interfaces > DHCP> DHCP Client Lease Information を開いてoutsideインターフェイスを選択します。

現在のルートテーブルを確認するには、Monitoring > Routing > Routesを開きます。既にmanagementインターフェイスがDHCP経由で取得したデフォルトゲートウェイがあるため、outsideインターフェイスのルートについてはPrivateサブネットのものだけが表示されている点に注意してください。

ルートの追加

1つ前のステップで確認したように、managementインターフェイスには既にデフォルトルートが設定されており、このままではoutsideインターフェイスでサブネットの外にあるリソースへアクセスすることができません。これに対処するため、今回はSplit routeと呼ばれる手段を用いることにしました。Split routeでは、既に存在するデフォルトルート (0.0.0.0/0) と同じルートを分割して別のインターフェイスにも設定することで、結果的に複数の同一宛先ルートを保持することができます。この場合、設定されるルートは以下のようになります。

  • route management 0.0.0.0 0.0.0.0 100.96.192.1 1 (DHCP経由で設定されたルート)
  • route outside 0.0.0.0 128.0.0.0 100.96.0.1 1 (Static Routesに追加するルート。0.0.0.0から127.255.255.255)
  • route outside 128.0.0.0 128.0.0.0 100.96.0.1 1 (Static Routesに追加するルート。128.0.0.0から255.255.255.255)

注意: Split routeでデフォルトルート相当のルートを複数設定する場合、より具体的なルートの優先順位は高くなり、より大雑把なルートの優先順位は低くなるという点に注意する必要があります。以上の例ではmanagementインターフェイスに設定されたルートよりoutsideインターフェイスに設定されたルートの方がより具体的であるため、特にインターフェイスを指定しない場合はこのルートが使用されます。

新しいルートを追加するために、ネットワークオブジェクトとして2つのネットワークと1つのゲートウェイ (ホスト) を定義します。Configuration > Firewall > Objects > Network Objects/Groupsを開いてAddからNetwork Object...を選択しましょう。

Add Network Objectでは、まずoutsideインターフェイスで使用するゲートウェイを定義します。Amazon VPCではサブネットのCIDRに1を足した値 (例: 10.0.0.0/24 なら 10.0.0.1) がVPCルータ (ゲートウェイ) の場所ですから、これをネットワークオブジェクトとして登録しましょう。このとき、作成するネットワークオブジェクトにNATを設定する必要はありません。ここで設定できるNATはそのネットワークオブジェクトが送信元であった場合に適用されるものだからです。

ネットワークオブジェクトとしてサブネットのゲートウェイを定義したら、同じようにAdd Network Objectから (0.0.0.0/0を1つ «具体的» にした) 0.0.0.0/1と128.0.0.0/1のネットワークを定義します。0.0.0.0/1と128.0.0.0/1からの通信をNATしてしまっては大変なことになりますから、ここでもNATを設定する必要はありません。。

3つのネットワークオブジェクトが定義できたら、Applyを選択しましょう。

以上のように操作すると、running-configには以下のような設定が追加されます。

object network 100.96.0.1
 host 100.96.0.1
object network 0.0.0.0-127.255.255.255
 subnet 0.0.0.0 128.0.0.0
object network 128.0.0.0-255.255.255.255
 subnet 128.0.0.0 128.0.0.0

必要なネットワークオブジェクトが定義できたら、Configuration > Device Setup > Routing > Static RoutesからSplit routesを追加します。画面右のAddを選択しましょう。

Add Static Routeでは、0.0.0.0/1128.0.0.1/1の2つのルートを追加します。Metric (Administrative Distance) は同一宛先のルートに対して設定して可用性を保証するためのものですから、今回は1のままで問題ありません。別のサブネットにあるゲートウェイを指定しても当然サブネットの外には出られませんから、よく確かめて誤りの無いように設定しましょう。

以下のように、oustsideインターフェイス+そのサブネットのゲートウェイ経由のルートが0.0.0.0/1と128.0.0.0/1に対して作成できたら成功です。画面下のApplyを選択して設定を適用しましょう。

以上の操作が済んだら、Monitoring > Routing > Routesから使用中のルートテーブルを確認できます。

ここまでの操作でrunning-configへ適用される設定は以下の通りです。

route outside 0.0.0.0 128.0.0.0 100.96.0.1 1
route outside 128.0.0.0 128.0.0.0 100.96.0.1 1

では、outsideインターフェイスを使ってサブネットの外へ出られることを確認してみましょう。メニューバーのToolsからPing...を選択します。Destination としてietf.org、Source Interface としてはoutsideを指定しましょう。続いてPingを選択しますが、DNSクライアントが設定されていないため失敗してしまいました。

ASAvのDHCPクライアントではOption 6として配信されたDNSサーバを無視しますから、以下の要領でConfiguration > Device Management > DNS > DNS Clientから使用するDNSサーバを登録します。Amazon VPCの全体のCIDRに2を足した値 (例: 10.0.0.0/16 なら 10.0.0.2) がDNSサービスの場所ですから、これをoutsideインターフェイス経由で使用するように設定します。間違いが無ければApplyを選択しましょう。

メニューバーのTools > Ping...から改めてテストしてみます。5回のすべてが成功すると、以下のように!!!!!と表示され視覚的に成否が確認できます。お疲れ様でした!

おわりに

いかがでしたか? 今回はASAvインスタンスにアタッチした2つ目のインターフェイスからインターネットへ接続する方法についてご紹介しました。ごく簡単に触れたPAT (Per-session NAT) については次回ご紹介したいと思いますので、どうぞご期待ください。

したっけまた!

おすすめ

CIDRの計算でわけがわからなくなったときは、"cidr calculator" などと検索して見つかる以下のサイトが大変便利です! 私もずっとお世話になっています?

Online IP CIDR / VLSM Supernet Calculator