2021年6月28日月曜日

ipv6方式に対応(できなかった)

実ボクのネット対戦用サーバがipv4方式じゃないと外部公開できないので、最新のipv6に移行せずに運用してきたのですが、ネット利用者の増える夜の時間帯になると動画の閲覧や息子のスマブラにかなりのラグが生じるようになってきました。

実ボクユーザーに告知することもなく衝動的に家族の期待に応えるためにipv6にしたのでスマブラのラグは解決したのですが、案の定ジムサーバの外部公開ができなくなってしまいました。

この機会にちょこちょこと成功例がネットに記され始めていたipv6での外部公開、自分もチャレンジしてみようと覚悟を決めて難題に取り組むこととしました。

専門用語が多く得意分野ではないので、多くが目にしてくれる可能性のあるツイッターに進捗を流すことで助けてもらえるのではないかとツイートすると多くのアドバイスをいただくことができました。

以下、ツイートを清書した記事となります。

我が家の通信環境の選択肢。


①ipv6オプション

外部公開ができなくなるので実ボクのネット対戦やランキングなどの各種cgiサイトの閲覧ができなくなる。息子のスマブラのラグがなくなり快適な対戦ができる。


②ipv6オプションライト

スマブラがガクガクになるが、実ボクのネット対戦サーバを世界中に公開できる


これまで②で凌いできたが、夜時間のスマブラのラグを改善すべく①に変更。たしかに快適になったが、私にとってライフワークである実ボクがオフライン専用になってしまうのが精神的に辛い。

①+外部公開が実現すれば最高だが、知識不足で踏み出す勇気がない。(具体的にはルータの設定をあっちこっち変更した後に②に戻す自信がない)

でもこれが成功すれば実ボクもipv6通信で対戦できるのでこれまで以上に快適になると予想される。事実、スマブラのラグは完全に解消されたからだ。

ルータはRT-500KI、外部公開成功の先輩がいたらアドバイスをいただきたい…。


ipv6で開けられるポート番号はそれぞれのipアドレスから算出される。

このサイトで調べてみたが自分の環境で開いていたら嬉しい30009番(実ボクのネット対戦で使用するポート)は該当していなかった…。

これはもうゲームオーバーということなのだろうか…。いやいやいや、気を取り直して、別の方向から攻めてみよう。

まずはポート80を開放して実現していたCGIだ。現在80は開放できない番号なのでこれを自分の環境で開放できるポート5xxxの開放にチャレンジ。

このページを参考にしてあっさり開放に成功、サーバアプリ(anhttpd)のポート設定も80から5xxxに変更。

しかし外部端末(スマホ)のプラウザから実ボクの各種ランキング(cgiページ)の閲覧には至らなかった。残念…!

やはり80じゃないとウェブ系はダメなのか?


ぼおん @born_ug2

http://(IPアドレス):5xxx/みたいにポート指定してもダメですか?


ぼおんさん!実は今、このページを見つけて、その方法(URLの書き方)を知ったところです!

やってみます!


ぼおんさんの教えてくれた書き方を試したら自宅サーバのトップページ、外部からの閲覧に成功しました!(感謝)

現在はなぜかトップページはipアドレスでもアルファベットのアドレスでもポート番号を付け足すと閲覧できるのに、肝心のCGIページだと閲覧できない事で悩んでいます。

でも一歩進めたので心が楽になりました。がんばります!


boxinggame.mydns.jp:5538/cgi-bin/miruLOG00.cgi

やったぜ!

ポート番号の書く場所を間違えていた(URLの末尾はダメ)みたいで、上のリンクのように記したらランキングページの外部からの閲覧に成功!

やった~!

これで公式HP(ブログ、攻略サイト等)や実ボクのプログラム内のURLリンクを全て書き換えすれば誰でもCGIの閲覧ができるぞ!

さて、次の難問をクリアーすれば念願のipv6での実ボクだ、震えてきた。


次の難題…。

実写でボクシングはHSPのO2システム(サービスは終了しています)に付属していたサーバーアプリでネット対戦を実現しているのですが、これを外部公開させる。

このアプリはポート番号30009を開放すればいいのだが、30009は我が家のipv6では開放できない番号。

置き換えなどで代用できないかなど検索を駆使して調査します。


が、なかなかポート番号の置き換えに関して情報がないので別の角度から攻めてみる。

O2の説明テキストやサンプルソース、実ボクのソースのどこにも30009というポート番号を示す文字列がない。

どこで30009と指定しているのだろうか、もしくは固定で変更できないのだろうか…。そもそも当時の私はどこで30009という情報を得たのだろうか。今となっては思い出せない。


ということは実ボク側からはポート番号の変更はできないのだろう。

O2付属のl_server.exeも設定画面などないのでポート30009から動かせない。

どうにかしてipv6で30009を開ける方法はないのか。開けられるポートはipアドレスで決まるとあったが…。


ぼおん @born_ug2

サーバアプリでポート変えられるのが一番ですがルータでポート変換出来ないですかね。


できるみたいなんですが、

