SORACOM Developers

Documents

SORACOM DoorへのAzureからの接続

SORACOM Door(以下、Door)を利用すると、SORACOMとサイト間VPN接続を行うことができます。

ここでは、SORACOM Doorを利用して、Microsoft Azure(以下Azure)からVPN接続する方法を紹介します。

Azure上に、VPN接続用の仮想サーバを起動する

Azureコンソールより、ルーターとして動作するLinux仮想サーバ(ルーターサーバ)を起動します。

この資料では、ルーター用の仮想マシンのイメージとして、Ubuntu Server 16.04 LTSを使用しています。またAzure上の仮想ネットワークなどの値は以下のものを例として使用しますが、実際に構築する際にはご自身の環境に置き換えてください。

項目
Azure 仮想ネットワーク アドレスレンジ 例) 10.3.0.0/16
ルーターサブネット 例) 10.3.0.0/24
ルーターサーバ ローカルIPアドレス 例) 10.3.0.4
ルーターサーバ パブリックIPアドレス 例) 40.115.186.34

Azureコンソールより、仮想サーバを起動します。

Linux起動後、SSHでの接続が可能かどうかを確認しておきます。

SORACOM Doorの利用申請

Azureコンソールから、仮想サーバに割り振られたパブリックIPアドレスを確認します。

次に、SORACOM Doorの利用申請を行います。利用申請はこちらのページから行います。

申請時に以下の項目の入力がありますので、下記内容を記載します。

項目
ご利用予定の VPN ゲートウェイ機器のベンダ名および型番 Microsoft Azure(Ubuntu Server 16.04 LTS)
ご利用になる VPN ゲートウェイ機器に設定するグローバルIPアドレス(静的) 上記手順で確認したパブリックIPアドレス
動的経路制御を利用する場合、AS番号を入力してください 64512 (64512 から 65534 までの範囲内の任意の値)
動的経路制御を利用する場合、ルーティング対象とするIPアドレスレンジ Azure 仮想ネットワーク ネットワークレンジ(この例では10.3.0.0/16)

SORACOM側で設定が完了すると、IPSec Tunnnel #1 および #2 について、以下の内容が送られてきます。

これらの情報を使用して、ルーターサーバの各種設定を行います。

Azure上のLinuxからDoorへ接続する

ネットワークセキュリティグループの設定

ルーターサーバーのネットワークセキュリティグループ設定に、以下の項目を追加します。

必要なソフトウェアのインストール

Azure上のルーターサーバにログインし、必要なソフトをインストールします。

sudo su
apt-get install racoon quagga ipsec-tools
(すべてデフォルト設定を使用)

IPフィルター、フォワーディング設定

ルーターとして動作させるため、カーネルパラメータを変更します。 /etc/sysctl.confを編集します。

cd /etc
vi sysctl.conf

設定ファイルに、以下の修正を行います。

net.ipv4.conf.default.rp_filter=0 (コメントアウトをはずす)
net.ipv4.conf.all.rp_filter=0  (コメントアウトをはずす)
net.ipv4.conf.eth0.rp_filter=0  (新規追加)
net.ipv4.conf.lo.rp_filter=0    (新規追加)

net.ipv4.ip_forward=1 (値を0から1に変更)

設定を反映します。

sysctl -p sysctl.conf

IPSec/BGP設定準備

ipsectools,racoon,quaggaの設定ファイルを作成するため、はじめに以下のテーブルに従って各種情報を整理します。

変数名 項目例 内容
<LOCAL PUBLIC IP> 40.115.186.34 ルーターサーバのパブリックIPアドレス
<LOCAL PRIVATE IP> 10.3.0.4 ルーターサーバのローカルIPアドレス
<CONN A PUBLIC IP> 52.68.161.59 IPSec Tunnel #1 のパブリックIPアドレス
<CONN A LOCAL LINK> 169.254.24.250/30 IPSec Tunnel #1のルーターサーバ側(Customer Gateway)のトンネルインターフェースのインサイドIPアドレス
<CONN A REMOTE LINK> 169.254.24.249/30 IPSec Tunnel #1のVPG側(Virtual Private Gateway)のトンネルインターフェースのインサイドIPアドレス
<CONN A REMOTE LINK WO 30> 169.254.24.249 上記の/30を抜いたもの
<CONN A PSK> XkqigeaoRuOglouOWmok IPSec Tunnel #1のPre-Shared Key
<CONN B PUBLIC IP> 52.196.231.47 IPSec Tunnel #2 のパブリックIPアドレス
<CONN B LOCAL LINK> 169.254.24.22/30 IPSec Tunnel #2のルーターサーバ側(Customer Gateway)のトンネルインターフェースのインサイドIPアドレス
<CONN B REMOTE LINK> 169.254.24.21/30 IPSec Tunnel #2のVPG側(Virtual Private Gateway)のトンネルインターフェースのインサイドIPアドレス
<CONN B REMOTE LINK WO 30> 169.254.24.21 上記の/30を抜いたもの
<CONN B PSK> Euo3vqxH6zM0gaORmoqpP IPSec Tunnel #2のPre-Shared Key
<LOCAL SUBNET> 10.3.0.0/16 Azure 仮想ネットワーク アドレスレンジ
<REMOTE SUBNET> 100.65.6.0/24 VPG側ネットワーク アドレスレンジ
<LOCAL ASN> 64512 ルーターサーバ側 BGP ASN
<REMOTE ASN> 10124 VPG側 BGP ASN

