手当たり次第に書くんだ

飽きっぽいのは本能

AWS VPC に L2 はあるのか – VLAN / ARP / VIP をクラウドの到達性モデルへ翻訳する

AWS VPC は仮想ネットワークです。しかし、オンプレミスで VLAN、L2 セグメント、ARP、ブロードキャスト、VRRP、透過 Firewall、SPAN を扱ってきた目線で見ると、同じ「ネットワーク」という言葉でも、設計対象がかなり違います。

結論から言えば、AWS VPC において L2 が原理的に消えているわけではありません。EC2 には ENI があり、OS から見れば NIC があり、MAC アドレスもあります。ただし、利用者が VLAN やブロードキャストドメインを自由に設計する世界ではありません。

AWS VPC で利用者に渡されているのは、自由な仮想 Ethernet ではなく、VPC、Subnet、ENI、Private IP、Route Table、Security Group、NACL などで構成される クラウド側で制御された到達性モデル です。

参考
書籍
参考書籍

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂 4 版

AWS VPC、サブネット、ルーティング、サーバー構築の基礎を確認したい場合の参考書籍です。オンプレミスのネットワーク設計を AWS に翻訳する前提知識として紹介します。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

まず結論

オンプレミスの L2 設計を AWS VPC に持ち込むときは、次のように考えると整理しやすいです。

オンプレミスでの発想AWS VPC で見るべきもの変わること
VLAN / L2 セグメントSubnet / Route TableL2 隣接性ではなく、IP 到達性と配置の単位として見る
物理 NIC / 仮想 NICENIOS 側の NIC だけでなく、AWS 制御プレーン上の論理インターフェースとして扱う
Firewall を経路上に置くSecurity Group / NACL / GWLB単一の箱ではなく、複数の制御点へ分散する
VIP を浮かせるENI / Route Table / Load Balancer / DNSVRRP の再現ではなく、到達先の切替として設計する
SPAN / TAP で見るTraffic Mirroring / Flow Logs全部見える場所ではなく、目的別の観測に分ける
L2 延伸Direct Connect / VPN / TGW接続しても L2 が延長されるわけではない

つまり、AWS VPC は L2 の再現ではありません。オンプレミスで L2 が担っていた役割を、AWS のオブジェクトとサービスへ翻訳する必要があります。

オンプレミスでは L2 が設計対象になる

オンプレミスでは、ネットワーク設計はかなり下のレイヤーから始まります。VLAN を切り、trunk を設計し、MAC 学習や ARP、ブロードキャスト、STP、MLAG、LACP、VRRP、透過 Firewall、SPAN などを必要に応じて扱います。

この世界では、L2 は単なる下位実装ではありません。どの機器を同一セグメントに置くか、どこで L3 境界を作るか、どの経路に Firewall を挟むか、どこでパケットを観測するかという設計対象そのものです。

  • VLAN は L2 セグメントを分ける単位になる
  • VRRP / HSRP は同一 L2 セグメント上の gateway 冗長化として使われる
  • 透過 Firewall は IP 設計を大きく変えずに経路上へ挟める
  • SPAN / TAP は特定の場所を流れるパケットを観測できる
  • ブロードキャストや ARP は同一セグメント内の通信前提として存在する

AWS VPC で利用者に見える境界

AWS VPC で利用者が直接扱う中心は、VLAN や MAC table ではありません。VPC、Subnet、ENI、Private IP、Route Table、Security Group、NACL、Internet Gateway、NAT Gateway、Transit Gateway、Gateway Load Balancer などです。

AWS 公式ドキュメントでも、Subnet は Availability Zone 内に存在する IP アドレス範囲として扱われ、Route Table は VPC 内外の通信先を制御する仕組みとして説明されています。Security Group はリソースに対する仮想 Firewall、NACL は Subnet レベルの通信制御です。

