<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Conntrack on Netdata</title><link>https://www.netdata.cloud/tags/conntrack/</link><description>Recent content in Conntrack on Netdata</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://www.netdata.cloud/tags/conntrack/index.xml" rel="self" type="application/rss+xml"/><item><title>Docker Container Can't Connect To Internet: Fixes</title><link>https://www.netdata.cloud/guides/docker/docker-container-cannot-connect-to-internet/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/docker/docker-container-cannot-connect-to-internet/</guid><description>&lt;p&gt;The host may be online while Docker&amp;rsquo;s bridge, iptables rules, DNS proxy, or connection tracking table is in a broken state. Applications fail with connection timeouts, package managers stall, and external health checks return unhealthy. Isolate whether the failure is DNS, routing, packet filtering, or daemon state before fixing it.&lt;/p&gt;&#10;&lt;h2 id="what-this-means"&gt;What this means&lt;/h2&gt;&#10;&lt;p&gt;Outbound connectivity from a container traverses the container&amp;rsquo;s network namespace, a veth pair attached to a bridge (docker0 or user-defined), iptables NAT and filter rules managed by Docker&amp;rsquo;s libnetwork, the host&amp;rsquo;s routing table, and the upstream physical interface. On user-defined networks, Docker&amp;rsquo;s embedded DNS resolver at 127.0.0.11 proxies queries to the host&amp;rsquo;s configured resolvers. On the default bridge network, there is no embedded DNS; containers inherit the host&amp;rsquo;s /etc/resolv.conf directly. A failure at any layer produces the same symptom: requests time out.&lt;/p&gt;</description></item><item><title>Kubernetes conntrack exhaustion: dropped connections under load</title><link>https://www.netdata.cloud/guides/kubernetes/kubernetes-conntrack-exhaustion/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/kubernetes/kubernetes-conntrack-exhaustion/</guid><description>&lt;p&gt;Intermittent connection timeouts under load in Kubernetes often trace to a full nf_conntrack table on the node. Existing TCP sessions stay open, but new connections fail silently. DNS resolution becomes unreliable. Application logs show timeouts to healthy dependencies. The root cause is usually not the application, network policy, or CNI, but kernel connection tracking exhaustion.&lt;/p&gt;&#10;&lt;p&gt;Every connection that traverses kube-proxy NAT rules creates an entry in the node&amp;rsquo;s nf_conntrack table. This finite, node-level table is shared by all workloads and invisible to most application monitoring. When it fills, the kernel drops new connection attempts without sending a TCP reset or ICMP error. The application sees a timeout.&lt;/p&gt;</description></item><item><title>Kubernetes DNS resolution failures inside pods</title><link>https://www.netdata.cloud/guides/kubernetes/kubernetes-dns-failures/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/kubernetes/kubernetes-dns-failures/</guid><description>&lt;p&gt;DNS failures inside pods break service discovery. A single overloaded CoreDNS replica or saturated conntrack table on one node can look like a multi-service outage. Before fixing, determine whether the failure is cluster-wide, node-specific, or workload-specific.&lt;/p&gt;&#10;&lt;h2 id="what-this-means"&gt;What this means&lt;/h2&gt;&#10;&lt;p&gt;Kubernetes injects an &lt;code&gt;/etc/resolv.conf&lt;/code&gt; into every pod that points to the cluster DNS service, typically CoreDNS. CoreDNS resolves cluster-internal names via the kubernetes plugin and forwards external queries to an upstream resolver. A failure at any point produces the same symptom: the name cannot be resolved.&lt;/p&gt;</description></item><item><title>Kubernetes kube-proxy iptables sync stall: causes and recovery</title><link>https://www.netdata.cloud/guides/kubernetes/kubernetes-iptables-sync-stall/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/kubernetes/kubernetes-iptables-sync-stall/</guid><description>&lt;p&gt;Pods fail to start. Services intermittently route traffic to dead endpoints. The kube-proxy health endpoint still returns HTTP 200, so the DaemonSet looks healthy, yet rules drift further behind with every sync cycle.&lt;/p&gt;&#10;&lt;p&gt;An iptables sync stall is not a crash. It is a slowdown or blockage in the control loop that translates Service and EndpointSlice state into kernel NAT rules. When kube-proxy cannot acquire the global xtables lock, when &lt;code&gt;iptables-restore&lt;/code&gt; hangs, or when the rule set grows too large to reconcile within the sync period, the node forwards packets using stale rules. New endpoints are invisible. Terminated pods still receive connections. CNI plugins that also need the xtables lock time out, and pod sandbox creation fails.&lt;/p&gt;</description></item><item><title>Kubernetes kube-proxy IPVS: stale rules and session affinity issues</title><link>https://www.netdata.cloud/guides/kubernetes/kubernetes-ipvs-stale-rules/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/kubernetes/kubernetes-ipvs-stale-rules/</guid><description>&lt;p&gt;DNS queries start timing out from one node after a CoreDNS rolling update. A UDP Service returns timeouts for some clients but not others. New Services are unreachable from a specific node while older Services continue to work.&lt;/p&gt;&#10;&lt;p&gt;In IPVS mode, kube-proxy programs the kernel&amp;rsquo;s IPVS table with virtual servers and real servers. The IPVS connection table lives outside kube-proxy&amp;rsquo;s direct control and outside nf_conntrack. That separation creates two IPVS-specific failure modes: stale rules that diverge from EndpointSlice state, and UDP session affinity that sticks to dead backends long after a pod terminates.&lt;/p&gt;</description></item><item><title>Kubernetes Service Not Reachable: Kube-Proxy, Endpoints &amp; DNS</title><link>https://www.netdata.cloud/guides/kubernetes/kubernetes-service-not-reachable/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/kubernetes/kubernetes-service-not-reachable/</guid><description>&lt;p&gt;A Service fails when the chain between the client and backend breaks. That chain depends on EndpointSlices to list healthy pods, kube-proxy to program kernel rules, and cluster DNS to resolve names to ClusterIPs. This guide covers the gap between healthy backend pods and an unreachable Service, focusing on kube-proxy data-plane programming, endpoint state, and DNS dependencies. It does not cover application-level bugs inside the pod.&lt;/p&gt;&#10;&lt;h2 id="what-this-means"&gt;What This Means&lt;/h2&gt;&#10;&lt;p&gt;Reachability is a control-loop problem. kube-proxy watches Services and EndpointSlices, then programs iptables, IPVS, or nftables rules to DNAT traffic to healthy endpoints. These rules persist in the kernel if kube-proxy crashes, but updates stop until it resumes. DNS resolution targets the CoreDNS ClusterIP, so a kube-proxy failure often appears as a DNS outage before a direct Service timeout.&lt;/p&gt;</description></item><item><title>NAT and session-table exhaustion: catching it before connections fail</title><link>https://www.netdata.cloud/guides/network/network-nat-session-table-exhaustion/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/network/network-nat-session-table-exhaustion/</guid><description>&lt;p&gt;New connections fail while existing ones keep working. Applications report &amp;ldquo;connection refused&amp;rdquo; or timeouts. Open SSH sessions stay alive, but new SSH attempts hang. Your monitoring shows the firewall or NAT gateway is up, interfaces are healthy, and CPU is normal. The session or NAT translation table is full.&lt;/p&gt;&#10;&lt;p&gt;Session-table exhaustion is a cliff-edge failure. The table degrades gracefully until it hits its limit, then every new connection is denied. Existing flows continue because their entries are already in the table. The symptom pattern is distinctive but easy to misdiagnose as application failure, DNS issues, or upstream provider problems, because the applications are the ones reporting errors.&lt;/p&gt;</description></item></channel></rss>