(続)タイトルいつ決めるのさ

ちょっとしたメモ置き場。何かの参考にして頂ければ幸いです。

ブログ移転のお知らせ

いつも当ブログにお越し頂きありがとうございます。昨年末にSSブログ(旧So-netブログ)から移転してきたばかりのこのブログですが、訳あってこの4月から新たに別のブログとして立て直すこととし、独自ドメインを取得するなどして準備を進めてきました。ようやく新ブログの方の運用の目処が付きましたのでブログの移転を告知させて頂きます。今回は同じはてなブログ内での移転となります。

新しいブログは、

となります。タイトルロゴも新たに作成してみました。追々こちらに掲載している記事も新ブログの方に移行させて行ければと思っております。ご迷惑をおかけすることもあるかも知れませんが、新ブログの方共々、何卒よろしくお願いいたします。

「SMARTalk」のために使っている NVR500 の設定を更に変えてみました

So-netフォンが 2021年5月末にサービス終了になるということで代わりに楽天モバイルの「SMARTalk」を契約してそれ用に NVR500 の設定を書き換えて使っていたのですが、どうも SIPアタックが以前より酷 いようで度々通信不能にされるようになってしまいました。「鎖国フィルタ」なるものを作って対応している方もおられるようですが、その前にちょっと試してみたいことがあったので NVR500 の設定を変えてみることにしました。

これまでは先日書いた下の記事のように RTX830 の LAN から NVR500 の LAN にぶら下げただけで IP電話を利用していました。これだと NVR500 をただのスイッチングハブとして使う事ができるので気軽に同じネットワークセグメント上に他の機器を繋ぐことができたのですよね。 ところが、SMARTalk に設定を書き換えてから電話が使えない状態になってしまうことが頻発したので、RTX830 配下の NVR500 をローカルルータとする(所謂二重ルーター構成)ように変えてみます。ただしこの構成にすると NVR500 配下のネットーワーク上の機器と RTX830 のネットワーク上の機器との間で通信させるには別途設定が必要になります。幸い今のところ LANポート数には余裕があるので今回は目を瞑って電話が使えることを優先し、必要に迫られた場合にはまた改めて方法を考えることにしました。

ネットワーク構成図 先日の記事でも書いたとおり、前提としてうちの現在のネットワーク構成は大体左の図のような感じになっています。インターネット接続には主に So-net の「v6プラス」を利用しているのですが、そのまま NVR500 を配下に置いただけでは IP電話を利用出来ないので RTX830 にフィルター型ルーティングの設定を入れて NVR500 への通信は IPv6 IPoE + IPv4 PPPoE で行うようにさせています。ちょっと面倒な構成になっていますがこれは後から IP電話を使えるようにしたためで、v6プラスを使いつつ IP電話も使う環境を最初から構築するのであれば NVR510 を使えばこの部分を 1台で済ますことも可能です。
RTX830 と NVR500 の接続については以下の図の右側のように変更しました。左側の構成では NVR500 をただのスイッチングハブとしてしか使っていないので NVR500 本体のみ IPv4 PPPoE で接続され、配下の機器については RTX830 と同一のネットワーク上でv6プラスでの接続となっていましたが、右側の構成では NVR500 配下の機器は全て IPv4 PPPoE での接続となります。尚、今回は相互のネットワーク間での通信まではできるようにしていません。

ルーター接続図

RTX830 側の設定については下の記事で So-netフォンを使う為に行っていた設定から何も弄っていません。 NVR500 の IPv4アドレスを固定し、フィルター型ルーティングを使って PPPoE で通信するようにさせています。(PPPoE がダウンしている場合はv6プラスで通信するようにもさせています。)

設定を始める前に、NVR500 に新しいファームウェアがリリースされ、3月31日付けの「Rev.11.00.41」が最新版となっていたのでとりあえずアップデートしておきました。(といっても今回の修正はDoS攻撃への脆弱性対応のみだそうです。古い機種なので今後は修正が行われるとしても重大なセキュリティアップデートのみになるでしょう。)



それでは NVR500 の設定を始めることにします。なるべくゴミを残したくないので一旦初期化しました。工場出荷状態に戻した直後の NVR500 の IPアドレスは「192.168.100.1/24」となります。

初期化直後の config は以下の通り。

