この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、菊池です。
以下のエントリにて、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を変更すると、他リージョンのメトリックには加算される
ということがわかりました。シンプルな接続であれば、特段意識することはないかもしれませんが、複数リージョン/拠点との接続の際は経路のハンドリングに気をつけましょう。