# Minimizing Network Downtime on Host Reboot

When a host with a DVR router reboots, there is a temporary loss of network connectivity from the host to the provider network or the external network. This can be minimized by manually moving the DVR router to another host.

In order to manually move or reschedule DVR routers from the current host to a new host, you must reassign the SNAT agent from the current host to the new host.

Follow the steps given below to manually reassign the SNAT agent from one host to another. Repeat the process for each router associated with the host that is rebooting.

1\. Get a list of all hosts running Neutron L3 agents to find another SNAT-capable L3 agent.

{% tabs %}
{% tab title="Bash" %}

```bash
openstack network agent list
```

{% endtab %}
{% endtabs %}

2\. Look for an agent with the `agent_mode` setting as `dvr_snat`.

{% hint style="info" %}
**Note**

If this agent is set only for **DVR**, it is not SNAT-capable. This is configured when you set up the host.
{% endhint %}

Confirm the `agent_mode` setting with the following command.

{% tabs %}
{% tab title="Bash" %}

```bash
openstack network agent show <l3_agent_uuid>
```

{% endtab %}
{% endtabs %}

`</l3_agent_uuid>`

3\. Identify the L3 agent that currently provides centralized SNAT for the given router. You can get a list of routers with the `openstack router list` command. You can then identify the routers associated with the host that is rebooting.

{% tabs %}
{% tab title="Bash" %}

```bash
openstack router list
openstack port list --device-owner network:router_centralized_snat --router <router_uuid>
openstack port show
<port_uuid> --column binding_host_id --format value
```

{% endtab %}
{% endtabs %}

`</port_uuid></router_uuid>`

4\. Un-assign the SNAT agent from the host.

{% tabs %}
{% tab title="Bash" %}

```bash
neutron l3-agent-router-remove <l3_agent_uuid> <router_uuid>
```

{% endtab %}
{% endtabs %}

`</router_uuid></l3_agent_uuid>`

5\. Assign the SNAT agent to one of the SNAT capable L3-agents found in step 2.

{% tabs %}
{% tab title="Bash" %}

```bash
neutron l3-agent-router-add <new_l3_agent_uuid> <router_uuid>
```

{% endtab %}
{% endtabs %}

`</router_uuid></new_l3_agent_uuid>`

​