AWS の要素オンプレミス風に誤読しやすい点実際に見るべき点
VPC大きな L2 ネットワーク論理的に分離された IP ネットワーク空間
SubnetVLAN のクラウド版AZ に属する IP アドレス範囲と配置単位
ENI仮想 NICAWS 制御プレーンに登録された論理ネットワークインターフェース
Route Tableルータ設定の一部Subnet や gateway に関連付く到達性制御
Security GroupFirewall 装置ENI / リソースに関連付くステートフル制御
NACLSubnet FirewallSubnet に関連付くステートレス制御
GWLB透過 Firewall の置き換え仮想アプライアンスへ通信を誘導するためのサービス

OS から見れば EC2 には NIC があり、通信も通常の IP 通信に見えます。しかし、その NIC は AWS 上では ENI として管理され、Private IP、Security Group、Source/Destination Check などの制御対象になります。

Subnet は VLAN と等価ではない

AWS VPC の Subnet は、見た目として VLAN に似ています。アドレス範囲を持ち、リソースを配置する単位にもなります。そのため、オンプレミス経験者は Subnet を VLAN のクラウド版として読みたくなります。

ただし、Subnet は L2 自由度を提供する単位ではありません。AWS 公式ドキュメントでは、Subnet は 1 つの Availability Zone 内に完全に収まる必要があり、複数 AZ にまたがることはできません。さらに、Subnet は Route Table に関連付けられ、その Route Table が通信先を制御します。

つまり、Subnet は VLAN のように L2 を自由に切る単位というより、配置、アドレス範囲、経路制御、可用性境界を結びつける単位として見る方が自然です。

Firewall は箱ではなく制御点に分解される

オンプレミスでは、Firewall は通信経路上に置く箱として考えやすいです。物理的または仮想的にインラインへ挟み、そこを通る通信を制御する発想です。

AWS では、この発想をそのまま持ち込むと誤解しやすくなります。Security Group はリソースに関連付くステートフルな制御であり、NACL は Subnet に関連付くステートレスな制御です。さらに、仮想アプライアンスを挿入したい場合は、Route Table、Gateway Load Balancer、Transit Gateway などを組み合わせて通信を誘導します。

目的オンプレミスでの典型AWS での考え方
インスタンス単位の通信制御ホスト Firewall / 境界 FirewallSecurity Group をリソースに関連付ける
Subnet 境界の補助制御セグメント境界 ACLNACL を Subnet に関連付ける
仮想アプライアンス挿入L2 透過または Routed FirewallGWLB、Route Table、TGW で通信を誘導する
広域集約コア Firewall / 集約 FirewallTransit Gateway と Security VPC の設計として扱う

したがって、AWS で Firewall を考える場合は、どこに箱を置くかだけではなく、どの通信をどの制御点へ通すのかを設計する必要があります。

VIP / HA は VRRP の再現ではない

オンプレミスでは、gateway や appliance の冗長化で VRRP / HSRP / keepalived / VIP を使うことがあります。これは、同一 L2 セグメント上で仮想 IP を共有できる前提があるからです。

AWS では、HA を単純に VIP を浮かせる問題として扱うと詰まりやすくなります。ENI の付け替え、Secondary Private IP、Route Table 更新、Load Balancer、DNS failover など、AWS の制御プレーン上で到達先を切り替える設計になります。

この違いは運用にも効きます。VRRP のような L2 近傍の収束ではなく、AWS API、ヘルスチェック、Route Table、Load Balancer、DNS などの制御に依存するため、切替速度、失敗時の見え方、責任境界が変わります。

Direct Connect でつないでも L2 は延長されない

AWS Direct Connect を使うと、オンプレミスと AWS を専用線で接続できます。しかし、Direct Connect はオンプレミスの L2 セグメントを AWS VPC へそのまま延長する仕組みではありません。

Direct Connect で重要なのは、Connection、VIF、DXGW、VGW、TGW、BGP の関係です。接続後に扱うのは、L2 延伸ではなく、経路広告、到達性、gateway association、責任分界です。

つまり、オンプレミス側で VLAN や L2 セグメントを設計していても、AWS 側では Subnet、Route Table、Security Group、NACL、TGW などのモデルへ翻訳して考える必要があります。Direct Connect は物理的・論理的な接続手段であり、オンプレミス L2 の自由度を AWS へ持ち込む魔法ではありません。

