Power Systems Virtual ServerとIBM Cloud x86 IaaS間を、Cloud Connectionsでセルフサービスで接続する

:::note
2024年3月以降に新規作成したワークスペースでは、Power Edge Router（PER）が有効になっており、当ページに書いた操作は不要になっています（"クラウド接続"のメニュー自体が表示されなくなっています）。 PER対応のワークスペースをVPCやClassicに接続する場合は[こちら](https://qiita.com/y_tama/items/fc4828d747984747e86d)をご参照ください。
2024年3月より前に作成したPER未対応のワークスペースの場合に当ページの内容をご参照ください。
:::

Power Systems Virtual ServerとIBM Cloud x86 IaaS（VPCやClasscの環境）は、ネットワーク的には別になっており、初期状態では疎通していません。疎通させるには、間にDirect Linkをオーダーする必要があります。

これまでは、Direct LinkにPower側サブネットをアタッチする作業についてはユーザー側では行えず、caseを起票して接続してもらう必要がありました（その方法は [こちら](https://qiita.com/y_tama/items/eb8d6e3d54197a569e25#2-x86-network%E3%81%A8power-network%E9%96%93%E3%81%AEdirect-link-connect)の記事に書きました）。今回、「クラウド接続（英語表記：Cloud connections）」により、セルフサービスでこの接続を行えるようになりました。
https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-cloud-connections

これで、x86とPower VS間の接続を、慣れれば5〜10分といった短時間のうちに行えるようになりました。

Power VSの管理画面に、「クラウド接続」というメニューが増えています。
青色の「接続の作成」ボタンを押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59627/dab7a99e-e012-9c75-cb1a-8c0902ab62a6.png)

x86とPower VS間はDirect Link Connect 2.0が必要となりますが、それもクラウド接続に連動しており、自動で生成されます。[こちら](https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-ordering-direct-link-connect)に記載の通り、x86とPower VSの間のDirect Link Connectは、1データセンターあたり2本まで無償です。

- **速度**：通信要件に合わせて速度を指定します。
- **グローバル・ルーティング**：オフの場合、Direct Linkをオーダーしたリージョンのx86環境のみにアクセスできます。Direct Linkをオーダーしたリージョン以外にもアクセスしたい場合はグローバルルーティングをオンにします。
- **エンドポイント宛先**：Power VSから接続したいClassic環境やVPC環境を指定します。ここで指定した環境とPower VSの間で、経路交換が行われます。言い換えると、このクラウド接続に連動して自動で作られるDirect Link Connect 2.0のVirtual Connectionをどこに対して張るか？という指定となります。このクラウド接続のオーダーが終わると、Direct Link 2.0も自動で生成されますので、後から、Direct Link 2.0の構成画面でVirtual Connectionsを追加しても構いません。
- **サブネット**：x86と疎通させたいPower VSのサブネットを指定します。

「接続の作成」ボタンを押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59627/60dfba31-6916-684e-80c3-c06779eb3287.png)

作成開始されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59627/5b7e5fa8-99ef-c275-2c99-718eff09a2b3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59627/20d90555-e50c-66fa-6519-aad9a4933ce1.png)

クラウド接続に連動し、Direct Link Connect 2.0も自動で生成されます。
通常のDirect Link管理画面（ポータルにログインし、 https://cloud.ibm.com/interconnectivity/direct-link ）で情報を見る事ができます。
自動的にBGPが確立し、先ほど指定したVPCやClassicへのVirtual Connectionも作られています。

通常のDirect Linkと違う点として、「この Direct Link は読み取り専用です。 リンク固有のアクションは、プロバイダー・ポータルを介して開始する必要があります。」とあります。Power VS側からオーダーしたので、読み取り専用となっている部分もある、という意味です。例えば、このDirect Linkの削除は、ここからはできず、クラウド接続側を削除する必要になります。仮想接続（Virtual Connection）の追加はここから可能ですので、別のVPCに繋ぎたい場合にはこの画面から行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59627/5cc34883-07f2-07d0-9722-1cbf74fa3090.png)

ここまででネットワーク観点での設定は完了しており、あとはOSの世界でルーティングを設定すれば、疎通するようになります。

AIXのルーティング設定。今回の通信先である、Classicの10.129.177/26と、VPCの172.16.0.0/16宛のパケットを、Power VS側で指定したsubnetのゲートウェイ（192.168.23.1）に送るよう静的経路設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59627/813c77a0-9bf6-c9ce-a32f-77081ac2c8c0.png)

対向のx86側サーバーでも、Power VSのセグメントへのパケットはプライベート側のゲートウェイに渡すよう必要に応じ設定します。

無事に疎通しました。（※Latencyが大きいのは、今回の構成では、Power VSがロンドン、対向のx86環境は東京にあるためです。）

```:PowerVSからVPC
# ping 172.16.50.5
PING 172.16.50.5 (172.16.50.5): 56 data bytes
64 bytes from 172.16.50.5: icmp_seq=0 ttl=49 time=229 ms
64 bytes from 172.16.50.5: icmp_seq=1 ttl=49 time=229 ms
64 bytes from 172.16.50.5: icmp_seq=2 ttl=49 time=229 ms
```

```:PowerVSからClassic
# ping 10.129.177.42
PING 10.129.177.42 (10.129.177.42): 56 data bytes
64 bytes from 10.129.177.42: icmp_seq=0 ttl=49 time=236 ms
64 bytes from 10.129.177.42: icmp_seq=1 ttl=49 time=236 ms
64 bytes from 10.129.177.42: icmp_seq=2 ttl=49 time=236 ms
```

セルフサービスでPower VSとx86間の疎通を設定できるようになり、非常に楽になったと思います。

# GREトンネルの構成について
PowerVS側ルータでGREトンネルを終端する構成の場合、Cloud Connection作成時にTransit Gatewayは有効にせずに、Classic Infrastuctureへの直接接続を構成します。
https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-cloud-connections#configure-gre-tunnel

下図の例で言うと、`172.16.108.1`がPowerVS側のGRE終端IPアドレスになり、VRAからアンダーレイNWで疎通できるようになりますので、VRAからこのアドレス宛にGREを構成します。そして、VRA側のGREトンネル内IPとして`172.16.108.6`を構成します。PowerVS側のトンネル内IP`172.16.108.5`は、自動的に構成されます。GREトンネル確立後、経路情報の交換は、Docsに記載の通り、PowerVS側ASN=`64999`、VRA側ASN=`64880`としてBGP over GREで行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59627/f3036323-7a24-1164-45fd-e83b6aab4216.png)

```:VRA設定例
set interfaces tunnel tun0 address 172.16.108.6/29
set interfaces tunnel tun0 encapsulation gre
set interfaces tunnel tun0 local-ip 10.xx.xx.xx ← VRAのプライベートIP
set interfaces tunnel tun0 remote-ip 172.16.108.1
set protocols bgp 64880 address-family ipv4-unicast network x.x.x.x ← PowerVSに対し、BGP over GREで広告したいセグメント情報
set protocols bgp 64880 neighbor 172.16.108.5 address-family ipv4-unicast soft-reconfiguration inbound
set protocols bgp 64880 neighbor 172.16.108.5 ebgp-multihop 255
set protocols bgp 64880 neighbor 172.16.108.5 remote-as 64999
set protocols bgp 64880 neighbor 172.16.108.5 update-source 172.16.108.6
```

以上