Objective
Diagnose and resolve egress "Connection Handshake Timeout" errors affecting Cribl workloads running on OpenShift / OKD. These errors indicate TLS/SSL negotiation failures that can exist at multiple network layers—from pod-level policies to cluster infrastructure. This guide follows a bottom-up diagnostic approach, starting at the pod and expanding outward to cluster components.
Environment
- Cribl Stream or Cribl Edge (any version)
- Deployment type: Kubernetes / OpenShift (OKD)
- OpenShift Container Platform 4.x or OKD equivalent
- Network plugin: OVN-Kubernetes or OpenShift SDN
Procedure
Step 1: Pod-Level Diagnostics
Determine whether the issue affects a single pod or multiple applications.
1.1 Test Connectivity and DNS
-
Open a shell in the affected pod:
oc exec -it <pod_name> -- /bin/bash # Use /bin/sh if bash is unavailable -
Test raw network connectivity:
ping 8.8.8.8
Failure indicates a foundational block (egress firewall or node network issue) rather than a DNS or application problem. -
Test DNS resolution:
nslookup cribl.io
Failure points to DNS misconfiguration in the pod'sresolv.conf,nsswitch.conf, or the cluster DNS service. -
Simulate the connection with verbose TLS output:
curl -v https://cdn.cribl.io
The-vflag reveals the exact failure point in the TLS handshake. Run with-kto bypass certificate validation — if this succeeds, TLS interception or certificate trust is the root issue.
1.2 Check Network Policies
Misconfigured NetworkPolicy objects are a common cause. Many projects use default-deny policies that block unwhitelisted egress.
-
List policies in the namespace:
oc get networkpolicy -n <project_name> -
Inspect policy rules:
oc describe networkpolicy <policy_name> -n <project_name> -
Enable ACL audit logging to capture deny decisions (OVN-Kubernetes clusters only):
oc annotate namespace <namespace> \ k8s.ovn.org/acl-logging='{"allow": "info", "deny": "info"}'
View logs inovn-controllerpods on each node.
Note: This annotation generates high log volume — remove it after capturing the relevant entries.
Step 2: Cluster-Level Networking
If pod-level checks pass, investigate the OpenShift networking infrastructure.
2.1 SDN and Egress Firewall
-
Check for an
EgressNetworkPolicy(restricts outbound traffic at the project level):oc get egressnetworkpolicy -n <project_name>
A broadDenyrule can inadvertently block intendedAllowrules. Review rule ordering carefully. -
Verify
HostSubnetconfiguration:oc get hostsubnets
Confirm each node has a valid HostSubnet and that egress CIDRs are assigned correctly if using egress IPs.
2.2 DNS Verification
-
Check DNS operator health:
oc get clusteroperator dns -
Review DNS pod logs:
oc logs -n openshift-dns -l dns.operator.openshift.io/daemonset-dns=default -
Inside the pod, verify that
resolv.confpoints to the cluster DNS service IP:cat /etc/resolv.conf
Step 3: External Factors and Advanced Configuration
If the issue persists, examine proxy configuration, certificate trust, and egress IP settings.
3.1 Corporate Proxy Configuration
-
Verify the proxy environment variables are set in the pod's deployment spec:
-
HTTP_PROXY -
HTTPS_PROXY -
NO_PROXY
-
-
Test proxy reachability from the pod:
nc -vz <proxy_host> <proxy_port>
3.2 Certificate Issues
Handshake timeouts often stem from TLS certificate problems:
| Scenario | Cause |
|---|---|
| Untrusted root CA | Application trust store is missing the external service's root CA or the corporate proxy CA (for TLS inspection) |
| Missing client certificate | External service requires mutual TLS (mTLS) authentication |
-
Debug with OpenSSL to reveal the certificate chain:
openssl s_client -connect <hostname>:<port>Review the output for trust failures or missing intermediate certificates.
3.3 Egress IP and Router Configuration
Egress IPs provide a consistent source IP for external firewall rules.
-
Check the namespace egress IP assignment:
oc get netnamespace <project_name> -o yaml -
If an egress IP is configured:
-
Verify the hosting node has external connectivity.
-
Confirm that external firewalls allow traffic from this source IP.
-
-
For dedicated egress router deployments, review egress router logs for connection or routing errors.
Quick Reference
| Symptom | Check |
|---|---|
|
| Egress firewall, node network |
| DNS fails | Cluster DNS operator, pod |
|
| TLS handshake, certificate trust |
|
| Certificate trust issue, TLS inspection proxy |
| Intermittent failures | Network policies, egress IP assignment |
Last Validated
Cribl Stream / Cribl Edge — 2026-04-29 (OpenShift Container Platform 4.x)
