LoginSignup
3
0

More than 1 year has passed since last update.

Azure x IBMCloud IPsecVPN/BGP接続

Last updated at Posted at 2022-03-18

目的

Microsoft AzureとIBMCloudをインターネットを介したIPsecVPNで接続する。
次に、BGPを用いた経路交換を実施し、AzureとIBMCloud間で仮想マシン間の通信が可能か確認する。

冗長接続構成は、下記を参照してください
Azure x IBMCloud Active/Activeネットワーク接続(IPsecVPN+BGP)

構成

  • ローカル端末:macOS Big Sur 11.6 1台
  • プラットフォーム:Microsoft Azure
    • 仮想ネットワーク:PublicIPアドレス/仮想NWゲートウェイ/ローカルNWゲートウェイ 1サービス
    • Virtual Machines:CentOS 7.9 1台
  • プラットフォーム:IBMCloud
    • ルータ:Vyatta AT&T vRouter 5600 1912g 1台
    • 仮想サーバ:CentOS 7.7(Virtual Server for Classic) 1台

構成図

Azure to IBMCloud (2).png

Azureサービスのデプロイ

Azure Virtual Network(仮想ネットワーク)の作成

はじめに、VNet(仮想ネットワーク)を作成する。
これはGCPやAWSで言うところのVPC(Virtual Private Cloud)と呼ばれる機能。
用途毎に作成するのが一般的で、この上に仮想NWゲートウェイや仮想マシンを作成する。
参考:Azure Virtual Network とは

Azure Portal検索バーにvirtual networkを入力し、MarketplaceのVirtual networkを選択。
スクリーンショット_2022-03-17_13_29_14.png

画面が遷移後、作成を選択
スクリーンショット_2022-03-17_13_32_22.png

仮想ネットワークの作成→基本

  • サブスクリプション:自分が利用するサブスクリプションを選択
  • リソースグループ:作成していない為、新規作成を選択し、任意の名前を入力
  • 名前:仮想ネットワークに任意の名前を入力
  • 地域:作成する地域を選択

次:IPアドレスを選択し、次に進む
スクリーンショット_2022-03-17_13_36_09.png

仮想ネットワークの作成→IPアドレス

  • IPアドレス空間:デフォルトの10.0.0.0/16は今回は利用しないため、削除する。その後、Azure側で利用したいIPアドレス空間を入力する。
  • サブネット名:サブネットの追加を選択し、サブネット名とサブネットアドレス範囲を入力し、追加を選択

セキュリティおよびタグは今回は利用しないので、確認および作成を選択
スクリーンショット_2022-03-17_13_56_42.png

今回の構成では、下記の通り
image.png

作成する内容を確認し、問題なければ、作成を選択
貼り付けた画像_2022_03_17_14_14.png

正常にデプロイされたことを確認
貼り付けた画像_2022_03_17_14_16.png

Azure VPN Gateway(仮想ネットワークゲートウェイ)の作成

インターネットを介して、オンプレミスや他クラウドと暗号化した通信で接続する。
参考:VPN ゲートウェイとは

Azure Portal検索バーにVirtual Network Gatewayを入力し、MarketplaceのVirtual network gatewayを選択
貼り付けた画像_2022_03_17_14_26.png

仮想ネットワーク ゲートウェイの作成→基本

  • サブスクリプション:自分が利用するサブスクリプションを選択
  • 名前:仮想ネットワークゲートウェイに任意の名前を入力
  • 地域:作成する地域を選択
  • SKU:利用用途に応じて仮想ネットワークゲートウェイの性能を選択
    参考:Gateway の SKU
  • 仮想ネットワーク:** 作成したAzure Virtual Network(仮想ネットワーク) **を選択
  • ゲートウェイサブネットのアドレス範囲:作成したVNetのアドレス空間から入力
  • パブリックIPアドレス名:任意の名前を入力
  • 可用性ゾーン:GWをデプロイするAzure可用性ゾーンを選択
    参考:可用性ゾーン
  • BGPの構成:後程設定する為、無効を選択