ip lan1 address 192.168.100.1/24
telnetd host lan
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.100.2-192.168.100.191/24
dns private name setup.netvolante.jp
analog supplementary-service pseudo call-waiting
analog extension dial prefix line
analog extension dial prefix sip prefix="9#"

ここから更に不要なものを消去して必要最小限の config にし、RTX830 の下に置くためにネットワークセグメントを変えて予め IPアドレスが被らないように以下の様にしたものをベースとすることにします。

ip lan1 address 192.168.200.1/24
telnetd host lan
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.200.2-192.168.200.50/24

RTX830 の LANポートと NVR500 の WANポートを接続したらネット接続と RTX830 から NVR500 の「かんたん設定ページ」にアクセス出来るようにしていきます。まずは初期設定(?)から。

・設定諸々
  security class 2 on off off
  console prompt "[NVR500] "
  login timer 600
  syslog notice on
  syslog debug on

・WAN側にIPアドレスを付与(RTX830側とセットで固定)
  description lan2 WAN
  ip lan2 address 192.168.100.4/24

・経路設定等(RTX830に向けます)
  ip routing process fast
  ip route default gateway 192.168.100.1
  ip filter source-route on
  ip filter directed-broadcast on
  description lan1 LAN

・DNSサーバーはRTX830を使用
  dns server 192.168.100.1
  dns private address spoof on

