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

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)
    • Netmask24 または 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/24192.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 の内線へ発信テストを行ってください。