ひかり電話オフィスA(エース) Asterisk直収 SIP Serverの見つけ方

NTT東の ひかり電話オフィスA(エース)は、1契約で最大300回線、7000番号が使用出来るSIPトランクサービスです。NTT東から提供されるONUにAsterisサーバを直収する場合、NTTの SIP サーバのIPをLinuxサーバで検出する方法をご紹介します。2015年7月の情報です。

NTTの使用は、ONUに接続された機器に対してDHCPでIPアドレス、Subnetmask, Gatewayなどの情報を割り当てますが、同時にDHCP Option 120でSIPサーバのIPアドレスも割り当てます。しかし、WindowsやLinuxはDHCP Option 120を要求する仕様になっていないので、今回はCentOSでOption120の値を取得するように仕様変更します。

今回使用するOSはCentOS6.6です。
cat /etc/redhat-release
CentOS release 6.6 (Final)

作業ディレクトリに移動します。
cd /usr/local/src/

DHCPソースをダウンロードします。
wget http://pkgs.fedoraproject.org/repo/pkgs/dhcp/dhcp-4.1.1.tar.gz/38a74c89d8913b9b5f33737047623c18/dhcp-4.1.1.tar.gz

解凍します。
tar zxvf ./dhcp-4.1.1.tar.gz

移動します。
cd /usr/local/src/dhcp-4.1.1/common

table.cを編集してsip-serversの行を追加します。
vi table.c
{ “netinfo-server-tag”, “t”, &dhcp_universe, 113, 1 },
{ “default-url”, “t”, &dhcp_universe, 114, 1 },
{ “subnet-selection”, “I”, &dhcp_universe, 118, 1 },
{ “domain-search”, “Dc”, &dhcp_universe, 119, 1 },
{ “sip-servers”, “BIa”, &dhcp_universe, 120, 1 }, 
{ “vivco”, “Evendor-class.”, &dhcp_universe, 124, 1 },

ひとつ上のディレクトリに戻ります。
cd /usr/local/src/dhcp-4.1.1/

オリジナルのdhclientのバックアップを取ります。
mv /sbin/dhclient /sbin/dhclient_org

インストール
./configure
make
make install

シンボリックリンクを作成
ln -s /usr/local/etc/dhclient.conf /etc/dhclient.conf
ln -s /sbin/dhclient-script /etc/dhclient-script

DHCPクライアントの設定変更
sip-serversを追加して、 domain-name-serversを削除します。
vi /etc/dhclient.conf
request sip-servers, subnet-mask, broadcast-address, time-offset, routers,domain-name, host-name;
require sip-servers, subnet-mask;
timeout 60;

DHCPクライアント設定再読み込み。
dhclient -r

NTTへDHCP要求。
dhclient

DHCPで取得した情報は下記のファイルに保存されます。ethXの部分はeth0 eth1など環境に合わせて変更してください。
more /var/lib/dhclient/dhclient-ethX.leases
lease {
interface “eth1”;
fixed-address 118.177.XX.XX;
medium “-link0 -link1 -link2”;
option subnet-mask 255.255.255.252;
option dhcp-lease-time 14400;
option routers 118.177.ZZ.ZZ;
option dhcp-message-type 5;
option domain-name-servers 127.0.0.1;
option dhcp-server-identifier 118.177.XX.XX;
option dhcp-renewal-time 7200;
option sip-servers 1 118.177.YY.YY;
option dhcp-rebinding-time 10800;
option domain-name “fugue.com home.vix.com”;
renew 1 2015/07/20 07:29:46;
rebind 1 2015/07/20 08:50:38;
expire 1 2015/07/20 09:50:38;
}

上記で取得したIPをhostsファイルにntt-east.ne.jpを追加して、sip.confでレジストに使用。
vi /etc/hosts
118.177.YY.YY   ntt-east.ne.jp