08. IBM Cloud: VMware as a Service（VMWaaS) - 検証: routed network間の通信

# 1. はじめに

以前、[routedタイプのネットワークを作成した際の、Distributed Routingの説明](https://qiita.com/testnin2/items/3575b27c2ec2b6242ee6#3-routed%E3%82%BF%E3%82%A4%E3%83%97%E3%81%AEnetwork%E3%81%AE%E4%BD%9C%E6%88%90)にて、以下のような記述を書きました。

> - デフォルトで有効になっている。
> - UI上のヒントの説明は
    - Non distributed routing needs to be enabled on the Edge Gateway. This would allow the disabling of distributed routing so that all VM traffic goes through the service router.
> - NSXを知っている人ならご存知かと思うが、実際はT1ルーターはDR(Distributed Router)とSR(Service Router)から構成されている。あるVDC内に複数のrouted networkが存在した場合、そのrouted network間の通信はDRを通る。そのため、後述するEdge Firewall(SRのFirewall)ではこの通信を制御することはできない。その場合は、Distributed Firewallを有効して通信制御するのも１つの方法だが、別の方法としてこのDistributed Routingを無効にすれば、DRを通らないのでEdge Firewallでrouted network間の通信を制御することができる。

つまり、Distributed Routingが有効の時には、SRに辿り着く前に、DRでルーティングされてしまいます。本稿では、この通りに動作していることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/3202babb-7b20-52e2-c4a4-7ce36f9656d7.png)

過去の記事はこちら。

- [01. IBM Cloud: VMware as a Service（VMWaaS)の概要](https://qiita.com/testnin2/items/d39ba856f70fc14ea719) 
- [02. IBM Cloud: VMware as a Service（VMWaaS) - VDCの注文](https://qiita.com/testnin2/items/a3630d5a532a6ce48720)
- [03. IBM Cloud: VMware as a Service（VMWaaS) - VDCの追加注文](https://qiita.com/testnin2/items/666a8a03db85f983f56a) 
- [04. IBM Cloud: VMware as a Service（VMWaaS) - 外部接続のためのネットワークとNAT/Firewallを構成する](https://qiita.com/testnin2/items/3575b27c2ec2b6242ee6) 
- [05. IBM Cloud: VMware as a Service（VMWaaS) - RHELをプロビジョニングして疎通確認を行う](https://qiita.com/testnin2/items/56901ef332ee060fcf2f) 
- [06. IBM Cloud: VMware as a Service（VMWaaS) - 検証: IBM Cloud private networkへの通信におけるSNATの必要性](https://qiita.com/testnin2/items/5add312256d1e264e31f)
- [07. IBM Cloud: VMware as a Service（VMWaaS) - 検証: isolated networkとの通信](https://qiita.com/testnin2/items/9bc1b57b9636071b7239)
- [08. IBM Cloud: VMware as a Service（VMWaaS) - 検証: routed network間の通信](https://qiita.com/testnin2/items/fa9426df262368ddc2ef) 
- [09. IBM Cloud: VMware as a Service（VMWaaS) - Data Center Groupの構成](https://qiita.com/testnin2/items/f940550d7564db526531) 
- [10. IBM Cloud: VMware as a Service（VMWaaS) - Distributed Firewallの構成](https://qiita.com/testnin2/items/26dd06d28effbd83ff9e) 
- [11. IBM Cloud: VMware as a Service（VMWaaS) - VDC間のVM/vApp Migration](https://qiita.com/testnin2/items/381c5e6db4fdd7ed64d6)
- [12. IBM Cloud: VMware as a Service（VMWaaS) - VMWaaS APIの実行例](https://qiita.com/testnin2/items/3e0e86a25bfd06a165bf)
- [13. IBM Cloud: VMware as a Service（VMWaaS) - VMware Cloud Director OpenAPIの実行例](https://qiita.com/testnin2/items/420e55a06255d626a471) 
- [14. IBM Cloud: VMware as a Service（VMWaaS) - 検証: VIP切り替えによる高可用性構成の確認（手動切替）](https://qiita.com/testnin2/items/fead2339a999242ecae9) 
- [15. IBM Cloud: VMware as a Service（VMWaaS) - 検証: VIP切り替えによる高可用性構成の確認（keepalived）](https://qiita.com/testnin2/items/2a5c9660ccfab74faa49) 
- [16. IBM Cloud: VMware as a Service（VMWaaS) - Transit Gateway接続](https://qiita.com/testnin2/items/1ec6223b6713eb58e156) 
- [17. IBM Cloud: VMware as a Service（VMWaaS) - Veeam Backup and Replication service連携](https://qiita.com/testnin2/items/69fd29db9f8cc313e353) 


# 2. ネットワーク構成

今回はroutedタイプのnetwork間の通信をしたいので、routed networkが2つ必要になります（作成手順は省略）。FirewallやNAT構成は過去の記事とは変更していませんが、念の為再掲しておきます。


- Network

| Name | Scope| Routed or Isolated |Distributed Routing | Gateway CIDR | 
|:-|:-|:-|:-|:-|
| nw1-routed-vdc01 |mt-vdc01 |Routed| Enabled | 192.168.100.1/24  | 
| nw2-routed-vdc01 |mt-vdc01 |Routed| Enabled | 192.168.101.1/24  | 


- IP Sets

| IP Set name | Address range |
|:-|:-|
| IBM Cloud Private Network  |  161.26.0.0/16, 166.8.0.0/14 |
| syasuda-homeaddress  |  111.xx.xx.xx/24 |

- Edge Firewall

| rule  | firewall rule name | protocol | source<br>(IP Set等で指定） | destination<br>(IP Set等で指定）|action|
|:-:|:-:|:-:|:-:|:-:|:-:|
| 1  | IBM Cloud Private Network  |  - | ANY  | IBM Cloud Private Network| Allow  |
| 2  | allow-from-syasuda  |  SSH | syasuda-homeaddress| ANY| Allow  |
| default  | default_rule  | -  | ANY  | ANY  | Drop  |

- NAT

| NAT name | NAT Type | External IP<br>(VDC外部との通信に利用するPublic IP) | Internal IP<br>(NATルールが適用されるVDC内のネットワーク） |
|:-|:-|:-|:-|
| snat-to-external  | SNAT  |  150.xx.xx.xx  |  0.0.0.0/0 |
| dnat-to-jumpserver01  | DNAT  |  150.xx.xx.yy | 192.168.100.2<br>（この後、プロビジョニングするサーバーに割り当てる予定のIPアドレス）  |

- [VDCネットワークきほんのき](https://qiita.com/testnin2/items/3575b27c2ec2b6242ee6#2-vdc-%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E5%9F%BA%E6%9C%AC%E3%81%AE%E3%81%8D)


# 3. Distributed Routingが有効な時の疎通確認

Jump Serverは`nw1-routed-vdc01`に存在するので、新しいサーバーを`nw2-routed-vdc02`に配置します。

- Jump Server ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/d530a62a-e2ef-75d1-3375-8fab2b8f775a.png)
- routed-server2 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/72196222-a1c3-4f4e-f3df-52ec414453ce.png)

Edge GatewayのFirewall設定では、以下のようになっているため、もしrouted network間の通信がEdge Firewallを経由するのであれば、その通信はDropされるはずです。

- Firewall設定 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/d1714ec7-6af5-346b-748f-3d3dfecfdcc7.png)

Jump Serverからpingを打ってみると、、、通信できてしまいます。つまり、routed network間の通信ではこのEdge GatewayのFirewall機能は働いていないことがわかります。

```
[root@jumpserver ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:14:01:a9 brd ff:ff:ff:ff:ff:ff
    altname enp11s0
    inet 192.168.100.2/24 brd 192.168.100.255 scope global noprefixroute ens192
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fe14:1a9/64 scope link
       valid_lft forever preferred_lft forever

[root@jumpserver ~]# ping 192.168.101.2
PING 192.168.101.2 (192.168.101.2) 56(84) bytes of data.
64 bytes from 192.168.101.2: icmp_seq=1 ttl=63 time=0.311 ms
64 bytes from 192.168.101.2: icmp_seq=2 ttl=63 time=0.246 ms
64 bytes from 192.168.101.2: icmp_seq=3 ttl=63 time=0.237 ms
64 bytes from 192.168.101.2: icmp_seq=4 ttl=63 time=0.209 ms
^C
--- 192.168.101.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3109ms
rtt min/avg/max/mdev = 0.209/0.250/0.311/0.037 ms
```


# 4. Distributed Routingを無効にした時の疎通確認

## 4-1. 「Distributed Routingを無効にする機能」を有効にする

- Edge Gateway設定のGeneralに移動。`Allow Non-Distributed Routing`が`No`になっている。EDITを押下。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/548ceb94-c74a-de4e-61d1-9c4b25a1edd1.png)
- `Allow Non-Distributed Routing`を有効にして`SAVE`。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/58d46b06-b470-ff2a-fb2b-8791d79be086.png)
- `Allow Non-Distributed Routing`が`Yes`になった。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/4eda3a17-2119-8ca1-499b-6e30089da37e.png)


