Virtual Network Peeringを試してみる

Azure案件にアサインされました。
その中で、どうやらルーティングによってリソースへのアクセスを制御する必要がありそうです。
そこで今回は、VPN (P2S)でつないだオンプレからのアクセスをVnet間で転送する検証をしたいと思います。

## 概要
手書きの絵で大変恐縮ですがネットワーク構成はこちらです。
![IMG_1862.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/d3df47fb-d166-8122-66c3-a503e2979041.jpeg)

Vnet間はピアリングで通信できるようにします。
問題はVPNゲートウェイの向こうのオンプレからの通信です。オンプレとVnet-Aは問題なく通信できるでしょうが、Vnet-Bと通信するにはどういった設定が必要でしょう。ここについて検証していきます。

## 作業
VPNゲートウェイはデプロイに時間がかかるので、先に作ります。
Vnet-Aにゲートウェイ用のサブネットを作り、VPNGW1で十分なので作成。
待ってる間に仮想マシンをVnet-AとBにUbuntuの一番小さいサイズで作成。ともにパブリックIPは付与せずにやります。

VPNの構成については、オンプレ側のアドレスプールは構成図通り10.2.0.0/16にして、やることやります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/8815cd0d-c6ce-cd25-4746-834c6d83e6ae.png)
(いつも思うんだがやり方あってるんだろうか・・・）
## 経路の確認
VPNでオンプレとVnet-Aをつなげた時点での経路情報を見ておきます。
VM-Aに接続されたネットワークインターフェイスから、有効なルートを確認します。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/5e57d57f-6ddb-3f70-9eaf-cf82a8c4e4d1.png)
VPNゲートウェイがデプロイされたことで、10.2.0.0/16のアドレス空間には、ゲートウェイに送るような経路情報がテーブルに載りました。
VM-Bを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/c48be8ad-651e-2088-d3ad-b99ecdb0471c.png)
こちらにはゲートウェイの情報がありません。これは10.2.0.0/16にはいけなさそうです。
また、A、Bのどちらにも互いに通信するための経路情報はないようです。デフォルトでVnet間の通信はできないようになっています。

なお、オンプレ側では10.2.0.2 が与えられています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/591839d6-5676-4747-b70e-826b566f27ac.png)
## 疎通確認
オンプレからVM-A（10.0.0.4)とB（10.1.0.4)にpingを打ってみたところ・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/d1784811-cbe9-555f-1bdb-60fde46eb6b1.png)
この通り、Aには通ってBには通りません。
VM-AからBにpingしても通じません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/7d14da7c-41a8-578e-99d9-b6ce9057bf44.png)

Vnet間の通信もできていないので当然です。いまのところVnet-Bはオンプレとは無関係です。

## ピアリング
手始めに最小限の設定でピアリングしてみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/e3bb3837-f130-9155-9db6-a00938c0a115.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/368616ce-1297-7839-7af0-cdb7a9ba6def.png)
### 経路情報の確認・疎通確認
経路情報にピアリングが登場しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/e0c51160-9959-c93e-968f-2dcfd87e18be.png)
VM-AにSSHして、VM-Bに通じてるか確認しましょう（ピアリング前にやるのを忘れた）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/1e2d5bea-06a0-4901-71c3-3151533b0b0f.png)
はい、疎通確認できました。Vnet間の通信ができるようになりました。

それではオンプレとVM-Bとは？？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/db43d8d8-e0df-5e1c-cfdb-e3a3e5227a3b.png)
通じません。経路情報には10.2.0.0/16がないのでそうでしょう。
## ゲートウェイ転送
ピアリングの設定にゲートウェイ転送というのがあるのでそれをするとよいそうです。https://learn.microsoft.com/ja-jp/azure/vpn-gateway/vpn-gateway-peering-gateway-transit
注意点としては、ピアリングするVnetの双方で設定をすることです。今回VPNゲートウェイがあるのはVnet-Aの方であることに注意して設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/95435883-fc39-eaec-d5ef-35df76b88b97.png)
Vnet-Bのほうでも設定が必要です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/cb2789c3-3e1a-5a39-463d-cadcbadfcb40.png)
ちなみにピアリングの設定には少しばかり時間がかかるようです。１分くらい

さて、経路情報はどうなっているでしょうか。VM-Bの方で確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/ea356415-6fc4-38bb-ac2b-1fbab32d2b01.png)
仮想ネットワークゲートウェイの経路情報が登場しました。※※※

それではオンプレからVM-Bに疎通確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/31701000-310b-8610-b2a1-24f360cf71d8.png)
できません。どうしてだろう

## 経路情報の追加
オンプレでroute printしたところ、こうなってました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/8479d677-7b8b-25e5-4199-ea67157fcf00.png)
10.1.0.0/16 (Vnet-Bのこと）への経路情報がありません。
なので一番上のデフォルトルートに飛んでます。これはVPNの入り口ではありません。したがってVM-Bには到達できません。

powershellを管理者権限で開いて、
```
route add 10.1.0.0/16 10.2.0.2
```
を実行し、経路情報を追加します。

疎通確認すると、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/426a9b90-914d-d165-9603-e4828d00dd95.png)
右が経路情報を追加した後のping結果です。疎通がとれました。
これで、vnetをまたいでオンプレが通信できました。

検証は終了です。お疲れさまでした。
## あとがき
※※※のところで、VM-Bから10.2.0.2にping打っても返らなかった。VM-Bからゲートウェイは見えているのでオンプレには届いていると思うが、pingの往きで経路を覚えないということか？？