実ボクから30009を通したいとデータが来て、ルータで通過できるポート番号に変換して通過、その直後に30009に戻してサーバアプリでキャッチ

が必要なのかと考えています。この考え方はあっていますか?


ぼおん @born_ug2

そういう事だと思います。PCではなくルータの問題になりますね。出来たらPCで解決するのが一番スマートなんですが。


双方が30009しか送受信できない状況だとルータの前と後で変換が必要なので無理なんだろうなと考えています。

ただなぜか開放できないと記されている30009のポート開放をダメモトで敢行、このサイトでチェックをしたら「開放されています」と出るので、開いたと信じて作業を進めてみます。

(kkさんがお助け入室してくれてネット対戦、成功!)

なんかヤケクソになって開放できないはずのポートを開けたら解決という、なんとも言えない結果となりました。

ぼおんさんにアドバイスいただけなかったら、このゴールに辿り着けなかったと感じています。ありがとうございました!



残念ですがだいぶ時間が経過してから、ポート30009の開放に成功した理由がわかりました。
なんとスマブラともどもルータの設定でipv4に戻してしまっていたからでした。(ipv6オプション契約しているのに勝手に自力でipv4に戻していた…)

なので、ポート開放成功と同時にスマブラのラグが発生していたのです。

スマブラの大会の決勝戦、ラグが原因で不戦敗を選択したとうなだれている息子。
これはどうにかせねば…と考えて、再びラグ&ポート開放の問題に取り組みました。

以下は戦いの記録です。


(無題)  投稿者:サンドバッグ  投稿日:2021年10月18日(月)08時35分

息子のスマブラのネット対戦の具合が悪く、大会に参加できない状態です。

プロバイダであるBIGLOBEのサポートに電話して試行錯誤、ルータ不良の可能性もあるということでレンタルルータ機器を最新に交換変更。

するとipv6での接続により、スマブラは快適になりました。

同時に予想されたことですが、実ボクのサーバ停止を確認。
(ipv6だとポート開放が限定されてしまうので)

今晩、復旧作業します。(出先のサンドバッグより)


(無題)  投稿者:サンドバック  投稿日:2021年10月18日(月)19時41分

帰宅しました。
サーバ復帰作業ですが、明日以降となってしまいました。

マンションの共用部分の停電、そちらの作業をマンション理事長として優先します!


ネット対戦復旧に向けた取り組み  投稿者:サンドバック  投稿日:2021年10月19日(火)20時28分

~振り返り~

息子が熱心にやっているスマブラのラグが酷い。
ipv4方式だと混雑する時間帯だとカクカクになってしまう。

なのでipv6(MAP-e)に変更した。

スマブラは快適になった。
しかしMAP-e方式だと開けられるポート番号が限られているため、サーバ側での30009の開放が必要な実ボクのネット対戦ができない。

どうにかMAP-e方式での実ボクネット対戦を実現したいので、調査をしています。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

ipv6だと開けられるポート番号が少なく、しかも固定でルータから指定されている。

CGI用(ランキング等)として一般的に使われる80番が使えないので、使える番号一覧の中から5538番を選択、CGIは開くことができました。

http://boxinggame.mydns.jp:5538/cgi-bin/miruLOG01.cgi
みたく、URLの中に;5538を入れてポートを指定しています。

ただし、O2システム(対戦)で使用する30009番、これが我が家のipv6で使えない番号なので詰んでいる状態です。

なにか方法はないだろうか…
(ルータの設定には変換みたいな画面はでるのだが方法がわからない)

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

https://qiita.com/nbhr/items/2850ccaa3456a8553bbf

このサイトによると適切なルータを購入することで、ipv4方式とipv6方式をポート番号により振り分けられるようだが…。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

自分の第一希望としては
ipv6(MAP-e方式)のまま、開いていない30009をどうにか活用したい
そうすれば実ボクもipv6による高速通信の恩恵を受けられる
(ポート番号変換などでどうにかならないものか…)

第二希望としては
ルータを購入して実ボクだけipv4にして、これまでの速度で再開する。
しかし、ipv4なので混雑する時間帯では遅延のない対戦の実現には程遠いだろう。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

第一希望を実現するための調査を続けています。

実ボク側
ネット対戦の操作情報をポート30009でサーバに送る。
番号はO2システムで指定しており、変更できないと思われる。
もし、30009以外のポート番号を指定できれば解決できる。

サーバ側
ネット対戦の操作情報をポート30009で受け取るが、ipv6(MAP-e)だと開けられるポートが限られていて受け取れない。
ルータのポート変更で30009を受け取れる番号に変換して、更に30009に戻してO2システムのサーバアプリに受け取らせる事ができれば解決できる。
サーバアプリはO2システムに付属していたもので、受け取るポート番号の変更はできないっぽい。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

第3希望というか、3つ目の可能性(枕元で思いつき)

https://qiita.com/nbhr/items/2850ccaa3456a8553bbf
この記事に「公開したいサーバが1台だけの場合,別ルータでPPPoEを行ってその配下に公開したいサーバを置くのではなく,そのサーバ自身がPPPoEセッションを張ってもよい」とある。

