IBMCloud VRAに新規オーダーしたVLAN/サーバを接続する手順

# この記事を書く目的

IBMCloudのクラシックインフラストラクチャにてよく利用されるVRA（AT&T社のNWアプライアンス）に、新規にオーダしたサーバを接続する手順を記載します。

本ケースでは、VRAの存在するデータセンター(TOK04)に新規にVLANを用意し、仮想サーバをオーダした後に、VRAに紐付けを行い、サーバからVRAへ疎通できるところまでを実施します。

よくある構成ですが、一連で実施する手順が無くて私自身が困ったので、ご参考になればうれしいです。

* 参考にしたガイドはこちら: [ゲートウェイ・アプライアンスによる VLAN の管理](https://cloud.ibm.com/docs/virtual-router-appliance?topic=gateway-appliance-managing-vlans-and-gateway-appliances)

## テスト環境

[VRA]
AT&T vRouter 5600 1801q * 2

[仮想サーバ]
CentOS Linux release 8.2.2004 * 1

## IBMCloudポータル作業 (新規VLAN/仮想サーバのオーダー)

* こちらの手順はすでにオーダー済のサーバがあれば、スキップして構いません。
Tok04にあるVRAへ接続するため、新規VLANをTok04にオーダします。

* 新規VLANのオーダー
    * [IBMCloudポータル] -> [リソースの作成] -> [サービス] -> [ネットワーキング] -> [VLAN]を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703075/de4d014f-28ca-2ae2-c61e-2a166064f530.png)

    * 今回はプライベートにのみ接続するセキュアな仮想サーバをオーダしたいので、プライベートのVLANをオーダーします。
    * [Private] -> [Pod] -> [tok04.pod01] -> [Create] をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703075/1cccbff3-ecb7-50d5-53e2-75b82bacc7be.png)

* 新規仮想サーバ(VSI)をオーダー

    * [サービス] -> [コンピュート] -> [Virtual Server for Classic] を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703075/47e9b8da-16a6-b24d-eb43-5a05371b7e6d.png)


    * 仮想サーバインスタンスのオーダー画面にて、必要な要件を要望に応じて選択。
    * ロケーションは [アジア太平洋] -> [Tok04] を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703075/8343d1a1-bf28-8805-490f-bd54c35be38f.png)

    * インターフェイスタイプを選択。今回はアップリンクはプライベートのみ、スピードは１００Mbpsを選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703075/b3dffa23-91e5-5b91-dbeb-31cd819d3be2.png)

    * 先ほど作成したVLAN(TOK04-TEST-VLAN:985)を選択し、作成をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703075/6b40191c-01b3-e179-448e-482256b21948.png)


* VRAへのVLANの紐付け

    * 先ほどオーダーしたVLAN(985)をVRAへAssociate（関連付け）します。
    * これにより、BCR（バックボーンカスタマルータ）にて保有していたGatewayアドレスがVRA側で処理されるように移管されます。
    * [IBMCloudポータル] -> [クラシックインフラストラクチャ（左上の方のアイコン）] -> [ネットワーク] -> [ゲートウェイアプライアンス] をクリックし、対象のVRAを選択。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703075/a63c4c84-da7c-0aae-b579-4740812b0602.png)

    * [Manage VLANs]を選択
     ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703075/cbc48a64-2de8-17f0-922b-58d9264834cf.png)
    * [Associate VLAN] -> [Select a VLAN] -> [対象VLAN(985)]を選択し、[Save]を押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703075/8d4c0abb-7554-ad64-c5dd-3c60bbaf15f3.png)

    * 1-2分でVLANが接続されますが、RouteAroundのStatusになりますので、さらにRouteThroughのStatusに変えます。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703075/621ad786-70ef-eb4b-3ca0-e9d2a5073158.png)

    * RouteThroughを選択すると、本当に実施するか確認するポップアップが出ますので、OKを選択してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703075/86151b72-3a73-34f1-3c2a-56f03e6aadb4.png)

    * 1-2分待ってからページを更新するとRouteThroughにStatusが変更されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703075/5e396a6c-e58b-6728-ee49-e689a28facae.png)

    * 続いて、VRA側作業に入る前に、VLAN985にアサインされているIPアドレスを確認しておきます。（先ほど仮想サーバをオーダしたタイミングでIPが自動割振りされています）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703075/4b295a00-502d-afb6-8795-c55735afbe32.png)

    * VRAに設定するアドレスを確認します。
    * 下図の手順より、<font color="DeepPink">10.192.232.129/26</font>がVRAに設定するIPアドレスになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703075/3a5e67d1-91a8-9cd3-2edb-4549eee15bc1.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703075/5e2dbdfb-c510-3c11-b69c-b6a0fb20fbe5.png)



## VRA作業 (新規オーダーしたVLANを関連付けする設定を実施)

* トランジットVLANインターフェイス（dp0bond0)へ、サブインターフェイス(dp0bond0.985)を作成することでサーバがVRA経由で通信ができる様にします。
* VRAへSSLProxyで接続した上で、ログインします。
    * configure modeで下記設定を入れます。
        * VRA#1,VRA#2(HA冗長構成)にVRRPとしてGWアドレス(10.192.232.129/26)を設定する。
        * 実IPアドレスとしてはIP有効活用のため、別セグメントの関係ないプライベートアドレスを利用。（ex.192.168.3.0/24）
        * sync-groupは、その他のインターフェイスに設定されているvgroup6を設定。
        * Preemptは障害時に自動でVRRP Act/Stdbyが切り戻らないfalseに設定。
        * vrrp-groupは任意ですが、今回は103を設定。