最後に確認および作成を選択
貼り付けた画像_2022_03_17_14_53.png

今回の構成では、下記の通り
image.png

作成する内容を確認し、問題なければ、作成を選択
デプロイ完了まで20分ほど時間がかかる
貼り付けた画像_2022_03_17_15_25.png

正常にデプロイされたことを確認
貼り付けた画像_2022_03_17_15_45.png

Azure ローカルネットワークゲートウェイの作成

Azureとの接続先の情報を定義する為、ローカルネットワークゲートウェイを作成する。
今回の場合はIBMCloud側のVPNゲートウェイ装置の情報を設定する。

Azure Portal検索バーにlocal network gatewayを入力し、Marketplaceのlocal network gatewayを選択
貼り付けた画像_2022_03_17_15_48.png

ローカルネットワークゲートウェイの作成→基本

  • サブスクリプション:自分が利用するサブスクリプションを選択
  • リソースグループ:先ほど作成したリソースグループを選択
  • 地域:作成する地域を選択
  • 名前:ローカルネットワークゲートウェイに任意の名前を入力
  • IPアドレス:Azureから接続する対向先のVPNゲートウェイのIPを入力
    今回はIBMCloud側VyattaのパブリックIPを入力
  • アドレス空間:VPN接続対象のセグメントを入力
    今回はIBMCloud側のサーバセグメント(172.31.0.0/24)を入力する

最後に確認および作成を選択
貼り付けた画像_2022_03_17_16_04.png

今回の構成では、下記の通り
貼り付けた画像_2022_03_18_14_17.png

作成する内容を確認し、問題なければ、作成を選択
貼り付けた画像_2022_03_18_14_18.png

正常にデプロイされたことを確認
貼り付けた画像_2022_03_17_16_16.png

Azure IPsecVPNの設定

参考:S2S VPN または VNet-to-VNet 接続の IPsec/IKE ポリシーを構成する

Azureポータルの上部、左上のボタンを選択
貼り付けた画像_2022_03_17_16_19.png

すべてのリソースを選択
貼り付けた画像_2022_03_17_16_20.png

先ほど作成した仮想ネットワークゲートウェイを選択
貼り付けた画像_2022_03_17_16_21.png

左ペインの設定から、接続を選択し、追加を選択
貼り付けた画像_2022_03_17_16_23.png

  • 名前:接続に関するに任意の名前を入力
  • 接続の種類: サイト対サイト(IPsec) を選択
  • ローカルネットワークゲートウェイ:作成したローカルネットワークゲートウェイを選択
  • 共有キー(PSK):IPsecVPN接続先の機器と事前に決めた共有のキーを設定
    今回はIBMCloud側のVyattaとAzure側で同じ共有キーを設定する
  • IKEプロトコル:特別要件がない限り、IKEv2を選択

最後にOKを選択
貼り付けた画像_2022_03_17_16_28.png

今回の構成では、下記の通り
image.png

正常にデプロイされたことを確認
貼り付けた画像_2022_03_17_16_41.png

IPsec/IKEポリシーの変更

仮想ネットワークゲートウェイのページから、作成したVPN接続名を選択
貼り付けた画像_2022_03_17_16_41.png

構成を選択し、IKEおよびポリシーのカスタムを選択
デフォルトの場合、セキュリティレベルが低いので、下記のポリシーを設定する。
以下の値は接続先(IBMCloud)と一致させる必要がある。

  • IKEフェーズ1

    • 暗号化:AES256 -> 変更なし
    • 整合性またはPRF:SHA-1 -> SHA256
    • DHグループ:DH2 -> DH20(ECP384)
  • IKEフェーズ2(IPsec)

    • IPsec暗号化:AES256 -> 変更なし
    • IPsec整合性:SHA-1 -> SHA256
    • PFSグループ:DH2 -> DH20(ECP384)

最後に保存を選択
貼り付けた画像_2022_03_17_16_44.png

今回の構成では、下記の通り
image.png

正常にデプロイされたことを確認
貼り付けた画像_2022_03_17_16_55.png

