Linuxルータの下流でフレッツADSL/BフレッツのIP電話を使う方法     2003年7月27日 初版公開




0. 構成

 以下の構成を仮定して説明します。筆者は
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にする

1. 新たに必要な機器

 IP電話対応機器アダプタタイプ「VoIPアダプタ」
   NTT東日本 http://www.ntt-east.co.jp/ced/goods/voip/
   NTT西日本 http://www.ntt-west.co.jp/kiki/consumer/flets/voip/
 レンタルの場合は月額380円。申し込みは地元の電話局へ。(プロバイダを通して申し込むと割引が受けられる場合もあり)

2. UPnP SDKのインストール

 「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に適合しませんでした。

3. 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

4. NAT

 本来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を使用していなければ自動設定されるはずです。(試していません)

5. VoIPアダプタの設定

 まず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ポートは設定以外に使いません。

6. リンク

    フレッツ(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

7. この文書について

 この文書は主としてVine Linux 2.6 Intel版を元にして書かれました。
 この文書は筆者の経験に基づく情報提供を目的に書かれています。保証やサポートはありません。如何なる結果についても筆者は責任を負いません。

8. 更新履歴

  2003年 7月27日  初版   新規公開



壊れたハードディスクのデータ救出

Linuxルータの下流でフレッツADSL/BフレッツのIP電話を使う方法

Linuxで使う場合の設定メモ

Linuxで使えなかった屍たち

自宅で緊急地震速報を受信










全体目次

Data Recovery from broken HDD