```
[VRA#1]
set interfaces bonding dp0bond0 vif 985 address '192.168.3.1/24'
set interfaces bonding dp0bond0 vif 985 vrrp vrrp-group 103 preempt 'false'
set interfaces bonding dp0bond0 vif 985 vrrp vrrp-group 103 priority '254'
set interfaces bonding dp0bond0 vif 985 vrrp vrrp-group 103 sync-group 'vgroup6'
set interfaces bonding dp0bond0 vif 985 vrrp vrrp-group 103 virtual-address '10.192.232.129/26'

[VRA#2]
set interfaces bonding dp0bond0 vif 985 address '192.168.3.2/24'
set interfaces bonding dp0bond0 vif 985 vrrp vrrp-group 103 preempt 'false'
set interfaces bonding dp0bond0 vif 985 vrrp vrrp-group 103 priority '253'
set interfaces bonding dp0bond0 vif 985 vrrp vrrp-group 103 sync-group 'vgroup6'
set interfaces bonding dp0bond0 vif 985 vrrp vrrp-group 103 virtual-address '10.192.232.129/26'
```

* VRAにVIF985サブインターフェイスが作成され、IPアドレスが正常に設定されていることを確認。

```
vyatta@tok04-vra01:~$ show interface
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface        IP Address                        S/L  Description
---------        ----------                        ---  -----------
dp0bond0.985     192.168.3.1/24                    u/u
                 10.192.232.129/26
```

* VRRPステータスが正常であることも確認します。

```
vyatta@tok04-vra01:~$ show vrrp
                                 RFC        Addr   Last        Sync
Interface         Group  State   Compliant  Owner  Transition  Group
---------         -----  -----   ---------  -----  ----------  -----
dp0bond0.985      103    MASTER  no         no     1m58s       vgroup6

vyatta@tok04-vra02:~$ show vrrp
                                 RFC        Addr   Last        Sync
Interface         Group  State   Compliant  Owner  Transition  Group
---------         -----  -----   ---------  -----  ----------  -----
dp0bond0.985      103    BACKUP  no         no     4m9s        vgroup6

```

* 以上でVRAの設定が正常であることが確認できましたので、作業は完了となります。

## 通信確認

* 最後に、VRAとサーバが正しく通信できることを確認します。
    * VRA(10.192.232.129) -> 仮想サーバ(10.192.232.183) へPing : <font color="DeepPink">OK</font>
    * 仮想サーバ(10.192.232.183) -> VRA(10.192.232.129) へPing : <font color="DeepPink">OK</font>

```
vyatta@tok04-vra02:~$ ping 10.192.232.183
PING 10.192.232.183 (10.192.232.183) 56(84) bytes of data.
64 bytes from 10.192.232.183: icmp_seq=1 ttl=64 time=0.813 ms
64 bytes from 10.192.232.183: icmp_seq=2 ttl=64 time=0.844 ms
64 bytes from 10.192.232.183: icmp_seq=3 ttl=64 time=0.513 ms
64 bytes from 10.192.232.183: icmp_seq=4 ttl=64 time=0.587 ms
64 bytes from 10.192.232.183: icmp_seq=5 ttl=64 time=0.319 ms
^C
--- 10.192.232.183 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4190ms
rtt min/avg/max/mdev = 0.319/0.615/0.844/0.195 ms
vyatta@tok04-vra02:~$ show arp
IP Address         HW address        Dataplane  Controller Device
192.168.3.2        ac:1f:6b:c5:2c:2c VALID      VALID      dp0bond0.985
10.192.232.183     06:ad:eb:cc:0a:64 VALID      VALID      dp0bond0.985
vyatta@tok04-vra02:~$
```

```
[root@test-tok04-vsi01 ~]# ping 10.192.232.129
PING 10.192.232.129 (10.192.232.129) 56(84) bytes of data.
64 bytes from 10.192.232.129: icmp_seq=1 ttl=64 time=0.713 ms
64 bytes from 10.192.232.129: icmp_seq=2 ttl=64 time=0.527 ms
64 bytes from 10.192.232.129: icmp_seq=3 ttl=64 time=0.598 ms
64 bytes from 10.192.232.129: icmp_seq=4 ttl=64 time=0.748 ms
^C
--- 10.192.232.129 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 98ms
rtt min/avg/max/mdev = 0.527/0.646/0.748/0.092 ms
[root@test-tok04-vsi01 ~]# arp
Address                  HWtype  HWaddress           Flags Mask            Iface
_gateway                 ether   ac:1f:6b:c5:c0:82   C                     eth0
[root@test-tok04-vsi01 ~]#
```

念のため、仮想サーバがPingを打っているGatewayがVRAであることを、学習しているARPテーブルからMACアドレスを見て確認します。
VRAのInterface情報を確認し、MACアドレスが <font color="DeepPink">ac:1f:6b:c5:c0:82</font> であるためVRAと通信できていることが無事確認できました。

```
vyatta@tok04-vra02:~$ show interfaces dp0bond0.985
dp0bond0.985@dp0bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether ac:1f:6b:c5:c0:82 brd ff:ff:ff:ff:ff:ff
```

## 最後に

今回は、すでに運用しているVRAへ新しくVLANを関連付けすることで、サーバからVRAへ接続できることが確認できました。
ご参考になれば、幸いです。