観測も SPAN からログとミラーリングへ変わる

オンプレミスでは、SPAN、TAP、ミラーポートによって、特定の場所を流れるパケットを観測する設計ができます。AWS では、観測もクラウド側の抽象に従います。

VPC Traffic Mirroring は ENI からネットワークトラフィックをコピーし、監視・解析用のターゲットへ送る機能です。一方、VPC Flow Logs は VPC 内の network interface などを流れる IP traffic の情報をログとして取得する機能です。

観測手段向いていること注意点
VPC Traffic Mirroringパケット内容に近い観測、IDS / NDR / トラブルシュート対象 ENI、フィルタ、ターゲット、コスト、対応インスタンスを確認する
VPC Flow Logs通信の許可・拒否、送信元・宛先・ポート・バイト数などの証跡パケット内容そのものではなくフローログとして扱う
サービスログALB、NLB、DNS、CloudTrail などサービス単位の証跡ネットワーク機器のミラーポートとは粒度が違う

AWS での観測設計は、どこかに全部見えるポートを作ることではありません。何を証跡として残したいのか、どのレイヤーを見たいのか、どのサービスログを組み合わせるのかを決める作業です。

L2 が封じ込められる理由

AWS が利用者に L2 自由度を渡さないことには、クラウド基盤としての理由があります。マルチテナント性、スケール、障害ドメイン分離、セキュリティ境界、API による運用自動化を考えると、利用者が任意に L2 ドメインを広げる設計は扱いにくくなります。

  • ブロードキャストや未知ユニキャストを利用者が自由に広げると、スケールと分離の問題が出る
  • MAC spoofing、ARP spoofing、ループ、flooding などの L2 的な事故をサービス境界内に閉じたい
  • AZ、Subnet、Route Table、Security Group などの単位で障害境界と責任境界を制御したい
  • ネットワークを物理機器設定ではなく API で扱えるサービスとして提供したい

このため、AWS VPC では L2 がなくなったというより、L2 の自由度が AWS 側の責任境界に閉じ込められていると考える方が正確です。

オンプレ設計を AWS へ翻訳するときの確認軸

オンプレミスの設計を AWS へ持っていく時は、構成要素をそのまま対応付けるより、何の性質を維持したいのかから分解した方が安全です。

確認軸問い
到達性どの送信元から、どの宛先へ、どの経路で到達させたいのか
分離VPC、Subnet、Route Table、Security Group、NACL のどこで分離するのか
冗長化Load Balancer、DNS、ENI、Route Table、Multi-AZ のどれで切り替えるのか
検査Security Group / NACL で足りるのか、GWLB や仮想 Firewall が必要なのか
観測Flow Logs、Traffic Mirroring、サービスログのどれを使うのか
責任分界AWS、利用者、Direct Connect Partner、仮想アプライアンス製品のどこを見るのか

この確認軸にすると、VLAN を Subnet に置き換える、Firewall を EC2 に置く、VIP を浮かせる、といった単純移植から離れやすくなります。

まとめ

AWS VPC に L2 が原理的に存在しないわけではありません。ENI、MAC、転送プレーン、AWS 内部の SDN 的な仕組みは当然存在します。ただし、それらは AWS のサービス境界内にあり、利用者が VLAN、ブロードキャスト、MAC 学習、VRRP、SPAN のように自由に設計する対象ではありません。

AWS VPC が利用者に渡しているのは、自由な仮想 Ethernet ではなく、VPC、Subnet、ENI、Private IP、Route Table、Security Group、NACL、Load Balancer、Transit Gateway、Gateway Load Balancer などで構成される到達性モデルです。

オンプレミスから AWS へのネットワーク設計の移行は、L2 構成の移植ではありません。オンプレミスで L2 が担っていた性質を分解し、AWS の到達性モデルへ翻訳する作業です。そして、その翻訳は等価変換ではありません。

参考資料

関連記事

AWS VPC に L2 はあるのか – VLAN / ARP / VIP をクラウドの到達性モデルへ翻訳する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る