インスタンスにログインしてパケットをキャプチャしたり、モニタリングエージェントをデプロイしたりするなどの従来のネットワークトラフィックのモニタリング方法は、システムリソースを消費し、サービスパフォーマンスに影響を与える可能性があります。VPC トラフィックミラーリングは、サービストラフィックに干渉しないバイパスモニタリングソリューションを提供します。この機能は、特定のフィルター条件に一致する場合、指定された Elastic Network Interface (ENI) に出入りするトラフィックをコピーして転送します。コピーされたトラフィックは、リアルタイム検出のためにセキュリティ分析デバイスに送信されます。
一般的なトラフィックミラーリングのシナリオ:
セキュリティ: ネットワーク侵入検知
トラフィックミラーリングを使用して、特定のストリームのすべてのデータパケットを取得できます。その後、自社開発またはサードパーティのセキュリティソフトウェアを使用して包括的な検査を実行し、潜在的なセキュリティの脆弱性と侵入の脅威をリアルタイムで特定できます。これにより、攻撃をより迅速に検査し、対応することができます。
監査: 金融または政府のコンプライアンス
金融またはセキュリティのコンプライアンス要件が高いビジネスシナリオでは、トラフィックミラーリングを使用して、インスタンストラフィックを透過的に統一された監査プラットフォームにミラーリングして分析できます。これにより、監査要件を満たすことができます。
ネットワーク運用保守 (O&M): ネットワーク問題の特定
トラフィックミラーリングを使用して、ネットワークの問題を確認できます。O&M エンジニアは、TCP の再送を分析するなど、送信されたコンテンツを直接表示して、ECS インスタンスにログインしてパケットをキャプチャすることなく問題をトラブルシューティングできます。
仕組み
ワークフロー
トラフィックミラーセッションは、指定されたミラーソースとミラーターゲットの間に転送パスを確立します。トラフィックミラーセッションを開始すると、トラフィックミラーリング機能は次の操作を実行します。
フィルター条件に一致するサービストラフィックをミラーソースからコピーします。
現在、ミラーソースとしてサポートされているのは ENI のみです。
トラフィックミラーフィルターには、インバウンドルールとアウトバウンドルールが含まれています。送信元 CIDR ブロック、送信元ポート、宛先 CIDR ブロック、宛先ポート、およびプロトコルタイプで構成される 5 タプルは、優先度に基づいて ENI が送受信するトラフィックをフィルター処理するために使用されます。
コピーされたパケットを 標準の VXLAN パケット形式 でカプセル化します。
VXLAN ネットワーク識別子 (VNI): トラフィックミラーセッションに割り当てられる仮想ネットワーク ID です。異なるセッションからのミラーリングされたデータを区別するために使用されます。トラフィックミラーセッションの作成時に VNI を指定しない場合、システムはランダムに 1 つを割り当てます。
送信元 IP: ミラーソースのプライマリ IP アドレス。
送信元ポート: サービスパケットの 5 タプルのハッシュ値によって決定されます。
宛先 IP: ミラーターゲットのプライマリ IP アドレス。
宛先ポート: デフォルトでポート 4789 が使用され、変更することはできません。
ミラーリングされたパケットを到達可能なミラーターゲットに転送します。ミラーターゲットとミラーソースが同じ VPC にない場合は、VPC ピアリング接続を構成して、ミラーソースとミラーターゲットが到達可能であることを確認する必要があります。
現在、ENI、内部向け Classic Load Balancer (CLB)、および Gateway Load Balancer (GWLB) エンドポイントがミラーターゲットとしてサポートされています。
現在、GWLB エンドポイントへのトラフィック転送をサポートしているリージョンは、中国 (杭州)、中国 (上海)、中国 (青島)、中国 (北京)、中国 (フフホト)、中国 (深圳)、シンガポール、米国 (シリコンバレー)、および 米国 (バージニア) です。
ミラーソースからコピーされたパケットは、セキュリティグループまたはネットワーク ACL によって制限されません。ただし、ミラーリングされたパケットがミラーターゲットに転送される場合、ミラーターゲットのセキュリティグループとネットワーク ACL でインバウンドルールを構成して、ミラーソースからの UDP パケットがミラーターゲットのポート 4789 にアクセスできるようにする必要があります。
内部向け CLB をミラーターゲットとして使用する場合、ポート 4789 で UDP リスナーを構成する必要があります。Gateway Load Balancer は、すべてのデータパケットに対してすべてのポートをリッスンします。
一致ルール
同じミラーソースからの同じパケットは、1 回しかミラーリングできません。
たとえば、ミラーソースのインバウンドトラフィックを考えてみましょう。
ミラーソースが 1 つのトラフィックミラーセッションにのみ追加されている場合、関連付けられたトラフィックミラーフィルターのインバウンドルールが評価されます。システムは、優先度の順にルールをチェックして、トラフィックの 5 タプルに一致するものを見つけます。最初の一致するルールが見つかると、指定されたポリシーが実行されます。一致するルールがない場合、トラフィックはミラーリングされません。
ミラーソースが複数のトラフィックミラーセッションに追加されている場合、関連付けられたトラフィックミラーフィルターのインバウンドルールは、セッションの優先度に基づいて評価されます。現在のセッションのフィルターで一致するルールがない場合、システムは次に優先度の高いセッションのフィルターに進みます。このプロセスは、一致が見つかり、対応するポリシーが実行されるまで続きます。どのトラフィックミラーセッションのインバウンドルールも一致しない場合、トラフィックはミラーリングされません。
ミラーターゲットが受信するパケットの長さ
フラグメント化されたサービスパケットのミラーリング動作
元のサービスパケットの長さがリンクの最大伝送単位 (MTU) を超える場合、パケットは伝送のためにフラグメント化されます。
たとえば、サービスパケットの長さが 2000 バイトで、リンク MTU が 1500 バイトの場合、パケットは 1500 バイトと 500 バイトの 2 つの部分にフラグメント化されます。
Alibaba Cloud ネットワークのデフォルトのリンク MTU は 1500 バイトです。ただし、VPN ゲートウェイなどの一部のネットワークコンポーネントは、MTU が 1500 バイト未満です。
ミラーソースがアタッチされている ECS インスタンスで TCP Segmentation Offload (TSO) または UDP Fragmentation Offload (UFO) が有効になっている場合、フラグメント化されたサービスパケットのミラーリング動作が異なる場合があります。ミラーターゲットがすべてのフラグメント化されたサービスパケットのミラーパケットを受信するようにしたい場合は、TSO と UFO を無効にすることをお勧めします。これにより、インスタンスのパフォーマンスに影響が出る可能性があります。または、第 7 世代の インスタンスファミリー 以降の ECS インスタンスを使用します。
インスタンスが第 7 世代であるかどうかは、ecs.g7se.xlarge などのインスタンスファミリー名の番号で判断できます。
ミラーパケットの切り捨て: ミラーパケットの長さ (元のパケットと 50 バイトの VXLAN ヘッダー) が転送パスの MTU を超える場合、システムはミラーパケットを切り捨てます。
中国 (杭州)、中国 (上海)、中国 (青島)、中国 (北京)、中国 (フフホト)、中国 (深圳)、シンガポール、米国 (シリコンバレー)、および 米国 (バージニア) リージョンでは、ミラーターゲットが受信するミラーパケットの長さは、ミラーターゲットの MTU によって制限されます。現在、Alibaba Cloud の第 8 世代プライマリインスタンスファミリーは、MTU 8500 のジャンボフレームをサポートしています。ミラーパケットが切り捨てられるのを防ぐために、ミラーターゲットでジャンボフレームを有効にすることをお勧めします。
他のリージョンでは、ミラーターゲットが受信するミラーパケットの長さは、デフォルトのリンク MTU (1500 バイト) によって制限されます。
特定の長さのミラーパケットのヘッダーのみを表示する必要がある場合は、[ミラーパケット長] を設定できます。システムは、この値を超えるミラーソースからのサービスパケットの部分を切り捨ててから、ミラーターゲットに転送します。
制限
ミラーソースとミラーターゲット: 同じ ENI をミラーソースとミラーターゲットの両方として使用することはできません。マネージド ENI は、ミラーソースまたはミラーターゲットとしてサポートされていません。
アカウントとリージョン: 同じ Alibaba Cloud アカウントとリージョン内の単一の VPC または複数の VPC にまたがってミラーソースとミラーターゲットを構成できます。リージョン間またはアカウント間のシナリオはサポートされていません。
IP バージョン: トラフィックミラーリングは、IPv4 ネットワークトラフィックのミラーリングをサポートします。IPv6 はサポートされていません。
帯域幅: トラフィックミラーリングはインスタンスの帯域幅を消費し、追加のスロットリングの対象にはなりません。インスタンスの帯域幅が最大容量に達した場合、ミラーパケットはドロップされ、サービストラフィックの転送が優先されます。
トラフィックタイプ: トラフィックミラーリングは、ネットワーク ACL またはセキュリティグループによってドロップされたトラフィック、フローログトラフィック、アドレス解決プロトコル (ARP) トラフィック、または動的ホスト構成プロトコル (DHCP) トラフィックのミラーリングをサポートしていません。
トラフィックミラーの作成または削除
システムは、ミラーソースに出入りするサービストラフィックを、関連付けられたトラフィックミラーフィルターのルールと照合して評価します。ルールの一致は、[優先度]、[プロトコルタイプ]、[IP バージョン]、[送信元 CIDR ブロック]、[宛先 CIDR ブロック]、[送信元ポート]、および [宛先ポート] によって決定されます。一致が発生すると、システムは指定された [ポリシー] を実行して、トラフィックをミラーリングするかどうかを決定します。ミラーリングされたデータは、コピーされてミラーターゲットに転送されます。
優先度 は、ルールの優先度を決定します。値の範囲は 1~16777216 です。値が小さいほど、優先度が高くなります。同じトラフィックミラーフィルター内のインバウンドルールまたはアウトバウンドルールの優先度は一意である必要があります。
プロトコルタイプが TCP (6) または UDP (17) の場合、ポート範囲を調整できます。値の範囲は 0~65535 です。形式は
開始ポート/終了ポートです。別のプロトコルタイプを選択した場合、ポート範囲を設定することはできません。デフォルト値は -1/-1 で、ポートが制限されていないことを示します。
コンソール
初めてトラフィックミラーリングを使用する前に、サービスをアクティブ化する必要があります。これを行うには、トラフィックミラーリングアクティベーションページ にログインし、プロンプトに従います。
トラフィックミラーの作成
フィルター条件の作成
要件を満たす既存のトラフィックミラーフィルターがある場合は、このステップをスキップして、直接トラフィックミラーセッションを作成できます。
VPC コンソール - トラフィックミラーフィルター ページに移動します。上部のナビゲーションバーで、トラフィックミラーを作成するリージョンを選択します。フィルターの作成 をクリックします。
インバウンドルールとアウトバウンドルールを構成して、ミラーソースからコピーしてミラーターゲットに転送するトラフィックを指定します。トラフィックミラーフィルターにルールが含まれていない場合、トラフィックはミラーリングされません。
トラフィックミラーフィルターを作成するときに、最大 10 個のインバウンドルールと 10 個のアウトバウンドルールを構成できます。トラフィックミラーフィルターが作成された後、インバウンドルールとアウトバウンドルールを [追加]、[編集]、または [削除] できます。
トラフィックミラーフィルターを削除するには、それがどのトラフィックミラーセッションにも関連付けられていないことを確認してください。関連付けられている場合は、まずトラフィックミラーセッションから関連付けを解除し、次にターゲットのトラフィックミラーフィルターの [操作] 列にある [削除] をクリックします。
トラフィックミラーセッションの作成
VPC コンソール - トラフィックミラーセッション ページに移動します。上部のナビゲーションバーで、トラフィックミラーを作成するリージョンを選択します。[トラフィックミラーセッションの作成] をクリックします。
トラフィックミラーセッションを構成します。
[VNI の指定]: トラフィックミラーセッションに割り当てられる仮想ネットワーク ID です。異なるセッションからのミラーリングされたデータを区別するために使用されます。有効な値: 0~16777215。VNI を指定しない場合、システムはランダムに 1 つを割り当てます。
[優先度] の構成: ミラーソースが複数のトラフィックミラーセッションに追加されている場合、トラフィックはトラフィックミラーセッションの [優先度] に基づいて宛先にミラーリングされます。有効な値: 1~32766。値が小さいほど、優先度が高くなります。同じリージョンで同じアカウントで作成されたトラフィックミラーセッションの優先度は一意である必要があります。
特定の長さのミラーパケットのヘッダーのみを表示する必要がある場合は、[ミラーパケット長] を設定できます。システムは、この値を超えるミラーソースからのサービスパケットの部分を切り捨ててから、ミラーターゲットに転送します。
関連付けられたトラフィックミラーフィルター、ミラーソース、およびミラーターゲットを構成します。
トラフィックミラーセッションの開始
トラフィックミラーセッションを作成した後、それを有効にします。または、セッションのリストに戻り、セッションの [操作] 列にある [有効化] をクリックすることもできます。
ミラーソースにフィルター条件に一致するトラフィックがある場合、ミラーターゲットで
tcpdump -i name of the NIC corresponding to the traffic mirror destination udp port 4789 -nneコマンドを実行して、受信するミラーパケットを表示できます。
トラフィックミラーの変更
ターゲットのトラフィックミラーセッションの詳細ページで、ミラーターゲットとトラフィックミラーフィルターを [変更] したり、ミラーソースを [追加] または [削除] したり、トラフィックミラーセッションの VNI、優先度、およびミラーパケット長を変更したりできます。
トラフィックミラーセッションの停止または削除
ターゲットのトラフィックミラーセッションの [操作] 列で、[無効化] または [削除] をクリックします。
API
トラフィックミラーの作成
初めてトラフィックミラーリングを使用する前に、OpenTrafficMirrorService 操作を呼び出してサービスをアクティブ化する必要があります。
CreateTrafficMirrorFilter 操作を呼び出して、トラフィックミラーフィルターを作成します。
CreateTrafficMirrorFilterRules 操作を呼び出して、トラフィックミラーフィルターのインバウンドルールまたはアウトバウンドルールを作成します。
CreateTrafficMirrorSession 操作を呼び出して、トラフィックミラーセッションを作成します。
UpdateTrafficMirrorSessionAttribute 操作を呼び出し、
Enabledパラメーターをtrueに設定して、トラフィックミラーセッションを開始します。
トラフィックミラーの変更
AddSourcesToTrafficMirrorSession または RemoveSourcesFromTrafficMirrorSession 操作を呼び出して、トラフィックミラーセッションにミラーソースを追加または削除します。
UpdateTrafficMirrorSessionAttribute 操作を呼び出して、トラフィックミラーセッションの構成を変更したり、ミラーターゲットまたはトラフィックミラーフィルターを変更したりします。
フィルター条件の変更または削除
CreateTrafficMirrorFilterRules 操作を呼び出して、トラフィックミラーフィルターのインバウンドルールまたはアウトバウンドルールを作成します。
DeleteTrafficMirrorFilterRules 操作を呼び出して、トラフィックミラーフィルターのインバウンドルールまたはアウトバウンドルールを削除します。
DeleteTrafficMirrorFilter 操作を呼び出して、トラフィックミラーフィルターを削除します。
トラフィックミラーの停止または削除
UpdateTrafficMirrorSessionAttribute 操作を呼び出し、
Enabledパラメーターをfalseに設定して、トラフィックミラーセッションを停止します。DeleteTrafficMirrorSession 操作を呼び出して、トラフィックミラーセッションを削除します。
Terraform
この例では、ミラーソースに出入りする TCP トラフィックのみをミラーリングします。ミラーリングしたいトラフィックに基づいて、トラフィックミラーフィルターのインバウンドルールとアウトバウンドルールを構成する必要があります。
リソース: alicloud_vpc_traffic_mirror_filter、alicloud_vpc_traffic_mirror_session
# トラフィックミラーを作成するリージョンを指定します。
provider "alicloud" {
region = "cn-hangzhou"
}
# ミラーソースの ID を指定します。
variable "traffic_mirror_source_id" {
default = "eni-hp3e******" # 実際の ENI の ID に置き換えます。
}
# ミラーターゲットの ID を指定します。
variable "traffic_mirror_target_id" {
default = "eni-hp3h******" # 実際の ENI の ID に置き換えます。
}
# トラフィックミラーフィルターを作成し、インバウンドルールとアウトバウンドルールを構成して、ミラーソースに出入りするすべての TCP トラフィックを収集します。
resource "alicloud_vpc_traffic_mirror_filter" "example_vpc_traffic_mirror_filter" {
traffic_mirror_filter_name = "example_vpc_traffic_mirror_filter_name"
egress_rules {
priority = 1
protocol = "TCP"
action = "accept"
destination_cidr_block = "0.0.0.0/0"
destination_port_range = "-1/-1"
source_cidr_block = "0.0.0.0/0"
source_port_range = "-1/-1"
}
ingress_rules {
priority = 1
protocol = "TCP"
action = "accept"
destination_cidr_block = "0.0.0.0/0"
destination_port_range = "-1/-1"
source_cidr_block = "0.0.0.0/0"
source_port_range = "-1/-1"
}
}
# トラフィックミラーセッションを作成します。
resource "alicloud_vpc_traffic_mirror_session" "example_vpc_traffic_mirror_session" {
traffic_mirror_session_name = "example_vpc_traffic_mirror_session"
priority = 1 # トラフィックミラーセッションの優先度を指定します。ミラーソースが複数のトラフィックミラーセッションに追加された場合、トラフィックはトラフィックミラーセッションの優先度に基づいて宛先にミラーリングされます。有効値: 1~32766。値が小さいほど、優先度が高くなります。同じリージョンで同じアカウントで作成されたトラフィックミラーセッションの優先度は一意である必要があります。
virtual_network_id = 10 # トラフィックミラーセッションの VNI を指定します。異なるセッションからのミラーリングされたデータを区別するために使用されます。有効値: 0~16777215。VNI を指定しない場合、システムはランダムに 1 つを割り当てます。
traffic_mirror_filter_id = alicloud_vpc_traffic_mirror_filter.example_vpc_traffic_mirror_filter.id # 関連付けられたトラフィックミラーフィルターを指定します。
traffic_mirror_source_ids = [var.traffic_mirror_source_id] # ミラーソースを指定します。
traffic_mirror_target_type = "NetworkInterface" # ミラーターゲットのタイプを指定します。
traffic_mirror_target_id = var.traffic_mirror_target_id # ミラーターゲットを指定します。
#packet_length = 1500 # 特定の長さのミラーパケットのヘッダーのみを表示する必要がある場合は、ミラーパケット長を設定できます。システムは、この値を超えるミラーソースからのサービスパケットの部分を切り捨ててから、ミラーターゲットに転送します。
}トラフィックミラーの構成例
インバウンド TCP トラフィックを ENI にミラーリングする
インバウンド TCP/UDP トラフィックを異なるミラーターゲットにミラーリングする
VPC 外部からのトラフィックをクロス VPC ミラーターゲットにミラーリングする
トラフィックミラーフィルターを構成して、VPC 外部からのトラフィックと VPC を出るトラフィックを監視できます。
たとえば、ルールの優先度を使用して、VPC CIDR ブロック内から発信されるトラフィックはミラーリングせず、他のすべてのインバウンドトラフィックをミラーリングするフィルターを作成できます。
ミラーターゲットとミラーソースは異なる VPC にあるため、デフォルトでは分離されています。VPC ピアリング接続 を使用し、両方の VPC でルートを構成して、宛先がソースから到達可能であることを確認する必要があります。
詳細情報
課金
請求項目
トラフィックミラーリング料金 = インスタンス料金 + データ処理料金
インスタンス料金 = アクティブなトラフィックミラーセッションを持つミラーソースの数 (個) × トラフィックミラーセッションのアクティブ期間 (時間) × インスタンス料金の単価(USD/個/時間)
データ処理料金 = ミラーリングされたデータの総量 (GB) × データ処理料金の単価(USD/GB)
請求項目 | 単価 |
インスタンス料金 | 0.014 (USD/個/時間) |
データ処理料金 | 0.007 (USD/GB) |
課金ルール
2026 年 3 月 31 日まで、データ処理料金は免除されます。
ミラーソースに対してトラフィックミラーセッションが有効化された後、有効化されたトラフィックミラーセッションを持つ各ミラーソースに対して時間単位で課金されます。使用期間が 1 時間未満の場合は、1 時間に切り上げられます。
1 つのミラーソースに対して複数のトラフィックミラーセッションが作成された場合、インスタンス料金は 1 回のみ課金されます。課金対象のアクティブ期間は、すべてのトラフィックミラーセッションにわたるミラーソースの累積アクティブ期間に基づいて計算されます。たとえば、ミラーソースがトラフィックミラーセッション 1 で 5 時間、トラフィックミラーセッション 2 で 4 時間アクティブだった場合、合計課金対象アクティブ期間は 9 時間になります。
課金例
たとえば、VPC 内の 5 つの ENI に対してトラフィックミラーセッションが有効になっています。トラフィックミラーセッションは 30 日間、1 日 24 時間アクティブで、ミラーリングされたデータの総量は 20 GB です。詳細な料金計算は次のとおりです。
インスタンス料金 = 5 × 30 × 24 × 0.014 = 50.4 USD
データ処理料金 = 20 × 0.007 = 0.14 USD
トラフィックミラーリングの合計料金 = 50.4 + 0.14 = 50.54 USD
支払い遅延とチャージ
支払い遅延と更新
サポートされるリージョン
エリア | リージョン |
アジアパシフィック - 中国 | 中国 (杭州)、中国 (上海)、中国 (南京 - ローカルリージョン、閉鎖予定)、中国 (青島)、中国 (北京)、中国 (張家口)、中国 (フフホト)、中国 (ウランチャブ)、中国 (深圳)、中国 (河源)、中国 (広州)、中国 (成都)、中国 (香港)、および 中国 (福州 - ローカルリージョン、閉鎖予定) |
アジアパシフィック - その他 | 日本 (東京)、韓国 (ソウル)、シンガポール、マレーシア (クアラルンプール)、インドネシア (ジャカルタ)、タイ (バンコク)、フィリピン (マニラ) |
ヨーロッパ & アメリカ | ドイツ (フランクフルト)、英国 (ロンドン)、米国 (シリコンバレー)、および 米国 (バージニア) |
中東 | サウジアラビア (リヤド - パートナーリージョン) |
クォータ
クォータ名 | 説明 | デフォルトの制限 | クォータの引き上げ |
trafficmirror_quota_source_num_per_session | 1 つのトラフィックミラーセッションに追加できるミラーソースの数。 | 10 | [クォータ管理] ページまたは [Quota Center] に移動して、クォータの引き上げを申請します。 |
vpc_quota_traffic_mirror_source_num_per_large_ecs_target | 宛先が ENI であり、その ENI が次のいずれかのインスタンスタイプにアタッチされている場合に、1 つのミラーターゲットでサポートされるミラーソースの数。 | 200 | |
vpc_quota_traffic_mirror_source_num_per_small_ecs_target | 宛先が ENI であり、その ENI が次のいずれかのインスタンスタイプにアタッチされていない場合に、1 つのミラーターゲットでサポートされるミラーソースの数。 | 20 | |
vpc_quota_traffic_mirror_rules_num_per_filter | 1 つのフィルターでサポートされるフィルター ルールの数。 | 20 | |
なし | 1 つのアカウントが 1 つのリージョンで作成できるトラフィックミラーセッションの最大数。 | 20,000 | 引き上げできません。 |
1 つのミラーソースに対して作成できるトラフィックミラーセッションの最大数。 | 3 | ||
宛先がプライベート Classic Load Balancer (CLB) インスタンスである場合に、1 つのミラーターゲットでサポートされるミラーソースの数。 | 500 | ||
宛先が Gateway Load Balancer エンドポイント (GWLBe) である場合に、1 つのミラーターゲットでサポートされるミラーソースの数。 | 500 | ||
1 つのアカウントが 1 つのリージョンで作成できるフィルターの最大数。 | 100 | ||
1 つのフィルターに関連付けることができるトラフィックミラーセッションの数。 | 2,000 |