Yellow-Dog-Man / Resonite-Issues

Issue repository for Resonite.
https://resonite.com
135 stars 2 forks source link

LNL NAT issue only from network with direct VPN connection #549

Open elitetheespeon opened 11 months ago

elitetheespeon commented 11 months ago

Describe the bug?

I have headless sessions hosted behind a headless server that is running in a docker container with the port defined in forcePort of the config exposed public. All NAT is configured correctly and everyone is able to connect but me. After extensive testing, it looks like the only difference in my network from everyone else's is that I have a direct connection to the server's LAN via site to site tunnel. When traced via packet capture, I see traffic hitting the relay from client -> server, my game shows the world for a few seconds and then the connection is lost shortly after, kicking me back to my previous world. The server sees much the same traffic. This happens if I join any LNL session id hosted on my servers, even from list or invite. I have to use a world orb with the direct ip of lnl://ip:port in order to connect successfully from my network. I can join all other servers/sessions. This seems very related to Neos issue Neos-Metaverse/NeosPublic#3357

To Reproduce

Run headless server in Pterodactyl panel using a default docker bridge behind NAT with the port defined in forcePort of the config exposed public. Have a site to site VPN tunnel between headless server's LAN and your home LAN Try to connect using LNL NAT to any headless session on the server from your home LAN

Expected behavior

LNL NAT works using the relay

Screenshots

No response

Resonite Version Number

n/a as issue was present in Neos

What Platforms does this occur on?

Linux

What headset if any do you use?

n/a

Log Files

Session updated, forcing status update
SendStatusToUser: U-[MyUsername]. OnlineStatus: 
SIGNALR: BroadcastStatus - Contact status for U-[REDACTED].
        UserSessionId: [REDACTED].
        Type: Headless
        OutputDevice: 
        IsMobile: False
        OnlineStatus: 
        IsPresent: False
        LastPresenceTimestamp: 
        LastStatusChange: 11/07/2023 20:49:44
        AppVersion: 2023.11.7.274
        CompatibilityHash: [REDACTED]
        CurrentSessionIndex: 1 to SpecificContacts (U-[MyUsername])
