VPC でのサブネットの処理
サブネットは、ネットワーク・トラフィックが起点から宛先までより効率的なパスを移動するのに役立ちます。 サブネットでアクセス制御リスト (ACL) を使用して、各サブネット内のリソースを保護できます。
開始前に
始める前に、リストされている条件に応じて、以下のアクションを含む 1 つ以上の IAM アクセス役割が割り当てられている必要があります。 アクセス権限は [、ユーザー ] > [ユーザー] > [アクセス] に移動して確認できます。
is.subnet.subnet.createis.public-gateway.public-gateway.operateが指定されたpublic_gateway場合に必要is.network-acl.network-acl.operate
VPC内のサブネットの作成
コンソール、CLI、またはAPIを使用して、VPC内にサブネットを作成できます。
サブネットに RFC 1918 で定義されている範囲(10.0.0.0/8, 172.16.0.0/12, または 192.168.0.0/16)外の IP 範囲を使用すると、そのサブネットに接続されたインスタンスがパブリックインターネットの一部へ到達できなくなる可能性があります。
アドレス non-RFC-1918 を使用し、かつパブリック接続性( フローティングIP アドレスまたはパブリックゲートウェイ)を持つVPCを設定する場合は、Delegate-VPCアクションを含むカスタムルートを使用するようにしてください。
コンソールでのVPC内サブネットの作成
VPC インスタンスにサブネットを作成するには、以下の手順を実行します。
-
ブラウザーから、 IBM Cloud コンソールを開きます。
-
ナビゲーション メニュー
を選択し、 インフラストラクチャ
> ネットワーク > サブネットをクリックします。
-
「VPC のサブネット」リスト・テーブルで 「作成 +」 をクリックします。
-
「場所」セクションには、以下の情報を入力してください:
- 地理: サブネットを作成する大まかなエリアを指定します。
- 地域: サブネットを作成するリージョンを指定します。
- ゾーン: サブネットを作成するゾーンを指定します。
-
詳細セクションには、以下の情報を記載してください:
-
名前: サブネットの固有 ID (
my-subnetなど) を入力します。 -
リソースグループ: サブネット用のリソースグループを選択してください。
-
タグ: オプションで、サブネットのグループ化に役立つ関連タグを追加します。
-
アクセス管理タグ: オプションで、アクセス管理タグをリソースに追加して、アクセス制御関係の編成に役立てます。 サポートされるアクセス管理タグの形式は
key:valueのみです。 詳しくは、タグを使用したリソースに対するアクセス権限の制御を参照してください。 -
仮想プライベートクラウド: サブネットを作成する VPC を選択します。
-
IP 範囲の選択: IP 範囲の最も効率的な場所が自動的に計算されます。 デフォルトの選択を受け入れる代わりに IP 範囲をカスタマイズする場合は、別のアドレス接頭部を選択するか、アドレス数を変更するか、IP 範囲を手動で入力します。
-
ルーティングテーブル: 新しいサブネットで使用するルーティング テーブルを選択します。
-
サブネット・アクセス制御リスト: 新規サブネットで使用するアクセス制御リストを選択します。
-
パブリック・ゲートウェイ: スイッチを 「接続済み」 に切り替えることによって、サブネットがパブリック・インターネットと通信するかどうかを示します。
パブリックゲートウェイをアタッチすると、 が作成され フローティングIP 、コストが発生します。
-
-
「要約」パネルで、 「サブネットの作成」 をクリックしてサブネットを作成します。
「接続されたリソース」タブ
[ アタッチされたリソース ] タブには、サブネットにアタッチされているすべてのリソースが表示され、新しいリソースを作成してアタッチする方法が提供されます。 このタブから以下のリソースを作成できます。
- インスタンス
- ベアメタル・サーバー
- インスタンス・テンプレート
- インスタンス・グループ
- ロード・バランサー
- VPN ゲートウェイ
- 仮想エンドポイント・ゲートウェイ
- VPN サーバー
作成するリソースのリソース・リスト・テーブルで 「作成 +」 をクリックします。 該当するリソース作成ワークフローに移動し、リソース作成プロセスを開始できます。
「予約済み IP」タブ
予約済みIP タブは、サブネットに関連付けられているすべての予約済みIPアドレスのリストです。 予約済みIPアドレスの詳細については、 「IPアドレスの管理」 を参照してください。
VPC内のサブネットをCLIから作成する
CLIからサブネットを作成するには、次のコマンドを実行します:
ibmcloud is subnet-create SUBNET_NAME VPC ((--zone ZONE_NAME --ipv4-address-count ADDR_COUNT) | --ipv4-cidr-block CIDR_BLOCK) [--acl ACL] [--pgw PGW] [--rt RT] [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] {} [--output JSON] [-q, --quiet]
ここで、
SUBNET_NAME- サブネットの名前。
VPC- VPC の ID または名前。
--ipv4-cidr-block- サブネットの IPv4 範囲。 このオプションはと排他的
--ipv4-address-countです。 --ipv4-address-count- 必要な IPv4 アドレスの総数は、2の累乗でなければならず、最小値は8である。 このオプションはと排他的
--ipv4-cidr-blockです。 --zone- ゾーンの名前。
--acl- ネットワーク ACL の ID または名前。
--pgw- パブリック・ゲートウェイの ID または名前。
--rt- ルーティング・テーブルの ID または名前。 このオプションは、ルーティングテーブルのクラウドリソース名(CRN)もサポートする。
--resource-group-id- リソース・グループの ID。 このIDは.と排他的
--resource-group-nameです。 --resource-group-name- リソース・グループの名前。 この名称は. と相互排他的である
--resource-group-id。 --output- 出力フォーマットを指定します。JSON のみがサポートされています。 以下のいずれかです:
JSON。 -q, --quiet- 詳細出力を抑制します。
VPCでAPIを使用してサブネットを作成する
API を使用して VPC にサブネットを作成するには、以下の手順に従ってください。
- API 環境をセットアップします。
- APIコマンドで使用する追加の変数を格納します。
| 照会パラメーター | 情報 |
|---|---|
| バージョン 必須 string |
指定された日付時点でのAPIの YYYY-MM-DD バージョンを要求します。 現在日付までの任意の日付を指定できます。 最新バージョンをリクエストするには、現在の日付を指定してください。可能な値: 値は正規表現に一致する必要があります ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ |
| **生成 必須 int32 |
インフラストラクチャー世代。 可能な値: 2 |
| リクエスト本文 が必要です |
サブネットプロトタイプオブジェクト。 |
| vpc 必須 string |
サブネットが配置されるVPC。 次のいずれか: VPCIdentityById, VPCIdentityByCRN, VPCIdentityByHref |
IPバージョンstring |
このサブネットでサポートするIPバージョン。 許容値: [ipv4] |
| 名前 必須 string |
このサブネットの名前。 その名前は、VPC内の別のサブネットで使用されてはなりません。 指定がない場合、名前はランダムに選ばれた単語のハイフンで連結されたリストになります。 可能な値: 1 ≤ 長さ ≤ 63, 値は正規表現に一致 ([a-z]|[a-z][-a-z0-9]*[a-z0-9])$する必要がある例: my-subnet |
ネットワークACLstring |
このサブネットに使用するネットワークACL。 指定がない場合、VPC のデフォルトネットワークアクセス制御リストが使用されます。 次のいずれか: NetworkACLIdentityById, NetworkACLIdentityByCRN, NetworkACLIdentityHref |
パブリックゲートウェイstring |
このサブネットのインターネット向けトラフィックに使用するパブリックゲートウェイ。 指定がない場合、サブネットはパブリックゲートウェイに接続されません。 次のいずれか: PublicGatewayIdentityById, PublicGatewayIdentityByCRN, PublicGatewayIdentityByHref |
| リソースグループ ResourceGroupIdentityById |
使用するリソース・グループ。 指定がない場合、 アカウント のデフォルト のリソースグループが使用されます。 |
ルーティングテーブルstring |
このサブネットに使用するルーティングテーブル。 指定されていない場合は、VPC のデフォルト・ルーティング・テーブルが使用されます。 ルーティングテーブルのプロパティ route_direct_link_ingress, route_internet_ingress, route_transit_gateway_ingress, および route_vpc_zone_ingress は でなければならない false。次のいずれか: RoutingTableIdentityById, RoutingTableIdentityByCRN, RoutingTableIdentityByHref |
int 64SubnetByTotalCount または SubnetByCIDR
|
の IPv4 総数を指定してください。 SubnetByTotalCount サブネットの範囲 IPv4 をCIDR形式で指定してください SubnetByCIDR。 どちらのオプションも、サブネットを作成するため zone のが必要です。 |
すべての変数が開始されたら、要求を送信します。
以下の例を参照してください。
curl -X POST
"$vpc_api_endpoint/v1/subnets?version=2022-10-31&generation=2"
-H "Authorization: Bearer $iam_token"
-d '{
"name": "my-subnet-1",
"ipv4_cidr_block": "10.0.1.0/24",
"ip_version": "ipv4",
"zone": { "name": "us-south-1" },
"vpc": { "id": "a0819609-0997-4f92-9409-86c95ddf59d3" }
}'
リクエストを開始した後に表示される応答は以下の通りです:
| 応答本文 | 詳細 |
|---|---|
| available_ipv4_address_count 常に含まれる int64 |
このサブネット内で使用されておらず、ユーザーまたはプロバイダーによって予約されていないアドレ IPv4 スの数。 例: 15 |
| created_at は常に含まれます date-time |
サブネットが作成された日時。 |
| CRNは 常に含まれます string |
このサブネットのCRN。 可能な値: 9 ≤ 長さ ≤ 5 12 例: crn:v1:bluemix:public:is:us-south-1:a/123456::subnet:7ec86020-1c6e-4889-b3f0-a15f2e50f87e |
|
このサブ URL ネットの 可能な値: 10 ≤ 長さ ≤ 8000, 値は正規表現に一致する必要がある ^http(s)?://([^/?#]*)([^?#]*)(?([^#]*))?(#(.*))?$例: https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e |
|
このサブネットの 固有 識別子可能な値: 1 ≤ 長さ ≤ 64、値は正規表現に一致**する必要がある ** ^[-0-9a-z_]+$例: 7ec86020-1c6e-4889-b3f0-a15f2e50f87e |
| ip_version 常に含まれる string |
このサブネットでサポートされているIPバージョン。 可能な値: [ipv4] |
| ipv4_cidr_block 常に含まれる string |
サブネットの範囲 IPv4 は、CIDR形式で表現されます。 可能な値: 9 ≤ 長さ ≤ 18、値は正規表現に一致 ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(/(3[0-2]|[1-2][0-9]|[0-9]))$する必要がある例: 10.0.0.0/24 |
| name 常に含まれる string |
このサブネットの名前。 この名前はVPC内のすべてのサブネットで一意です。 可能な値: 1 ≤ 長さ ≤ 63, 値は正規表現に一致 ^-?([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$する必要がある例: my-subnet |
| ネットワークACL | 常に含まれるNetworkACLReference |
| リソースグループは 常に含まれます ResourceGroupReference |
このサブネットのリソースグループ。 |
| resource_type 常に含まれる string |
リソース・タイプ。 可能な値: 1 ≤ 長さ ≤ 128, 値は正規表現に一致 ^[a-z][a-z0-9]*(_[a-z0-9]+)*$する必要がある例: subnet |
| ルーティング テーブル 常に含まれる RoutingTableReference |
このサブネットのルーティングテーブル。 |
| ステータス 常に含まれる string |
サブネットの状態。 可能な値: available,deleting,failed, pending |
| total_ipv4_address_count 常に含まれる int64 |
|
| vpc 常に含まれる VPCReference |
このサブネットが属するVPC。 |
| ゾーン 常に含まれる ZoneReference |
このサブネットが属するゾーン。 |
パブリックゲートウェイPublicGatewayReference |
このサブネットのインターネット向けトラフィックに使用するパブリックゲートウェイ。 |
| 状況コード | 意味 |
|---|---|
| 201 | サブネットは正常に作成されました。 |
| 400 | 無効なサブネットプロトタイプオブジェクトが提供されました。 |
| 409 | サブネットプロトタイプオブジェクトがVPC内の別のサブネットと競合しているか、VPCのアドレスプレフィックスの範囲外のCIDRブロックを指定しています。 |
詳細情報(Java Node、、 Python、および Go の例を含む)については、 VPC API リファレンス の create a subnet メソッドを参照してください。
VPC でのサブネットの表示
UI、API、または CLI を使用して、VPC 内のサブネットの詳細を表示できます。
コンソールでVPC内のサブネットを表示する
サブネットが作成されると、VPC のサブネット一覧に表示されます。
コンソールのリストでサブネットの詳細を表示するには、 [名前] 列のサブネットのリンクをクリックします。 [概要 ]タブには、サブネット作成時に使用した情報が表示されます。
CLIからVPC内のサブネットを表示する
VPC内のサブネットの詳細をCLIから確認するには、次のコマンドを実行します:
ibmcloud is subnet SUBNET [--vpc VPC] [--show-attached] [--output JSON] [-q, --quiet]
ここで、
SUBNET- サブネットの ID または名前。
--vpc- VPC の ID または名前。 これは、この VPC内の名前によって固有のリソースを指定する場合にのみ必要です。
--show-attached- サブネットに接続されたリソース (インスタンス、ロード・バランサー、VPN ゲートウェイ) の詳細を表示します。
--output- 出力フォーマットを指定します。JSON のみがサポートされています。 次のいずれか: JSON。
-q, --quiet- 詳細出力を抑制します。
VPC内のサブネットをAPIで表示する
このメソッドを呼び出すには、次のアクションを含む 1 つ以上の IAM アクセス役割を割り当てられている必要があります。 アクセス権限は [、ユーザー ] > [ユーザー] > [アクセス] に移動して確認できます
is.subnet.subnet.read
API を使用して VPC 内のサブネットを取得するには、以下の手順に従ってください。
- API 環境をセットアップします。
- APIコマンドで使用する追加の変数を格納します。
| 照会パラメーター | 情報 |
|---|---|
| id 必須 string |
サブネット識別子。 可能な値: 1 ≤ 長さ ≤ 64、値は正規表現に一致する必要がある ^[-0-9a-z_]+$ |
| バージョン 必須 string |
指定された日付時点でのAPIの YYYY-MM-DD バージョンを要求します。 現在日付までの任意の日付を指定できます。 最新バージョンをリクエストするには、現在の日付を指定してください。可能な値: 値は正規表現に一致する必要があります ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ |
| 世代 必須 int32 |
インフラストラクチャー世代。 許容値: 2 |
- すべての変数が初期化されたら、コマンドを実行してください。
以下の例を参照してください。
curl -X GET "$vpc_api_endpoint/v1/subnets/$subnet_id?version=2022-10-31&generation=2"
-H "Authorization: Bearer $iam_token"
リクエストを開始した後に表示される応答は以下の通りです:
| 応答本文 | 詳細 |
|---|---|
| available_ipv4_address_count 常に含まれる int64 |
このサブネット内で使用されておらず、ユーザーまたはプロバイダーによって予約されていないアドレ IPv4 スの数。 例: 15 |
| created_at 常に日付時刻 を含む |
サブネットが作成された日時 |
| CRNは 常に含まれます string |
このサブネットの CR N可能な値: 9 ≤ 長さ ≤ 5 12 例: crn:v1:bluemix:public:is:us-south-1:a/123456::subnet:7ec86020-1c6e-4889-b3f0-a15f2e50f87e |
|
このサブ URL ネットの 可能な値: 10 ≤ 長さ ≤ 8000, 値は正規表現に一致する必要がある ^http(s)?://([^/?#]*)([^?#]*)(?([^#]*))?(#(.*))?$例: https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e |
|
このサブネットの 固有 識別子可能な値: 1 ≤ 長さ ≤ 64、値は正規表現に一致**する必要がある ** ^[-0-9a-z_]+$例: 7ec86020-1c6e-4889-b3f0-a15f2e50f87e |
| ip_version 常に含まれる string |
このサブネットがサポートするIPバージョン。 可能な値: [ipv4] |
| ipv4_cidr_block 常に含まれる string |
サブネットの範囲 IPv4 をCIDR形式で表したもの。 可能な値: 9 ≤ 長さ ≤ 18、値は正規表現に一致 ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(/(3[0-2]|[1-2][0-9]|[0-9]))$する必要がある例: 10.0.0.0/24 |
| name 常に含まれる string |
このサブネットの名前。 この名前はVPC内のすべてのサブネットで一意です。 可能な値: 1 ≤ 長さ ≤ 63, 値は正規表現に一致 ^-?([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$する必要がある例: my-subnet |
| ネットワークACL | 常に含まれる NetworkACLReference |
| リソースグループは 常に含まれます ResourceGroupReference |
このサブネットのリソースグループ。 |
| resource_type 常に含まれる string |
リソース・タイプ。 可能な値: 1 ≤ 長さ ≤ 128, 値は正規表現に一致 ^[a-z][a-z0-9]*(_[a-z0-9]+)*$する必要がある例: subnet |
| ルーティング テーブル 常に含まれる RoutingTableReference |
このサブネットのルーティングテーブル。 |
| ステータス 常に含まれる string |
サブネットの状態。 可能な値: available,deleting,failed, pending |
| total_ipv4_address_count 常に含まれる int64 |
|
| vpc 常に含まれる VPCReference |
このサブネットが属するVPC。 |
| ゾーン 常に含まれる ZoneReference |
このサブネットが属するゾーン。 |
| パブリックゲートウェイ PublicGatewayReference |
このサブネットのインターネット向けトラフィックに使用するパブリックゲートウェイ。 |
| 状況コード | 意味 |
|---|---|
| 200 | サブネットは正常に取得されました。 |
| 404 | 指定された識別子を持つサブネットが見つかりませんでした。 |
詳細情報(Java、 Node Python、C# Python、および Java Go のサンプルを含む)については、 VPC API リファレンス の「サブネットの取得」を参照してください。