UDP in IPv6 weird behaviour

Hi all!

I've been using NR as an orchestrator (i hope im using that term properly) in the company I work for, for the last year.

Recently we started exploring NB-IoT technology which communicates using UDP packets.

I am currently trying to send UDP packets between two separate NR instances
(Both instances are running recent versions.).

Lets call them NR_1 and NR_2:

  • NR_1 is hosted on a remote Windows Server
  • NR_2 is hosted in a Docker Container, running on a remote Ubuntu Server

When sending an IPv4 UDP packet (using a simple injection node wired to an IPv4 UDP out node) from NR_1 to NR_2 i receive it and everything is good.
Quick note on that though: for some reason i receive the IPv4 packet to both listeners on NR_2 (IPv4 UDP in as well as IPv6 UDP in)

The problems begin when trying to send an IPv6 UDP packet from NR_1 to NR_2. So the packet leaves NR_1, reaches the Ubuntu Server (captured it on tShark) but never reaches the container and inevitably neither does it reach NR_2.

To make matters even more confusing, i tried sending the same packet with the same config from NR_2 to NR_2 and it worked for a couple attempts, before forever breaking and never working ever again.

Let me add another quick note here and say that I have taken the necessary steps to bridge the container with the server (proven by the fact that the IPv4 test works).

I am not expert in any of this (neither NR nor networking or containers), but this seems like something simple that should be working easily.

Any help is appreciated and ofc im terribly sorry for any missing information.

I can share the flows but i see no point since everything is extremely simple (inject nodes connected to UDP out nodes from one side, and UDP in nodes connected to debug nodes from the other side.

Added a docker tag to this as I suspect that is the issue.

Have you enabled IPv6 support in Docker?

Enable IPv6 support | Docker Documentation

Yes i have, through the daemon file.

On my Portainer I can see the IPv6 as well as the IPv6 Gateway.

P.S. Thanks for the tag addition. Forgot about that one!

No problem.

Have you tried setting up a node-red instance outside the container to see whether it really is a Docker issue or a node-red one?

I was going to try that as a last resort thing to be honest.

Even if that works, the NR_2 instance that is running on Docker, is the Dev environment of the company, so the final setup must be done on Docker anyway.

Any other thoughts on how this would be a Docker issue ?

I'm no Docker expert let alone a Docker IPv6 one. But I'd expect this to be some kind of Docker network routing issue.

If you already have Node.js installed on the server, doing a quick setup of Node-RED is really easy. I'd recommend doing a local install rather than a global one which will lessen the impact. To remove, you can then simply delete the folder.