AWSへのVPN接続におけるサンプルコンフィグの注意点:Cisco IOS編

2017.09.19

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

こんにちは、菊池です。

小ネタです。

AWS上のVPCへVPC接続する際、オンプレミス側のルータ(カスタマーゲートウェイ)に必要な設定は、マネジメントコンソールからダウンロードできます。

vpn-cisco-001

サポートされるカスタマーゲートウェイのベンダーと製品プラットフォーム、バージョンを指定すればダウンロードできます。

vpn-cisco-002

基本的には、そのまま設定を投入することでVPNコネクションを設定可能です。しかし、環境によって注意が必要な項目もあります。今回、Cisco社製ISR(IOS)のルータを触る機会がありましたので、注意点を説明します。

BGPでデフォルトルートがアドバタイズされる

動的ルーティング(BGP)が有効な環境でサンプルコンフィグをそのまま設定すると、ルータに設定されたデフォルトルートがVGWにアドバタイズされます。そのため、VPC側でインターネットなどの外部向けのルートがオンプレを経由するように設定されてしまう場合があります。

サンプルコンフィグではBGPが以下のように記述されています。

router bgp 65000
  neighbor 169.254.27.xxx remote-as 10124
  neighbor 169.254.27.xxx activate
  neighbor 169.254.27.xxx timers 10 30 30
  address-family ipv4 unicast
    neighbor 169.254.27.xxx remote-as 10124
    neighbor 169.254.27.xxx timers 10 30 30
    neighbor 169.254.27.xxx default-originate
    neighbor 169.254.27.xxx activate
    neighbor 169.254.27.xxx soft-reconfiguration inbound
! To advertise additional prefixes to Amazon VPC, copy the 'network' statement 
! and identify the prefix you wish to advertise. Make sure the prefix is present 
! in the routing table of the device with a valid next-hop.
    network 0.0.0.0

default-originateの設定により、ルータに設定されたデフォルトルートがアドバタイズされます。不要であれば、この設定を削除し、networkでアドバタイズするルートを設定しましょう。

router#conf t
router(config)#router bgp 65000
router(config-router)#no neighbor 169.254.27.xxx default-originate
router(config-router)#network 10.10.10.0 mask 255.255.255.0

NAT環境での設定

カスタマーゲートウェイが直接インターネットに接続しておらず、ファイアウォールなどを介してプライベートアドレスの環境に配置されている場合です。

vpn-cisco-003

この場合、NAT環境を越えてVPNを接続するため、NATトラバーサルの設定が必要です。

UDPポート4500の解放

インターネットに接しているファイヤーウォールなどで、通常のIPSec VPNで必要なUDP 500、IP 50(ESP)に加え、UDPポート4500がカスタマーゲートウェイに到達可能できるように設定しましょう。

ルータローカルアドレスの設定

サンプルコンフィグ上では、カスタマーゲートウェイのIPアドレスはパブリックIPで記述されています。ルータに投入する設定では、VPNセッションで使用するインターフェースに割り当てたプライベートIPを指定しましょう。

該当箇所は、VPNセッションごとに3つ(通常2セッションなので6箇所)あります。以下のxxx.xxx.xxx.xxxをインターフェースのアドレスに変更しましょう。

~~~~~~~~省略~~~~~~~~
crypto keyring keyring-vpn-xxxxxxxx-0
  local-address xxx.xxx.xxx.xxx
  pre-shared-key address yyy.yyy.yyy.yyy key xxxxxxxxxxxxxxxxxxxxxxxxxxx
~~~~~~~~省略~~~~~~~~
crypto isakmp profile isakmp-vpn-xxxxxxxx-0
  local-address xxx.xxx.xxx.xxx
  match identity address yyy.yyy.yyy.yyy
  keyring keyring-vpn-xxxxxxxx
~~~~~~~~省略~~~~~~~~
interface Tunnel1
  ip address 169.254.27.xxx 255.255.255.252
  ip virtual-reassembly
  tunnel source xxx.xxx.xxx.xxx
  tunnel destination yyy.yyy.yyy.yyy 
  tunnel mode ipsec ipv4
  tunnel protection ipsec profile ipsec-vpn-xxxxxxxx-0
  ! This option causes the router to reduce the Maximum Segment Size of
  ! TCP packets to prevent packet fragmentation.
  ip tcp adjust-mss 1379 
  no shutdo
~~~~~~~~省略~~~~~~~~

まとめ

いかがでしょうか。

今更感はありましたが、ネットワークに詳しい担当者が不在の状態で、VPN接続を設定しようとするとハマりそうなポイントを紹介しました。

特にBGPについては、新規構築の環境では問題になることは少ないですが、運用中環境で意図しないルートテーブルの変更が発生すると、重大なトラブルになることがあります。十分に注意して設定しましょう。