Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 104 additions & 0 deletions oneway.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
TKYTEL COMMENT XX
東京広域電話網
2026-01-XX

Tailscale を用いた局間接続における
片方向通信の原因及びその解消法について

1. はじめに

この文書では、東京広域電話網(以下、網とする)上の Tailscale[1] を
用いた電話交換局(以下、局とする)間の接続において、片方向通信となる
原因及びその解消法について述べる。

片方向通信は、tailnet 上の同一のホストに対し、ホストを共有する各ユ
ーザによって異なる IPv4 アドレスが割り当てられている場合に発生する。
そもそもこの事象が発生する原因は不明である。これを場当たり的に解決す
る現状最善の方法は、tailnet 上の IPv4 アドレスを手動で修正することで
ある。しかし、これは恐らく推奨される方法ではない。

2. 状況

網においては、局間の接続を実現するために Tailscale がしばしば用い
られている。これによって、異なるネットワークに存在する局をフラットな
tailnet 上で相互に接続できる。しかし、この方法では、ユーザ間で共有さ
れる同一のホストに、ユーザ毎に異なる IPv4 アドレスが割り当てられる場
合がある。

VoIP において、呼制御はサーバ・クライアントモデルの通信である SIP
によって、通話はポイント・ツー・ポイントモデルの通信である RTP によ
ってそれぞれ実現される。RTP の通信は、SIP 上の通信によってやりとりさ
れた IP アドレスやポート番号などの接続情報を用いて開始される。そのた
め、通信に関与するホストに割り当てられる IPv4 アドレスが、それぞれの
ホストに異なって割り当てられる場合、RTP による通信が成立しない。結果
として、発呼や着信こそ成功すれ、実際の通話においては音声が一方にのみ
届けられる片方向通信となったり、不通となったりする。

網の運用にあっては、この事象は 2025 年 5 月に初めて確認され、その
後もたびたび発生している。なお、これは特に yude 局や MikaNeTEL 局の
ように、接続数が多い局において発生しやすいようである。

3. 解決方法

発呼し、かつ着信できるものの、通話できないような局間における状況の
解決は次の手順による。ただし、これは恐らく推奨される方法ではない。

0) そのデバイスを共有する者は、共有される者に対して、そのデバイスに
割り当てられている tailnet 上の IPv4 アドレスを広告する。

1) 通話できないような状況にある者は、Tailscale の Admin console
<https://login.tailscale.com/admin/machines> を開き、デバイスの
一覧から対象である共有されているデバイスを見つける。

2) 対象であるデバイスの addresses のカラムに表示されている IPv4 ア
ドレスとデバイスを共有する者によって広告されている IPv4 アドレス
とが異なっていることを確認する。

3) 対象であるデバイスの IPv4 アドレスを編集し、デバイスを共有する者
によって広告されている IPv4 アドレスと同一になるように修正する。
デバイス一覧の右側にある三点リーダから “Edit machine IPv4...” を
選択して IPv4 アドレスを編集できる。

4) 必要に応じて、局のシステムの設定を変更する。MikoPBX を用いている
場合、Call Routing にある Telephony providers の設定を確認する。

4. 付記

そもそもこの状況が発生する原因は不明である。

Tailscale によってデバイスを共有した時点において、共有する側と共有
される側との IPv4 アドレスが異ならない場合、当該デバイスの IPv4 アド
レスを編集しても状況は発生しないようである。

また、IPv4 アドレスを編集する作業を、IPv4 のルーティングテーブルに
レコードを追加し、静的にルーティングすることによって置き換えることは
できない。

そのデバイスを共有する者が広告している IPv4 アドレスが、共有される
者の tailnet において既に割り当てられており、かつ、そのアドレスの割
り当てを解除できない場合、上で述べた解決方法は適用できない。

5. 履歴

この事象の履歴は Discord サーバ「東京広域電話網」の「旧折衝部」中
のスレッドにある[2]。

この文書で述べられている内容は、2025 年 5 月 16 日に開催された「第
125 回 エンジニア作業飲み集会」にて「オレオレ IP 電話網を大きくした
ら Tailscale のワナを踏み抜いて発狂した話」として発表された[3]。

5. 参照

[1]: Tailscale | Secure Connectivity for AI, IoT & Multi-Cloud.
<https://tailscale.com/>

[2]: <https://discord.com/channels/1347594081869500477/1368818316000493620>

[3]: スライド資料:
<https://kusaremkn.com/slides/2025-05-16-0-slide.pdf>
GitHub リポジトリ:
<https://github.com/KusaReMKN/slide-20250516>
YouTube アーカイブ:
<https://www.youtube.com/watch?v=_Rhtpy6vKsw>

以上