異なるDCのPower Systems Virtual Server同士をTransit Gateway経由で接続する

:::note info
2024/1 追記
この記事は、Power Edge Router（PER）に対応していない環境についての記事です。
PERに対応している環境では、x86ネットワークへの接続時にCloud Connectionを作成する必要は無く、Transit Gatewayのコネクション作成時に、`Power Systems Virtual Server`を選択することで、PowerVS同士の通信を確立できます。
ご参考：https://qiita.com/y_tama/items/796c6e064d80cbcdaf68
:::

# はじめに
Power Virtual Serverは、IBM Cloudに隣接するコロケーションスペースに設置されたソリューションです。

初期状態では、コロケーションスペースはネットワーク的に独立しており、PowerVSからIBM Cloud（VPCやClassic）に接続したい場合は、Cloud Connectionsを作成する必要があります。 Cloud Connectionsを作成することで、裏ではDirect Link 2.0が自動的に作られ、IBM Cloud（VPCやClassic）のネットワークと接続されます。

ある拠点のPowerVSから、別の拠点のPowerVSに行きたい場合、それぞれのPowerVSでCloud Connectionsを作成し、IBM Cloudのグローバルネットワーク経由でアクセスする必要があります。

PowerVS#1 -> Cloud Connections(Direct Link 2.0) -> IBM Cloud(VPCまたはClassic) -> Cloud Connections(Direct Link 2.0) -> PowerVS#2

これまで、PowerVS#1とPowerVS#2が相手のIPアドレスを指定して直接通信するには、下記のようにx86側にGREを終端する仮想ルータを配置して、GREトンネル経由で通信を行う必要があり、それなりのコストと工数が必要でした。

https://qiita.com/y_tama/items/2376675b07c52b2b89fa
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59627/04251b21-37b9-f89d-713b-3f86bee4fe61.png)

今回、PowerVSからのCloud ConnectionsをTransit Gatewayに接続することで、Transit Gateway経由でPowerVS#1とPowerVS#2が経路交換できるようになりました。　その結果、x86側の仮想ルータやGREを構成することなく、PowerVS#1とPowerVS#2が通信できるようになりました。DR等のデータ転送を行う上で、ネットワーク構成が非常に簡単になったと言えます。また、下の図にあるように、PowerVS同士だけでなく、PowerVSとVPC/Classicも、Transit Gateway経由で通信できます。

https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-network-architecture-diagrams#network-reference-architecture-tgw
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59627/9cc6c572-c01c-9e73-b963-40f9a010e713.png)

2022/9/26追記
東京・大阪を含め、全てのPowerVSロケーションがTransit Gatewayに対応しています。
https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-cloud-connections#create-cloud-connections


# 構成

今回は下記の構成でTransit Gateway経由の接続を行なってみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59627/169e642d-2668-6d6b-a029-8b6d2e3d8b4c.png)

# 手順（概要）

概要としては、下記のステップで実施します。
・両方のPowerVSの画面で、Transit Gatewayを有効にしたCloud Connections(Direct Link 2.0)を作成する。
・Transit Gatewayの画面で、それらのDirect Linkに対し仮想接続を作成する。
・両方のPowerVSのOS上で、相手のネットワークに対する静的経路を設定する。


# 手順（詳細）

PowerVSの画面で、Cloud Connectionsを作成します。
Cloud Connectionsの作成画面に、「IBM Transit Gatewayの有効化」のオプションが増えています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59627/c8144885-9918-2546-bb1f-57a5efd7641d.png)

これをチェックすると、これまで出ていた、Cloud Connections作成時に接続先としてClassicやVPCを選ぶメニューは出なくなります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59627/2a65fabe-4b54-2e2c-4464-cc165a99b616.png)

:::note info
最近、Direct Link 2.0をお使いの方はご存知かもしれませんが、2021年の夏以降、Direct Link 2.0にはDirect Resouces（VPCやClassic）に接続するタイプと、Transit Gatewayに接続するタイプの2種類があります。（下記のStep10）
https://cloud.ibm.com/docs/dl?topic=dl-how-to-order-ibm-cloud-dl-connect#instructions-connect
今回の新機能は、PowerVSで作成するCloud Connections(Direct Link 2.0)について、これまではDirect Resourcesに接続するタイプのDirect Linkのみ作成できたのが、Transit Gatewayに接続するタイプも作れるようになった、と言うこともできます。
:::

PowerVSの画面でCloud Connectionsをオーダーすると、裏で自動的にDirect Link 2.0が作成されます。そのDirect Linkが、Transit Gatewayタイプとして作られることが、Direct Link側の画面からも分かります（赤枠部分のアイコンがTransit GatewayタイプのDirect Linkである事を示します）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59627/2dac944f-ffe0-ee35-50a6-070e738f79d2.png)

ダラスのPowerVSとワシントンのPowerVSの両方で、Transit Gatewayを有効にしたCloud Connections(Direct Link 2.0)を作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59627/5eaecda3-e713-281e-23ea-26798a3aa40b.png)


次に、Transit Gatewayの画面で、これらのDirect Linkに対しVirtual Connectionsを作成します。
Transit Gatewayの場所はPowerVSと同じ場所（今回はダラスまたはワシントン）が近くて良いでしょう。
今回はダラスのTransit Gatewayを使用します。
Transit Gatewayの接続追加画面で、接続タイプとしてDirect Linkを選ぶと、先ほど作成したPowerVSからのDirect Link接続を選択できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59627/c72a7699-f7c7-33d3-fddc-29b4ef666969.png)

ダラスとワシントン双方のPowerVSからのDirect Linkが、Transit Gatewayに接続された状態になりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59627/3d89282d-d2db-5e09-57bf-a4d9beee4aec.png)

それぞれのPowerVSで作成したサブネットの経路情報がTransit Gatewayに届いていることが分かります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59627/10c68c50-62ec-5d1b-d964-dedc5e732e0e.png)


それぞれのAIX上で、相手のネットワークへの静的経路を定義します。

ダラス側
ワシントンのサブネット（192.168.42.0/24）への静的経路を定義。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59627/20c1cfcb-4779-498e-fcfe-f8baaabf887e.png)

ワシントン側
ダラスのサブネット（172.16.42.0/24）への静的経路を定義。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59627/c1d33bf0-66d1-5471-539a-aa27370e90e3.png)

これで、PowerVS間が疎通するようになりました。

```:ダラスのAIXからワシントンのAIXにping
# ping 192.168.42.160
PING 192.168.42.160 (192.168.42.160): 56 data bytes
64 bytes from 192.168.42.160: icmp_seq=0 ttl=238 time=30 ms
64 bytes from 192.168.42.160: icmp_seq=1 ttl=238 time=30 ms
64 bytes from 192.168.42.160: icmp_seq=2 ttl=238 time=30 ms
```

x86側の仮想ルータをオーダーして設定するコスト・工数が不要になったのは、大きな進化だと思います！

以上