・自動時刻補正
  schedule at 1 */* 01:30:00 * ntpdate ntp.nict.jp syslog

続いてネット接続ができるようにします。

IPv4(RTX830 を使った PPPoE)での接続
  ip keepalive 1 icmp-echo 10 5 192.168.100.1
  ip lan2 nat descriptor 1000
  nat descriptor type 1000 masquerade
  nat descriptor address outer 1000 192.168.100.4
  nat descriptor masquerade incoming 1000 discard

・下の行を入れておくと NVR500 の「簡単設定ページ」のトップでネット接続状態が表示されます。
  provider lan2 name PRV/0/1/5/0/0/0:(名前は任意で)

・IPv6 IPoE での接続
  ipv6 prefix 1 ra-prefix@lan2::/64
  ipv6 lan1 prefix ra-prefix@lan2::/64
  ipv6 lan1 rtadv send 1

フィルターは RTX830 の方で設定しているので不要な気もしますが一応入れておきました。

ip filter 101000 reject 10.0.0.0/8 * * * *
ip filter 101001 reject 172.16.0.0/12 * * * *
ip filter 101002 reject 192.168.0.0/16 * * * *
ip filter 101003 reject 192.168.200.0/24 * * * *
ip filter 101010 reject * 10.0.0.0/8 * * *
ip filter 101011 reject * 172.16.0.0/12 * * *
ip filter 101012 reject * 192.168.0.0/16 * * *
ip filter 101013 reject * 192.168.200.0/24 * * *
ip filter 101020 reject * * udp,tcp 135 *
ip filter 101021 reject * * udp,tcp * 135
ip filter 101022 reject * * udp,tcp netbios_ns-netbios_ssn *
ip filter 101023 reject * * udp,tcp * netbios_ns-netbios_ssn
ip filter 101024 reject * * udp,tcp 445 *
ip filter 101025 reject * * udp,tcp * 445
ip filter 101030 pass * * icmp * *
ip filter 101031 pass * * established * *
ip filter 101032 pass * * tcp * ident
ip filter 101033 pass * * tcp ftpdata *
ip filter 101034 pass * * tcp,udp * domain
ip filter 101035 pass * * udp domain *
ip filter 101036 pass * * udp * ntp
ip filter 101037 pass * * udp ntp *
ip filter 101098 reject-nolog * * established
ip filter 101099 pass * * * * *
ip filter 500000 restrict * * * * *

ip filter dynamic 101080 * * ftp
ip filter dynamic 101081 * * domain
ip filter dynamic 101082 * * www
ip filter dynamic 101083 * * smtp
ip filter dynamic 101084 * * pop3
ip filter dynamic 101085 * * submission
ip filter dynamic 101098 * * tcp
ip filter dynamic 101099 * * udp

ipv6 filter 3010 pass * * icmp6 * *
ipv6 filter 3011 pass * * tcp * ident
ipv6 filter 3012 pass * * udp * 546
ipv6 filter 4000 reject * * * * *
ipv6 filter 5000 pass * * * * *

ipv6 filter dynamic 3500 * * ftp
ipv6 filter dynamic 3501 * * domain
ipv6 filter dynamic 3502 * * www
ipv6 filter dynamic 3503 * * smtp
ipv6 filter dynamic 3504 * * pop3
ipv6 filter dynamic 3505 * * submission
ipv6 filter dynamic 3508 * * tcp
ipv6 filter dynamic 3509 * * udp

ip lan2 secure filter in 101003 101020 101021 101022 101023 101024 101025 101030 101032
ip lan2 secure filter out 101013 101020 101021 101022 101023 101024 101025 101099 dynamic 101080 101081 101082 101083 101084 101085 101098 101099

ipv6 lan2 secure filter in 3010 3011 3012 4000
ipv6 lan2 secure filter out 5000 dynamic 3500 3501 3502 3503 3504 3505 3508 3509

状態や通話履歴などが見れると便利なのでRTX830からNVR500の管理画面に入れるようにしておきます。

httpd host any
nat descriptor masquerade static 1000 1 192.168.200.1 tcp www

ip filter 101081 pass * 192.168.200.1 tcp * www
ip lan2 secure filter in 101003 101020 101021 101022 101023 101024 101025 101030 101032 101081(←「101081」を追加)

続いて IP電話の設定をしていきます。

IP電話を使う準備
  sip use on
  sip log on
  nat descriptor sip 1000 on
  nat descriptor masquerade static 1000 2 192.168.200.1 tcp 5060
  nat descriptor masquerade static 1000 3 192.168.200.1 udp 5060
  nat descriptor masquerade static 1000 4 192.168.200.1 udp 5004-5043

  ip filter 101082 pass * 192.168.200.1 tcp * 5060
  ip filter 101083 pass * 192.168.200.1 udp * 5060
  ip filter 101084 pass * 192.168.200.1 udp * 5004-5043

  ip lan2 secure filter in 101003 101020 101021 101022 101023 101024 101025 101030 101032 101081 101082 101083 101084
   (↑←こちらも「101082~101084を追加)

SMARTalk の設定

・アナログ回線は使いません
  pstn use off

・TEL1ポートのみ使用、自己SIPアドレスへのみ着信許可、発信時のプレフィックス無し
  analog use 1 off
  analog sip arrive permit 1 myname
  analog sip call myname 1 sip:(SMARTalk SIPアカウント)
  analog sip call display name 1 NVR500
  analog use 2 off
  analog extension dial prefix sip server=1

・IP電話サーバーの設定
  sip server 1 (SIPサーバーアドレス) register udp sip:(SIPアドレス) (SIPアカウント) (SIPパスワード)
  sip server display name 1 (SMARTalk電話番号)

・ナンバーディスプレイ機能を有効化
  analog arrive number display 1 on

ひかり電話もまだ解約していないので使えるようにしておきます。HGW側の設定については「こちらの記事」の「PR-S300NE 側の設定」を参照ください。

・自己SIPアドレスを登録
  analog sip arrive myaddress 1 1 sip:5

・プリフィックスを設定。「9#」を押してからダイヤルすることでひかり電話での発信となる。
  analog extension dial prefix sip server=2 prefix="9#"

・IP電話サーバーの設定
  sip server 2 192.168.1.1 register udp sip:5@192.168.1.1 (ユーザー名) (パスワード)
  sip server session timer 2 300
  sip server display name 2 (ひかり電話番号)

以上の設定で、
 1. 発信時に「9#」を押してから電話を掛けることでひかり電話経由で発信
     (緊急電話番号(110、119など)や0570などの番号が使える)
 2. 直接電話番号を入力した場合は SMARTalk で発信
という使い分けができるようにしている点は So-netフォンを使っていた頃と同じです。

世代が古いから仕方ありませんが、やはり NVR500 では config が 1組しか保存できないというのは色々試しながら設定する時にはちょっと不便ですね。この状態で1週間程使っていますが、今のところ SIPアタックは遮断できているようなのでこのままもうしばらく様子を見てみることにします。

NVR500 の設定を So-netフォンから SMARTalk に変更しました

それでは YamahaVoIPルーターである「NVR500」を使って自宅の固定電話から「SMARTalk」の IP電話を使えるようにしてみます。「NVR500」は多少の知識は必要ですがネットに大量の使い方に関する情報が存在しますし、状態の良い中古品がヤフオク!などで非常に安価かつ大量に販売されているのでIP電話端末としてもお勧めです。残りのポートはギガビットハブとしても使えますしね。

「SMARTalk」は IP電話サービスなので当然ながら特定のポート(SMARTalk の場合は 5060番)を割り当ててやる必要があり、IPv4 PPPoE でのインターネット接続環境が必須となります。

ネットワーク構成図 現在のうちのネットワーク構成は大体左の図のような感じになっています。インターネット接続に So-net の「v6プラス」を利用しているのですが、当然ながらそのままではIP電話は使えません。幸い So-net ではv6プラスと IPv4 PPPoE のネット接続を併用することが出来るので、RTX830 にフィルター型ルーティングの設定を入れて NVR500 の通信は IPv4 PPPoE で行うようにさせています。ちょっと面倒な構成になっていますがこれは後から IP電話を使えるようにしたためで、v6プラスを使いつつ IP電話も使う環境を最初から構築するのであれば NVR510 を使えばこの部分を 1台で済ますことも可能です。
基本的には下の記事で So-netフォンを使う為に行っていた設定を流用します。今回は NVR500 の一部設定のみ変更し、RTX830 側は何も弄っていません。 NVR500 に SMARTalk の IP電話を設定するには以下の情報を事前に用意しておく必要があります。
  ● IP 電話番号
  ● SIP ドメイン
  ● SIP アカウント(8桁の数字)
  ● SIP パスワード
  ● SIP サーバーアドレス
このうち「SIP ドメイン」「SIP アカウント」「SIP パスワード」については「SMARTalk のマイページ」から入手することができます。「SIP サーバーアドレス」については FAQ に拠ると「 61.213.230.153」で、5060番のポートを使うそうです。So-netフォンの場合はちょっとイレギュラーな方法を採るか、サポートに電話で問い合わせて書面で開示して貰うという面倒な手続きを取らないとこうした情報を入手できなかったのでとても親切に感じます。

実際に「sip server 1」に関する部分を SMARTalk の設定に置き換えるだけでOKでした。

・アナログ回線は使いません
  pstn use off

・TEL1ポートのみ使用、自己SIPアドレスへのみ着信許可、発信時のプレフィックス無し
  analog use 1 off
  analog sip arrive permit 1 myname
  analog sip call myname 1 sip:(SMARTalk SIPアカウント)
  analog sip call display name 1 NVR500
  analog use 2 off
  analog extension dial prefix sip server=1

・IP電話サーバーの設定
  sip use on
  sip log on
  sip server 1 (SIPサーバーアドレス) register udp sip:(SIPアドレス) (SIPアカウント) (SIPパスワード)
  sip server session timer 1 300 update=on refresher=uac
  sip server display name 1 (SMARTalk電話番号)

・ナンバーディスプレイ機能を有効化
  analog arrive number display 1 on

SIPアドレス」は、「(SIPアカウント)@(SIPドメイン)」という形になります。SMARTalk の場合は、仮に電話番号が 050-1234-5678 ならば「12345678@smart.0038.net」となります。

設定を書き換えた所で早速テストしてみたのですが、今回も電話機からの発信はできるものの着信が出来ない状態になってしまいました。少し悩みましたが、今回の原因は自己SIPアドレスへのみの着信を許可する為の設定で、電話番号そのもの(050付きで)を記述してしまっていたことでした。So-netフォンの場合はそれでよかったのですが、SMARTalk の場合は「050」を書かずに「SIPアカウント(8桁の数字)」のみでよかったのですね。(analog sip call myname 1 sip:~の所)

また、セッションタイマーで update と refresher は on にしておいた方がいいようです。削った状態でテストしていたところ、しばらく(数日?)すると管理画面のステータスでは「通信中」となっているものの電話の発着信が上手く出来なくなることがありました。こちらを on にしている場合は So-netフォンよりも安定しているようです。

これで無事にIP電話を固定電話として使う事が出来るようになりました。あとは SMARTalk の自動解約条件に当てはまってしまわないよう注意しながら使っていこうと思います。