VCNの概要
-
仮想的なOCIアカウント(テナンシ)毎のプライベートネットワーク。この中にOCIの環境を構築していく。
-
単一リージョンに存在する。(可用性ドメインは跨ぐことができる)
(コンパートメントは概念だからリージョンを跨げるけど、VCNはネットワークの範囲なのでリージョンは跨げないイメージ) -
重複しないCIDRブロックを1つ以上持つことができる。(最大5個)
-
CIDRブロックは後から変更(追加・拡大・縮小・削除)可能。
-
別リージョンではCIDRブロックが重複しても作成することはできるが、DRGを用いたピアリングができなくなる。
テナンシごとのプライベートネットワーク。
リージョナルなリソース。(可用性ドメインを跨ぐことはできるが、リージョンを跨ぐことはできない)
同一リージョン内ではCIDRブロックを重複することはできない。
別リージョンではCIDRブロックを重複させることができるが、ピアリング接続ができなくなる。
CIDR(Classless Inter-Domain Routing)表記法
ネットワークアドレスとサブネットマスクについて
ネットワークアドレスはネットワーク部(ネットワーク上の住所)とホスト部(どのコンピューターか)で構成される。
サブネットマスクはどこまでがネットワーク部でどこからがホスト部かを示す。
具体的にはネットワークアドレスとサブネットマスクの論理積を取ったとき、"1"になる部分がネットワーク部、"0"になる部分がホスト部になる。
よってサブネットマスクの値が小さいほど取得できるIPアドレスが多くなる。
例:192.168.1.0/24
→最初の24ビットが(A~Dは各8bitなので、192.168.1まで)ネットワークアドレスであることを表す。
よって最後の8bitがホストアドレスになる。
ネットワークアドレスの先頭はネットワークID、最後がブロードキャストアドレスとして使用される。よって
ネットワークID:192.168.1.0
First Host:192.168.1.1
End Host:192.168.1.254
ブロードキャストアドレス:192.168.1.255
となる。
(厳密にはFirst Hostはゲートウェイに使用されるので、実際にネットワークアドレスとして使われるのは192.168.1.2から)
A.B.C.D/x の形式で記述
A~Dが各8bitでネットワークアドレス(0~255)、xはサブネットマスクの大きさを表す。
サブネットマスクはどこまでがネットワークアドレスかを示す。
VCNのIPアドレス範囲
- OCIでは /16から/30までが指定できる。OCIの推奨は/16。
- 推奨範囲はRFC1918で指定された範囲。
※RFC1918:RFC(Request for Comments)とはインターネット技術に関する仕様を公開している文書。プライベートIPアドレスについて記載があるのがRFC1918。 - VCNは最初の2つ(ネットワークIDとゲートウェイ)と最後のIPアドレス(ブロードキャストアドレス)は予約される。(ホストとして使えない)
- 概要でも記した通り、他のオンプレミスネットワークやクラウドネットワークとのIPアドレス範囲を重複しないようにする。(ピアリングなどで通信できなくなる)
OCIではIPアドレスを /16から/30までが指定できる。
最初の2つの IPアドレスと最後のIPアドレスは使用できない。
サブネット
VCNをさらに分割したネットワーク群。
VCN内に開発環境を作ったり本番環境を作ったりなど…。それぞれVCN内にサブネットを作り環境を作成する。
- サブネットごとにCIDR表記で設定されたIPアドレス範囲があり、重複不可。
- インスタンスはサブネット内に論理的に配置され、内部IPアドレスとネットワーク構成は配置されたサブネットから取得する。
論理的にとは?
厳密にはインスタンスを作成したときについている VNIC(仮想ネットワークインターフェースカード)が配置され、インスタンスはサブネット外に配置される。
サブネットはVCNを分割したもの。
サブネット同士でIPアドレスの重複はできない。
サブネット内にVNICが配置され、インスタンスが論理的にサブネットに配置される。
2種類の有効範囲
- 可用性ドメイン単体のものとリージョナルサブネット(可用性ドメインを跨いだもの)を作成できる。(推奨はリージョナルサブネット)
プライベートサブネットとパブリックサブネット
サブネットもプライベートのものとパブリックのものを作成することができる。後からパブリック、プライベートを変更することはできない。
- Private:インターネット側から直接IPアドレスに通信することができない。プライベートIPアドレスのみ。
例:外部からアクセスされたくないセキュアなリソースなど。 - Public:パブリックIPアドレスをオプションで付けることができる(一般的にPublicに置くならパブリックIPアドレスを付ける)ため、外部からアクセス可能。
例:Webサーバーなど
プライベートサブネットはインターネット側から通信ができない。
パブリックサブネットはインターネット側からアクセス可能。
仮想NIC(VNIC)
-
各インスタンスは、必ず1つのプライマリ仮想NICと1つのプライマリIPアドレス(その仮想NICにアタッチされる)を持つ。
-
各インスタンスには最低1つ以上のセカンダリ仮想NICを付けることができる。 (インスタンスに付けられるVNICの最大数はコンピュートシェイプに依存)セカンダリVNICは別のサブネットに配置可能。(というかそれでなければ意味ない?)
-
VNICは追加のセカンダリIPアドレスとしてプライベートIPアドレスを31個まで持つことができる。(IPエイリアス)
-
サブネットに常駐(配置) されたVNICを用いて通信を行う。VNICは物理NIC(ネットワークインターフェースカード)に関連付けられる。
インスタンスごとに必ず1つのプライマリ仮想NICと1つのプライマリIPアドレスを持つ。
各インスタンスには最低1つ以上のセカンダリ仮想NICを付けることができる。
VNICには最大31個のIPアドレス(プライベートIPアドレスのセカンダリIPアドレス)を追加できる。
サブネットに配置され、物理NICに関連付けられる。
IPアドレス
プライベートIPアドレス
- インスタンスを作成した際に構成されるVNICはデフォルトで1つプライベートIPアドレスを持っている。(プライマリプライベートIPアドレス)また、31個のセカンダリプライベートIPアドレスを取得できる。
パブリックIPアドレス
- インターネットから到達可能なIPv4アドレス
パブリックIPアドレスの種類
- Ephemeral(エフェメラル)IPアドレス
インスタンス存在期間中に存在する一時的なIPアドレス - Reserved(予約済み)IPアドレス
永続的なIPアドレス(インスタンスが消えてもなくならない)他のインスタンスに割り当てることも可能。
インスタンスを作成した際、VNICはデフォルトで1つプライベートIPアドレスを持つ。これをプライマリプライベートIPアドレスと呼ぶ。
また、31個のセカンダリプライベートIPアドレスを追加できる。
パブリックIPアドレスにはEphemeral(エフェメラル)IPアドレスとReserved(予約済み)IPアドレスがある。
EphemeralIPアドレスはインスタンスが存在する間のみの一時的なアドレス。ReservedIPアドレスは永続的なIPアドレス。(他のインスタンスに割り当てることができる)
IPアドレス持ち込み(BYOIP)
- Bring Your Oun IP Address
自社内のIPアドレスをクラウドで割り当てることができる機能。
VCNセキュリティ
出てくる用語
- INglessとEgress
Ingressは外からサブネットに入ってくる通信。Egressはサブネットから外に出ていく通信 - ステートフルとステートレス
情報を保持するかしないか。(帰りの経路を許可するかしないか)Egressルールがなくても自動的に許可される。デフォルトはステートフル。
大量の接続がある場合(ロードバランサやビッグデータなど)には負荷が大きくなるのでステートレスが良い。
SLもNSGも「ステートフルかステートレスか」、「IngressかEgressか」、「通信先のCIDR」、「プロトコル」、「送信元と目的のポートを指定する。
セキュリティは何を許可するかを書く。
INgless:(サブネットの)外から中への通信
Egress:(サブネットの)中から外への通信
ステートフル:情報を保持する(どこから来たか記憶)
ステートレス:情報を保持しない(どこから来たか記憶しない)
セキュリティリスト(SL)
- サブネットに紐づけ られる、サブネットに対して出入りする(→つまりサブネット内のVNICすべてに対して適用される)トラフィックに対するファイアウォールルール。
- pingリクエストを許可するルールは含まれていない。 これはNSGで指定する。
サブネットに紐づける。(サブネット単位で適用する。)
ネットワークセキュリティグループ(NSG)
- SLと違いVNICごとに紐づけ られる。マシンごとに細かく分けたい場合はNSGがよい。
VNICごとに紐づける。(VNIC単位で適用する。)
pingリクエストを許可するルールを設定できる。
SLとNSGの併用
- どちらも単独で使うことも、併用することもできる。
- 併用した場合は、どちらかで許可されていれば許可になる(OR条件)
SLとNSGは併用することができ、OR条件となる。
要塞(Bastion)ホスト
-
いわゆる踏み台。外部からプライベートサブネットにアクセスしたい場合、直接はつなげないのでパブリックのサブネットを経由してプライベートなサブネットなどにアクセス(SLなどで穴をあける)する。このホストをOCIであれば簡単に作ることができる。
-
要塞ホストを配置するサブネットをSSHクライアント(SSH接続をする際に使用するソフトウェア)がアクセス可能にする。このサブネットにセキュリティリスト(またはNSG)が適用されるので安全に接続できる。
-
OCIには踏み台を立てないでプライベートサブネットにアクセスすることもできる。(時間制限付き)
https://oracle-japan.github.io/ocitutorials/intermediates/bastion/
要塞ホストを利用することでプライベートサブネットに外部からアクセスできる。
OCIでは要塞ホストを簡単に作成できる。また、時間制限はあるが踏み台サーバーを立てずに接続することもできる。
参考資料