Linuxルータの下流でフレッツADSL/BフレッツのIP電話を使う方法
yamamoto2004@v6.e.yamagata-u.ac.jp
2003年7月27日 初版公開
以下の構成を仮定して説明します。筆者はVine Linux 2.6で使用しています。
- Linuxルータはカーネル2.4
- eth1からPPPoEでNTTフレッツADSLまたはBフレッツを通してインターネットに接続(ppp0)
- パブリックIPアドレスは1つ
- eth0のLANにクライアントを接続
- LANは192.168.0.0/24
- クライアントはLinuxルータのIPマスカレードを通してインターネットと通信
(# iptables -t nat -A POSTROUTING -i eth0 -o ppp0 -j MASQUERADE)
- Linuxルータは192.168.0.1
- VoIPアダプタは192.168.0.201にする
IP電話対応機器アダプタタイプ「VoIPアダプタ」
NTT東日本 http://www.ntt-east.co.jp/ced/goods/voip/
NTT西日本 http://www.ntt-west.co.jp/kiki/consumer/flets/voip/
レンタルの場合は月額380円。申し込みは地元の電話局へ。(プロバイダを通して申し込むと割引が受けられる場合もあり)
「VoIPアダプタ」はUPnPがないと作動しないため、まずはupnpsdk-1.0.4をインストール。
http://sourceforge.net/project/showfiles.php?group_id=7189
i386.rpmが使用できる場合はupnpsdk-1.0.4-1.i386.rpmが便利です。
# rpm -ivh upnpsdk-1.0.4-1.i386.rpm |
ソースの場合はupnpsdk-1.0.4.tar.gz。
% tar xzf upnpsdk-1.0.4.tar.gz
% cd upnpsdk-1.0.4
% make
# make install |
libupnp-1.2.1はlinux-igdに適合しませんでした。
続いてlinuxigd-0.92をインストール
http://sourceforge.net/project/showfiles.php?group_id=52728
% tar xzf linuxigd-0.92.tgz
% cd linux-igd
% make
# make install |
マルチキャストの経路を追加して、upnpdを実行。
# route add -net 239.0.0.0/8 dev eth0
# /usr/bin/upnpd ppp0 eth0 |
本来UPnPは自動的にNATを設定するのですが、今回はIP電話さえ使えれば良いので決め打ちで済ますことにします。
# iptables -t nat -A PREROUTING -i ppp0 -p udp -m udp --dport 5060 -j DNAT --to-destination 192.168.0.201
# iptables -t nat -A PREROUTING -i ppp0 -p udp -m udp --dport 5090:5091 -j DNAT --to-destination 192.168.0.201 |
upnpdにiptablesをいじらせても気持ち悪くないという方は/usr/sbin/にiptablesを置き、かつipchainsを使用していなければ自動設定されるはずです。(試していません)
まずVoIPアダプタのLANポートをLANに接続します。VoIPアダプタのLAN側IPアドレスは192.168.100.1なので、通信できるようにLinux側で経路を追加します。
# route add -net 192.168.100.0/24 dev eth0 |
そしてブラウザから設定を行うのですが、ここでNTTの阿呆さが炸裂。「Internet Explorer以外のWebブラウザでは、初期設定が行えません。」(説明書18ページ) 公益企業がこんなことでいいんでしょうか。mozillaで試したところ、メニューのリンクが効かないだけで各項目へ直接飛べば設定可能でした。以下のリンクをご利用ください。
VoIPアダプタ設定項目
ルータ/アダプタ設定 http://192.168.100.1/ROUTER_BRIDGE_CONFIG.HTM
PPPoE設定 http://192.168.100.1/IP_PPPOE_CONFIG.HTM
IP電話設定 http://192.168.100.1/IP_PHONE_CONFIG.HTM
設定情報の確認 http://192.168.100.1/SIP_CONFIG.HTM
その他設定 http://192.168.100.1/SYSTEM_INFOMATION.HTM
VoIPアダプタの再起動 http://192.168.100.1/RESET.HTM
工場出荷時の設定 http://192.168.100.1/FACTORY_DEFAULT.HTM
ファームウェアの更新 http://192.168.100.1/IMAGE_DOWNLOAD.HTM
VoIPアダプタのユーザ名は「root」、パスワードは「wakeup」となっていました。設定が必要な箇所は次の通りです。
- ルータ/アダプタ設定で「ルータ/アダプタ」を「アダプタ」にする
- PPPoE設定で「PPPoE設定」を「イーサネット」にする
- PPPoE設定の画面でIPアドレスをスタティック、192.168.0.201、ゲートウェイを192.168.0.1、DNSを手動設定にしてDNSのIPアドレスを入力
- IP電話設定を手持ちの電話機と電話回線に合わせて設定
- その他設定で「WAN側からの保守」を「許可」にする
設定は各画面毎に「設定変更」を押して記憶させる必要がありました。ここまで終わったら契約プロバイダのウェブページに必要事項を入力すると自動的に
SIP設定が書き込まれます。なお、必要事項の入力でVoIPアダプタのIPアドレスは「192.168.100.1」です。VoIPアダプタの再起動中
にLANケーブルをLANポートからWANポートに差し替え、しばらくしてVoIPアダプタ前面の「VoIP」が点灯したら成功です。後は電話機と接続す
れば使用できます。通話に使用するのはWANポートで、LANポートは設定以外に使いません。
フレッツ(NTT東日本) http://www.flets.com/
フレッツ(NTT西日本) http://www.ntt-west.co.jp/flets/fba/index_f.html
プロバイダ一覧(東日本) http://www.flets.com/ipphone/pbd.html
プロバイダ一覧(西日本) http://www.ntt-west.co.jp/flets/ipphone/isp.html
Linux 2.4 NAT HOWTO http://www.linux.or.jp/JF/JFdocs/NAT-HOWTO.html
Linux 2.4 Packet Filtering HOWTO http://www.linux.or.jp/JF/JFdocs/packet-filtering-HOWTO.html
この文書は主としてVine Linux 2.6 Intel版を元にして書かれました。
この文書の最新版は http://www.v6.e.yamagata-u.ac.jp/linux/ipphone.html にあります。
この文書は改変しない限りその全部を再配布して構いません。一部分のみを再配布してはいけません。
この文書は筆者の経験に基づく情報提供を目的に書かれています。保証やサポートはありません。如何なる結果についても筆者は責任を負いません。
この文書の誤りや改良の提案は yamamoto2004@v6.e.yamagata-u.ac.jp に送ってください。次版に反映させます。
2003年 7月27日 初版 新規公開