IPv6 ENETUNREACH

We have a Node-Red install on Debian and 4G network which only support ipv6. Whenever making requests we receive an error;

RequestError: connect ENETUNREACH 142.250.200.4:80 - Local (0.0.0.0:0) : http://www.google.com

Any Ideas?

Thanks in advance

Steve

Exactly how are you making requests? How is the node doing the requests configured?

Is it a Docker install of node red or a normal install?

What happens if you run ping6 www.google.com

Its a very simple flow that does a http get from google:

[{"id":"d29d5d42.9bda6","type":"inject","z":"75ccc5ad.1762bc","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":570,"y":360,"wires":[["c0c99e28.a39e5"]]},{"id":"c0c99e28.a39e5","type":"http request","z":"75ccc5ad.1762bc","name":"","method":"GET","ret":"txt","paytoqs":"ignore","url":"www.google.com","tls":"","persist":false,"proxy":"","authType":"","x":740,"y":360,"wires":[["cfccedbb.6082a"]]},{"id":"cfccedbb.6082a","type":"debug","z":"75ccc5ad.1762bc","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":910,"y":360,"wires":[]}]

The device is installed with Debian and Node-RED is not containerized.

[Admin edit] Added triple backticks around flow to make it importable

OK, I think I will have to pass on this one then. I think it needs input from someone who knows more about the inner workings of node-red and nodejs.

Ok Colin, Thanks for looking at it, to help more, here is the error object returned from the http request:

{"message":"Error: connect ENETUNREACH 216.58.212.228:80 - Local (0.0.0.0:0)","source":{"id":"c0c99e28.a39e5","type":"http request","count":1},"stack":"Error: connect ENETUNREACH 216.58.212.228:80 - Local (0.0.0.0:0)\n at internalConnect (net.js:882:16)\n at defaultTriggerAsyncIdScope (internal/async_hooks.js:294:19)\n at GetAddrInfoReqWrap.emitLookup [as callback] (net.js:1029:9)\n at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:61:10)"}

What happens if you run
wget http://www.google.com

It works outside Node-Red.....

But as you can see it's using an IPv6 address which I think is where my problem lies?? I'm not sure the http request node is resolving the IPv6 address. I think it's resolving IPv4 which is unreachable on the network I have.

That's my guess anyway?

I think you are probably right. Possibly something needs to be tweaked in the interface between node-red and the underlying nodejs modules that do the request.

Are you using the current release of node-red? Which version of nodejs?
Use node -v to find the nodejs version.

What happens if you request direct to the IPv6 address

image

I get this...

No, unfortunately, its part of a base image build provided by Siemens nodejs v10.23.1, I did try to upgrade but it caused some compatibility issues with some of the other flows and did not fix it. I will go down that route if we can prove it works but so far I have not been able to prove it works even with the latest version of nodejs and Node-Red.

I think that you have specified an IPv4 Address there?

image

same result

image

I meant use googles IPV6

You can get that via ping6 ipv6.google.com

image
image

intrestingly mqtt woks via the ipv6 address

And what versions are you using?

EDIT

never mind - i see you are on a siemens device - cant help any further I'm afraid.

Are you able to perform a test on an up to date system on the network to prove that that is the problem?

Ok so I've done the upgrade and it appears to now work :slight_smile: > I've now got hours of trying to work out my compatibility issues.... thanks for the support Guys!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.