[GCP] Cisco ルータを使って VPC に Classic VPN で接続する
こんにちは、菊池です。
先の記事にて、GCPとのVPN接続について紹介しました。
この記事では、GCP側のVPNゲートウェイは冗長化された高可用性(HA)VPN構成をとっていますので、99.99%のSLAとなります。しかし、シングル構成での接続や、静的ルーティングで接続したい場合には、高可用性(HA)VPNではなくClassic VPNを選択することになります。今回は、Classic VPNを使って動的ルーティング(BGP)と静的ルーティングでの接続をやってみました。
Classic VPNで接続する
構成イメージは以下の通りです。以前の記事と同様に、オンプレ側ルータはCisco C841Mを使い、インターネット接続ルータの内側にあるNATトラバーサルでVPN接続します。
VPN接続
まずは動的ルート(BGP)から、VPN接続を作成していきます。Classic VPNを選択して先に進みます。
VPNゲートウェイの作成です。名前とリージョン、VPCを選択し、IPアドレスを作成します。
VPN接続に利用するパブリックIPを割り当てます。名前は任意のものを設定可能です。
パブリックIPが発行されました。
続いて、接続情報を設定します。オンプレ側のパブリックIPを入力し、IKE事前共有キーを生成します。ルーティングはまずは動的(BGP)を選択。クラウドルータがない場合は作成しましょう。
BGPセッション情報を入力します。ピア側のASNとトンネルに割り当てるIPアドレス(リンクローカルアドレスの/30を割り当て)を決めます。
設定が入力できたら、作成します。
ピアルータ(オンプレ側のVPN接続ルータ)のIPSec VPN設定です。以前のHA VPNと同様ですが、シングル接続なので設定は1つで問題ありません。
crypto ikev2 proposal tunnel1 encryption aes-cbc-256 aes-cbc-192 aes-cbc-128 integrity sha256 group 16 exit crypto ikev2 policy tunnel1 proposal tunnel1 crypto ikev2 keyring tunnel1 peer xxx.xxx.xxx.85 address xxx.xxx.xxx.85 pre-shared-key xxxxxxxxxxxxxxxxxxxxxxxxxxxx exit crypto ikev2 profile tunnel1 match identity remote address xxx.xxx.xxx.85 255.255.255.255 identity local address 222.xxx.xxx.xxx authentication local pre-share authentication remote pre-share keyring local tunnel1 lifetime 36000 dpd 60 5 periodic exit crypto ipsec transform-set tunnel1 esp-aes 256 esp-sha256-hmac mode tunnel exit crypto ipsec profile ipsec-profile-tunnel1 set security-association lifetime kilobytes 102400000 set transform-set tunnel1 set pfs group16 set ikev2-profile tunnel1 exit interface Tunnel1 ip address 169.254.0.2 255.255.255.252 ip tcp adjust-mss 1350 tunnel source 192.168.1.253 tunnel mode ipsec ipv4 tunnel destination xxx.xxx.xxx.85 tunnel protection ipsec profile ipsec-profile-tunnel1 exit
これで問題なければ、VPN接続が確立します。
動的ルーティング(BGP)の場合
続いて、動的ルーティング(BGP)固有の設定です。以下のように、BGPを設定しました。
router bgp 65000 bgp log-neighbor-changes neighbor 169.254.0.1 remote-as 65100 neighbor 169.254.0.1 timers 20 60 60 address-family ipv4 network 10.10.10.0 mask 255.255.255.0 neighbor 169.254.0.1 activate exit-address-family
設定に問題なければ、VPN、BGP共にセッションが確立します。
BGPテーブルで、受け取っている経路情報を確認します。
#show ip bgp BGP table version is 6, local router ID is 192.168.1.253 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 10.10.10.0/24 0.0.0.0 0 32768 i *> 172.16.0.0 169.254.0.1 100 0 65100 ? *> 172.17.0.0 169.254.0.1 312 0 65100 ? *> 172.18.0.0 169.254.0.1 495 0 65100 ? *> 172.19.0.0 169.254.0.1 100 0 65100 ?
シングル接続のため、受け取ったルートは全てルートテーブルにも反映されました。
#show ip route Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfR Gateway of last resort is 192.168.1.1 to network 0.0.0.0 S* 0.0.0.0/0 [1/0] via 192.168.1.1 10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks C 10.10.10.0/24 is directly connected, Vlan1 L 10.10.10.254/32 is directly connected, Vlan1 S 10.212.134.0/24 [1/0] via 10.10.10.253 169.254.0.0/16 is variably subnetted, 2 subnets, 2 masks C 169.254.0.0/30 is directly connected, Tunnel1 L 169.254.0.2/32 is directly connected, Tunnel1 B 172.16.0.0/16 [20/100] via 169.254.0.1, 00:00:21 B 172.17.0.0/16 [20/312] via 169.254.0.1, 00:00:21 B 172.18.0.0/16 [20/495] via 169.254.0.1, 00:00:21 B 172.19.0.0/16 [20/100] via 169.254.0.1, 00:00:21 192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks C 192.168.1.0/24 is directly connected, GigabitEthernet0/5 L 192.168.1.253/32 is directly connected, GigabitEthernet0/5
VPCのルートテーブルにも、オンプレ側の経路情報が反映されました。
動的ルートの方は、接続がシングルになっただけでHA VPNと特に変わる部分はありませんでした。
ルートベースのルーティングの場合
次に、ルートベースのルーティング(静的ルート)を試してみます。先ほど作成した動的ルート(BGP)のVPNを一旦削除し、再度VPN接続を作成していきます。
VPNゲートウェイは先ほど作成したものがそのまま利用可能です。
名前、リモートピアアドレス、IKE事前共有キーは同じものを設定します。ルーティングに、[ルートベース] を選択し、オンプレ側ネットワークのIP範囲 [10.10.10.0/24] を入力しました。
VPNの設定は同様なので、そのまま先ほどのVPN接続設定のままでトンネルが接続可能です。
VPCのルートテーブルには、ルーティングオプションで設定した宛先ネットワークが反映されます。BGPの場合と異なり、この場合には[優先度] の値が1000となっています。
オンプレ側のルータの設定です。GCPのVPCのネットワークをスタティックルートで追加します。
ip route 172.16.0.0 255.255.0.0 Tunnel1
ルートテーブルに追加されました。
#show ip route Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfR Gateway of last resort is 192.168.1.1 to network 0.0.0.0 S* 0.0.0.0/0 [1/0] via 192.168.1.1 10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks C 10.10.10.0/24 is directly connected, Vlan1 L 10.10.10.254/32 is directly connected, Vlan1 S 10.212.134.0/24 [1/0] via 10.10.10.253 169.254.0.0/16 is variably subnetted, 2 subnets, 2 masks C 169.254.0.0/30 is directly connected, Tunnel1 L 169.254.0.2/32 is directly connected, Tunnel1 S 172.16.0.0/16 is directly connected, Tunnel1 192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks C 192.168.1.0/24 is directly connected, GigabitEthernet0/5 L 192.168.1.253/32 is directly connected, GigabitEthernet0/5
動的ルート(BGP)、静的ルートどちらの場合にも、オンプレからVPCのサーバに対して疎通も確認できました。
$ ping 172.16.0.2 PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data. 64 bytes from 172.16.0.2: icmp_seq=1 ttl=62 time=41.9 ms 64 bytes from 172.16.0.2: icmp_seq=2 ttl=62 time=42.4 ms 64 bytes from 172.16.0.2: icmp_seq=3 ttl=62 time=41.8 ms 64 bytes from 172.16.0.2: icmp_seq=4 ttl=62 time=46.6 ms 64 bytes from 172.16.0.2: icmp_seq=5 ttl=62 time=41.7 ms 64 bytes from 172.16.0.2: icmp_seq=6 ttl=62 time=41.5 ms
まとめ
GCPへのClassic VPN接続を試しました。本番運用では高可用性(HA)VPNを使うことが多いと思いますが、シングル接続や静的ルーティングなどの要件によっては、まだClassic VPNを使う機会もあるかと思います。要件に応じて適切に使い分けましょう。