メインコンテンツまでスキップ

Raspberry Pi と Tailscale を利用した拠点間 SIP 内線 設定手順

この手順書は、2 つの離れた拠点(以下、拠点 A、拠点 B)にある SIP 内線電話を、Tailscale を使って安全に接続するための設定方法を説明します。これにより、別々の場所にある内線電話同士で直接通話できるようになります。

■ STEP 1:Raspberry Pi に固定 IP アドレスを設定​

まず、各拠点に設置した 2 台の Raspberry Pi に固定 IP アドレスを設定します。

1. ネットワーク設定画面を開く​

  1. 画面右上の ネットワークアイコン をクリックします。
  2. メニューから Advanced Options > Edit Connections を選択します。
  3. Network Connections のウィンドウが表示されます。

2. 接続プロファイルを編集する​

  1. Ethernet > Wired connection 1 をダブルクリックします。
  2. 設定画面が開いたら、上部のタブから IPv4 Settings をクリックします。

3. 固定 IP アドレスを設定する​

  1. Method を「Manual」に変更します。

  2. Addresses の「Add」をクリックし、以下の情報を入力します:

    • Address:任意の固定 IP アドレス(例:192.168.0.100)
    • Netmask:24 または 255.255.255.0
    • Gateway:ルーターの IP アドレス(例:192.168.0.1)
  3. DNS servers にもルーターの IP アドレスを入力します。

  4. 入力が終わったら Save をクリックします。

4. Raspberry Pi を再起動する​

  1. 画面左上の Raspberry Pi アイコン をクリックします。
  2. メニューから Shutdown を選択します。
  3. Reboot をクリックし、Raspberry Pi を再起動します。

5. 設定を確認する​

  1. 再起動後、再び画面右上の ネットワークアイコン をクリックします。
  2. Advanced Options > Connection Information を選択します。
  3. 表示される情報ウィンドウで、IPv4 の項目が新しく設定した固定 IP アドレスになっているか確認します。

■ STEP 2:ネットワーク中継の設定(サブネットルーター化)​

次に、それぞれの Raspberry Pi が拠点内のネットワークを中継できるように設定します。

  1. IP フォワーディングの有効化(両方の Raspberry Pi で実施) 以下の 3 つのコマンドを両方の Raspberry Piで実行し、IP フォワーディングを有効にします。

    echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
    echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p /etc/sysctl.conf

    設定を確実に反映させるため、以下のコマンドで1が表示されることを確認してください。

    cat /proc/sys/net/ipv4/ip_forward

    ■ 再起動後に設定が戻る場合

    上記設定で一時的に 1 になるものの、再起動後に 0 に戻ってしまう場合は、以下の方法で設定してください。

    echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
    echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
    sudo sysctl -p /etc/sysctl.d/99-tailscale.conf

    再度確認します。

    cat /proc/sys/net/ipv4/ip_forward

    ■ 補足

    • OSや他の設定により /etc/sysctl.conf の内容が起動時に上書きされる場合があります
    • /etc/sysctl.d/ 配下に設定ファイルを作成することで、起動時に確実に反映されます

  1. 各拠点のネットワーク情報を広告(Advertise) それぞれの Raspberry Pi から、自身のローカルネットワークの情報を Tailscale に通知します。

    • 拠点 A の Raspberry Pi で実行: (例:拠点 A のネットワークが 192.168.0.0/24 の場合)

      sudo tailscale up --advertise-routes=192.168.0.0/24 --accept-routes --snat-subnet-routes=true
    • 拠点 B の Raspberry Pi で実行: (例:拠点 B のネットワークが 192.168.1.0/24 の場合)

      sudo tailscale up --advertise-routes=192.168.1.0/24 --accept-routes --snat-subnet-routes=true

    【重要】 上記の 192.168.X.0/24 の部分は、ご自身の各拠点のネットワークアドレスに必ず書き換えてください。

  2. ルートの承認 Tailscale の管理画面を開き、上記で広告したネットワーク情報を承認します。

    1. 各 Raspberry Pi の右側にあるメニュー(...)から Edit route settings... を選択します。 各 Raspberry Pi の右側にあるメニュー(...)から Edit route settings... を選択する

    2. 表示された 2 つのサブネットルート(例: 192.168.0.0/24 と 192.168.1.0/24)のスイッチを両方ともオンにして有効化します。 サブネットルートにチェックを入れて、保存ボタンを押す


