🎃
End to EndでのTURNのテスト方法
はじめに
coturnに付属しているturnutils_uclientとturnutils_peerをつかったE2Eのテストの簡易メモとなります。
この2個はセットと考えてよくturnutils_uclientは指定のTURNサーバへの接続の後で、End To Endの動作確認にturnutils_peerとの疎通を確認する動きになっている。
E2Eでの確認が不要の場合
End to Endの確認が不要で、TURNへの接続のみ確認する場合は次のURLで可能です。
turnutils_uclient
./turnutils_uclient -t -e xxx.xxx.xxx.xxx -r 3578 -v -p 3478 -u 'user' -w 'password' turn.my-domain.biz
- turn.my-domain.bizがTURNのホスト名
- xxx.xxx.xxx.xxxは、turnutils_peerを起動したサーバのIP
- 3578はturnutils_peerを起動した際の引数で、通信先
- 3478はTURNのポート番号
- -tでTURNまでをTCPで通信、-uだとTURNまでをUDPで通信
- TURNまではTCPを想定
- turnutils_peerやTURNとは別のサーバで稼働させるのが望ましい
turnutils_peer
./turnutils_peer -v -p 3578 -L 0.0.0.0
- turnutils_uclientより前に起動させておく。
- turnutils_uclientはTURNサーバとの接続後に、指定されてるturnutils_peerと通信を実施する。
- IPを限定する場合は0.0.0.0を編集
- 3578が稼働するポートだが、実際には指定ポートと+1番のポートで2個のポートを使用する。
- これらのポートはfirewalld/iptables/パケットフィルタ等で許可する。
- turnutils_uclientやTURNとは別のサーバで稼働させるのが望ましい
成功時
1: start_mclient: msz=2, tot_send_msgs=0, tot_recv_msgs=0, tot_send_bytes ~ 0, tot_recv_bytes ~ 0
2: start_mclient: msz=2, tot_send_msgs=0, tot_recv_msgs=0, tot_send_bytes ~ 0, tot_recv_bytes ~ 0
3: start_mclient: msz=2, tot_send_msgs=0, tot_recv_msgs=0, tot_send_bytes ~ 0, tot_recv_bytes ~ 0
4: start_mclient: msz=2, tot_send_msgs=5, tot_recv_msgs=5, tot_send_bytes ~ 500, tot_recv_bytes ~ 500
5: start_mclient: msz=2, tot_send_msgs=5, tot_recv_msgs=5, tot_send_bytes ~ 500, tot_recv_bytes ~ 500
6: start_mclient: msz=2, tot_send_msgs=5, tot_recv_msgs=5, tot_send_bytes ~ 500, tot_recv_bytes ~ 500
6: start_mclient: tot_send_msgs=10, tot_recv_msgs=10
6: start_mclient: tot_send_bytes ~ 1000, tot_recv_bytes ~ 1000
6: Total transmit time is 6
6: Total lost packets 0 (0.000000%), total send dropped 0 (0.000000%)
6: Average round trip delay 2.300000 ms; min = 2 ms, max = 4 ms
6: Average jitter 0.800000 ms; min = 0 ms, max = 5 ms
turnutils_peerが起動していない場合は、Total lost packetsが100%となる。
今後の課題
turnutils_uclientでTURNまでをTLSで接続する方法の調査
Discussion