以上でAzure側のIPsecVPNの設定は完了
この後は、IBMCloud側のIPsecVPNの設定を実施し、その後BGPで接続する構成に変更する

IBMCloud IPsecVPNの設定(Vyatta)

Azure接続用VTIインタフェースの設定

IPsecで接続後、IBMCloudとGCP間のルーティングインタフェースを作成する。
169.254.21.1/30は、後程設定するBGP接続用のアドレス

set interfaces vti vti0 address '169.254.21.1/30'
set interfaces vti vti0 description 'Azure'
set interfaces vti vti0 mtu '1436'

Azure接続用IPsecVPNの設定

Azure側で対応しているIPsecVPNのパラメタは下記ページを参照
このリストにある暗号化、関数、DHセットを使えば、特に問題なく繋がるはず。
参考:Azure VPNゲートウェイの IPsec/IKE ポリシーのパラメーターについて

  • 20.89.69.xxxはAzure側の仮想ネットワークゲートウェイのパブリックIPアドレス
    仮想ネットワークゲートウェイの概要ページで確認可能
  • 165.192.93.xxはIBMCloud側のVyattaのパブリックIPアドレス(dp0bond1)

ESPとIKEのパラメタはAzureとIBMCloudで必ず一致させること

set security vpn ipsec esp-group ESP-Azure compression 'disable'
set security vpn ipsec esp-group ESP-Azure lifetime '3600'
set security vpn ipsec esp-group ESP-Azure mode 'tunnel'
set security vpn ipsec esp-group ESP-Azure pfs 'dh-group20'
set security vpn ipsec esp-group ESP-Azure proposal 1 encryption 'aes256'
set security vpn ipsec esp-group ESP-Azure proposal 1 hash 'sha2_256'
set security vpn ipsec ike-group IKE-Azure dead-peer-detection action 'restart'
set security vpn ipsec ike-group IKE-Azure dead-peer-detection interval '30'
set security vpn ipsec ike-group IKE-Azure dead-peer-detection timeout '120'
set security vpn ipsec ike-group IKE-Azure ike-version '2'
set security vpn ipsec ike-group IKE-Azure lifetime '3600'
set security vpn ipsec ike-group IKE-Azure proposal 1 dh-group '20'
set security vpn ipsec ike-group IKE-Azure proposal 1 encryption 'aes256'
set security vpn ipsec ike-group IKE-Azure proposal 1 hash 'sha2_256'
set security vpn ipsec site-to-site peer 20.89.69.xxx authentication mode 'pre-shared-secret'
set security vpn ipsec site-to-site peer 20.89.69.xxx authentication pre-shared-secret 'ibmcloudazure'
set security vpn ipsec site-to-site peer 20.89.69.xxx connection-type 'initiate'
set security vpn ipsec site-to-site peer 20.89.69.xxx default-esp-group 'ESP-Azure'
set security vpn ipsec site-to-site peer 20.89.69.xxx ike-group 'IKE-Azure'
set security vpn ipsec site-to-site peer 20.89.69.xxx local-address '165.192.93.xx'
set security vpn ipsec site-to-site peer 20.89.69.xxx vti bind 'vti0'
set security vpn ipsec site-to-site peer 20.89.69.xxx vti esp-group 'ESP-Azure'

FW等をかけている場合は、事前に許可しておくこと。
これらの設定でIBMCloudとAzure間のIPsecVPNは接続できているはず、

IPsecVPNの接続確認

AzureポータルおよびIBMCloudのVyattaで接続状態を確認する

Azure側の状態確認

仮想ネットワークゲートウェイから、接続を選択し、対象の接続名の状態を確認
貼り付けた画像_2022_03_17_17_15.png

IBMCloud側の状態確認

フェーズ1の状態確認、State->upを確認

vyatta@:~$ show vpn ike sa
Peer ID / IP                            Local ID / IP
------------                            -------------
20.89.69.xxx                          165.192.93.61

    State    Encrypt       Hash    D-H Grp  A-Time  L-Time IKEv
    -----  ------------  --------  -------  ------  ------ ----
    up     aes256        sha2_256  20       0       3600    2

