Skip to content

chipingress: add option to force IPV4#1472

Closed
pkcll wants to merge 5 commits intomainfrom
INFOPLAT-2627-chip-ingress-client-forceIPV4-option
Closed

chipingress: add option to force IPV4#1472
pkcll wants to merge 5 commits intomainfrom
INFOPLAT-2627-chip-ingress-client-forceIPV4-option

Conversation

@pkcll
Copy link
Copy Markdown
Contributor

@pkcll pkcll commented Aug 12, 2025

What

  • loop/server: wire up properly ChipIngressInsecureConnection option
  • chipingress: add option for gRPC client to force IPv4 connections.
    This is needed to connect to the public Cloudflare endpoint when IPv6 is not enabled on the local client network stack.

Why

loop/server: wire up properly ChipIngressInsecureConnection option

In some cases chipingress and beholder gateway collector connections could have different setup for TLS (InsecureConnection option). E.g connecting to local collector sidecar might not need TLS while connecting to public chipingress domain does need TLS. For local development both do not need TLS.

chipingress: add option for gRPC client to force IPv4 connections.

Error

{"level":"info","ts":1755007389.045963,"caller":"beholder/dual_source_emitter.go:54","msg":"failed to emit to chip ingress:
rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp   
[2606:4700:10::ac42:aedd]:443: connect: network is unreachable"","version":"(devel)@unset"}

Error message explanation:

Client tries to connect to staging.telemetry.chain.link
The DNS resolver looks up the domain and gets back both IPv4 and IPv6 addresses from Cloudflare (IPv6 Compatibility flag is enabled by default on Cloudflare network settings and cant be disabled).
The OS decides to try the IPv6 address [2606:4700:10::ac42:aedd] first.
It seems the node network stack has no route to send IPv6 packets to the public internet, so it immediately fails with network is unreachable.

@pkcll pkcll force-pushed the INFOPLAT-2627-chip-ingress-client-forceIPV4-option branch from 9a7d78a to 5a4e2a3 Compare August 13, 2025 01:44
hendoxc
hendoxc previously approved these changes Aug 13, 2025
fouadkada
fouadkada previously approved these changes Aug 14, 2025
@pkcll pkcll force-pushed the INFOPLAT-2627-chip-ingress-client-forceIPV4-option branch from 32e986b to d6e830b Compare August 18, 2025 17:49
@pkcll pkcll force-pushed the INFOPLAT-2627-chip-ingress-client-forceIPV4-option branch from d6e830b to b445f68 Compare August 18, 2025 18:57
@pkcll pkcll force-pushed the INFOPLAT-2627-chip-ingress-client-forceIPV4-option branch from b445f68 to c5c3258 Compare August 19, 2025 03:44
@pkcll
Copy link
Copy Markdown
Contributor Author

pkcll commented Aug 21, 2025

Closing this PR, ChipIngressForceIPV4 is not needed for communicating to public Cloudflare ChIP ingress endpoint.
The issue was related to incorrectly set ChipIngressInsecureConnection introduced in this PR
https://github.com/smartcontractkit/chainlink-common/pull/1374/files

Opened new PR for ChipIngressInsecureConnection only
smartcontractkit/chainlink#18947

@pkcll pkcll closed this Aug 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants