0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Juniper SSG5(ScreenOS)とAzure間でSite to Site VPN接続を行う(BGPも有効)

Last updated at Posted at 2018-08-29

はじめに

Juniper SSGシリーズはAzure Site to Site VPNの動作確認済みルータであり、設定ファイルもAzureポータルからダウンロード可能ですが、VPN接続時のBGPによるルート交換の設定までは含まれていません。

そこで、多少試行錯誤ではありましたが、VPN接続+BGPによるルート交換を含めて接続設定が行えたので記します。

前提条件

今回の検証では以下の構成・条件で行いました。

  • インターネット接続はフレッツにPPPoEで任意のインターネットプロバイダに接続済
  • オンプレミス側のWAN側IPアドレスは固定

構成

ざっくりとした構成図は以下のとおりです。

image.png

オンプレミス側とAzure側のセグメント情報(192.168.127.0/24, 192.168.10.0/24, 192.168.12.0/24)は直接ローカルネットワークゲートウェイ等の設定には記述しないで、BGPによる経路交換を実現させます。

Azure側の設定

必要な仮想ネットワーク、仮想マシンは事前に作成します。本記事では具体的な作成方法は割愛します。

仮想ネットワークゲートウェイ リソース

前述した構成上、AzureVNET内にGatewaySubnetを作成してそこに配置します。
本記事ではGatewaySubnetのアドレス空間は192.168.10.128/28を設定しています。

BGPを利用する為にはSKUはBasic以外を選択する必要があります。今回はVpnGw1を使用しました。

参考 : BGP はすべての Azure VPN Gateway SKU でサポートされていますか

作成後に「概要」のパブリックIPアドレスと、「構成」の自律システム番号(ASN)及びBGPピアのIPアドレスを控えておきます。

image.png

image.png

ローカルネットワークゲートウェイ リソース

  • IPアドレス : オンプレミスのWAN側IPアドレスを設定します。
  • アドレス空間 : 後述しますが、オンプレミス側のtunnelインタフェースのIPアドレスを指定します。このアドレスはBGPのピア用のアドレスとなっていて、オンプレミス側のプライベートネットワーク内のアドレスとは異なります。後から修正もできるので、とりあえず下記画面通りの値をいれておいても良いと思います。
  • BGP設定の構成 : 必ずチェックを入れます
  • 自律システム番号 : こちらも後述しますが、プライベートASNの範囲からAzureが予約していない番号をオンプレミス側に指定するため、そのASNを設定します。
  • BGPピアのIPアドレス : アドレス空間に設定したピア用のIPアドレスと同じものを指定します(こちらは末尾に/32は付けない)

image.png

接続 リソース

先に作成した仮想ネットワークゲートウェイと、ローカルネットワークゲートウェイを指定して作成します。

共有キーはオンプレミス側のルータ設定時にも必要ですので、設定した内容を控えておきます。

image.png

接続リソース上でもBGPが有効になっているか確認します。

image.png

Juniper追加設定

既にインターネットへはWebインタフェースのウイザードなどを使い、PPPoE等で契約済みのプロバイダに接続されているのが前提となります。

Azure Site to Site VPN接続を行う場合にはオンプレミス側のWAN側IPアドレスは固定化されていることが必要です。

また、ScreenOSは6.2.x以降のファームウェアバージョンが対象となります(それ以前のバージョンではルートベースのVPN接続が不可)。

tunnelの設定

オンプレミス側のWAN側アドレスに対してAzure VPN GWからBGPのピアを直接張ることはできないため、オンプレミス、Azure VNET共に重複しないアドレス空間でtunnelを作成します。

今回は192.168.130.1/30をBGPピアIPアドレスに指定します。

参考 : VPN デバイスの BGP ピア IP アドレスに関する要件はどんなものですか。

tunnelの設定
set zone "Trust" asymmetric-vpn
set interface "tunnel.1" zone "Trust"
set interface tunnel.1 ip <Edit>192.168.130.1/30</Edit>

※「<Edit>~</Edit>」は適宜環境に合わせて修正してください

MTU/MSSの値設定

