Raspberry PiにPPPoE接続でグローバルIPを割り当てる。

完全にラズパイブログと化してるMyブログ。

まぁいいか(

 

これもだいぶ前から試しているのだけど安定運用できているので方法を説明!

今まではDDNSとローカルDNSを使ってAsteriskを利用していたけれど…

この運用方法にはやっぱり欠点があります!

通話中にWiFiと3G&LTEが切り替わると当然、通話が切断されます。

 

自宅前で作業中なんかはWiFiがつながったり切れたりを繰り返すのでどうしても通話が不安定に…

そしてNAT超えのトラブルも稀に発生していたのでRaspberryPiに直接グローバルIPを与えてDDNSを使うことで常にグローバルIPでのアクセスを出来るようにしようと思います!

自宅のネットワークとは別にPPPoE接続するためにプロバイダー契約が必要になるので当初の目的の無課金利用とはずれてしまうけれど…

以前使っていたASAHIネットのアカウントがメールアドレス維持のために使い続けているのでそれの契約をワンランク上げでブロードバンド接続OKにしました。

維持費的には月額500円程なのでNTTの転送サービスを使うよりはリーズナブルです。

 

まず、Raspberry PiにグローバルIPを割り当てる前にファイアーウォールを設定します。

今回はLinuxのファイアーウォールのiptablesを簡単に設定出来る「ufw」というものを利用します。

apt-get install ufw

apt-getでインストールします。

当方の環境ではそのままではufwが正常動作しなかったのでRaspberry Piのファームウェアアップデートも行います。

rpi-update

これを入力すると自動でLinuxカーネルのバージョンアップがされます。

 

ufwの詳しい設定方法はネットで検索してください!

とりあえずAsteriskを利用する最低限の設定はこんな感じ。

ufw default deny   #デフォルト設定を拒否にする。

ufw allow from 192.168.1.0/24 to any   #ローカルネットワークからのアクセスはすべて許可

ufw allow 5060/udp   #SIPリスニングポートを開放(環境に合わせて変更)

ufw allow 10000:20000 proto udp   #RTPポートを開放(環境に合わせて変更)

ufw enable   #ufwを有効にする。

とりあえず最低限はこんな感じでOKです。

ローカル向けのアクセスはHylaFaxを利用している場合は全部開放にしないとダメみたいです。

(HylaFaxのポート設定の固定方法がぐぐったけどわからない。)

 

とりあえずファイアーウォール設定は完了。

 

つづいてPPPoEの設定の…の前にハード的な接続の説明。

まず、現在のRaspberry Piの接続状態はこんな感じ。

Clipboard01

 

 

NTTからレンタルされてるPR-400KIはONUとルーター部分を分けて利用可能なのでこんな感じの接続も可能です。

Clipboard02

ハブとNICの増設が必要になります。

この接続方法だとWAN側とLAN側で別のNICを通るのでネットワークのトラフィックが多い場合は通信速度が出ます。

プロバイダー契約が1つだけでRaspberry Piにルーター機能を代用させる場合はこの接続方法にしないとひかり電話が使えなくなります。

 

今回は機器の増設のいらないPPPoEブリッジ機能を使って接続します。

Clipboard03

PPPoEブリッジ機能を使えばルーター下の機器から直接PPPoE接続をしてWAN、LAN共にRaspberry PiについていくNICだけで済みます。

欠点としてはWANとLANがひとつにNICに共存してるのでルーターとして動作させる場合は常にトラフィックが2倍になるのでネットの接続が遅くなります。

 

今回はAsteriskの公開にしか使っていないのでPPPoE接続で十分です。

特に配線の変更はいらないのでSSH経由で設定してきます。

設定は簡単。

apt-get install pppoe

apt-get install pppoeconf

この2つをインストール

pppoeconf

を実行してPPPoEの設定をすればOK!

 

このままだとデフォルトゲートウェイの設定がinterfacesに残っているので/etc/network/interifacesを開いてeth0のgatawayの行をコメントアウトします!

 

これでRaspberry PiにグローバルIPが割り当てられるようになりました。

Ifconfigで確認するとppp0という接続が表示されるはず。

後はFreePBXのAsterisk SIP SettingsのIP ConfigurationをDynamicIPに変更してAuto Configureを押してIPの設定を更新。

0.0.0.0とかいろいろ追加されるけどそのまま設定を保存すればOKです。

 

デフォルトゲートウェイがppp0になっているのでDDNSの反映も自動でグローバルに変更されます。

また、以前の記事で書いたAsteriskのIP設定の自動反映は不要となったのでシェルスクリプトから外しておきましょう。

 

DDNSの反映が今までどおり5分に1回となっているけれどPPP0が接続したら自動で反映されるように変更します。

/etc/ppp/ip-up.dにPPP接続が確立したら実行したいスクリプトを置いておけば接続時に自動で実行されます。

 

/etc/ppp/ip-up.dに適当なファイルを作ってDDNS更新シェルスクリプトを実行するように書いておけばOKです。

 

これでAsteriskサーバーにグローバルIPが割り当てられて今まで以上に安定した通話が得られたはずです!

ローカルDNSは不要となったので無効にしておいてください。

ローカルDNSの設定が残っているとせっかくIPの変動がなくなったのにWiFi接続時にローカルからアクセスしてしまい通話が切断されてメリットがなくなるので…

 

文字ばっかりだったけれど今回の記事はここまで!

回線の切り替わりでも電話が切れないし環境が安定すると今までの運用よりかなり安定して使えます!