Neos-Metaverse / NeosPublic

A public issue/wiki only repository for the NeosVR project
193 stars 9 forks source link

direct ip override option (for headless) #3332

Closed kazu0617 closed 3 years ago

kazu0617 commented 3 years ago

Is your feature request related to a problem? Please describe.

for now, directip cannot set to headless configuration, but This forces you to NAT punch through even if you are creating an environment that does not need to be punched through (for example, if you have completed port forwarding with Headless). This is by no means a good network method.

Relevant issues

No response

Describe the solution you'd like

Direct IP(可能なら Direct Domain)を設定できるようにしてください。Headlessの起動オプションで設定を行い、設定されている場合はそのドメインとポート番号を登録し、「オーブを取得」をクリックすることでNATパンチスルーの手前にその処理が来るようにしてほしいです。 I'd like to be able to configure Direct IP (or Direct Domain if possible) so that I can set it in the Headless startup options, register the domain and port number if it's set, and then click "Get Orb" to bring it to the front of the NAT punch-through. I would like to see that process come before the NAT punch through. lnl: Direct Domain -> lnl: Direct IP -> lnl-nat: NAT Panchtrough -> lnl-nat: LNL Relay -> neos-steam: Steam Networking Sockets

Describe alternatives you've considered

ワールドオーブを取得後、これらのIPを自分で打ち込む。もしくは、これらDirect Domainリストを自分たちで持って、専用アイテムでそれらを取得できるものを作成し、OpenWorldで叩く。できなくはないですが、公式の機能が実装されるまでの場つなぎとしてになると思います(とても大変だし、更新する場合はホストアクセスが必要になる)。

After getting the world orb, type in these IPs yourself. Or, we can have these Direct Domain lists ourselves, create a special item to get them, and hit them with OpenWorld. It's not impossible, but it would be a stopgap until the official feature is implemented (it's a lot of work, and you'd need host access to update it).

Additional context

No response

Frooxius commented 3 years ago

Why do you need this option?

The NAT punchthrough works by establishing direct IP connection. If it doesn't need punching through, then it'll work just as a direct IP connection. The upside of it is that it doesn't need any additional configuration - the system dynamically figures out what the public IP is.

Adding this would just increase the engineering complexity, but I don't see any benefit that it would provide.

kazu0617 commented 3 years ago

NATパンチスルーの一番最初はDirectIPで行うことを知りませんでした。 この機構はIPv6に対応していた場合、IPv6は優先して返されていますか?それともそれらにかかわらずIPv4のみで通信を行いますか?また、ログを確認しましたが、DirectIPで接続しに行くと仰っていますが実際には使用されるポート番号もまちまちで、設定しているポート番号に接続しに行っているようには到底見えませんでした。

I did not know that the very first step of NAT punch-through is done by DirectIP. If this mechanism supports IPv6, is IPv6 returned as a priority? Or does it communicate using only IPv4 regardless of them? Also, I checked the log, and although it says it goes to connect via DirectIP, the actual port number used is different, and it doesn't look like it is going to connect to the port number that I have set.

Frooxius commented 3 years ago

This mechanism is agnostic to IPv4 vs IPv6, that support depends on support in the underlying protocol. It will use whatever public IP it sees the beacon coming from. If that's the direct IP, it just connects to that directly, if it's something behind NAT, it will try to punch through.

If the IPv6 support is what you need, I recommend just continuing in this topic: https://github.com/Neos-Metaverse/NeosPublic/issues/3323

Making this addition wouldn't make IPv6 work. I'm going to close this, as I don't believe this change would be useful or solve the problem. Thanks for the info!