BフレッツでAzureとVPN接続する場合には以下のMTU/MSSが良いそうです。
ethernet0/0とtunnel.1の両方に設定が必要か判断できなかったので両方設定しました。
(どなたか正解をコメントして頂ければ幸いです)

参考 : Azureなう : IPsec VPN利用時の、最適なMTU

MTU値の設定
set interface ethernet0/0 mtu 1374
set interface tunnel.1 mtu 1374
set flow vpn-tcp-mss 1334

Site to Site VPNの設定

基本的にはAzure側にて「接続」リソース作成後に「構成のダウンロード」で取得できるオンプレミス側の設定ファイルをベースとしています。

image.png

しかし、こちらの内容はBGP非対応のものであるほか、インターネットと直接(PPPoE経由とかではなく)接続されている前提のconfigファイルとなるため、必要な箇所だけ抜粋・修正しました。

注意点・要修正点は以下のとおりです。

  • set ike gateway ikev2 "Azure-GW"
    • address : Azure側の仮想ネットワークゲートウェイに割り当てられたパブリックIPアドレスを設定
    • local-id : オンプレミスのWAN側に割り当てられたパブリックIPアドレスを設定
    • preshare : Azure側の接続リソース作成時に設定した共有キーと同じものを設定
VPNの設定
set ike p1-proposal "AZURE-P1_Proposal" preshare group2 esp aes256 sha2-256 hour 8
set ike p2-proposal "AZURE-P2_Proposal" group2 esp aes256 sha2-256 hour 3
set ike gateway ikev2 "Azure-GW" address <Edit>XXX.XXX.XXX.XXX</Edit> local-id "<Edit>XXX.XXX.XXX.XXX<Edit>" outgoing-interface "ethernet0/0" preshare "<Edit>Preshareword</Edit>" sec-level compatible
set ike gateway "Azure-GW" dpd-liveness interval 10
set ike respond-bad-spi 1
set ike gateway ikev2 "Azure-GW" auth-method self preshare peer preshare
set ike ikev2 ike-sa-soft-lifetime 60
unset ike ikeid-enumeration
unset ike dos-protection
unset ipsec access-session enable
set ipsec access-session maximum 5000
set ipsec access-session upper-threshold 0
set ipsec access-session lower-threshold 0
set ipsec access-session dead-p2-sa-timeout 0
unset ipsec access-session log-error
unset ipsec access-session info-exch-connected
unset ipsec access-session use-error-log
set vpn "Azure" gateway "Azure-GW" no-replay tunnel idletime 0 sec-level compatible
set vpn "Azure" monitor optimized rekey
set vpn "Azure" id 0x1 bind interface tunnel.1
set url protocol websense
exit

※「<Edit>~</Edit>」は適宜環境に合わせて修正してください

BGPの設定

注意点・要修正点は以下のとおりです。

  • set protocol
    • bgp : オンプレミス側のプライベートASを指定。64512~65534の範囲の内、65515, 65517, 65518, 65519, 65520はAzure側で予約されているので、それ以外を指定します。今回の例では65521を使用しました。

参考 : Azure によって予約済みの ASN はありますか

  • set neighbor全体
    • IPアドレス(例では192.168.10.142)に、Azure側の仮想ネットワークゲートウェイ作成後に「構成」から確認できる「BGPピアのIPアドレス」を設定します。

image.png

  • set neighbor
    • remote-as : Azure側の仮想ネットワークゲートウェイ作成後に「構成」から確認できる「自律システム番号(ASN)」を設定します(例では65516)。

image.png

  • set neighbor ... ebgp-multihop 2
    • こちらを設定しないとtunnel経由でBGP交換を行う場合にデフォルトでは次ホップ(1)までしか広告されないので、必ず設定します
  • set ipv4 network
    • オンプレミス側からAzure VNETに広告が必要なセグメント情報をCIDRで指定します(複数行指定可能)。今回の例ではオンプレミス側は 192.168.127.0/24 のみであるため、1行指定しています。
  • set route
    • Azure側のBGPピアのIPアドレスを設定します。こちらについては静的登録しないとBGPによるルート交換ができませんので。
