Asterisk/VoIP

AT-620のOpenVPN機能による拠点間接続

1. はじめに

VoIPシステムを用いて、拠点間を内線で結べば通信コストを削減できます。一般的には、拠点をVPNで結ぶ必要がありますが、ここで紹介する方法を用いることで、拠点の内線接続を電話機のみで実現できます。

そこで今回は、VPN機能(L2TP・OpenVPN)を持った IP電話端末「ATCOM社製 AT-620」を利用し、安価な内線システムを構築する手順を紹介します。本社側にVPNサーバがあり、ネットワークがつながっている拠点であれば、この電話機1台で拠点間の内線が実現できます。

2. 構成

本手順で実現した構成図は以下のとおりです。

at620_vpn01

「Office B」に設置したAT-620から、OpenVPN で pfSenseに構築したOpenVPNサーバに接続します。
その後、「Office B」に設置してあるAsteriskにレジストができ、「Office A」IP電話との内線通話ができることを確認します。

 

以下の機器/フォームウェアで動作確認を行っています。

 

1) IP電話端末 ATCOM社製 AT-620

  OpenVPN機能を使用するためには専用のファームウェアを適用する必要があります。
  現時点(2011/09/16現在)で、OpenVPN対応の最新ファームウェア「V1.7.190.109」で動作確認を行いました。

 

2) Asteriskサーバ ATCOM社製 IP04

  ファーム 「ATCOM_IP04-atcom-1123」で動作確認を行いました。

  ATCOM社 サイト

 

3) OpenVPNサーバ pfSense

  ファーム 「2.0 RC1」 で動作確認を行いました。

  pfSense公式サイト

 

3. pfSense OpenVPNサーバの構築

pfSenseのWebGUIにログインします。Webブラウザから、設定したIPアドレスにhttp接続をします。
デフォルトのユーザー/パスワードは、「admin/pfsense」になります。

 

1) OpenVPN Client Export Utility の導入

pfSenseに登録したユーザのOpenVPNクライアント接続用ファイルを自動生成するプラグインを導入します。
[System]→[Packages]→[Available Packages]タブ より、下図の「+」アイコンをクリックします。

at620_vpn02

 

2) ユーザの作成

OpenVPNクライアント用ユーザを作成します。本手順ではユーザ名/パスワードを以下とします。

  • ユーザ名   : at620-01
  • パスワード : at620-01

[System]→[User Manager]→ 表 [admin]欄右下の「+」アイコンをクリックすると下図「System:User Manager」が表示されます。

at620_vpn03

青枠で囲まれている各設定値に以下を入力して、[Save]をクリックします。

  • Username         : at620-01
  • Password          : at620-01
  • Full Name          : at620-01
  • Certificate          : チェックする
  • Autorized keys  : チェックする

 

3) OpenVPNサーバの設定

OpenVPNサーバを設定します。
[VPN]→[OpenVPN]→[Wizard]タブをクリックすると、「OpenVPN Remote Access Server Setup Wizard」が表示されます。

at620_vpn04

「Tyep of Service」に「Local User Access」を選択して、[Nect]をクリックします。

 

at620_vpn05

[Add new CA]をクリックします。

 

at620_vpn06

CA認証局を作成します。
青枠で囲まれている各設定値を入力して、[Add new CA]をクリックします。本手順では以下に設定しています。

  • Descriptive name   :  pfsense-ca
  • Country Code          : JP
  • State of Province     : Yamanashi
  • City                            : Kofu
  • Organization           : itdo
  • E-mail                      : このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。

 

at620_vpn07

[Add new Certificate]をクリックします。

 

at620_vpn08

サーバ証明書を作成します。
青枠で囲まれている各設定値を入力して、[Add new Certificate]をクリックします。本手順では以下に設定しています。

  • Descriptive name   : openvpn
  • Country Code          : JP
  • State of Province    : Yamanashi
  • City                            : Kofu
  • Organization            : itdo
  • E-mail                       : このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。">

 

at620_vpn09

OpenVPNの設定をします。
青枠で囲まれている各設定値を入力します。本手順では以下に設定しています。

  • Interface           : WAN
  • Protocol           : TCP
  • Description     : for AT-620

 

at620_vpn10

  • Tunnel Network     : 10.0.8.0/24
  • Local Network        : 192.168.1.0/24
  • Compression         : チェックする

各設定値を入力後、[Next]をクリックします。

 

at620_vpn11

OpenVPNで使用するポートを開放するルールをファイアウォールに追加します。
以下を設定して、[Next]をクリックする。

  • Firewall Rule        : チェックする
  • OpenVPN rules    : チェックする

以上で、OpenVPNの設定は終了です。次画面で[Finish]をクリックして、ウィザードを終了します。

 

4) OpenVPNクライアント接続用ファイルのエクスポート