フェーズ2の状態確認、State->upを確認

vyatta@:~$ show vpn ipsec sa
Peer ID / IP                            Local ID / IP
------------                            -------------
20.89.69.xxx                            165.192.93.xx

    Tunnel  Id          State  Bytes Out/In   Encrypt       Hash      DH A-Time  L-Time
    ------  ----------  -----  -------------  ------------  --------  -- ------  ------
    vti     4           up     4.9K/0.0       aes256        sha2_256  20 -31228  3600

AzureのBGP設定

仮想ネットワークゲートウェイおよびローカルネットワークゲートウェイでBGPを設定する。

参考:Azure VPN Gateway で BGP を構成する方法

  • Azure:AS65515
    • 169.254.21.2
    • 広報ネットワーク:192.168.0.0/16
  • IBMCloud:AS65001
    • 169.254.21.1
    • 広報ネットワーク:172.31.0.0/24

ローカルネットワークゲートウェイの設定

Azureポータルの上部、左上のボタンを選択
貼り付けた画像_2022_03_17_16_19.png

すべてのリソースを選択
貼り付けた画像_2022_03_17_16_20.png

作成した、ローカルネットワークゲートウェイを選択
貼り付けた画像_2022_03_18_10_49.png

構成 -> BGPの構成 -> はい

  • アドレス空間:BGPで経路制御するため、削除
  • 自律システム番号(ASN):対向機器、今回はIBMCloud側のVyatta ASN番号を入力
  • BGPピアのIPアドレス:対向機器、今回はIBMCloud側のVyatta VTIのIPアドレスを入力

最後に保存を選択
貼り付けた画像_2022_03_18_11_26.png

今回の構成では、下記の通り
貼り付けた画像_2022_03_18_11_06.png

正常にデプロイされたことを確認
貼り付けた画像_2022_03_18_11_13.png

仮想ネットワークゲートウェイの設定

Azureポータルの上部、左上のボタンを選択
貼り付けた画像_2022_03_17_16_19.png

すべてのリソースを選択
貼り付けた画像_2022_03_17_16_20.png

先ほど作成した仮想ネットワークゲートウェイを選択
貼り付けた画像_2022_03_17_16_21.png

構成 -> BGPの構成にチェックをいれる

最後に保存を選択
貼り付けた画像_2022_03_18_11_36.png

今回の構成では、下記の通り
image.png

正常にデプロイされたことを確認
貼り付けた画像_2022_03_18_11_48.png

続けて、左ペインの接続を選択し、作成した仮想ネットワークゲートウェイを選択
貼り付けた画像_2022_03_18_11_19.png

構成 -> BGPの有効を選択
最後に保存を選択
貼り付けた画像_2022_03_18_11_24.png

正常にデプロイされたことを確認
貼り付けた画像_2022_03_18_11_33.png

IBMCloudのBGP設定

先ほど設定したAzureとIPsecVPNを実施しているVyatta機器に対して、BGPの設定を追加する

  • Azure:AS65515
    • 169.254.21.2
    • 広報ネットワーク:192.168.0.0/16
  • IBMCloud:AS65001
    • 169.254.21.1
    • 広報ネットワーク:172.31.0.0/24
set protocols bgp 65001 address-family ipv4-unicast network '172.31.0.0/24'
set protocols bgp 65001 neighbor 169.254.21.2 address-family ipv4-unicast soft-reconfiguration 'inbound'
set protocols bgp 65001 neighbor 169.254.21.2 remote-as '65515'
set protocols bgp 65001 neighbor 169.254.21.2 timers holdtime '90'
set protocols bgp 65001 neighbor 169.254.21.2 timers keepalive '30'
set protocols bgp 65001 parameters router-id '169.254.21.1'

BGPの状態確認

AzureポータルおよびIBMCloudのVyattaで接続状態を確認する

Azure側の状態確認

参考:BGP のメトリックと状態の表示

Azureポータルの上部、左上のボタンを選択
貼り付けた画像_2022_03_17_16_19.png

