*** IP PBX Asterisk を 活用メモシリーズ *** / STUNサーバの導入と設定
FreeBSD
 
HOME
導入
設定

はじめに

 STUNサーバは、Simple Traversal of UDP through NATsの略。
RFC 3489に基づいて、NATの種類などを判定して、STUNに対応したIP電話機などで、NAT超えを実現します。
要するに、 プライベートアドレスの中から電話の音声(UDP)を通過させるための手段の1つです。
日本では、UPnPを使った方式が多く見かけることがありますが、これはマイクロソフトの規格です。
IP電話などではSTUNの設定ができるものが多く存在していて海外のハード・ソフト電話ではSTUN対応のものが多いのです。
欠点は、保有している固定IPアドレスを2つ消費してしまうこと。IPv4の不足する時代に2個を1台で消費させるのが残念かも。
しかし、身内で使う分には負荷が高いということでもなく、便利に使っています。

 …ということで本ページは、意外とアクセスの多いページとなっています。
STUNサーバの導入と設定はページを割くほどの内容はありませんがその例を記述してありますのでご参考にどうぞ。

 簡単ですのでご自分たちようにSTUNサーバを準備してみてください。

導入

 FreeBSD 8.1-RELEASE-p2の環境にportsより導入を行いました。

#cd /usr/ports/net/stund
#make install clean
===>  License check disabled, port has not defined LICENSE
=> stund_0.96_Aug13.tgz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from ftp://ftp2.jp.freebsd.org/pub/FreeBSD/ports/distfiles/.
stund_0.96_Aug13.tgz                          100% of   82 kB 1306 kBps
===>  Extracting for stund-0.96
=> SHA256 Checksum OK for stund_0.96_Aug13.tgz.
===>  Patching for stund-0.96
===>  Applying FreeBSD patches for stund-0.96
===>   stund-0.96 depends on executable: gmake - found
===>  Configuring for stund-0.96
===>  Building for stund-0.96
c++  -c  -O2 -pipe -fno-strict-aliasing -Wall server.cxx -o server.o
c++  -c  -O2 -pipe -fno-strict-aliasing -Wall stun.cxx -o stun.o
c++  -c  -O2 -pipe -fno-strict-aliasing -Wall udp.cxx -o udp.o
c++ -Wall -o server  server.o stun.o udp.o
c++  -c  -O2 -pipe -fno-strict-aliasing -Wall client.cxx -o client.o
c++ -Wall -o client  client.o stun.o udp.o
===>  Installing for stund-0.96
===>   Generating temporary packing list
===>  Checking if net/stund already installed
install  -s -o root -g wheel -m 555 /usr/ports/net/stund/work/stund/server /usr/local/sbin/stund
install  -s -o root -g wheel -m 555 /usr/ports/net/stund/work/stund/client /usr/local/bin/stun_client
===> Installing rc.d startup script(s)
===>   Registering installation for stund-0.96
===> SECURITY REPORT:
      This port has installed the following files which may act as network
      servers and may therefore pose a remote security risk to the system.
/usr/local/sbin/stund
/usr/local/bin/stun_client

      This port has installed the following startup scripts which may cause
      these network services to be started at boot time.
/usr/local/etc/rc.d/stund

      If there are vulnerabilities in these programs there may be a security
      risk to the system. FreeBSD makes no guarantee about the security of
      ports included in the Ports Collection. Please type 'make deinstall'
      to deinstall the port if this is a concern.

      For more information, and contact details about the security
      status of this software, see the following webpage:
http://www.vovida.org/applications/downloads/stun/
===>  Cleaning for stund-0.96

 導入は、これで終わりです。

 stund-0.96が導入されました。新しいバージョンが出ているということはないようです。
stun-0.96 at SourceForge.netには、導入したものと同じバージョンが配布されていました。
※ports上のpkg-descr等に書かれたウェブサイトは既に存在していません

設定

 設定としての最初は、/etc/rc.conf に

stund_enable="YES"
stund_ip1="XXX.YYY.ZZZ.aa1"
stund_ip2="XXX.YYY.ZZZ.aa2"

 のように記述する程度です。
上記、XXX.YYY.ZZZ.aaX 該当するサーバのIPアドレスを記述します。
同じハード上で2つのIPを割り当てているマシンがあれば、利用するとベターでしょう。

 IP Aliasの設定として、/etc/rc.conf に

ifconfig_re0="inet XXX.YYY.ZZZ.aa1  /24"
ifconfig_re0_alias0="inet XXX.YYY.ZZZ.aa2 netmask 0xffffffff"

 など、2つのIPアドレスを同じネットワークカードで認識できるようにしてあげます。

 設定は、実は上記で終わり。

#stund --help
STUN server version 0.96
Usage:
 ./server [-v] [-h] [-h IP_Address] [-a IP_Address] [-p port] [-o port] [-m mediaport]

 If the IP addresses of your NIC are 10.0.1.150 and 10.0.1.151, run this program with
    ./server -v  -h 10.0.1.150 -a 10.0.1.151
 STUN servers need two IP addresses and two ports, these can be specified with:
  -h sets the primary IP
  -a sets the secondary IP
  -p sets the primary port and defaults to 3478
  -o sets the secondary port and defaults to 3479
  -b makes the program run in the background
  -m sets up a STERN server starting at port m
  -v runs in verbose mode

 起動は、/usr/local/etc/rc.d のstunをstartするだけです。

#ps -ax|grep stun
 nnnn  ??  Ss     0:00.16 /usr/local/sbin/stund -h XXX.YYY.ZZZ.aa1 -a XXX.YYY.ZZZ.aa2 -b

 動作が確認できれば完了です。

Copyright © 2006-2010 By Yotsuya Group All Rights Reversed.