■ STEP 3:接続の基本確認​

設定が正しく完了したかを確認します。この時点では、Raspberry Pi 同士の通信のみを確認します。

  • 拠点 B の Raspberry Piから、拠点 A にあるSIP サーバーのローカル IP アドレス(例: 192.168.0.10)に対してpingコマンドを実行します。

    ping 192.168.0.10

【TIPS】 192.168.0.10 の部分は、実際の SIP サーバーの IP アドレスに置き換えてください。

無事に応答があれば、Raspberry Pi 間のネットワーク接続は成功です。応答がない場合は、STEP 2 の設定(特に IP アドレスやルートの承認)に誤りがないか再度確認してください。


■ STEP 4:PC や SIP 端末から相手拠点へ接続する設定​

STEP 3 が成功しても、PC や SIP 端末は「相手拠点への通信を Raspberry Pi に送る」ということを知りません。そのための設定を追加します。

【推奨】メインルーターに静的ルートを追加​

各拠点のメインルーター(光回線の終端装置など)に設定を追加する方法です。ネットワーク内のすべての端末に設定が適用されるため、最も確実でおすすめです。

  • 拠点 A のルーター設定:

    • 宛先ネットワーク: 192.168.1.0 (拠点 B のネットワーク)
    • サブネットマスク: 255.255.255.0
    • ゲートウェイ / ネクストホップ: 拠点 A の Raspberry Pi の IP (例: 192.168.0.5)
  • 拠点 B のルーター設定:

    • 宛先ネットワーク: 192.168.0.0 (拠点 A のネットワーク)
    • サブネットマスク: 255.255.255.0
    • ゲートウェイ / ネクストホップ: 拠点 B の Raspberry Pi の IP (例: 192.168.1.5)

【代替案】各端末に直接ルートを設定する方法​

ルーターでの設定が難しい場合は、SIP 端末や PC に直接「静的ルート」を追加して通信させる方法があります。


1. SIP 端末の場合

SIP スピーカーや SIP 電話機のネットワーク設定画面で、
「デフォルトゲートウェイ」を、その拠点にある Raspberry Pi の IP アドレス に変更してください。
(例: 拠点 A の Raspberry Pi の IP が 192.168.0.5、拠点 B の Raspberry Pi の IP が 192.168.1.5 )


2. PC でのテスト(Windows)

PC から相手拠点へ ping を飛ばす場合は、静的ルートを追加します。
以下のコマンドをコマンドプロンプト(管理者)で実行してください。

route add <相手拠点のサブネット> mask 255.255.255.0 <自拠点の Raspberry Pi の IP>
  • 拠点 A の PC で、拠点 B (192.168.1.0/24) にアクセスする場合:

    route add 192.168.1.0 mask 255.255.255.0 192.168.0.5
  • 拠点 B の PC で、拠点 A (192.168.0.0/24) にアクセスする場合:

    route add 192.168.0.0 mask 255.255.255.0 192.168.1.5

※ -p オプションを付ければ、PC 再起動後もルート設定が保持されます。


3. うまくいかない場合

設定後も ping が通らない場合は、PC の ファイアウォール が別セグメントからの通信を遮断している可能性があります。 テストのために一時的にファイアウォールを無効化し、疎通確認をしてください。


■ STEP 5:SIP 端末の最終設定(拠点 B)​

最後に、拠点 B の SIP 端末が、拠点 A の SIP サーバーに接続できるように設定します。

  1. SIP 端末の設定画面を開く お使いの SIP 端末の Web 設定画面などにアクセスします。

  2. ネットワーク設定の確認 STEP 4 で設定した通り、デフォルトゲートウェイが拠点 B の Raspberry Pi の IP アドレスになっていることを確認します。(メインルーターに設定した場合は不要です)

  3. SIP サーバー情報の設定 SIP サーバーの接続情報を以下のように入力します。

    • SIP サーバーアドレス: 拠点 A にあるSIP サーバーのローカル IP アドレス(例: 192.168.0.10)を入力します。
    • ユーザー ID / 内線番号 / パスワード: SIP サーバーで払い出された認証情報を入力します。

設定を保存後、SIP 端末がサーバーに登録されればすべての設定は完了です。拠点 B の端末から拠点 A の内線へ発信テストを行ってください。