すべてのリソースを選択
貼り付けた画像_2022_03_17_16_20.png

先ほど作成した仮想ネットワークゲートウェイを選択
貼り付けた画像_2022_03_17_16_21.png

BGPピアを選択

  • BGPピア:対抗先のアドレス、ASN、BGP接続状況および受信したルート数を確認できる
  • 学習したルート:具体的に対向機器からアドバタイズされたルーティング情報が確認できる
    172.31.0.0/24(IBMCloud側サーバセグメント) -> 169.254.21.1(IBMCloud Vyatta)
    貼り付けた画像_2022_03_18_13_07.png

IBMCloud側の状態確認

BGPネイバーの状態

vyatta@:~$ show ip bgp neighbors
BGP neighbor is 169.254.21.2, remote AS 65515, local AS 65001, external link
  BGP version 4, remote router ID 192.168.0.254
  BGP state = Established, up for 00:10:15
  Last read 00:10:15, hold time is 90, keepalive interval is 30 seconds
  Configured hold time is 90, keepalive interval is 30 seconds
  Neighbor capabilities:
    Route refresh: advertised and received (new)
    Address family IPv4 Unicast: advertised and received
    Address family IPv6 Unicast: received
  Received 26 messages, 0 notifications, 0 in queue
  Sent 24 messages, 0 notifications, 0 in queue
  Route refresh request: received 0, sent 0
  Minimum time between advertisement runs is 30 seconds
 For address family: IPv4 Unicast
  BGP table version 9, neighbor version 9
  Index 2, Offset 0, Mask 0x4
    Graceful restart: received
  Inbound soft reconfiguration allowed
  Community attribute sent to this neighbor (both)
  1 accepted prefixes
  1 announced prefixes

 Connections established 7; dropped 6
Local host: 169.254.21.1, Local port: 36008
Foreign host: 169.254.21.2, Foreign port: 179
Nexthop: 169.254.21.1
Nexthop global: ::
Nexthop local: ::
BGP connection: non shared network
Last Reset: 00:12:07, due to BGP Notification sent
Notification Error Message: (Cease/Other Configuration Change.)

BGPでルートが取得できているか

vyatta@:~$ show ip route bgp
IP Route Table for Routing-instance "default"
B    *> 192.168.0.0/16 [20/0] via 169.254.21.2, vti0, 00:10:45

エンドツーエンド疎通確認

AzureからIBMCloud側への通信確認

[azureuser@TestVM1 ~]$ ping 172.31.0.1
PING 172.31.0.1 (172.31.0.1) 56(84) bytes of data.
64 bytes from 172.31.0.1: icmp_seq=1 ttl=64 time=3.71 ms
64 bytes from 172.31.0.1: icmp_seq=2 ttl=64 time=3.32 ms
64 bytes from 172.31.0.1: icmp_seq=3 ttl=64 time=4.23 ms
64 bytes from 172.31.0.1: icmp_seq=4 ttl=64 time=3.42 ms
64 bytes from 172.31.0.1: icmp_seq=5 ttl=64 time=3.61 ms

IBMCloudからAzureへの通信確認

[root@azure-sv ~]# hping3 -S -p 80 192.168.1.4
HPING 192.168.1.4 (eth0 192.168.1.4): S set, 40 headers + 0 data bytes
len=46 ip=192.168.1.4 ttl=62 DF id=0 sport=80 flags=SA seq=0 win=29200 rtt=5.3 ms
len=46 ip=192.168.1.4 ttl=62 DF id=0 sport=80 flags=SA seq=1 win=29200 rtt=5.8 ms
len=46 ip=192.168.1.4 ttl=62 DF id=0 sport=80 flags=SA seq=2 win=29200 rtt=6.7 ms
len=46 ip=192.168.1.4 ttl=62 DF id=0 sport=80 flags=SA seq=3 win=29200 rtt=5.6 ms
len=46 ip=192.168.1.4 ttl=62 DF id=0 sport=80 flags=SA seq=4 win=29200 rtt=5.5 ms
3
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0