OpenVPNクライアント接続用のファイルをエクスポートします。
[VPN]→[OpenVPN]→ [Client Export]タブをクリックします。

at620_vpn12

「Host Name Resolution」に「Other」を選択し、グローバルIPを入力します。
入力後、表「at620-01」欄の「Configuration Archive」をクリックして、ファイルをダウンロードします。

 

pfSenseでの設定は以上です。 次にAT-620の設定をします。

 

3. AT-620 の設定

1) アップロード用ファイルの作成

ATCOMサイトの以下のURLから、アップロードファイル作成用のモジュールをダウンロードします。



ダウンロードしたファイルを展開して、不要な以下のファイルを削除します。

  • \cert\openvpnConfig.bin
  • \cert\config\以下の文字化けしているディレクトリ



「\cert\openconfig.bat」を以下に修正します。

if "%1"=="" goto end
cd %1
:end
mkromfs  -q -n -o openvpnConfig.bin  config 
bintoarray openvpnConfig.bin                              ← 削除する



「\cert\config\passwd.txt」をpfSenseで設定したOpenVPN接続用ユーザ名/パスワードに変更します。

630026
         → at620-01  に修正する
wuchuan
         → at620-01  に修正する



pfSenseからエクスポートした、OpenVPNクライアント接続用ファイルを展開して、「\cert\config\」以下に保存します。
また、「pfsense-tcp-1194.ovpn」を編集します。

dev      tun
persist-tun
persist-key
proto    udp
cipher   AES-128-CBC
tls-client
client
resolv-retry    infinite
remote    xxx.xxx.xxx.xxx 1194
auth-user-pass
              → auth-user-pass   passwd.txt   に修正する
pkcs12   pfsense-tcp-1194.p12
tls-auth  pfsense-tcp-1194-tls.key 1
comp-lzo

上記設定が終了したら、「\cert\openconfig.bat」を実行します。実行後にアップロード用ファイル「\cert\openConfig.bin」が生成されます。



2) OpenVPN クライアントの設定

AT-620 のWebGUIにログインします。Webブラウザから、設定したIPアドレスにhttp接続をします。
初期ユーザー/パスワードは、「admin/admin」になります。

上部メニュー[Advanced]→左側メニュー[VPN]をクリックします。以下の画面が表示されることを確認します。

at620_vpn14

※上図の青枠で囲まれた箇所のOpenVPN設定項目が表示されない場合、適用しているファームウェアが違います。
以下のサイトから対応するファームウェアをダウンロードして適用します。

本手順では以下のファームウェアを使用しています。

 

at620_vpn15

青枠で囲まれている各設定値を以下に設定して、[APPLY]をクリックします。

  • VPNの種類           : OpenVPN
  • VPN機能の有効   : チェックする

 

次画面で中央に表示される「Return」をクリックします。再度以下の画面が表示されます。

at620_vpn16

[ファイルを選択]をクリックして、作成したアップロード用ファイル「openCponfig.bin」を選択し、[Apply]をクリックします。
[Apply]クリック後、AT-620の再起動が行われます。

 

再起動終了後、VPN設定画面の上段「VPN IP」欄に、VPN IPアドレスが表示されているのを確認します。

at620_vpn17

 

3) IP04  IAX2ユーザの作成

IP04 で AT-620で使用するIAX2ユーザを作成します。IP04でIAX2ユーザをデフォルト値で作成すると、AT-620とのコーデック違反で着呼ができません。
本手順ではコーデックを以下にて確認を行いました。

at620_vpn18

  • Codec Preference First           : u-law
  • Codec Preference Second     : a-law

 

4) AT-620  IAX2ユーザの設定

上部メニュー[VOIP]→左側メニュー[IAX2]をクリックします。

at620_vpn19

青枠で囲まれている各設定値に以下を入力して、[APPLY]をクリックします。

  • IAX2 Server Addr            : AsteriskサーバのIPアドレス
  • Account Name               : IAX2 アカウント名
  • Account Password        : IAX2 アカウントのパスワード
  • Phone Number              : IAX2 アカウントの内線番号
  • Enable Register            : チェックする

 

上記設定後、「Register Status」が「Registered」になっていれば、正常に Asteriskサーバにレジストできています。

at620_vpn20

 

以上で設定は終了となります。
AT-620 から Office A に設置してある端末と内線通話ができるか試験を行いましょう。

 

4. まとめ

試験を行った結果、音声的には遅延も途切れも確認されず、特に問題は見当たりませんでした。
ただし、今回は拠点のAT-620 を1台としており、また、OpenVPNサーバについてもAlixにインストールしたpfSenseということもあるので、複数台の通話を実現できるか負荷試験を行う必要がありそうです。

本検証構成と同様のシステム構成で音声に問題があった場合は、OpenVPNをL2TPVPNにする、またはTCPをUDPに変更することでサーバ負荷を軽減できます。