https://faq.support.biglobe.ne.jp/faq_detail.html?faq_id=12009
PPPoEの設定方法を知りたい(Windows 10)

ジムサーバでこの設定をすればサーバだけipv4方式になれるのだろうか?
その場合、ルータ側で30009のポート開放を設定すればもしや?と枕元で思った。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

第3希望を試しましたが、30009を開くことはできませんでした!
(追記…後に成功するので諦めるのが早すぎる!)

自力では手詰まりとなってしまったので、識者の目に止まったら…と祈りを込めて以下のツイート。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

(希望)ipv6(MAP-E)で30009番のポートを開きたい。

実写でボクシング(自作ゲーム)のネット対戦に必要なポートで、実ボク側もサーバアプリ側からも番号変更はできない状況。
ルータ RX-600KI
プロバイダ BIGLOBE
サーバOS Windows10
ipv4に戻すと息子のスマブラに悪影響、ipv6維持で実現したい。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

簡潔にまとめましたが、このツイートで伝わるだろうか、どうだろうか。
もう自分の知識では限界だ。

祈りつつ寝る。


マルチセッション  投稿者:鳳蛋  投稿日:2021年10月24日(日)12時57分

ルータ RX-600KIのマニュアルをざっと見たのですが、

https://web116.jp/shop/hikari_r/rx_600ki/rx_600ki_03.html

IPV6とIPV4のマルチセッション可能となっているので、実ボクサーバー(パソコン)の方だけをIPV4のセッションで、つなげるような気がします。

第二希望と第三希望は、ほぼ同じ内容で、機器ごとにセッションを使い分ける感じだと思います。

第一希望は
>静的IPマスカレード設定でなんとかなるのか?

うーん、私とは環境が違うので分かりません。

一度ルータのマニュアルを熟読されることをお勧めします。


(無題)  投稿者:サンドバック  投稿日:2021年10月25日(月)06時28分

マニュアルをダウンロードしました。
まずはしっかり読んでその機能を知ろうと思います。


>実ボクサーバー(パソコン)の方だけをIPV4のセッションで、
>つなげるような気がします。

識者である鳳蛋さんのこの一言がどんなに嬉しいか!
この道を進んでみます!


(無題)  投稿者:サンドバック  投稿日:2021年10月29日(金)06時53分

不明な単語の意味を調べながらマニュアルを読み込んで、レベルアップしたサンドバックの再チャレンジが始まった!

ルータの設定にある「PPPoeブリッジにチェック」(最初からチェックしてあった)、これは別名で「パススルー」と言われており、直接PPPoe接続している機器をルータとしてはスルーするらしい。

サーバのwindows10をルータを介さず直接PPPoe接続し、付属のファイアーウォールで5538と30009のポートを開放(ルータ側のポート開放は意味がないのだ)。

すると外部からポート5538経由でランキングCGIの閲覧に成功!

あとは30009経由でスパー天国に入室できるかどうかだが、この確認が内部にいる私にはできない状態です。
もしスパー天国に入室できた方がいたら報告をいただけると嬉しいです!


(無題)  投稿者:takumi  投稿日:2021年10月29日(金)18時57分

スパ天に入室できました!ボットとも対戦ができました!!  


(無題)  投稿者:サンドバック  投稿日:2021年10月30日(土)10時05分

takumiさんが入室成功、動作確認・報告に感謝!
やった…!

今回はこのまま終わってしまうのかという不安もありながら、知識のない真っ暗な道を目を凝らしながら進んでいく感じでした。

自分を奮い立たせるために考えていることを掲示板に書き残して、次の日の自分はその書き込みよりも一歩進もうと考えました。

それでもついに、というかやっぱり、やがて手詰まりになって途方に暮れてしまいます。

そんな時、鳳蛋さんから「できそう」との言葉があり、ノックだけして開けなかったドアの前に再び立てました。

やっぱりこのドア、「PPPoeブリッジ」が怪しい。

紹介されたマニュアルを熟読すると別名が「PPPoeスループット」。

ルータを介さずスルーしてPPPoe接続できるとな…!

ということはルータ経由のパソコン&switchのipv6を維持したまま、実ボクのサーバだけipv4接続にしてポート開放できるはず。

設定だけして結果を待っていたところ、takumiさんからの吉報!

実ボクはネット対戦がなければ、面白さは半減。本当にありがとうございました!


結果まとめ

スマブラはipv4のみ対応なのだが、ipv6の恩恵を受けて快適にネット対戦できる
実ボクはipv6だとポート開放できなかったが、ipv4の速度でネット対戦ができている

いつかipv6でもポート開放ができる方法が見つかったら実ボクもipv6対応にしたい

最初にやった事
ルータのPPPoeブリッジにチェック、ジムサーバを直接PPPoe接続、ファイアーウォールでポート開放

再起動のたびにやる事
右下のアイコンからipv4接続を接続にする
スタートアップからipアドレスをDNSに通知する
anhttpdのポート開放が80に戻っていたら5538に設定し直す




0 件のコメント:

コメントを投稿