[OCI] IPv6に対応した仮想クラウドネットワーク（VCN）を作成して、自宅からIPv6アドレスで仮想マシンにアクセスしてみた


# はじめに

2021/4/15から、OCIの全リージョンでIPv6が利用可能になりました。

[Release Notes : IPv6 general availability]
(https://docs.oracle.com/en-us/iaas/releasenotes/changes/5b5cc0a0-cc06-4d25-bde8-5bcb8cbe94b6/)

ということで、 IPv6に対応したVCNを作成し、OCI上のComputeインスタンスの自宅からIPv6アドレスでアクセスできるか検証してみました。

# 1. IPv6に対応したVCNの作成
まずは、IPv6に対応したVCN「VCN_IPv6」を作成します。
「IPv6 CIDRブロックの有効化」のチェックボックスをオンにしてVCNを作成します。
![スクリーンショット 2021-04-21 15.51.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/32667d71-6d11-2fd8-606e-2262a2223454.png)
IPv6 CIDRブロックを有効にしたVCNには、58ビットマスクのIPv6 CIDRブロックが自動的に割り当てられます。

# 2. インターネット・ゲートウェイの作成
インターネット・ゲートウェイ「Internet Gateway」作成します。
![スクリーンショット 2021-04-21 16.02.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/d9cd25b6-5889-1141-903d-c28ad6b08a0d.png)

# 3. IPv6に対応したサブネットの作成
「VCN_IPv6」内にIPv6に対応したサブネット「Subnet_IPv6」を作成します。
![スクリーンショット 2021-04-21 15.56.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/b374cc1e-4ced-2e2f-026b-04eac744d6dc.png)

CIDRブロックのセクションで、「IPv6 CIDRブロックの有効化」のチェックボックスをオンにし、IPv6のCIDRブロックを指定します。サブネットマスクは64ビットで固定となっています。
![スクリーンショット 2021-04-21 15.57.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/7d6d708a-978a-ee71-45b2-3e5fa7d82283.png)
ルート表として、VCN作成時に作成される「Default Route Table for VCN_IPv6」を指定します。
サブネット・アクセスは、今回はインターネット側からのアクセスを確認するので、「パブリック・アクセス」を選択します。
![スクリーンショット 2021-04-21 15.58.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/e7c595c0-d2c5-68de-a4e3-e7bbb67c5c75.png)
DHCPオプションには「Default DHCP Options for VCN_IPv6」、セキュリティ・リストには「Default Security List for VCN_IPv6」を指定します。
いずれもVCN作成時にデフォルトで作成されたものです。
![スクリーンショット 2021-04-21 20.50.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/4c97beaf-5adf-877d-618b-417ecfab890b.png)

# 4. ルート表へのルート・ルールの追加
サブネット「Subnet_IPv6」に関連づけたルート表「Default Route Table for VCN_IPv6」にルート・ルールを追加します。
![スクリーンショット 2021-04-21 15.59.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/928bf220-bdd1-137a-e797-5f99398b72f4.png)
まずはIPv4のインターネットへのトラフィックをインターネット・ゲートウェイにルーティングするルート・ルールです。
![スクリーンショット 2021-04-21 16.03.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/18174218-00e0-0228-b999-acf241fe1a7e.png)
次にIPv6のインターネットへのトラフィックをインターネット・ゲートウェイにルーティングするルート・ルールです。
![スクリーンショット 2021-04-21 16.03.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/9b082c74-5fd2-2975-3176-6f8a096a63f9.png)
ルート表「Default Route Table for VCN_IPv6」にルート・ルールが追加されました。
![スクリーンショット 2021-04-21 16.04.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/a2a90899-e9b0-7911-d619-595590afc9aa.png)

# 5. セキュリティ・リストのセキィリティ・ルールの編集
サブネット「Subnet_IPv6」に関連づけたセキュリティ・リスト「Default Security List for VCN_IPv6」のセキュリティ・ルールを編集します。
![スクリーンショット 2021-04-21 16.04.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/d1f0025c-f74f-6060-bd14-203103b5ad63.png)
デフォルトでは以下のようなセキュリティ・ルールが設定されています。
![スクリーンショット 2021-04-21 16.05.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/420ee6d0-6d56-74ec-121b-6857b085ec9e.png)
今回はアクセス確認なので、デフォルトで作成されているIPv6-ICMPに関するセキュリティ・リストを編集し、インターネット側からのIPv6でのPingに応答するように変更します。
![スクリーンショット 2021-04-21 16.06.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/023511b3-332d-624f-6190-1b030cb8c6d0.png)
デフォルトではこちらのようになっています。
![スクリーンショット 2021-04-21 16.07.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/0794db2d-5464-6c55-593f-db906bf71a24.png)
これを以下のように変更し、全てのアドレスからIPv6のpingを許可します。
![スクリーンショット 2021-04-21 21.12.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/8f45ec35-ca3e-df05-5c2d-b2cac65b7a95.png)

# 6. Computeインスタンスの作成
Computeインスタンスの作成は、通常の手順と同じです。
今回は以下のような設定で作成しました。
![スクリーンショット 2021-04-21 16.10.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/b1a1dee6-0f52-b15a-1c62-354a17da3650.png)
![スクリーンショット 2021-04-21 16.12.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/e03a26da-8335-c80d-7404-33d1f0434074.png)
![スクリーンショット 2021-04-21 16.12.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/44498119-699b-f014-769b-f904a7424e2b.png)
![スクリーンショット 2021-04-21 16.13.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/6feeaa96-715f-476f-77e7-d28161c7121e.png)

# 7. ComputeインスタンスへのIPv6アドレスの割り当て
Computeインスタンスが実行中になったことを確認したら、ComputeインスタンスにIPv6アドレスを割り当てます。

画面左下にあるリソース欄の「アタッチされたVNIC」をクリックします。
![スクリーンショット 2021-04-21 16.15.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/e5133a2e-737f-7d86-f6c9-a15702c3c3c0.png)
VNIC名をクリックします。
![スクリーンショット 2021-04-21 16.15.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/6a879fa1-8a5f-40ff-0680-c646e812da49.png)
VNICの詳細が表示されます。
![スクリーンショット 2021-04-21 16.16.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/993ea408-fd1a-a000-9c07-b626f94ad25c.png)
画面左下にあるリソース欄の「IPv6アドレス」をクリックします。
![スクリーンショット 2021-04-21 19.38.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/c1dce358-5370-4827-981a-9509e9634bdf.png)
「IPv6アドレスの割当て」をクリックします。
![スクリーンショット 2021-04-21 16.26.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/3b52d8d0-6459-5ac4-3e57-30de9aa300d5.png)

IPv6アドレスを入力し、「割当て」をクリックします。
![スクリーンショット 2021-04-21 16.26.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/249d426b-5623-1b7f-aa54-40e81080b670.png)

VNICにIPv6アドレスが割り当てられました。
![スクリーンショット 2021-04-21 16.27.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/0aac62cd-8167-cd3c-09e3-75447682d51f.png)

OCIでは、VNICに割り当てられたIPv6アドレスは、プライベートIPアドレスだけでなくパブリックIPアドレスとしても使用されますので、インターネット側からアクセスする際にも、こちらで割り当てたIPv6アドレスを利用します。

# 8. OSレベルでのIPv6アドレスの有効化
opcユーザとして、Computeインスタンスにログインします。

ifconfigコマンドでネットワークインターフェースの状態を確認します。

```
[opc@computeipv6 ~]$ ifconfig
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
        inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::17ff:fe01:d903  prefixlen 64  scopeid 0x20<link>
        ether 02:00:17:01:d9:03  txqueuelen 1000  (Ethernet)
        RX packets 2721  bytes 836707 (817.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3420  bytes 2104526 (2.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 403  bytes 28859 (28.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 403  bytes 28859 (28.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
```

以下のコマンドで、ネットワークインターフェース「ens3」にIPv6アドレスを取得します。

```
sudo dhclient -6 ens3
```

再度、ifconfigコマンドでネットワークインターフェースの状態を確認します。

```
[opc@computeipv6 ~]$ ifconfig
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
        inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::17ff:fe01:d903  prefixlen 64  scopeid 0x20<link>
        inet6 2603:c021:0:86ff:1::1  prefixlen 128  scopeid 0x0<global>
        ether 02:00:17:01:d9:03  txqueuelen 1000  (Ethernet)
        RX packets 2721  bytes 836707 (817.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3420  bytes 2104526 (2.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 403  bytes 28859 (28.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 403  bytes 28859 (28.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
```

ネットワークインターフェース「ens3」にIPv6アドレス「2603:c021:0:86ff:1::1」が割り当てられたことが確認できました。

# 9. IPv6アドレスでの接続確認

ComputeインスタンスのIPv6アドレス「2603:c021:0:86ff:1::1」に対して、自宅のコンピュータからping6コマンドを打ってみます。

![スクリーンショット 2021-04-21 19.25.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/9b57ffa6-388b-c93e-c59a-fb600d641a19.png)

無事、ping応答が返ってきました。

# まとめ
ComputeインスタンスにIPv6アドレスを使用してアクセスできることが確認できました。