BGP設定
set vrouter "trust-vr"
set max-ecmp-routes 2
set protocol bgp <Edit>65521</Edit>
set enable
set hold-time 30
set neighbor <Edit>192.168.10.142</Edit> remote-as <Edit>65516</Edit>
set neighbor <Edit>192.168.10.142</Edit> enable
set neighbor <Edit>192.168.10.142</Edit> hold-time 30
set neighbor <Edit>192.168.10.142</Edit> ebgp-multihop 2
set ipv4 neighbor <Edit>192.168.10.142</Edit> activate
set ipv4 network <Edit>192.168.127.0/24</Edit> weight 100
exit
unset add-default-route
set route <Edit>192.168.10.142/32</Edit> interface tunnel.1
exit
set interface tunnel.1 protocol bgp

※「<Edit>~</Edit>」は適宜環境に合わせて修正してください

接続確認

JuniperのCLIからget routeコマンドを実行して、ルーティングテーブルにBGP経由でAzure側のルーティング情報が広告されているか確認します。

ssg5-isdn-> get route


IPv4 Dest-Routes for <untrust-vr> (0 entries)
--------------------------------------------------------------------------------------
H: Host C: Connected S: Static A: Auto-Exported
I: Imported R: RIP/RIPng P: Permanent D: Auto-Discovered
N: NHRP
iB: IBGP eB: EBGP O: OSPF/OSPFv3 E1: OSPF external type 1
E2: OSPF/OSPFv3 external type 2 trailing B: backup route


IPv4 Dest-Routes for <trust-vr> (12 entries)
--------------------------------------------------------------------------------------
         ID          IP-Prefix      Interface         Gateway   P Pref    Mtr     Vsys
--------------------------------------------------------------------------------------
*         8          0.0.0.0/0         eth0/0   203.180.20.89   C    0      1     Root
*         4  192.168.127.20/32        bgroup0         0.0.0.0   H    0      0     Root
*         1    124.41.88.34/32         eth0/0         0.0.0.0   C    0      0     Root
*         2    124.41.88.34/32         eth0/0         0.0.0.0   H    0      0     Root
*        11    192.168.12.0/24          tun.1  192.168.10.142  eB   40      0     Root
*        10    192.168.10.0/24          tun.1  192.168.10.142  eB   40      0     Root
*         3   192.168.127.0/24        bgroup0         0.0.0.0   C    0      0     Root
*         6   192.168.130.0/30          tun.1         0.0.0.0   C    0      0     Root
*         7   192.168.130.1/32          tun.1         0.0.0.0   H    0      0     Root
         12   192.168.130.1/32          tun.1  192.168.10.142  eB   40      0     Root
*         9  192.168.10.142/32          tun.1         0.0.0.0   S   20      1     Root

Pref欄に「eB」と表記されている行がAzureからBGPで受け取ったVNETのルーティング情報です。

オンプレミス上のLinuxからtracerouteとpingした結果です。
うまく繋がりました。

pi@raspberrypi:~ $ traceroute 192.168.12.4
traceroute to 192.168.12.4 (192.168.12.4), 30 hops max, 60 byte packets
 1  192.168.127.20 (192.168.127.20)  0.701 ms  0.697 ms  0.712 ms
 2  169.254.0.29 (169.254.0.29)  5.260 ms  6.261 ms  6.801 ms
 3  192.168.12.4 (192.168.12.4)  9.585 ms  9.323 ms  9.059 ms
pi@raspberrypi:~ $ ping -c 3 192.168.12.4
PING 192.168.12.4 (192.168.12.4) 56(84) bytes of data.
64 bytes from 192.168.12.4: icmp_seq=1 ttl=62 time=6.23 ms
64 bytes from 192.168.12.4: icmp_seq=2 ttl=62 time=6.69 ms
64 bytes from 192.168.12.4: icmp_seq=3 ttl=62 time=6.23 ms

--- 192.168.12.4 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 6.232/6.388/6.697/0.218 ms

おわりに

とりあえず感はありますが、無事オンプレミスのJuniper SSG5とAzure VPN GW間でSite to Site接続がBGP有りで接続できました。

参考になれば幸いです。

0
1
0

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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?