2022年8月9日追記
PowerVS間をTransit Gateway経由で容易に接続可能になりました。費用としては、Transit Gatewayの従量課金とVRAの固定費を比べることになると思います。
https://qiita.com/y_tama/items/7000125129f817209796
はじめに
2021/3/31に、Power Systems Virtual Server(以下Power VS)の大阪リージョンがGAしました。
これで、AIXやIBMiをIBM Cloud上の国内DCで東西に配置できるサービスが整いました。
Power VSのネットワークは、従来のIBM Cloudのネットワークとは分かれており、東西にAIXのLPARを作成しただけではAIX間が疎通しません。
この記事では、東西のAIX間を疎通させます。実現したいのは図の赤い矢印の通信です。
Powerとx86間のDirect Link Connectは1DCあたり2本まで無償ですし、DC間ネットワークは無料で使えますので、ネットワーク費用が発生しないのは良い点と思います。
東京にあるPowerのネットワークから、x86のネットワークを通り、DC間ネットワークを通って大阪まで行き、大阪のPowerのネットワークに入ります。
NATしても良いのですが、今回はPowerのネットワークに割り振った192.168.x.xのIP同士で疎通させるため、下記3つのGREトンネルで通信を中継します。
GRE①:東京Powerと東京VRAの間
GRE②:東京VRAと大阪vyosの間
GRE③:大阪vyosと大阪Powerの間
東西を疎通させるだけであれば、東京のVRAから大阪のPower側にGREを張ることもできますので、東京か大阪のどちらかにGREを張れる仮想ルータがあれば実現できます。ただ、Powerを東西に配置する用途としてはDRが想定されるため、万一、東京が被災したときも、大阪側PowerにIPSec等で入れる口が必要と考え、東西両方に仮想ルータを配置しています。(もちろん、大阪側はvyosでなくVRAでも良いですが、今回は仮想サーバーにvyosを入れて検証しています)
GRE①とGRE③の前提として、東京のPowerとx86の間、大阪のPowerとx86の間を、それぞれ、Direct Link 2.0で接続します。
Power・x86間のDirect Link 2.0についてはこちらに書きました。
GRE①:東京Powerと東京VRAの間
Caseを起票し、Power側のGRE設定を依頼します。詳細はこちらに書きました。
東京のAIXから、大阪のPower VSのセグメント(192.168.160.0/24)に向かう通信をGRE経由でVRAに渡して欲しいので、caseでは下記の項目を依頼します。
Private Networks to be routed over GRE:
Private Network ID (1): 192.168.160.0/24
VRA側は下記のように設定します。
set protocols static route 172.16.0.37/32 next-hop 10.132.163.193
set interfaces tunnel tun0 address 172.16.100.5/30
set interfaces tunnel tun0 encapsulation gre
set interfaces tunnel tun0 local-ip 10.132.163.242
set interfaces tunnel tun0 remote-ip 172.16.0.37
set protocols static route 192.168.150.0/24 next-hop 172.16.100.6
GRE②:東京VRAと大阪vyosの間
東京のVRAと大阪のvyosの間にもGREを張ります。
GREトンネル内IPは、東京側が172.16.100.9、大阪側が172.16.100.10にしました。
VRA@東京は、大阪AIXのセグメント(192.168.160.0/24)宛のパケットをGRE対向(172.16.100.10)に渡します。
set interfaces tunnel tun1 address 172.16.100.9/30
set interfaces tunnel tun1 encapsulation gre
set interfaces tunnel tun1 local-ip 10.132.163.242
set interfaces tunnel tun1 remote-ip 10.8.29.213
set protocols static route 192.168.160.0/24 next-hop 172.16.100.10
vyos@大阪は、東京AIXのセグメント(192.168.150.0/24)宛のパケットをGRE対向(172.16.100.9)に渡します。
set interfaces tunnel tun0 address '172.16.100.10/30'
set interfaces tunnel tun0 encapsulation 'gre'
set interfaces tunnel tun0 local-ip '10.8.29.213'
set interfaces tunnel tun0 remote-ip '10.132.163.242'
set protocols static route 192.168.150.0/24 next-hop '172.16.100.9'
GRE③:大阪vyosと大阪Powerの間
①と同様、Caseを起票し、Power側のGRE設定を依頼します。
大阪のAIXから、東京のPower VSのセグメント(192.168.150.0/24)に向かう通信をGRE経由でvyosに渡して欲しいので、caseでは下記の項目を依頼します。
Private Networks to be routed over GRE:
Private Network ID (1): 192.168.150.0/24
Hello,
I'm refferring this docs.
https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-configuring-power#gre-tunneling
Could you configure the Power VS side for the GRE tunnel?
Customer name: xxx
Customer account ID: xxxxxx
GRE Tunnel source (Power VS) IP: ???(I don't know it. Can you specify this?)
GRE Tunnel destination (IBM Cloud VRA) IP: 10.8.29.213
GRE Tunnel interface (Power VS) IP: 172.16.100.14/30
GRE Tunnel interface (IBM Cloud VRA) IP: 172.16.100.13/30
Private Networks to be routed over GRE:
Private Network ID (1): 192.168.150.0/24
Datacenter/Colo is OSA21.
Thanks,
上記caseの返信として、Power側のGRE終端は172.16.0.40と教えてもらったので、下記をvyosに設定します。
set protocols static route 172.16.0.40/32 next-hop '10.8.29.193'
set interfaces tunnel tun1 address '172.16.100.13/30'
set interfaces tunnel tun1 encapsulation 'gre'
set interfaces tunnel tun1 local-ip '10.8.29.213'
set interfaces tunnel tun1 remote-ip '172.16.0.40'
set protocols static route 192.168.160.0/24 next-hop '172.16.100.14'
これで、東京のAIXと大阪のAIXの間が疎通しました。
# ping 192.168.160.207
PING 192.168.160.207 (192.168.160.207): 56 data bytes
64 bytes from 192.168.160.207: icmp_seq=0 ttl=247 time=11 ms
64 bytes from 192.168.160.207: icmp_seq=1 ttl=247 time=10 ms
64 bytes from 192.168.160.207: icmp_seq=2 ttl=247 time=10 ms
64 bytes from 192.168.160.207: icmp_seq=3 ttl=247 time=10 ms
以上です。