> For the complete documentation index, see [llms.txt](https://platform9.com/kb/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://platform9.com/kb/pmo/solution/ip-address-not-allocated-to-instance-by-dhcp.md).

# IP Address Not Allocated To Instance by DHCP

## Problem

* Instance fails to receive IP address from the DHCP server after a reboot.
* Packet capture on the tap device of the instance and the bond0 interface shows the Broadcast Request is leaving the tap device but no packets are seen on the bond0 interface.

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

```none
$ sudo tcpdump -nnei tapf6715be8-f9
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tapf6715be8-f9, link-type EN10MB (Ethernet), capture size 262144 bytes
fa:16:3e:24:98:2b > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from fa:16:3e:24:98:2b, length 300
fa:16:3e:24:98:2b > 33:33:00:01:00:02, ethertype IPv6 (0x86dd), length 157: fe80::ec0c:f912:fd0a:e575.546 > ff02::1:2.547: dhcp6 solicit
fa:16:3e:24:98:2b > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from fa:16:3e:24:98:2b, length 300
```

{% endtab %}
{% endtabs %}

* Packet capture on bond0 interface.

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

```none
$ sudo tcpdump -nnei bond0 ether host fa:16:3e:24:98:2b
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on bond0, link-type EN10MB (Ethernet), capture size 262144 bytes
```

{% endtab %}
{% endtabs %}

## Environment

* Platform9 Managed OpenStack - v3.6.0 and Higher

## Cause

There is no physical interface connected to the Bridge br-vlan.

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

```none
$ sudo ovs-vsctl show
2ddf08e3-0a83-4ab7-ba2d-fa91b9bdaa64
    Manager "ptcp:6640:127.0.0.1"
        is_connected: true
    Bridge br-vlan
        Controller "tcp:127.0.0.1:6633"
            is_connected: true
        fail_mode: secure
        Port br-vlan
            Interface br-vlan
                type: internal
        Port phy-br-vlan
            Interface phy-br-vlan
                type: patch
                options: {peer=int-br-vlan}
```

{% endtab %}
{% endtabs %}

## Resolution

1. Add the interface (bond 0) to the bridge (br-vlan).

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

```none
$ sudo ovs-vsctl add-port br-vlan bond0
```

{% endtab %}
{% endtabs %}

2. After adding the interface, force the instance to renew the IP address from DHCP.

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

```none
$ ipconfig /renew
```

{% endtab %}
{% endtabs %}

3. Following is the packet capture of the instance on the tap device and we can see that the DORA process for DHCP completed successfully.

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

```none
$ sudo tcpdump -nnei tapf6715be8-f9
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tapf6715be8-f9, link-type EN10MB (Ethernet), capture size 262144 bytes 02:26:38.049123 fa:16:3e:24:98:2b > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from fa:16:3e:24:98:2b, length 300
fa:16:3e:4e:b7:41 > fa:16:3e:24:98:2b, ethertype IPv4 (0x0800), length 391: 172.16.232.1.67 > 172.16.232.28.68: BOOTP/DHCP, Reply, length 349
fa:16:3e:0d:c2:71 > fa:16:3e:24:98:2b, ethertype IPv4 (0x0800), length 391: 172.16.232.0.67 > 172.16.232.28.68: BOOTP/DHCP, Reply, length 349
fa:16:3e:8c:f5:01 > fa:16:3e:24:98:2b, ethertype IPv4 (0x0800), length 391: 172.16.232.2.67 > 172.16.232.28.68: BOOTP/DHCP, Reply, length 349
fa:16:3e:24:98:2b > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 369: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from fa:16:3e:24:98:2b, length 327
fa:16:3e:0d:c2:71 > fa:16:3e:24:98:2b, ethertype IPv4 (0x0800), length 465: 172.16.232.0.67 > 172.16.232.28.68: BOOTP/DHCP, Reply, length 423
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://platform9.com/kb/pmo/solution/ip-address-not-allocated-to-instance-by-dhcp.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
