OCI Network Firewallを使用したハブ&スポーク構成

今回は、ちょっと複雑なVCN間のトラフィックでNetwork Firewallを経由させるHub&Spokeの構成を作成します。Network Firewallの設定が初めての場合は、過去の記事のベーシックな設定も確認してみて下さい
[OCI Network Firewallによるトラフィック監視 (Intra-VCNルーティング)](https://qiita.com/western24/items/8f17855f1ed4cb59e321)
[OCI Network Firewallでサイバー攻撃を防ぐ](https://qiita.com/western24/items/fc6174b124d10dc80230)
また、手順は[こちら](https://docs.oracle.com/ja-jp/iaas/Content/Network/Tasks/scenario_g.htm)のドキュメントをベースにしていますので、細かな手順が分からない際はご参照下さい


今回構築するネットワークのイメージはこちらです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562423/1fbccc22-4f76-557d-a369-fb1018e8ac57.png)

Spoke-VCN1からSpoke-VCN2に対するトラフィックは、DRGによってHub-VCNにルーティングされ、Network Firewallを必ず経由します。この構成のポイントは、DRGのVCNアタッチメントでVCN間のルーティングを制御している点とHub-VCNのインバウンドとアウトバウンドのルート表をそれぞれ異なる場所で指定しているところにあります

では実際の作成手順を説明してきます

## Hub&Spokeの基本設定

- まず3つのVCNを作成する。今回は、"VCNウィザート"を使わず、"VCNの作成"のメニューからVCNとパブリック・サブネットのセットを3つ作成する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562423/f3e76c60-3d18-a954-6e71-58b2a07ee827.png)

- ネットワーキング -> 顧客接続性 -> 動的ルーティング・ゲートウェイの作成。作成後にDRG内の仮想クラウド・ネットワーク・アタッチメントで作成した3つのVCNをアタッチする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562423/262e426f-394a-5bd9-4db4-a31a1b42b3c7.png)

- Spoke-VCN1のパブリック・サブネットのデフォルト・ルート表にHub-VCN(172.16.0.0/24)とSpoke-VCN2(172.16.2.0/24)はDRGにルーティングするように追加する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562423/a81655ee-e40c-af64-9b21-0eb328bc1b6c.png)

- Spoke-VCN2のパブリック・サブネットのデフォルト・ルート表にHub-VCN(172.16.0.0/24)とSpoke-VCN1(172.16.1.0/24)はDRGにルーティングするように追加する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562423/00e6e967-33d2-a947-0645-8fb577ec8a20.png)

※Hub-VCNのルート表は後々編集するためここでは設定しない

- 接続テスト用にSpoke-VCN1とSpoke-VCN2のそれぞれにVMインスタンスを作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562423/7b8bd69f-7296-72d6-2176-64fa0f5ad1f4.png)

- Spoke-VCN1のデフォルト・ルート表にInternet Gatewayのルートを追加しておく。これによってVM1に直接インターネットからログインできるので、ログイン後にプライベートIPを使ってVM2にSSH接続できることを確認しておく
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562423/0400911f-1ec6-f5df-88cf-992f44e0f871.png)

## DRGルート表の作成
- DRGにアタッチするSpokeとHub用のルート表を作成。DRG内にあるDRGルート表 -> DRGルート表の作成をクリック
- Spoke用のDRGルート表。すべての宛先(0.0.0.0/0)はHub-VCNにホップされる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562423/5a8fc562-3ecb-6390-0582-b9c09c345433.png)
- 作成したSpoke用のDRGルート表をSpoke-VCN1とSpoke-VCN2に割り当てる。VCN-Spokeのアタッチメントの編集 -> 拡張オプションの表示 -> DRGルート表をRT-Spokeに変更
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562423/ada65cc1-66e4-c4eb-c033-4824158ce8a8.png)

- 次にHub用のルート表を作成する。まず、ルート・ディストリビューションの作成。DRG -> ルート・ディストリビューションのインポートから作成をクリック

- 下記のように指定する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562423/d48f6823-5554-90d3-df88-d68d4e7d0920.png)

- 再度、DRGのルート表作成をクリックし、名前はRT-Hubを記述し、拡張オプション -> ルート・ディストリビューションの有効化をチェックし、上記で作成したディストリビューションを選択し作成
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562423/a910c525-fa83-a249-90ee-d038df5d1498.png)
上記は作成後の画面。RT-Hubが今回作成したHub-VCN用のDRGルート表。Spokeの場合と同じように仮想クラウド・ネットワーク・アタッチメントで変更する

- 最終的に完成したDRGの仮想クラウド・ネットワーク・アタッチメントはこちら
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562423/ab69eb20-dff2-a7ff-283c-85e40b1731d3.png)

## Network Firewallに関連する設定

- Network Firewallのポリシーを作成
導通テスト用に無条件ですべてのトラフィックを許可するポリシーを作成する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562423/121909e2-7b52-1c4e-6ab9-1b5d3dce78f7.png)

- Hub-VCNにNetwork Firewallを作成する。ポリシーは上記で作成したものを指定する。作成後には、FW自身のIPアドレスをメモしておく
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562423/f1574c04-dbea-f5f7-098a-555bba4b7525.png)

Hub-VNCに入ってくるインバウンド・トラフィックはNetwork Firewallに経由するようにするための設定
- ネットワーキング -> VCN -> Hub-VCN内のリソース-> ルート表を選択。VCN-Hub-Ingressの名前で新しいルート表を作成する。ターゲットは作成したNetwork FirewallのIPアドレスを指定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562423/1b21605c-343f-e76a-5be0-32e0b5ad7e77.png)
- 編集したルート表を動的ルーティング・ゲートウェイ・アタッチメントのVCNルート表に割り当てる。ネットワーキング -> VCN -> Hub-VCN内のリソース -> 動的ルーティング・ゲートウェイのアタッチメント
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562423/d778af9d-8124-f7a8-4813-6e87e493ecdc.png)

- Hub-VNCから出ていくアウトバウンド・トラフィックをパブリック・サブネットのデフォルトのルート表に追加する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562423/4c65f3fe-fdef-e652-6a9b-b0c1c64311a6.png)

以上で設定は完了です。正しく設定されていれば、VM1からVM2の接続は変わらずできるはずです。Network Firewallのポリシーを色々変えながら挙動を確認してみて下さい。