ポリシーベースのルートを使用する
ポリシーベースのルートを使用すると、パケットの宛先 IP アドレス以外の条件も使用してネクストホップを選択できます。このページでは、ポリシーベースのルートの作成、一覧表示、詳細の取得、削除を行う方法について説明します。
始める前に
- このガイドのコマンドラインの例を使用するには、Google Cloud CLI の最新バージョンをインストールするか、最新バージョンに更新してください。
- プロジェクトで Network Connectivity API を有効にする必要があります。
- 内部 TCP / UDP ロードバランサが必要です。内部 TCP / UDP ロードバランサが定義されているリージョン以外のリージョンからパケットがドロップされないように、グローバル アクセスを有効にすることをおすすめします。
必要なロール
ポリシーベースのルートを使用するために必要な権限を取得するには、プロジェクトに対する Compute ネットワーク管理者(roles/compute.networkAdmin
) IAM ロールを付与するように管理者に依頼してください。ロールの付与の詳細については、アクセスの管理をご覧ください。
ポリシーベース ルートを作成する
ポリシーベースのルートを作成するときに、複数の一致条件を指定できます。選択したすべての条件と一致する場合、トラフィックは指定された内部 TCP / UDP ロードバランサにリダイレクトされます。一致条件を指定しない場合、ルートは VPC ネットワーク内のすべての IPv4 トラフィックに適用されます。
VPC ネットワーク内のトラフィックにポリシーベースのルートを作成する
gcloud
VPC ネットワーク内のトラフィックにポリシーベースのルートを作成するには、policy-based-routes create
コマンドを使用します。
gcloud network-connectivity policy-based-routes create ROUTE_NAME \ --source-range=IP_RANGE_A \ --destination-range=IP_RANGE_B \ --ip-protocol=IP_PROTOCOL \ --network="projects/PROJECT_ID/global/networks/NETWORK" \ --tags=NETWORK_TAGS \ --next-hop-ilb-ip=LOAD_BALANCER_IP \ --description=DESCRIPTION \ --priority=PRIORITY
次のように置き換えます。
ROUTE_NAME
: ポリシーベースのルートの名前IP_RANGE_A
: 送信元 IP の CIDR 範囲IP_RANGE_B
: 宛先 IP の CIDR 範囲IP_PROTOCOL
: 転送するトラフィックの IP プロトコル。ALL
、TCP
、またはUDP
を指定できます。デフォルトはALL
です。PROJECT_ID
: プロジェクトの IDNETWORK
: トラフィックを転送するネットワークの名前NETWORK_TAGS
: 1 つ以上のオプションのネットワーク タグ。ポリシーベースのルートは、これらのタグが 1 つ以上あるインスタンスに適用されます。複数のタグをカンマ区切りリストで指定できます。LOAD_BALANCER_IP
: 内部 TCP / UDP ロードバランサの IP アドレスDESCRIPTION
: ルートの説明(省略可)PRIORITY
: 他のポリシーベースのルートと比較したポリシーベースのルートの優先度
ポリシーベースのルートと同じ方法でレスポンス トラフィックをルーティングするには、同じネクストホップとプロトコルで 2 つ目のポリシーベースのルートを作成します。ただし、送信元 IP アドレスと宛先 IP アドレス範囲は入れ替えます。
gcloud network-connectivity policy-based-routes create RETURN_ROUTE_NAME \ --source-range=IP_RANGE_B \ --destination-range=IP_RANGE_A \ --ip-protocol=IP_PROTOCOL \ --network="projects/PROJECT_ID/global/networks/NETWORK" \ --tags=NETWORK_TAGS \ --next-hop-ilb-ip=LOAD_BALANCER_IP \ --description=DESCRIPTION \ --priority=PRIORITY
RETURN_ROUTE_NAME
は、戻りルートの名前に置き換えます。
API
VPC ネットワーク内のトラフィックにポリシーベースのルートを作成するには、policyBasedRoutes.create
メソッドに POST
リクエストを送信します。
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes?policyBasedRouteId=ROUTE_NAME { "filter": { "srcRange": "IP_RANGE_A", "destRange": "IP_RANGE_B", "ipProtocol": "IP_PROTOCOL", "protocolVersion": "IPv4" }, "network": "projects/PROJECT_ID/global/networks/NETWORK", "nextHopIlbIp": "LOAD_BALANCER_IP", "description": "DESCRIPTION", "priority": "PRIORITY", "virtualMachine": { "tags": [ "NETWORK_TAGS" ] } }
次のように置き換えます。
PROJECT_ID
: プロジェクトの IDROUTE_NAME
: ポリシーベースのルートの名前IP_RANGE_A
: 送信元 IP の CIDR 範囲IP_RANGE_B
: 宛先 IP の CIDR 範囲IP_PROTOCOL
: 転送するトラフィックの IP プロトコル。ALL
、TCP
、またはUDP
を指定できます。デフォルトはALL
です。NETWORK
: ネットワークの名前LOAD_BALANCER_IP
: 内部 TCP / UDP ロードバランサの IP アドレスDESCRIPTION
: ルートの説明(省略可)PRIORITY
: 他のポリシーベースのルートと比較したポリシーベースのルートの優先度NETWORK_TAGS
: 1 つ以上のオプションのネットワーク タグ。ポリシーベースのルートは、これらのタグが 1 つ以上あるインスタンスに適用されます。複数のタグを使用する場合は、"tag1","tag2","tag3"
の形式で指定します。
ポリシーベースのルートと同じ方法でレスポンス トラフィックをルーティングするには、同じネクストホップとプロトコルで 2 つ目のポリシーベースのルートを作成します。ただし、送信元 IP アドレスと宛先 IP アドレス範囲は入れ替えます。
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes?policyBasedRouteId=RETURN_ROUTE_NAME { "filter": { "srcRange": "IP_RANGE_B", "destRange": "IP_RANGE_A", "ipProtocol": "IP_PROTOCOL", "protocolVersion": "IPv4" }, "network": "projects/PROJECT_ID/global/networks/NETWORK", "nextHopIlbIp": "LOAD_BALANCER_IP", "description": "DESCRIPTION", "priority": "PRIORITY", "virtualMachine": { "tags": [ "NETWORK_TAGS" ] } }
RETURN_ROUTE_NAME
は、戻りルートの名前に置き換えます。
Cloud Interconnect 接続で使用するポリシーベースのルートを作成する
Cloud Interconnect 接続を介してオンプレミス ネットワークから VPC ネットワークに送信されるトラフィックにポリシーベースのルートを作成できます。Cloud Interconnect トラフィックにポリシーベースのルートを作成するときにリージョンを指定すると、そのリージョン内のすべての Cloud Interconnect 接続に対してルートが有効になります。特定の Cloud Interconnect 接続に対してポリシーベースのルートを作成することはできません。
gcloud
オンプレミス ネットワークから発信されるトラフィックにポリシーベースのルートを作成するには、policy-based-routes create
コマンドを使用します。
gcloud network-connectivity policy-based-routes create ROUTE_NAME \ --interconnect-attachment-region=INTERCONNECT_REGION \ --tags=NETWORK_TAGS \ --source-range=IP_RANGE_A \ --destination-range=IP_RANGE_B \ --ip-protocol=IP_PROTOCOL \ --network="projects/PROJECT_ID/global/networks/NETWORK" \ --next-hop-ilb-ip=LOAD_BALANCER_IP \ --description=DESCRIPTION \ --priority=PRIORITY
次のように置き換えます。
ROUTE_NAME
: ポリシーベースのルートの名前INTERCONNECT_REGION
: ポリシーベースのルートを適用する Cloud Interconnect 接続のリージョンNETWORK_TAGS
: 1 つ以上のオプションのネットワーク タグ。ポリシーベースのルートは、これらのタグが 1 つ以上あるインスタンスに適用されます。複数のタグをカンマ区切りリストで指定できます。IP_RANGE_A
: 送信元 IP の CIDR 範囲IP_RANGE_B
: 宛先 IP の CIDR 範囲IP_PROTOCOL
: 転送するトラフィックの IP プロトコル。ALL
、TCP
、またはUDP
を指定できます。デフォルトはALL
です。PROJECT_ID
: プロジェクトの IDNETWORK
: トラフィックを転送するネットワークの名前LOAD_BALANCER_IP
: 内部 TCP / UDP ロードバランサの IP アドレスDESCRIPTION
: ルートの説明(省略可)PRIORITY
: 他のポリシーベースのルートと比較したポリシーベースのルートの優先度
API
オンプレミス ネットワークから発信されるトラフィックにポリシーベースのルートを作成するには、policyBasedRoutes.create
メソッドに POST
リクエストを送信します。
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes?policyBasedRouteId=ROUTE_NAME { "filter": { "srcRange": "IP_RANGE_A", "destRange": "IP_RANGE_B", "ipProtocol": "IP_PROTOCOL", "protocolVersion": "IPv4" }, "interconnectAttachment": { "region": "INTERCONNECT_REGION" }, "network": "projects/PROJECT_ID/global/networks/NETWORK", "nextHopIlbIp": "LOAD_BALANCER_IP", "description": "DESCRIPTION", "priority": "PRIORITY", "virtualMachine": { "tags": [ "NETWORK_TAGS" ] } }
次のように置き換えます。
PROJECT_ID
: プロジェクトの IDROUTE_NAME
: ポリシーベースのルートの名前IP_RANGE_A
: 送信元 IP の CIDR 範囲IP_RANGE_B
: 宛先 IP の CIDR 範囲IP_PROTOCOL
: 転送するトラフィックの IP プロトコル。ALL
、TCP
、またはUDP
を指定できます。デフォルトはALL
です。INTERCONNECT_REGION
: ポリシーベースのルートを適用する Cloud Interconnect 接続のリージョンNETWORK
: ネットワークの名前LOAD_BALANCER_IP
: 内部 TCP / UDP ロードバランサの IP アドレスDESCRIPTION
: ルートの説明(省略可)PRIORITY
: 他のポリシーベースのルートと比較したポリシーベースのルートの優先度NETWORK_TAGS
: 1 つ以上のオプションのネットワーク タグ。ポリシーベースのルートは、これらのタグが 1 つ以上あるインスタンスに適用されます。複数のタグを使用する場合は、"tag1","tag2","tag3"
の形式で指定します。
ポリシーベースのルートの接続を確認する
接続テストは、ネットワーク内のエンドポイント間の接続を確認できる診断ツールです。構成を分析し、場合によってはランタイム検証を行うこともあります。接続テストでは、ポリシーベースのルートがサポートされています。ポリシーベースのルートで接続テストを実行するには、接続テストを作成して実行するをご覧ください。
ポリシーベースのルートを一覧表示する
ポリシーベース ルートを一覧表示すると、プロジェクト内のすべてのポリシーベースのルートを表示できます。
gcloud
ポリシーベースのルートを一覧表示するには、policy-based-routes list
コマンドを使用します。
gcloud network-connectivity policy-based-routes list
API
ポリシーベースのルートを一覧表示するには、policyBasedRoutes.list
メソッドに GET
リクエストを送信します。
GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes
PROJECT_ID
は、ポリシーベースのルートを一覧表示するプロジェクトの ID に置き換えます。
ポリシーベースのルートの説明を取得する
ポリシーベースのルートの説明を取得して、ルートの詳細を確認できます。
gcloud
ポリシーベースのルートの説明を取得するには、policy-based-routes describe
コマンドを使用します。
gcloud network-connectivity policy-based-routes describe NAME
NAME
は、説明を取得するルートの名前に置き換えます。
API
ポリシーベースのルートの説明を取得するには、policyBasedRoutes.get
メソッドに GET
リクエストを送信します。
GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes/ROUTE_NAME
次のように置き換えます。
PROJECT_ID
: プロジェクトの IDROUTE_NAME
: 説明を取得するポリシーベースのルートの名前
ポリシーベースのルートを削除する
ポリシーベースのルートを削除して、VPC ネットワークから削除できます。
gcloud
ポリシーベースのルートを削除するには、policy-based-routes delete
コマンドを使用します。
gcloud network-connectivity policy-based-routes delete NAME
NAME
は、削除するルートの名前に置き換えます。
API
ポリシーベースのルートを削除するには、policyBasedRoutes.delete
メソッドに DELETE
リクエストを送信します。
DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes/ROUTE_NAME
次のように置き換えます。
PROJECT_ID
: プロジェクトの IDROUTE_NAME
: 削除するポリシーベースのルートの名前