ipv6 reachability recovery
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 371
- Forks
- 107
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 37
Description
Bug Overview
Description
NGINX Agent (otel-nginx-agent) attempts to connect to the N1 console over IPv6 even in environments where that IPv6 route isn't usable, and there's currently no way to prevent this without disabling IPv6 support entirely on the host's networking stack.
Environment
• Agent version: v3.11.3.
Steps to Reproduce
- Run nginx-agent on a host with IPv6 enabled where the resolved IPv6 address for agent.connect.nginx.com isn't reachable..
- Observe the agent attempting to dial the IPv6 address instead of (or before) falling back to IPv4..
Error Log
2026-08-26T14:23:02.849Z warn grpc@v1.83.0/clientconn.go:1532 [core] [Channel #12 SubChannel #17] grpc: addrConn.createTransport failed to connect to {Addr: "[2600:1f16:19c8:d402:848f:459f:ea85:45a2]:443", ServerName: "agent.connect.nginx.com:443", }. Err: connection error: desc = "transport: Error while dialing: dial tcp [2600:1f16:19c8:d402:848f:459f:ea85:45a2]:443: connect: cannot assign requested address" {"resource": {"service.instance.id": "491f6ef8-8625-460a-8f83-93794f61072c", "service.name": "otel-nginx-agent", "service.version": "v3.11.3"}}
Expected Behavior
Agent should either prefer IPv4 when IPv6 isn't viable, or provide a configuration option to disable IPv6 connections for the gRPC client without requiring IPv6 to be disabled at the OS/networking level.
Actual Behavior
Agent keeps attempting IPv6 connections to the console, causing connection errors, and the only known workaround is disabling IPv6 on the entire host.
Request
Add a config option (e.g. a prefer-ipv4 / disable-ipv6 gRPC dial setting) so users can control this at the agent level.
Expected Behavior
If ipv6 is configured or otherwise available on the host system and full ipv6 reachability exists to the N1C, things should work correctly, as ipv4 connections should be attempted to reach the N1C.
Steps to Reproduce the Bug
- Deploy a container with ipv6 enabled, such as
private-registry.nginx.com/nginx-plus/agentv3:r37.0-debian - The container host environment should have ipv6, but no ipv6 reachability to
agent.connect.nginx.comexists - Agent will start but will repeatedly log warn messages such as:
2026-08-26T14:23:02.849Z warn grpc@v1.83.0/clientconn.go:1532 [core] [Channel #12 SubChannel #17] grpc: addrConn.createTransport failed to connect to {Addr: "[2600:1f16:19c8:d402:848f:459f:ea85:45a2]:443", ServerName: "agent.connect.nginx.com:443", }. Err: connection error: desc = "transport: Error while dialing: dial tcp [2600:1f16:19c8:d402:848f:459f:ea85:45a2]:443: connect: cannot assign requested address" {"resource": {"service.instance.id": "491f6ef8-8625-460a-8f83-93794f61072c", "service.name": "otel-nginx-agent", "service.version": "v3.11.3"}}
Environment Details
- Target deployment platform: Docker
- Target OS: Debian (
private-registry.nginx.com/nginx-plus/agentv3:r37.0-debian) - Version of this project or specific commit: 3.11.3
Additional Context
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the gRPC client connection setup and configuration handling responsible for dialing agent.connect.nginx.com. Reproduce the behavior in the stated Docker Debian environment, then verify that IPv4 fallback or an agent-level IPv6 control prevents repeated unreachable IPv6 attempts without disabling IPv6 on the host.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, grpc
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100