[GCP] Cloud VPN 接続した VPC にリージョンの異なる複数サブネットを追加してみる
こんにちは、菊池です。
以下のエントリにて、GCPのVPCへの高可用性(HA)VPN接続を試してみました。
今度は、この接続しているVPCに対して、同じリージョンあるいは異なるリージョンのサブネットを追加して、BGPの経路情報がどのようになるか確認してみました。
サブネット追加時の経路変化
初期状態サブネット1つ(asia-east1)
こちらの記事のように、サブネット1つのVPCに対してのVPN接続は確立した状態からスタートします。
VPNトンネル、BGP共にアップした状態です。
オンプレのルータ側は、等コストロードバランスが有効になるように、下記の通りmaximum-pathsを追加しています。
router bgp 65000 bgp log-neighbor-changes neighbor 169.254.0.1 remote-as 65100 neighbor 169.254.0.1 timers 20 60 60 neighbor 169.254.0.5 remote-as 65100 neighbor 169.254.0.5 timers 20 60 60 address-family ipv4 network 10.10.10.0 mask 255.255.255.0 neighbor 169.254.0.1 activate neighbor 169.254.0.5 activate maximum-paths 2 exit-address-family
この状態で、BGPテーブルを確認すると、以下の通りVPCサブネットへの経路を受け取り、両方のトンネルを使用するようにベストパスが選定されています。
#show ip bgp BGP table version is 13, 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 *m 172.16.0.0 169.254.0.5 100 0 65100 ? *> 169.254.0.1 100 0 65100 ?
ルートテーブルにも、2つの経路が追加されています。
#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, 4 subnets, 2 masks C 169.254.0.0/30 is directly connected, Tunnel100 L 169.254.0.2/32 is directly connected, Tunnel100 C 169.254.0.4/30 is directly connected, Tunnel101 L 169.254.0.6/32 is directly connected, Tunnel101 B 172.16.0.0/16 [20/100] via 169.254.0.5, 04:53:57 [20/100] via 169.254.0.1, 04:53:57 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
サブネット追加:asia-east2
それではサブネットを追加していきます。リージョンasia-east2にサブネットを追加します。
VPCコンソールから[サブネットの追加]を選択します。
リージョンとIPアドレス範囲を設定します。
追加できました。
VPCのルートテーブルには、追加されたサブネットのIP範囲がデフォルトで追加されています。
オンプレ側のルータを見てみましょう。まずはBGPテーブルです。追加された172.17.0.0/16は、経路によってメトリックが313と312で異なっています。
#show ip bgp BGP table version is 14, 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 *m 172.16.0.0 169.254.0.5 100 0 65100 ? *> 169.254.0.1 100 0 65100 ? * 172.17.0.0 169.254.0.5 313 0 65100 ? *> 169.254.0.1 312 0 65100 ?
メトリックの小さい、169.254.0.1を経由する経路のみがルートテーブルに追加されました。
#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, 4 subnets, 2 masks C 169.254.0.0/30 is directly connected, Tunnel100 L 169.254.0.2/32 is directly connected, Tunnel100 C 169.254.0.4/30 is directly connected, Tunnel101 L 169.254.0.6/32 is directly connected, Tunnel101 B 172.16.0.0/16 [20/100] via 169.254.0.5, 04:56:01 [20/100] via 169.254.0.1, 04:56:01 B 172.17.0.0/16 [20/312] via 169.254.0.1, 00:00:12 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
サブネット追加:us-east1
続いて、リージョンus-east1にサブネットを追加してみます。
先ほどと同様に、サブネットを追加しました。
オンプレ側のルータでBGPテーブルを確認します。こちらも、asia-east2を追加したときと同様に、2つの経路でメトリックが異なっています。
#show ip bgp BGP table version is 16, 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 *m 172.16.0.0 169.254.0.5 100 0 65100 ? *> 169.254.0.1 100 0 65100 ? * 172.17.0.0 169.254.0.5 313 0 65100 ? *> 169.254.0.1 312 0 65100 ? *> 172.18.0.0 169.254.0.1 495 0 65100 ? * 169.254.0.5 497 0 65100 ?
メトリックの小さい169.254.0.1を経由する経路がルートテーブルに追加されました。
#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, 4 subnets, 2 masks C 169.254.0.0/30 is directly connected, Tunnel100 L 169.254.0.2/32 is directly connected, Tunnel100 C 169.254.0.4/30 is directly connected, Tunnel101 L 169.254.0.6/32 is directly connected, Tunnel101 B 172.16.0.0/16 [20/100] via 169.254.0.5, 04:57:53 [20/100] via 169.254.0.1, 04:57:53 B 172.17.0.0/16 [20/312] via 169.254.0.1, 00:02:04 B 172.18.0.0/16 [20/495] via 169.254.0.1, 00:00:05 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
サブネット追加:asia-east1
今度は、VPNゲートウェイ/Cloudルータと同じasia-east1にサブネットを追加してみます。
手順はこれまでと同じです。
オンプレ側ルータのBGPテーブルを確認します。この場合は、2つのトンネルから同じメトリックの経路情報を受け取っています。
#show ip bgp BGP table version is 18, 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 *m 172.16.0.0 169.254.0.5 100 0 65100 ? *> 169.254.0.1 100 0 65100 ? * 172.17.0.0 169.254.0.5 313 0 65100 ? *> 169.254.0.1 312 0 65100 ? *> 172.18.0.0 169.254.0.1 495 0 65100 ? * 169.254.0.5 497 0 65100 ? *m 172.19.0.0 169.254.0.1 100 0 65100 ? *> 169.254.0.5 100 0 65100 ?
そのため、ルートテーブルにも2つの経路が採用されました。
#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, 4 subnets, 2 masks C 169.254.0.0/30 is directly connected, Tunnel100 L 169.254.0.2/32 is directly connected, Tunnel100 C 169.254.0.4/30 is directly connected, Tunnel101 L 169.254.0.6/32 is directly connected, Tunnel101 B 172.16.0.0/16 [20/100] via 169.254.0.5, 04:59:52 [20/100] via 169.254.0.1, 04:59:52 B 172.17.0.0/16 [20/312] via 169.254.0.1, 00:04:03 B 172.18.0.0/16 [20/495] via 169.254.0.1, 00:02:04 B 172.19.0.0/16 [20/100] via 169.254.0.5, 00:00:23 [20/100] via 169.254.0.1, 00:00:23 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
MEDの変更
ここで、GCPのCloudルータからアドバイタイズする経路情報をいじってみます。片方のトンネルのみ、MEDの値を変えてみてみましょう。トンネルの詳細から、[BGPセッションを変更] に進みます。
ここまでの検証で、asia-east1の経路はデフォルトMED:100でアドバタイズしてくるのがわかりましたので、MED:200に設定してみます。
オンプレ側ルータのBGPテーブルで、結果を確認してみます。asia-east1のサブネットの経路情報は、片方が200になりました。デフォルトのMED:100の方の経路が優先されベストパスに選出されています。また、他のサブネットの経路情報についても、先ほどまでと比べて100加算されたメトリックになっています。
#show ip bgp BGP table version is 22, 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.5 100 0 65100 ? * 169.254.0.1 200 0 65100 ? *> 172.17.0.0 169.254.0.5 313 0 65100 ? * 169.254.0.1 412 0 65100 ? * 172.18.0.0 169.254.0.1 595 0 65100 ? *> 169.254.0.5 497 0 65100 ? * 172.19.0.0 169.254.0.1 200 0 65100 ? *> 169.254.0.5 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, 4 subnets, 2 masks C 169.254.0.0/30 is directly connected, Tunnel100 L 169.254.0.2/32 is directly connected, Tunnel100 C 169.254.0.4/30 is directly connected, Tunnel101 L 169.254.0.6/32 is directly connected, Tunnel101 B 172.16.0.0/16 [20/100] via 169.254.0.5, 00:00:51 B 172.17.0.0/16 [20/313] via 169.254.0.5, 00:00:51 B 172.18.0.0/16 [20/497] via 169.254.0.5, 00:00:51 B 172.19.0.0/16 [20/100] via 169.254.0.5, 00:00:51 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
まとめ
GCPとの高可用性(HA)VPNに、VPCのサブネットを追加したときの経路情報の変化を確認しました。
- Cloudルータと同じリージョンのサブネットの経路は、2つのトンネルでメトリックが同じになる
- Cloudルータと異なるリージョンのサブネットの経路は、2つのトンネルでメトリックに差がある
- CloudルータでアドバタイズするMEDを変更すると、他リージョンのメトリックには加算される
ということがわかりました。シンプルな接続であれば、特段意識することはないかもしれませんが、複数リージョン/拠点との接続の際は経路のハンドリングに気をつけましょう。