Session updated, forcing status update
NAT INTRODUCTION SUCCESS: [MyHomeIP]:52956, token: s-[REDACTED]
LNL Listener - connection request: [MyHomeIP]:52956
Peer Connected: [MyHomeIP]:52956
NAT INTRODUCTION SUCCESS: [MyHomeIP]:52956, token: s-[REDACTED]
Verifying Join Request. UserID: U-[MyUsername], Username: [MyUsername], AccessLevel: FriendsOfFriends
Join Granted For UserID: U-[MyUsername], Username: [MyUsername]
User Joined Minecraft Saphora Island. Username: [MyUsername], UserID: U-[MyUsername], AllocID: 1, AllocIDstart: 1,  MachineID: [REDACTED]
User Spawn Minecraft Saphora Island. Username: [MyUsername], UserID: U-[MyUsername], MachineID: [REDACTED]
Spawning User [MyUsername] ([REDACTED])
User [MyUsername] Role: Admin, HasFingerTracking: False, HasEyeTracking: False, HasLipTracking: False
BroadcastKey set to U-1NVs[REDACTED]:c240d[REDACTED]. LastModifyingUser: 
  at System.Environment.get_StackTrace () [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0 
  at Elements.Core.UniLog.Log (System.String message, System.Boolean stackTrace) [0x00000] in <b69854496e6e4116a13f0e3f1203d8f6>:0 
  at FrooxEngine.WorldConfiguration.FieldChanged (FrooxEngine.IChangeable obj) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.SyncElement.SyncElementChanged (FrooxEngine.IChangeable member) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.SyncField`1[T].ValueChanged () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.SyncField`1[T].InternalSetValue (T& value, System.Boolean sync, System.Boolean change) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.SyncField`1[T].set_Value (T value) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.Sync`1[T].set_Value (T value) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.WorldConfiguration.InternalRunUpdate () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.UpdateManager.RunUpdates () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.World.RefreshStep () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.World.Refresh () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.WorldManager.UpdateStep () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.WorldManager.RunUpdateLoop () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.Engine.UpdateStep () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.Engine.RunUpdateLoop () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.StandaloneFrooxEngineRunner.UpdateLoop () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0 
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0 
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0 
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0 
  at System.Threading.ThreadHelper.ThreadStart () [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0 
BroadcastKey changed: U-1NVs[REDACTED]:c240d[REDACTED]
Updated:  -> U-1NVs[REDACTED]:c240d[REDACTED]
Session updated, forcing status update
SIGNALR: BroadcastStatus - Contact status for U-1NVs[REDACTED].
        UserSessionId: 45793[REDACTED].
        Type: Headless
        OutputDevice: 
        IsMobile: False
        OnlineStatus: 
        IsPresent: False
        LastPresenceTimestamp: 
        LastStatusChange: 11/07/2023 20:50:10
        AppVersion: 2023.11.7.274
        CompatibilityHash: [REDACTED]
        CurrentSessionIndex: 1 to AllContacts
SIGNALR: ListenOnKey - U-1NVs[REDACTED]:c240d[REDACTED]
Rebuild: 11.0295 ms, Nodes: 243, Groups: 46
Rebuild: 0.0010 ms, Nodes: 0, Groups: 24
KeyListenerAdded: U-1NVs[REDACTED]:c240d[REDACTED] - mAdCwPQJ5[REDACTED]
Sending info matching broadcast key U-1NVs[REDACTED]:c240d[REDACTED] to mAdCwPQJ58pycx0ub8KhPA
KeyListenerAdded: U-1NVs[REDACTED]:c240d[REDACTED] - NgDXf3LOFfrRZqoXNeCAxA
Sending info matching broadcast key U-1NVs[REDACTED]:c240d[REDACTED] to NgDXf3LOFfrRZqoXNeCAxA
Session updated, forcing status update
Session updated, forcing status update
KeyListenerAdded: U-1NVs[REDACTED]:c240d[REDACTED] - 8Eatf[REDACTED]
Sending info matching broadcast key U-1NVs[REDACTED]:c240d[REDACTED] to 8Eatfus[REDACTED]
KeyListenerAdded: U-1NVs[REDACTED]:c240d[REDACTED] - 8hoc_[REDACTED]
Sending info matching broadcast key U-1NVs[REDACTED]:c240d[REDACTED] to 8hoc_jZ[REDACTED]
KeyListenerAdded: U-1NVs[REDACTED]:c240d[REDACTED] - g_B7v[REDACTED]
Sending info matching broadcast key U-1NVs[REDACTED]:c240d[REDACTED] to g_B7vx0[REDACTED]
KeyListenerAdded: U-1NVs[REDACTED]:c240d[REDACTED] - 3-4BT[REDACTED]
Sending info matching broadcast key U-1NVs[REDACTED]:c240d[REDACTED] to 3-4BT3b[REDACTED]
KeyListenerAdded: U-1NVs[REDACTED]:c240d[REDACTED] - Qfts0[REDACTED]
Sending info matching broadcast key U-1NVs[REDACTED]:c240d[REDACTED] to Qfts0hA[REDACTED]
KeyListenerAdded: U-1NVs[REDACTED]:c240d[REDACTED] - DxKfq[REDACTED]
Sending info matching broadcast key U-1NVs[REDACTED]:c240d[REDACTED] to DxKfq_f[REDACTED]
KeyListenerAdded: U-1NVs[REDACTED]:c240d[REDACTED] - cyIsO[REDACTED]
Sending info matching broadcast key U-1NVs[REDACTED]:c240d[REDACTED] to cyIsOQV[REDACTED]
KeyListenerAdded: U-1NVs[REDACTED]:c240d[REDACTED] - WUDm4[REDACTED]
Sending info matching broadcast key U-1NVs[REDACTED]:c240d[REDACTED] to WUDm4WT[REDACTED]
Session updated, forcing status update
Rebuild: 38.5993 ms, Nodes: 694, Groups: 66
Rebuild: 0.0010 ms, Nodes: 0, Groups: 7
Session updated, forcing status update
Peer Disconnected: [MyHomeIP]:52956, reason: RemoteConnectionClose, socketErrorCode: Success
User Left Minecraft Saphora Island. Username: [MyUsername], UserID: U-[MyUsername], AllocId: 1, AllocIDstart: 1, MachineID: [REDACTED]
Destroying User: User ID4280F00 (Alloc: 1) - UserName: [MyUsername], UserId: U-[MyUsername], MachineId: [REDACTED], Role: Admin
Currently updating user: User ID2F00 (Alloc: 0) - UserName: HeadlessAccount, UserId: U-1NVs[REDACTED], MachineId: [REDACTED], Role: Admin
  at System.Environment.get_StackTrace () [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0 
  at Elements.Core.UniLog.Log (System.String message, System.Boolean stackTrace) [0x00000] in <b69854496e6e4116a13f0e3f1203d8f6>:0 
  at FrooxEngine.UserRoot.Slot_OnPrepareDestroy (FrooxEngine.Slot slot) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.Slot.PrepareDestruction () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.World.OnSlotRemoved (FrooxEngine.SyncBagBase`2[K,T] bag, Elements.Core.RefID key, FrooxEngine.Slot slot) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.SyncBagBase`2[K,T].ElementRemoved (K key, T element) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.SyncBagBase`2[K,T].InternalRemove (K key, System.Boolean sync, System.Boolean change) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.SyncBagBase`2[K,T].Remove (K key) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.World.InternalRemoveSlot (Elements.Core.RefID key) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.World.RemoveSlot (FrooxEngine.Slot slot) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.Slot.DestroySelf () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.Slot.Destroy (System.Boolean sendDestroyingEvent) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.Slot.RelocateOrDestroyEmpty (System.Func`1[TResult] getRelocationTarget) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.Slot.DestroyPreservingAssets (FrooxEngine.Slot relocateAssets, System.Boolean sendDestroyingEvent) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.Slot.DestroyPreservingAssets () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.SimpleUserSpawn.OnUserLeft (FrooxEngine.User user) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.World.RunWorldEvents () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.World.RefreshStep () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.World.Refresh () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.WorldManager.UpdateStep () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.WorldManager.RunUpdateLoop () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.Engine.UpdateStep () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.Engine.RunUpdateLoop () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.StandaloneFrooxEngineRunner.UpdateLoop () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0 
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0 
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0 
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0 
  at System.Threading.ThreadHelper.ThreadStart () [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0 
BroadcastKey set to U-1NVs[REDACTED]:ef77cc[REDACTED]. LastModifyingUser: User ID2F00 (Alloc: 0) - UserName: HeadlessAccount, UserId: U-1NVs[REDACTED], MachineId: [REDACTED], Role: Admin
  at System.Environment.get_StackTrace () [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0 
  at Elements.Core.UniLog.Log (System.String message, System.Boolean stackTrace) [0x00000] in <b69854496e6e4116a13f0e3f1203d8f6>:0 
  at FrooxEngine.WorldConfiguration.FieldChanged (FrooxEngine.IChangeable obj) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.SyncElement.SyncElementChanged (FrooxEngine.IChangeable member) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.SyncField`1[T].ValueChanged () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.SyncField`1[T].InternalSetValue (T& value, System.Boolean sync, System.Boolean change) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.SyncField`1[T].set_Value (T value) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.Sync`1[T].set_Value (T value) [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.WorldConfiguration.InternalRunUpdate () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.UpdateManager.RunUpdates () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.World.RefreshStep () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.World.Refresh () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.WorldManager.UpdateStep () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.WorldManager.RunUpdateLoop () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.Engine.UpdateStep () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.Engine.RunUpdateLoop () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at FrooxEngine.StandaloneFrooxEngineRunner.UpdateLoop () [0x00000] in <ce0100e13f0347d791340985bd3805a7>:0 
  at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0 
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0 
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0 
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0 
  at System.Threading.ThreadHelper.ThreadStart () [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0 
BroadcastKey changed: U-1NVs[REDACTED]:ef77cc[REDACTED]
Rebuild: 0.0035 ms, Nodes: 0, Groups: 33
Updated: U-1NVs[REDACTED]:c240d[REDACTED] -> U-1NVs[REDACTED]:ef77cc[REDACTED]
Session updated, forcing status update
SIGNALR: BroadcastStatus - Contact status for U-1NVs[REDACTED].
        UserSessionId: 45793[REDACTED].
        Type: Headless
        OutputDevice: 
        IsMobile: False
        OnlineStatus: 
        IsPresent: False
        LastPresenceTimestamp: 
        LastStatusChange: 11/07/2023 20:50:15
        AppVersion: 2023.11.7.274
        CompatibilityHash: [REDACTED]
        CurrentSessionIndex: 1 to AllContacts
SIGNALR: ListenOnKey - U-1NVs[REDACTED]:ef77cc[REDACTED]
KeyListenerAdded: U-1NVs[REDACTED]:ef77cc[REDACTED] - NgDXf3L[REDACTED]
Sending info matching broadcast key U-1NVs[REDACTED]:ef77cc[REDACTED] to NgDXf3L[REDACTED]
KeyListenerAdded: U-1NVs[REDACTED]:ef77cc[REDACTED] - mAdCwPQ[REDACTED]
Sending info matching broadcast key U-1NVs[REDACTED]:ef77cc[REDACTED] to mAdCwPQ[REDACTED]
Session updated, forcing status update
Session updated, forcing status update
Session updated, forcing status update
Session updated, forcing status update
Session updated, forcing status update

Additional Context

I can provide any logs, packet captures or other info. I've had this issue for so long, i'd rather not have to join using a world orb.

Reporters

No response

elitetheespeon commented 10 months ago

I have currently found a workaround that fixed the issue for me for now. On the server end I have added a rule to the firewall to block all traffic coming from [Server LAN Subnet] to [My Home LAN Subnet]