CloudRouterを使いVPNやInterconnectを接続した際に、ルートのアドバタイズの仕方でつまづいたので、こちらにナレッジとして残しておきたいと思います。
AWSでのルートテーブル
AWSではVPC、サブネットに対してセグメントを付与できるため、VPC側でルートをまとめることができます。
VPC側で172.30.0.0/16を設定した場合、下記のような構成図だと、VPC側のルートテーブルにはVPC
のセグメントがアドバタイズされます。
VPC側のルーティングテーブル
送信先 | ターゲット | 備考 |
---|---|---|
172.30.0.0/16 | local | VPC内部でルーティング |
10.1.1.0/24 | DirectConnect | 専用線へ |
0.0.0.0/0 | internet | インターネットへ |
自宅側ルータのルーティングテーブル
送信先 | ターゲット | 備考 |
---|---|---|
10.1.1.0/24 | local | 自宅内部でルーティング |
172.30.0.0/16 | vpn-gw | 専用線 |
0.0.0.0/0 | internet | インターネットへ |
GCPの場合
GCPでも同じくVPC,サブネットを作成可能ですが、GCPではサブネットにしかセグメントを付与することができません。
したがって下記のような構成にした場合、CloudRouter側にはサブネットのセグメントがアドバタイズされます。
CloudRouter側のルーティングテーブル
送信先 | ターゲット | 備考 |
---|---|---|
172.31.10.0/24 | local | サブネットへルーティング |
172.31.20.0/24 | local | サブネットへルーティング |
172.31.100.0/24 | local | サブネットへルーティング |
172.31.120.0/24 | local | サブネットへルーティング |
10.1.1.0/24 | CloudRouter | 専用線へ |
0.0.0.0/0 | internet | インターネットへ |
自宅側ルータのルーティングテーブル
送信先 | ターゲット | 備考 |
---|---|---|
10.1.1.0/24 | local | 自宅内部でルーティング |
172.31.10.0/24 | vpn-gw | 専用線へ |
172.31.20.0/24 | vpn-gw | 専用線へ |
172.31.100.0/24 | vpn-gw | 専用線へ |
172.31.120.0/24 | vpn-gw | 専用線へ |
0.0.0.0/0 | internet | インターネットへ |
CloudRouterを利用した際のアドバタイズの問題点
上記に記載したように、GCPではセグメントごとにルートがアドバタイズされます。
通常であればこれらを設定すればルートのアドバタイズは完了です。しかし社内で静的ルーティングを設定している場合はGCPのサブネットを作成するたびにルーティング経路を追加する必要があるという煩雑な管理方法になってしまいます。
これらの対策として、CloudRouterにはカスタムルートを使用したルートの管理方法があります。
カスタムルートアドバタイズ
カスタムルートを使用した場合、CloudRouterからオンプレミスルータへBGPを利用してルートのアドバタイズが可能となります。
やり方はこちら
ただしこちらを実施する場合、VPC内に新たにサブネットを作成した際に手動でCloudRouterにアドバタイズの設定を追加する必要があります。
カスタムルートアドバタイズを使う場面
私個人としては、あまり必要ないんじゃないか?と思っています。
AWSをメインで使っており、NWの管理的にセグメントをまとめたい、という判断をされた人は使ってみるといいかもしれません。
全ての経路をBGP等で動的に学習していればそこまで必要はないと思われます。
余談
GCPでプライベートIPを保持しているサービスを調べた結果をまとめました。
・GCE
・GKE
・CloudSQL(Google固有の内部VPCにいるので制約あり)
他にもあったら教えてください。
参考
https://cloud.google.com/router/docs/how-to/advertising-overview?hl=ja
https://cloud.google.com/router/docs/how-to/advertising-subnets?hl=ja
https://cloud.google.com/router/docs/concepts/overview?hl=en#route-advertisement