post-cover

はじめに:別拠点の「内線」が遠い…

「別々のオフィスにいるメンバーと、内線感覚でサッと通話したい…」 多くの企業が抱えるこの課題。しかし、専用線や複雑な VPN の構築はコストも手間もかかります。

本記事では、この悩みを Raspberry PiTailscale を使って、簡単かつ安全に解決する方法をご紹介します。各拠点に設置した Raspberry Pi を「ネットワークの橋」として機能させ、支社 B の SIP 端末から支社 A の SIP サーバーへ、まるで同じ場所にいるかのように直接アクセスできる環境を構築します。

  • これまでの構成:支社 A 内だけの閉じた内線網

支社A内のみの内線

  • 新しい構成:Tailscale で拠点のネットワークを安全にブリッジ

Tailscale を用いて支社 A ,B 間の内線を実現

この構成のゴールは、支社 B の SIP スピーカーが、支社 A の SIP サーバーのローカル IP アドレス(例: 192.168.0.10)を直接参照して通信できるようにすることです。これにより、特別な設定なしに拠点間での内線通話が実現します。


🔧 構築手順

STEP 1: Tailscale の基本セットアップ(両方の Raspberry Pi で実施)

まずは、2 台の Raspberry Pi を自身の Tailscale ネットワークに参加させます。

  1. Tailscale アカウントの作成 まだアカウントがなければ、Tailscale 公式サイトからサインアップしてください。

  2. インストールとログイン 支社 A と B、両方の Raspberry Piで以下のコマンドを実行し、同じ Tailscale アカウントでログインします。

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

ログイン後、Tailscale の管理画面に 2 台の Raspberry Pi が表示されていれば OK です。


STEP 2: Raspberry Pi をネットワークの「橋」に変える(サブネットルーター化)

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

  1. IP フォワーディングの有効化 パケットを中継するために必要な設定です。両方の Raspberry Piで実行してください。
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

念のため、cat /proc/sys/net/ipv4/ip_forward を実行し、1と表示されることを確認しましょう。

  1. サブネットルートの広告(Advertise) 各 Raspberry Pi に「私はこのローカルネットワークへの入り口です!」と Tailscale ネットワーク全体に宣言させます。
  • 支社 A の Raspberry Pi で実行:192.168.0.0/24 の部分は、ご自身の環境に合わせてください)
sudo tailscale up --advertise-routes=192.168.0.0/24 --accept-routes --snat-subnet-routes=true
  • 支社 B の Raspberry Pi で実行:192.168.1.0/24 の部分は、ご自身の環境に合わせてください)
sudo tailscale up --advertise-routes=192.168.1.0/24 --accept-routes --snat-subnet-routes=true
  1. 【重要】管理画面でルートを承認 コマンドを実行しただけでは有効になりません。管理者が明示的に承認する必要があります。

    • Tailscale の管理画面を開きます。
    • 2 台の Raspberry Pi それぞれについて、右側のメニュー(...)から Edit route settings... を選択します。 Edit route settingsを選択
    • 表示されたサブネットルート(192.168.0.0/24192.168.1.0/24)を両方とも承認(チェックを入れて、Save)します。 チェック入れてSave

STEP 3: 拠点間接続の基本テスト

Raspberry Pi 同士が互いのローカルネットワークにアクセスできるか確認します。

  • 支社 B の Raspberry Pi から、支社 A の SIP サーバーへ ping を実行します。 (192.168.0.10 は実際の IP アドレスに置き換えてください)
ping 192.168.0.10

ここで応答があれば、Raspberry Pi 間の「橋」は正常に架かりました。


STEP 4: 最後の難関 – ローカル端末に「橋」を渡らせる

STEP 3 が成功しても、SIP スピーカーや PC はまだ相手拠点への行き方を知りません。これらの端末に「向こう岸へ行くには、Raspberry Pi という橋を渡ってね」と教えてあげる必要があります。

✅ 推奨:メインルーターに静的ルートを設定

ネットワーク内の全デバイスに適用され、管理が最も楽な方法です。各拠点のメインルーターに以下の設定を追加します。

  • 支社 A のルーター設定:

    • 宛先: 192.168.1.0/24 (支社 B のネットワーク)
    • ゲートウェイ: 192.168.0.x (支社 A の Raspberry Pi の IP)
  • 支社 B のルーター設定:

    • 宛先: 192.168.0.0/24 (支社 A のネットワーク)
    • ゲートウェイ: 192.168.1.y (支社 B の Raspberry Pi の IP)

💡 代替案:各端末のゲートウェイを直接設定

ルーターの設定ができない場合に有効です。

  • SIP スピーカーの場合: Web 設定画面を開き、ネットワーク設定にある「デフォルトゲートウェイ」を、その拠点にあるRaspberry Pi の IP アドレス(例: 192.168.1.y)に変更します。

  • PC でテストする場合 (Windows): 管理者としてコマンドプロンプトを開き、一時的なルートを追加します。 route add [相手拠点のネットワーク] mask 255.255.255.0 [自拠点のRaspberry PiのIP]

# 支社BのPCから支社Aへ通信する場合の例
route add 192.168.0.0 mask 255.255.255.0 192.168.1.y

STEP 5: SIP スピーカーと SIP サーバーの設定

ネットワーク経路が確保できたら、最後に SIP スピーカーSIP サーバー の設定を行います。


SIP スピーカーの設定

  1. SIP スピーカーの設定画面を開く

  2. ネットワーク設定の確認

    • STEP 4 の代替案を実施した場合、デフォルトゲートウェイ が正しく 支社 B の Raspberry Pi の IP アドレスになっていることを確認します。
      デフォルトゲートウェイのIPアドレスを入力
  3. SIP サーバー情報を入力

    • SIP サーバーアドレス: 支社 A の SIP サーバーのローカル IP (例: 192.168.0.10)
    • ユーザー ID/パスワード: サーバーで払い出された認証情報
  4. 設定を保存後、SIP スピーカーがサーバーに登録されれば完了です。


SIP サーバーの設定

  1. SIP サーバーの管理画面を開く

  2. ネットワーク設定の確認

    • デフォルトゲートウェイ に、支社 A の Raspberry Pi の IP アドレスを入力します。 デフォルトゲートウェイのIPアドレスを入力

      (これにより、支社 A 側の SIP サーバーが Tailscale 経由で正しく通信できます)

  3. ユーザー情報の登録

    • 各 SIP スピーカー用に「ユーザー ID / パスワード」を払い出します。
    • 支社 B の SIP スピーカーに入力する認証情報と一致させます。

最終テスト

  • 支社 B の SIP スピーカーから、支社 A の内線番号へ発信します。
  • クリアな音声で通話できることを確認してください。🚀

SNSでシェアしよう

この記事が役に立ったら、ぜひシェアしてください