回線を変えると/peersが403エラーを返す
ゲートウェイが動いているマシン(Raspi)が、NAT経由でインターネットに接続できる環境で正常に動いています。
この状態で、ゲートウェイ機のインターネット接続回線をSORACOMに変更したところ、/peers APIが403を返すようになってしまいました。回線以外はまったく変更しておらず、そのまま元の回線に戻すと正常に動作します。
APIリファレンスによると、/peersの403エラーは「(key, domainが間違っている場合)」との記載ですが、上記の通りkeyもdomainも変更していません。
何からチェックすればいいでしょうか?
-
ドキュメントがわかりづらくて恐縮ですが、403 Errorは他の事象でも発生します。
例えば以下のような場合にも発生します。- インターネットへ接続されておらずSkyWay Serverと通信できない場合
- peer objectを開放(delete methodのcall)を行わず連続して同じpeer_idでpeer objectを作成しようとした場合今回回線を変更されて発生したということですので、SkyWayサーバへの接続が正常に確立できていないのではないかと思われますので、インターネットへの接続, DNS, Firewall等をご確認頂くのが良いのではないかと思います。
-
ありがとうございます。gatewayから外(skywayのサーバー、という理解でよろしいでしょうか)への通信ができない場合も403を返す、ということですね。
確認してみましたが、例えばwebrtc.ecl.ntt.comに対してpingを打つとアドレス解決が正常に完了し、100%でping送信が成功します。ですので、インターネットへの接続およびDNSへのアクセスには問題がないように思えます。レイテンシも300ms程度ですので、3G回線としては通常の値かと思われますので、特に応答に時間が掛かっている様子もありません。
装置側には特にFirewallは入っていませんが、網側で何かしらのフィルタリングが行われている可能性は否定できません。この場合、どの宛先に対してどのポートで送受信できることが必要でしょうか?
-
gatewayがサーバと行う通信を調べてみたのですが、まずpeersが成功する場合にはGatewayから153.153.*.*のようなNTT Communication様保有のアドレスに対し443/tcpでコネクションが張られることを確認しました。
一方、peersが失敗する場合にはこのコネクションが張られないようです。そこでcurl -k https://153.153.*.*としてみると、404エラーにはなりますが正常に通信を行うことができることが確認できました。
従って、Gatewayを起動してからサーバへのhttpsコネクションが張られるまでの間に何か失敗していると思われるのですが、今のところ状況がつかめておりません。
-
調査いただきました通り、SkyWayのClientはSkyWayサーバとsocket.ioライブラリを用いて443番で通信しております。
ここまで調べていただいた情報を元に考えますと、遅延が関係している気がします。別件であった事象なのですが、遅延が大きい回線で通信を行うとエラーが発生することがあるようです。REST APIのアクセスに対して応答するまでの時間でSkyWayサーバへの通信が完了しない場合エラーが発生するようです。
お手数おかけいたしますが、Timeoutまでの時間を伸ばしたversion 0.0.3を試して頂けますでしょうか。
https://github.com/skyway/skyway-webrtc-gateway/blob/master/release-notes.md
-
ありがとうございます。既に0.0.3を使用しており、MD5値もgateway_linux_arm: e25b08a3afbeb3374e64a8c2e47d81b3 で一致しておりますので間違いないと思います。
/peersを発行してからエラーが返るまでの時間は6秒弱で、0.0.3の仕様である30秒タイムアウトとは整合していません。またcurl -k https://153.153.*.* は1秒未満で404を返します。
Please sign in to leave a comment.
Comments
9 comments