Help us understand the problem. What is going on with this article?

Oracle Cloud 仮想ネットワーク を cli で作成

More than 1 year has passed since last update.

はじめに

Oracle Cloud の勉強の一環で、公式のチュートリアルを進めています。公式のチュートリアルでは日本語、かつ、GUI操作の内容となっています。わかりやすく書かれているので、基本はこちらを参照していただけるとよいと思います。

このQiitaの記事は、上記のチュートリアルを CLI であえて実施した備忘録として書きます。
CLI の理由は、GUIと比べて再現性や再実行性が高いのと、なんとなくかっこいいから

今回のテーマ

Virtual Cloud Network を作成
https://community.oracle.com/docs/DOC-1019114

前提作業

oci cli と jq コマンドを使用可能なこと。次のQiita記事で導入した手順を書いています
https://qiita.com/sugimount/items/63a8cfe1163030ae8804

Virtual Cloud Network を作成

VCNを作成します。以下のパラメータを指定

  • CIDR を指定
  • VCNの名前を指定
  • VCN 内部で使用される Resolver に付与する、VCN名を指定
oci network vcn create --cidr-block 172.16.0.0/16 --display-name TutorialVCN --dns-label tutorial

作成したVCNのOCID (Oracle Cloud Identifier) を変数に格納。 変数格納の書式は fish shell となっています

set vcn_ocid (oci network vcn list | jq -r '.data | map(select(.["display-name"] == "TutorialVCN"))[].id')

memo VCNの削除

oci network vcn delete --vcn-id $vcn_ocid --force

Public Subnet を作成

作成したVCNにSubnet を3つ作成します。以下のパラメータを指定します。
若干わかりにくいパラメータを説明すると、--prohibit-public-ip-on-vnic は、Public Subnet か Private Subnet のどちらを作成するか指定します。

oci network subnet create --availability-domain AJtg:US-ASHBURN-AD-1 --cidr-block 172.16.1.0/24 --vcn-id $vcn_ocid --display-name tutorial_subnet1 --dns-label subnet1 --prohibit-public-ip-on-vnic false
oci network subnet create --availability-domain AJtg:US-ASHBURN-AD-2 --cidr-block 172.16.2.0/24 --vcn-id $vcn_ocid --display-name tutorial_subnet2 --dns-label subnet2 --prohibit-public-ip-on-vnic false
oci network subnet create --availability-domain AJtg:US-ASHBURN-AD-3 --cidr-block 172.16.3.0/24 --vcn-id $vcn_ocid --display-name tutorial_subnet3 --dns-label subnet3 --prohibit-public-ip-on-vnic false

Internet Gateway を作成

Internet側から、VCN上のインスタンスへアクセスできるように、Internet Gateway を作成します

oci network internet-gateway create --is-enabled true --vcn-id $vcn_ocid --display-name tutorial-int-gw1

作成したInternet GatewayのOCID (Oracle Cloud Identifier) を変数に格納。 変数格納の書式は fish shell となっています

set ig_ocid (oci network internet-gateway list --vcn-id $vcn_ocid | jq -r '.data | map(select(.["display-name"] == "tutorial-int-gw1"))[].id')

Route Table に Internet Gateway を使用した Static Route を指定

VCNを作成したときに、DefaultのRoute Tables が作成されています。これのデフォルトルート (0.0.0.0/0) に対して、作成したInternet Gateway を指定します。

まずは、Route Table の OCID を変数に格納します

set routetable_ocid (oci network route-table list --vcn-id $vcn_ocid  | jq -r '.data | map(select(.["display-name"] == "Default Route Table for TutorialVCN"))[].id')

Route Table に デフォルトルートとして、Internet Gateway を指定します。

route-rules で指定するルールは、上書きになるので注意してください。複数ルールが追加されている状態で、1個のルールを追加したい場合は、既存のものもJSONで指定しないと消えます

oci network route-table update --rt-id $routetable_ocid --route-rules "[{\"cidrBlock\":\"0.0.0.0/0\",\"networkEntityId\":\"$ig_ocid\"}]"

Security Listを確認

以下のコマンドで VCN 上に存在している Security List のルールを確認します。
VCN → Internet への通信です。

> oci network security-list list --vcn-id $vcn_ocid | jq '.data[0]."egress-security-rules"'
[
  {
    "destination": "0.0.0.0/0",
    "destination-type": "CIDR_BLOCK",
    "icmp-options": null,
    "is-stateless": false,
    "protocol": "all",
    "tcp-options": null,
    "udp-options": null
  }
]

Internet → VCNへの通信です。

> oci network security-list list --vcn-id $vcn_ocid | jq '.data[0]."ingress-security-rules"'
[
  {
    "icmp-options": null,
    "is-stateless": false,
    "protocol": "6",
    "source": "0.0.0.0/0",
    "source-type": "CIDR_BLOCK",
    "tcp-options": {
      "destination-port-range": {
        "max": 22,
        "min": 22
      },
      "source-port-range": null
    },
    "udp-options": null
  },
  {
    "icmp-options": {
      "code": 4,
      "type": 3
    },
    "is-stateless": false,
    "protocol": "1",
    "source": "0.0.0.0/0",
    "source-type": "CIDR_BLOCK",
    "tcp-options": null,
    "udp-options": null
  },
  {
    "icmp-options": {
      "code": null,
      "type": 3
    },
    "is-stateless": false,
    "protocol": "1",
    "source": "172.16.0.0/16",
    "source-type": "CIDR_BLOCK",
    "tcp-options": null,
    "udp-options": null
  }
]

DHCP Optionを確認

> oci network dhcp-options list --vcn-id $vcn_ocid | jq '.data[0].options'
[
  {
    "custom-dns-servers": [],
    "server-type": "VcnLocalPlusInternet",
    "type": "DomainNameServer"
  },
  {
    "search-domain-names": [
      "tutorial.oraclevcn.com"
    ],
    "type": "SearchDomain"
  }
]

参考URL

チュートリアル一覧

https://community.oracle.com/docs/DOC-1019313

sugimount
CloudNativeな色々をやっています / 投稿している内容は個人的な見解なので、所属組織とは関係ありません https://twitter.com/sugimount
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした