AWSでEC2作ったり、サイト間VPN接続したりが何とな~く出来るようになってきたので、VPCのルーティングについて、
何とな~くではなく、しっかりと理解したいと思い書いてみました。
※間違ってたらすみませんがご指摘くださいm(_ _)m
VPCコンソール画面の項目について
2020年12月時点のVPCコンソール画面はこんな感じです。
DHCPオプションセット・・・VPC内のオブジェクトに対して、DNSサーバやNTPなどの配布情報を登録します。
ルートテーブル・・・VPC内のルーティング情報を登録します。
上記環境ではVPCのアドレス空間は10.200.0.0/16 で、その中にサブネットがある感じになっております。
ちなみにサブネットは以下のような感じで表示されます。
VPCの空間(10.200.0.0/16)を/24で区切って、10.200.1.0/24 をサブネットに割り当てしてます。
ルーティングテーブルの項目について
ルーティングテーブルは以下のような感じで表示されます。
この環境ではサイト間VPN接続を設定し、VPCとオンプレ環境を接続しています。
ちなみにルーティングは動的(GBP)で設定しています。
送信先10.200.0.0/16 はVPC内なので、ターゲットがAWS内=「local」となっています。
送信先172.xx.xx.xxや192.xx.xx.xxはAWS内には存在しないセグメントなので、VPC外につながる仮想ゲートウェイに向けてルーティングされています。
今回172.xx.xx.xxや192.xx.xx.xxはサイト間VPNで接続しているオンプレ側拠点のアドレスなので、VPN GW(vgw-xxxxx)がターゲットになっています。右側の「伝播済み」というパラメータですが、カスタマーゲートウェイ(AWSとVPN接続している宅内ルータ≒CEルータ)から VPC 側の仮想プライペートゲートウェイへ伝播されているかということを表しています。
何となくAWS → カスタマーゲートウェイ という流れで伝播させているように受け取れそうな文言ですが実は逆です...
「伝播済み」となっているルートは宅内ルータからBGPでルートが広告されているルートということです。
0.0.0.0 も「伝播済み」になっていることから、宅内ルータからVPCに対して、デフォルトルートを伝播させることも可能です。
設定の「ルート伝達の編集」でVPC側が「伝播」を受け取らないという設定も可能ですが
VPC からカスタマーゲートウェイへ伝播されるルートについて、 VPC の CIDR 宛のルートが伝播設定に依らず伝播される挙動となります。
(AWS側のNW情報は全部宅内ルータに伝播しちゃいます。隠ぺいできません...)
ちなみに設定の「ルート伝達の編集」でVPC側が「伝播」を受け取らないという設定にした場合、オンプレ側でセグメントが増えたときにスタティックでルート追加してあげる必要があります。
VPC(セキュリティグループ)とサブネットとルーティングテーブルの関係
こんがらがるところ(私の主観ですが)なのですが、以下の図ような感じです。
よくサブネットについて、Private Subnet とかpublic subnet という言い方をしますが
両者のちがいはインターネットゲートウェイへルーティングがテーブルにあるか、ないかだけです。
また同じVPCの中でもサブネットごとにルーティングテーブルは変更できます。
オンプレNW機器との違い
① サブネット間の通信について
オンプレ機器であればSwitchやルータなどでセグメントごとに分断されますがVPC内であれば別サブネットにもブロードキャストされます。
例えばVPCが192.168.0.0/16でサブネットが2つ(A: 192.168.1.0/24とB: 192.168.2.0)あった場合、サブネットA宛の通信が別サブネットB側にも配信されます。
② サイト間VPN接続のルート伝播について
AWS側のセグメント情報が強制的にカスタマーゲートウェイに伝播される
③ UTMなどの付加機能はない(AWSの別サービスを利用)
おわりに
NW系はCCNAの資格勉強の時に少しかじったぐらいですが、各パラメータの意味を理解できればAWSのルーティング設定はさくさくっとできますd(`・ω・’)