2階層ネットワーク構成#
本構成は東日本/西日本リージョン1・2向けとなります。
要求事項#
『FJcloud-O上で階層をもたせたネットワーク構成でネットワークを構築したい』という要求事項に対応するパターンです。
さらに、以下のような具体的な要求事項に対応します。
-
インターネットに公開するWeb/DBシステムにおいて、DBサーバ のセキュリティを高めるために、DBサーバ を内部セグメントに配置したい
-
オンプレミスの構成と同じようなネットワーク構成を FJcloud-O上で実現したい
対応するデザインパターン概要#
FJcloud-Oではネットワークを自由に構成することができるため、オンプレミス環境のような階層構造のネットワーク構成が可能です。
本パターンでは、ルータ 1つとルータ2つのケースを紹介します。
ルータ2つのケースでは、ルーティングをどの仮想リソースに設定するかにより異なる2つの構成が可能です。
FJcloud-Oのネットワーク#
FJcloud-Oのネットワークでは、FJcloud-Oであらかじめ用意された「外部ネットワーク」(インターネットに接続されたネットワーク) と、自分で作成する「内部ネットワーク」があります。
ネットワーク | 内容 |
---|---|
外部 ネットワーク |
FJcloud-Oであらかじめ用意された、インターネットに接続されたネットワーク。 |
内部 ネットワーク |
自分で作成するネットワーク。 ネットワーク構成やセキュリティの設定で、インターネットに接続可能にも接続不可能にもできる。 仮想ルータで接続されたサブネット間だけの通信であれば、ルーティング設定は不要。 *1 ルーティングの設定により、以下の2つの構成がある。 ②仮想ルータとサブネットの両方にルーティングを設定する方式 これらは東日本リージョン2リージョンのみ設定可能です。 |
- 内部ネットワークのルータ1つの構成では、ネットワーク構成上はすべてのネットワークでインターネットと通信可能な構成 *1 となります。
- 内部ネットワークのルータ2つの構成では、以下の 構造 に示した「内部ネットワーク(private)」のような外部ネットワークに接続しないネットワークを設けることで、セキュリティの設定によらずに、ネットワーク構成上でインターネットからのアクセスを不可能にすることが可能です。
*1 ルータ 1つの構成では、セキュリティの設定によりそれぞれのネットワークに対してのインターネットの接続の可/不可を設定します。
なお、本資料はネットワーク構成について記載しており、セキュリティ設定については記載しておりません。
セキュリティ設定については、実装サンプルでリンクしている セキュリティグループ/ファイアーウォール併用パターン 等をご覧ください。
構造 (イメージ図)#
本構成では、以下のA.~C.の3パターンを紹介します。
A. ルータ1つの場合 | B. ルータ2つの場合① | C. ルータ2つの場合② |
---|---|---|
ルーティング設定不要 | サブネットのみにルーティング設定 | 仮想ルータとサブネットにルーティング設定 |
(通信制御はFWおよびSGで実施) |
(通信制御はFWおよびSGで実施) |
(東日本リージョン2のみ設定可能) (通信制御はFWおよびSGで実施) |
Note
ネットワーク構成とセキュリティ設定
ルータ 1つの構成では、内部ネットワーク1 も 内部ネットワーク2 も、インターネットに通信可能な構成です。用途に応じてセキュリティの設計を行い、適切にファイアーウォールやセキュリティグループを設定してください。
セキュリティの設定により、ルータ 1つの構成は、以下のような利用形態が想定されます。
WebサーバとDBサーバの構成で、DBサーバを内部セグメントに配置したい場合は、ルータ 1つの構成の場合はセキュリティの設定で形態②となるよう設定します。
ネットワーク | 形態① | 形態② | 形態③ |
---|---|---|---|
内部ネットワーク1 | DMZ *2 | DMZ *2 | 内部セグメント *3 |
内部ネットワーク2 | DMZ *2 | 内部セグメント *3 | 内部セグメント *3 |
*2 DMZ : インターネットに公開するセグメント
*3 内部セグメント : インターネットに非公開とするセグメント
それに対して、ルータ 2つの構成では、インターネットからは 内部ネットワーク(private) に到達することができません。
そのかわり、DBサーバからインターネットへの接続については考慮が必要です。DBサーバにパッチ *4 をあてる必要がある場合など、インターネットに接続したい場合は、仮想ルータとサブネットの両方にルーティング設定をする方式 *5 を採用するか、内部ネットワーク (public) にNATサーバを配備する方式 *6 等を検討するかとなります。
*4 FJcloud-O のデータベースサービス を利用される場合であれば、データベースにはFJcloud-O基盤側でパッチをあてるため、内部ネットワーク(private) のように、外部ネットワークに接続されていない内部ネットワーク上に DB を配備しても、パッチあての観点では問題ありません。
*5 東日本リージョン2リージョンのみ可能です。
*6 東日本リージョン1・西日本リージョン2で可能です。2階層インターネットアクセス(NAT)パターン をご覧ください。
ネットワーク構成は、このようなネットワーク構成の特徴を考慮して、用途に応じて使い分けてください。
なお、その他 の項目に、ネットワーク構成の形態を組み合わせたサンプルを記載しましたので、合わせてご覧ください。
実装サンプル#
シングルAZ構成で、ネットワークを構築する手順を示します。
A. ルータ 1つの場合#
(1) 仮想ルータの作成/外部ネットワークのアタッチ#
- IaaSポータルにログインします。
- 「ネットワーク」⇒「仮想ルータ」画面で、「+」ボタンをクリックします。
- 「仮想ルータ作成」画面で、以下の項目を入力し、「作成」ボタンをクリックします。
項目 | 必須 | 設定値例 | 内容 |
---|---|---|---|
AZ | 必須 | "jp-east-2b" | システムを設置するアベイラビリティゾーン AZ1:"jp-east-2a" AZ2:"jp-east-2b" |
仮想ルーター名 | 必須 | "demo_router" | 適宜設定してください。 |
- 「仮想ルータ一覧」画面で、作成した仮想ルータの「アクション」⇒「ゲートウェイ設定」を選択します。
「ゲートウェイ設定画面」で仮想ルータを接続する「外部仮想ネットワーク」(インターネット側のネットワーク)を選択し、「設定」ボタンをクリックします。
(2) 内部ネットワーク/サブネットの作成#
- 以下の手順で、内部ネットワークを必要な階層分作成します。
- 「ネットワーク」⇒「仮想ネットワーク」画面で、「+」ボタンをクリックします。
- 「仮想ネットワーク作成」画面で、以下の項目を入力し、「作成」ボタンをクリックします。
タブ | 項目 | 必須 | 内部ネットワーク1 設定値例 |
内部ネットワーク2 設定値例 |
内容 |
---|---|---|---|---|---|
仮想 ネットワーク |
AZ | 必須 | "jp-east-2b" | "jp-east-2b" | システムを設置するアベイラビリティゾーン AZ1:"jp-east-2a" AZ2:"jp-east-2b" |
仮想ネットワーク名 | 必須 | "demo_intnet1" | "demo_intnet2" | 適宜設定してください。 | |
管理状態 | 必須 | "UP" | "UP" | 適宜設定してください。 | |
サブネット | サブネット作成 | 必須 | "あり" | "あり" | 適宜設定してください。 |
サブネット名 | 必須 | "demo_subnet1" | "demo_subnet2" | 適宜設定してください。 | |
仮想ネットワークアドレス | 必須 | "192.168.11.0/24" | "192.168.12.0/24" | CIDR形式で入力してください。 | |
ゲートウェイ | 推奨 | "あり" | "あり" | ||
ゲートウェイIP | 推奨 | "192.168.11.1" | "192.168.12.1" | 必須ではありませんが、設定してください。 この後に設定する仮想ルータのIPアドレスとなります。 |
|
サブネット 詳細 |
DHCP | 推奨 | "有効" | "有効" | 必須ではありませんが、設定してください。 この項目は、インターネット接続パターンのDHCPに関する説明をご覧ください。 |
IPアドレス割当プール | 任意 | 必要に応じて設定してください。 | |||
DNSサーバ | 推奨 | "133.162.106.10", "133.162.106.9" |
"133.162.106.10", "133.162.106.9" |
必須ではありませんが、設定してください。 IaaSポータル上では、後から追加できません。 DNSサーバは1行につき1項目設定できます。 DNSサーバのIPアドレスはリージョン/AZごとに異なります。 詳細は、機能説明書を参照してください。 |
|
追加のルート設定 | 任意 | ゲートウェイIPに設定されるデフォルトのルート以外で接続する宛先を設定します。 csvで以下を設定します。 |
(3)仮想ルータにサブネットをアタッチ#
- 以下の手順で、作成した内部ネットワークをすべて仮想ルータにアタッチします。
- 「ネットワーク」⇒「仮想ルータ」画面で、作成した仮想ルータをクリックします。
- 「インターフェース」項目の「+」ボタンをクリックします。
- 「インターフェース追加」画面で、以下の項目を入力し、「追加」ボタンをクリックします。
項目 | 必須 | 内部ネットワーク1 設定値例 |
内部ネットワーク2 設定値例 |
内容 |
---|---|---|---|---|
サブネット | 必須 | "demo_subnet1" | "demo_subnet2" | 内部ネットワーク作成の際に設定したサブネットを選択してください。 |
IPアドレス | 必須 | "192.168.11.1" | "192.168.12.1" | 内部ネットワーク作成の際に設定したゲートウェイIPを設定してください。 |
(4) セキュリティ設定 (ファイアーウォール/セキュリティグループ)#
- 仮想サーバを配備する前に、ファイアーウォールやセキュリティグループの設定を行ってください。
- ファイアーウォールの設定は、仮想ルータに、それぞれのネットワークの通信を許可する設定を行ってください。
- 設定に際しては、以下のデザインパターンをご覧ください。
デザインパターン名称 | 説明 |
---|---|
セキュリティグループ活用 | セキュリティグループ のみでアクセス制御するパターンです。 |
セキュリティグループ/ファイアーウォール併用パターン | セキュリティグループ と ファイアーウォール を組み合わせたパターンです。 |
機能別セキュリティグループ | 機能別にアクセス制限をかけるパターンです。 |
B. ルータ 2つの場合①#
(1) 仮想ルータの作成/外部ネットワークのアタッチ#
- 「仮想ルータ一覧」画面にて仮想ルータを2つ(外部-public、public-private)を作成します(IaaSポータル/手順は上記参照)。
- 外部-public用の仮想ルータと外部ネットワークをアタッチします(IaaSポータル/手順は上記参照)。
(2) 内部ネットワーク/サブネットの作成#
- ネットワーク画面にてpublic層/private層それぞれのネットワークを作成します。
- 「ネットワーク」⇒「仮想ネットワーク」画面で、「+」ボタンをクリックします。
- 「仮想ネットワーク作成」画面で、以下の項目を入力し、「作成」ボタンをクリックします。
タブ | 項目 | 必須 | 内部ネットワーク (public層) 設定値例 |
内部ネットワーク (private層) 設定値例 |
内容 |
---|---|---|---|---|---|
仮想 ネットワーク |
AZ | 必須 | "jp-east-2b" | "jp-east-2b" | システムを設置するアベイラビリティゾーン AZ1:"jp-east-2a" AZ2:"jp-east-2b" |
仮想ネットワーク名 | 必須 | "demo_intnet3" | "demo_intnet4" | 適宜設定してください。 | |
管理状態 | 必須 | "UP" | "UP" | 適宜設定してください。 | |
サブネット | サブネット作成 | 必須 | "あり" | "あり" | |
サブネット名 | 必須 | "demo_subnet3" | "demo_subnet4" | 適宜設定してください。 | |
仮想ネットワークアドレス | 必須 | "192.168.13.0/24" | "192.168.14.0/24" | CIDR形式で入力してください。 | |
ゲートウェイ | 推奨 | "あり" | "あり" | ||
ゲートウェイIP | 推奨 | "192.168.13.1" | "192.168.14.1" | 必須ではありませんが、設定してください。 この後に設定する仮想ルータのIPアドレスとなります。 |
|
サブネット 詳細 |
DHCP | 推奨 | "有効" | "有効" | 必須ではありませんが、設定してください。 この項目は、インターネット接続パターン のDHCPに関する説明をご覧ください。 |
IPアドレス割当プール | 任意 | 必要に応じて設定してください。 | |||
DNSサーバ | 推奨 | "133.162.106.10", "133.162.106.9" |
"133.162.106.10", "133.162.106.9" |
必須ではありませんが、設定してください。 IaaSポータル上では、後から追加できません。 DNSサーバは1行につき1項目設定できます。 DNSサーバのIPアドレスはリージョン/AZごとに異なります。 詳細は、機能説明書を参照してください。 |
|
追加のルート設定 | 任意 | Destination:"192.168.14.0/24" Nexthop:"192.168.13.254" |
ゲートウェイIPに設定されるデフォルトのルート以外で接続する宛先を設定します。 以下を設定します。 |
(3) 外部-public間の仮想ルータにインタフェース追加#
- 「仮想ルーター」画面にて外部-public間の仮想ルータの詳細を開き、インタフェース追加を行います。
項目 | 必須 | 設定値例 | 内容 |
---|---|---|---|
サブネット | 必須 | "demo_subnet3" | 内部ネットワークpublic層を選択してください。 |
IPアドレス | 必須 | "192.168.13.1" | 内部ネットワーク作成の際に設定したゲートウェイIPアドレスを設定してください。 |
(4) public-private間の仮想ルータにインタフェース追加#
- public-private間の仮想ルータの詳細を開き、インタフェース追加を行います。
項目 | 必須 | 内部ネットワーク (public層) 設定値例 |
内部ネットワーク (private層) 設定値例 |
内容 |
---|---|---|---|---|
サブネット | 必須 | "demo_subnet3" | "demo_subnet4" | 内部ネットワーク作成の際に設定したサブネットを選択してください。 |
IPアドレス | 必須 | "192.168.13.254" | "192.168.14.1" | 内部ネットワーク作成の際に「追加のルート設定」で設定したルータ用のIPアドレスを設定してください。 内部ネットワーク作成の際に設定したゲートウェイIPアドレスを設定してください。 |
(5) セキュリティ設定 (ファイアーウォール/セキュリティグループ)#
- 仮想サーバを配備する前に、ファイアーウォールやセキュリティグループの設定を行ってください。
-
ファイアーウォールの設定は、2つの仮想ルータ(外部ネットワーク-public、public-private)に、 それぞれの通信を許可する設定を行ってください。
-
設定に際しては、以下のデザインパターンをご覧ください。
デザインパターン名称 | 説明 |
---|---|
セキュリティグループ活用 | セキュリティグループ のみでアクセス制御するパターンです。 |
セキュリティグループ/ファイアーウォール併用パターン | セキュリティグループ と ファイアーウォール を組み合わせたパターンです。 |
機能別セキュリティグループ | 機能別にアクセス制限をかけるパターンです。 |
(6) 参考:サブネットに設定したルーティング情報の更新#
- サブネットに設定したルーティング情報は、APIで更新可能です。 ルーティング情報の更新は、IaaSポータルではできません。
-
サブネットへのルーティング情報の更新後には、当該サブネット上の仮想サーバの再起動が必要です。
-
設定項目(REST API)
項目 | 設定値例 | 内容 |
---|---|---|
$SUBNET_ID | (生成されたID) | サブネットID |
- 設定項目(json)
項目 | 設定値例 | 内容 |
---|---|---|
$HOST_ROUTES | {\"nexthop\":\"192.168.13.254\",\"destination\":\"192.168.14.0/24\"}, {\"nexthop\":\"192.168.13.1\",\"destination\":\"0.0.0.0/0\"} |
ルーティング情報 |
- 実行API
curl -i $NETWORK/v2.0/subnets/$SUBNET_ID -X PUT -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"subnet": { "host_routes": ['$HOST_ROUTES'] }}'
C. ルータ 2つの場合②#
本手順は、東日本リージョン2リージョンのみ可能です。
また、以下の (1)から (5)までの手順は、サブネットのみにルーティング設定する方式と手順は同じです。各手順を参照してください。
(1) 仮想ルータの作成/外部ネットワークのアタッチ
(2) 内部ネットワーク/サブネットの作成
(3) 外部-public間の仮想ルータにインタフェース追加
(4) public-private間の仮想ルータにインタフェース追加
(5) セキュリティ設定 (ファイアーウォール/セキュリティグループ)
(6) 仮想ルータへのルーティング設定
- 仮想ルータへのルーティング設定は、APIで行います。IaaSポータルではできません。
- 仮想ルータへのルーティング情報の更新後は、サブネットでのルーティング更新と異なり、仮想サーバの再起動は不要です。
- 設定項目(REST API)
項目 | 設定値例 | 内容 |
---|---|---|
$ROUTER_ID | (生成されたID) | 仮想ルータID |
- 設定項目(json)
設定先 | CIDR形式の宛先 (Destination) 設定値例 |
その宛先へ接続するルータ (Nexthop) 設定値例 |
設定項目(json) (変数 $HOST_ROUTES に設定する値) |
---|---|---|---|
外部-public間の仮想ルータ | "192.168.14.0/24" | "192.168.13.254" | {\"nexthop\":\"192.168.13.254\", \"destination\":\"192.168.14.0/24\"} |
public-private間の仮想ルータ | "0.0.0.0/0" | "192.168.13.1" | {\"nexthop\":\"192.168.13.1\", \"destination\":\"0.0.0.0/0\"} |
- 実行API
curl -i $NETWORK/v2.0/routers/$ROUTER_ID -X PUT -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"router": { "routes": ['$HOST_ROUTES'] }}'
メリット・効果#
ルータが1つの構成と2つの構成に共通のメリット・効果は以下の通りです。
- セグメント間の通信で、ファイアーウォールによるアクセス制御をかけることができます。
ルータが1つの構成#
ルータが1つの構成のメリット・効果は以下の通りです。
-
全てのサブネット上の仮想サーバにグローバルIPを割り当てて直接インターネットと接続することが可能です。
-
セキュリティの設定により、以下のような利用形態を設定可能です。
ネットワーク | 形態① | 形態② | 形態③ |
---|---|---|---|
内部ネットワーク1 | DMZ *7 | DMZ *7 | 内部セグメント *8 |
内部ネットワーク2 | DMZ *7 | 内部セグメント *8 | 内部セグメント *8 |
*7 DMZ : インターネットに公開するセグメント
*8 内部セグメント : インターネットに非公開とするセグメント
ルータが2つの構成#
ルータが2つの構成のメリット・効果は以下の通りです。
-
ルータ 2つの場合のイメージ図のprivate層とpublic層のように、仮想ルータを分けられる (=ファイアーウォールを分けられる) 。
-
private層の仮想サーバにはグローバルIPアドレスを割り当てられない。
-
private層はインターネットから直接通信できないため、セキュリティを確保できます。
-
イメージ図のように、従来のオンプレミスのシステムに近い階層構造のネットワーク構成が可能です。
注意事項#
-
本パターンは2017年9月時点のFJcloud-O 東日本/西日本リージョン1・2で動作検証しています。
-
ネットワーク構成は自由度が高いため、様々な構成を実現できますが、ファイアーウォール、セキュリティグループにて通信の制御は必ず行ってください。
その他#
1. ルーティング情報の設定先について#
-
本パターンでは、ルーティング情報はサブネットに設定しています。
サブネットに設定したルーティング情報は、仮想サーバ等が配備された時や起動された時等に、DHCP で取得されます。 -
ルーティング情報は、サブネットではなく、ルータに設定することも可能 (操作は API のみ) です。
ただし、複数のルータで構成するネットワークについては、以下のような事例もあるため、仮想ルータで接続されていないセグメントへのルーティングを設定したいという必要性がない場合は、サブネットに設定することを推奨します。
2. ネットワーク構成の形態を組み合わせたサンプルについて#
ネットワーク構成の形態を組み合わせたサンプルとして、踏み台サーバにログインするメンテナンス用のネットワークと、Webサーバを配備して一般不特定多数の利用者に Webサービス を提供するネットワークを分けたサンプルを記載します。
以下のサンプルでは、
- 仮想ルータへのルーティング設定は行わず、サブネットのみにルーティング設定としています。
- 特定のアクセス元から、ルータA 経由で踏み台サーバに ssh でログインを OKとしています。
- 踏み台サーバから、ルータC 経由で Webサーバに ssh のログインを OKとしています。
- Webサーバは、ルータB 経由で http 接続をOKとしています。
- DBサーバは、ルータB 経由で Webサーバから DBサーバの 5432ポートへの接続を OK としています。
DBサーバは、FJcloud-O が提供する データベースサービス を利用する前提として、sshログインをしないようにしています。