ARKタイムアウト問題へのうちの環境での暫定対応とか

ARKのタイムアウト問題で一部が賑わっているので状況とか自分がサーバ管理している環境視点での対処方法とかまとめました。
一応ログインは出来るようになっているけど実用性は無いので真似はしないほうが良いと思います。
もし、同じことを試すならそれなりの知識を持って判断した上で自己責任で実施してください。インターネット接続が途切れたり、ルータが固まって再起動が必要になる場合があります。

何が起こっているの?

6/12 0:00 JST にARK: Survival Evolvedがアップデートされv311.74 公開された。
アップデート内容は大きく次の2つ。
・クリスタルアイルズ実装
・Epic Game Storeでの提供開始 (なんと今なら6/18まで無料!!)
クリスタルアイルズ実装を待ち望んでいたサバイバー達も多いでしょう。私もです。そんなv311.74 公開後、非公式サーバを建てて遊んでいる場合、一部サーバが接続出来ない(タイムアウトでログイン出来ない)という事象が起こっている。
そしてこれを書いている6/15現在も続いている…。

どこで起こってるの?

非公式サーバを建てている場合で外からのアクセスしている発生しているらしい。サーバをどこに建てているかは人によるけどはっきりどのような環境で起きているのかは不明。

うちの環境は自宅にサーバを建ててグローバルIPアドレスにアクセスしてルータでポート変換している。ゲームサーバ建てたりだとよくある構成?

画像3

ローカル(同一LAN)環境からのアクセスは問題なくログイン出来る。一緒に遊んでるフレンドだけログイン出来ないという状況。
クラウドサービス利用してサーバ建ててたり、ゲームサーバ建ててくれるサービスを使っている場合に同じ事象起きるかは残念ながらわかりません。
(追記)Windows上でARK Server Managerを実行してサーバを建てています。全員Steam版です。

なんで起きてるの?

詳細はわかりません。開発者でもないし!

SteamとEpic Game Storeのプラットフォーム間のクロスプレイを行うためにいろいろ通信処理が変わっているようで、そのあたりの処理変更が影響??

解決するにはどうしたらいいの?

サーバ管理者によって環境が異なるので、コレ!という解決策は無さそう。Steamのスレッドを追っていても結構話題がループしている。
その中で挙がっている対処内容とか。

・bRowSocketsオプションを外す。※ARK Server Managerでは無効化された
このオプションとクロスプレイで使うポートとが被っていて、こちらを無効化すればOKな場合があるらしい。
うちは元々無効化していたので関係なかった。

・ポート解放範囲を広げる
サーバポートに設定しているポート番号±1をポート解放すれば解決した人もいるらしい。e.g. サーバポート:7777に設定 → 7776~7778をポート解放する。※bRowSocketsオプション使う場合は+1ポート使ってたみたいなので関連有り。
うちの環境では解決しなかった。

・複数サーバ建ててる場合はポート間隔を広げる
1つのサーバで複数ポート使うようになったので、複数サーバを建てていてサーバポートを連番で使用している場合は間隔を開ける必要がある。
Ragnarok:7777、Aberration:7778 

Ragnarok:7777、Aberration:7787 
とか。ポート解放も忘れずに。
うちの環境では解決しなかった。

・VPN接続する
少なくともうちの環境でローカルプレイだと問題なくログイン出来るので、サーバに接続する人がVPN接続すればちゃんとログイン出来るようになると思う。
うちの環境では試してない。

これでも解決しないんだけどどうしたらいいの?

おとなしく公式のパッチを待とう。

ただし、これが起きているのは非公式サーバのみみたいで公式サーバではプレイできているし、ちゃんと動いている非公式サーバもある状況なので、公式としてはあまり対応に力を入れていないように見える。長い間待たされる可能性もある。

じゃあ……

足掻こうか。

足掻いてたら何故かログインできたことがあった。

Steamのチャンネルで出てる対処をしても解決出来ないし、公式もあんまり期待出来ない……。

うおおおおおおおおおおん!!!早くみんなでクリスタルアイルズプレイしたいんじゃあああああああ!!!!!!

…なんとか対処出来ないかと思いつつ利用ポート番号とかポート解放とか変更しつつ、WireSharkインストールしてどんな通信されてるんだろうとか見てみつつ、いろいろうちの環境で試してる時、何かしらのタイミングで外からのアクセスでもログイン出来る事があった。

100%タイムアウトしていたのに、数回に1回ログイン出来た。なんでだろう。


完全に理解した(←わかってない)

何回か試して判明。ログイン中にルータのポート変換設定変更した時にちゃんとログイン出来た。出来てしまった。

?????

外からのアクセスでのパスワード入力してOK押して、タイムアウトする前に…

画像2

うちのルータのポート変換設定変更を反映する。内容変更はしなくてもよくて修正保存のみでもOK。
(使用しているルータはBUFFALO WXR-1900DHPです。)

画像3

ログイン出来る。

?????


なんでログイン出来るの?

わからない。
設定変更反映時にネットワークが一回切れるので、そのあたりがなにか働いていると思う。複数人(身内5人くらい)同時でもタイミング合わせればログイン出来ている。

・設定変更の瞬間に全部の通信が流れて必要な通信が流れたおかげで処理が先に進んだ説。
・タイムアウトするのはSteam側からのサーバ側に対してなにかしらの通信がされていて、そのポート変換設定がされていないから破棄されてそのままタイムアウトしていたけど、設定変更でSteam側に明示的にエラーを検知してクライアント側で何故か処理が先に進んだ説。

ネットワークもプログラミングも少しかじってる身としてはなんか処理おかしいんじゃないの??と非常にもやもや中。

27020/UDPでSteam側と通信してるっぽいからこれをポート解放したらどうなるのか試してみたいけどうちの環境(プロバイダ?)は27020番ポート使えないみたいだ。
→(6/16追記)27020/UDP開けてなくても正常にプレイ出来ているという情報いただきました。環境にもよるかもしれないけどこれが必要なわけでもなさそう。情報提供ありがとうございます。

今はどうしてるの?

もっぱらログイン係。メンバーがログインしたいタイミングをあわせてこれを実行している。
Discordでボイスチャンネルつなげてタイミング合わせたり、時間決めて例えば21時00分ちょうどにOK押してってタイミング合わせたり。

ログイン中にこれやると切れる可能性もあるので一斉にログインからやり直してもらっている。

身内メンバーだから出来るけど、こういうこと出来ない場合は難しいと思います。

VPNも試そうかな?

(6/27追記)結局うちの環境だと解決しなさそうなのでVPN接続してもらってからローカルIPでサーバに接続してもらうようにしました。


結論と1年越しの衝撃 (約1年後の2021/6 追記)

公式パッチはよ!!!


(以下2021/6 追記)

…とか言ってましたが、ルータを新しい物に変えたら治りました。

なんとなく久しぶりにサーバ上でパケット見ながら解析していた時、クライアントからサーバにはパケットが届いていて、サーバもちゃんと応答しているけど応答パケットがクライアントに届いていないことを改めて確認した時、もしかしてルータで止まってる?……ということをふと思い、試しにルータを買い替えてみたらしっかり動きました……。

まじ??

元々BUFFALOのWXR-1900DHPを使用していたのですが、同じくBUFFALOのWSR-5400AX6に変えました。

そんなのってないよ~



この記事が気に入ったらサポートをしてみませんか?