## 4-2. routed networkの"Distributed Routing"を無効にする

- Networkを以下のように構成する。

| name | VDC| Routed or Isolated |Distributed Routing | Gateway CIDR | 
|:-|:-|:-|:-|:-|
| nw1-routed-vdc01 |mt-vdc01 |Routed| **Disabled** | 192.168.100.1/24  | 
| nw2-routed-vdc01 |mt-vdc01 |Routed| Enabled | 192.168.101.1/24  | 

変更方法

- 該当のNetworkに移動。`Distributed Routing`が`Active`になっている。`EDIT`を押下。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/e693f6ab-0cab-692c-c366-a73e788f2649.png)
- `Distributed Routing`を無効化![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/a63b0365-a56c-6bed-c125-ea5f503f7014.png)
- `Distributed Routing`が`Inactive`になった。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/3f1b3ae8-931b-e43c-1830-c385135c89de.png)

## 4-3. 疎通確認

以下のように、外部には通信できますが、routed network間で疎通ができなくなりました。

```
[root@jumpserver ~]# ping 161.26.0.10
PING 161.26.0.10 (161.26.0.10) 56(84) bytes of data.
64 bytes from 161.26.0.10: icmp_seq=1 ttl=249 time=3.91 ms
64 bytes from 161.26.0.10: icmp_seq=2 ttl=249 time=0.872 ms
64 bytes from 161.26.0.10: icmp_seq=3 ttl=249 time=0.828 ms
64 bytes from 161.26.0.10: icmp_seq=4 ttl=249 time=0.816 ms
^C
--- 161.26.0.10 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3061ms
rtt min/avg/max/mdev = 0.816/1.606/3.908/1.329 ms


[root@jumpserver ~]# ping 192.168.101.2
PING 192.168.101.2 (192.168.101.2) 56(84) bytes of data.
^C
--- 192.168.101.2 ping statistics ---
10 packets transmitted, 0 received, 100% packet loss, time 9207ms
```

これは、以下の構成図のように、routed network間がSRを経由するようになり、Edge Firewallを経由するようになったからです。

<img width="50%" alt="hoge.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/c2b363f9-3cf0-43b9-b500-c2518610cf07.png">