# Troubleshooting Network Issues

### DNS <a href="#dns" id="dns"></a>

Kubernetes has a guide on [Debugging DNS Resolution](https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/) which is quite extensive and covers most of the general troubleshooting with relation to resolving domain names from within the cluster. In particular, though, the following sections would be the most pertinent.

* [Check Local DNS Resolution](https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/#check-the-local-dns-configuration-first)
* [Ensure CoreDNS is Running](https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/#check-if-the-dns-pod-is-running)
* [Enable Query Logging](https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/#are-dns-queries-being-received-processed)

Additionally, see [Known Issues](https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/#known-issues) for any other documented edge case scenarios.

### Calico <a href="#calico" id="calico"></a>

#### Pod Networking Broken if Kernel IP Forwarding Not Enabled <a href="#pod-networking-broken-if-kernel-ip-forwarding-not-enabled" id="pod-networking-broken-if-kernel-ip-forwarding-not-enabled"></a>

If `net.ipv4.ip_forward` is set to `0`, meaning that kernel IP forwarding is disabled, pod networking will be broken. IP forwarding needs to be enabled (set to `1`) to allow traffic to be forwarded from one interface to the other.

Pods may enter into a CrashLoopBackOff state as a result of being unable to reach the cluster VIP or otherwise and constantly failing their health checks.

The enabled value should be set by default on most installations. Otherwise, though, ensure it is not manually defined, or, if it cannot be undefined, set to enabled explicitly.

{% tabs %}
{% tab title="/etc/sysctl.d/90-ip-forward.conf" %}

```javascript
net.ipv4.ip_forward = 1
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.platform9.com/managed-kubernetes/support/troubleshooting/troubleshooting-network-issues.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