次に、上記変数を下記3つのテンプレートの値を置換します。

(上記テンプレートは、こちらの設定を参照しています。)

上記ファイルをそれぞれダウンロードし、上記変数でテンプレート内の値を置換します。

IPSec/BGP設定

ipsec-tools設定

/etc/ipsec-tools.confを開き、「ipsectools 設定」から作成した値を、ファイルの末尾に追記して保存します。

racoon設定

/etc/racoon/racoon.confを開き、「racoon 設定」から作成した値を、ファイルの末尾に追記して保存します。

次に/etc/racoon/psk.txtを開き、「racoon PSK 設定」から作成した値を、ファイルの末尾に追記して保存します。

quagga設定

/etc/quagga/daemonsを開き、zebraとbgpdをyesに変更します。

zebra=yes
bgpd=yes

/etc/quagga/bgpd.confを新規作成し、「quagga BGP 設定」で作成した値をコピーして保存します。

/etc/quagga/zebra.confを新規作成し、下記ファイルの内容をコピーして保存します。

interface追加

以下コマンドで、インターフェースを追加します。

ip a a 169.254.24.250/30 dev eth0    (169.254.24.250/30は<CONN A LOCAL LINK> )
ip a a 169.254.24.22/30 dev eth0    (169.254.24.22/30は<CONN B LOCAL LINK> )

また起動時にこの設定が反省されるよう、/etc/network/interfaces.d/50-cloud-init.cfg の iface eth0 の行の下に、以下の値を追加します。

  (TAB)post-up ip a a 169.254.24.250/30 dev eth0   (169.254.24.250/30は<CONN A LOCAL LINK> )
  (TAB)post-up ip a a 169.254.24.22/30 dev eth0  (169.254.24.22/30は<CONN B LOCAL LINK> )

※(TAB)はタブキー

サービスの起動

上記の設定を完了後、サービスをリスタートします。

service setkey restart
service racoon restart
service quagga restart

接続確認のため、IPSec Tunnel #1および#2のVPG側トンネルインターフェースのインサイドIPアドレスへpingが通るか確認します。

PING 169.254.25.149 (169.254.25.149) 56(84) bytes of data.
 64 bytes from 169.254.25.149: icmp_seq=1 ttl=64 time=2.40 ms
 64 bytes from 169.254.25.149: icmp_seq=2 ttl=64 time=2.28 ms

他サブネットへの接続設定

デバイスから、ルーターサーバ以外のサブネット(例えばWebサーバのサブネット)へアクセスする場合は、ルートテーブルの設定が必要になります。この資料では、ルーターサーバと別に、Webサーバ群の入ったWebサブネットがあり、デバイスからアクセスすることを想定します。

デバイスからWebサーバへアクセスする場合、デバイスの通信は一旦VPGでNATされるため、ソースIPアドレスはVPG側ネットワークのアドレスレンジ内(上記例では100.65.6.0/24)のIPアドレスとなります。 このため、このレンジへの通信をルーターサーバにルーティングするよう、Webサブネットのルートテーブルに設定します。

はじめに、ルーターサーバのIP転送設定を有効にします。Azureコンソールから、ルーターサーバに付けられているネットワーク・インターフェースを選択し、設定>IPアドレスとクリックします。

IPアドレスの設定画面で、「IP転送の設定」を「有効」にします。また「割り当て」についても「静的」を選択します。この設定で、デバイスからの通信を他のサーバに転送することができるようになります。

次に、Webサブネットにルーティングの設定をします。VPG側ネットワークアドレスレンジへ向けた通信をルーターサーバに向けるため、ルートテーブルを作成し、Webサーバのサブネットに対して適用します。作成手順は以下となります。

上記設定の反映後、デバイスからWebサーバのプライベートIPアドレスへのアクセスが可能になります。なお、Webサーバが80番ポートなどを利用する場合は、Webサーバのセキュリティグループにも適切な設定を行って下さい。

Getting Started

SORACOM Air for セルラー

SORACOM Air for LoRaWAN

SORACOM Air for Sigfox

SORACOM Beam

SORACOM Canal/Direct/Door

SORACOM Endorse

SORACOM Funnel

SORACOM Gate

SORACOM Harvest

SORACOM Inventory

SORACOM Junction

サービス機能詳細

Developer Tools

pagetop