GL-MT3000 takes too long to get IP address

I tested the WireGuard client router with one ISP modem and mobile hotspots, and it quickly obtains an IP address. However, when I tried it at a friend's house, the GL.iNet router takes between 90 seconds and 4 minutes to get an IP address. The router displays "IP address: Getting..." during this time, and it happens randomly. Sometimes, it gets stuck at "Getting..." and I have to retry multiple times to finally get an IP address.

When connected via Ethernet cable, everything works fine and the IP address is obtained without any issues. However, when using Wi-Fi, it takes a long time to get an IP address..

Details:

  • Firmware: 4.6.2
  • Friend's ISP Router: D-Link DSL-224

What I tried:

  • Disabled the WireGuard client.
  • I didn’t configure DNS or AdGuard.
  • No IP conflicts were found.

Below are Wifi settings, anything should I change?

2.4GHZ (B+G+N)

Canal number: AUTO

Channel width: 20mhz

IGMP Snooping: ON

802.1q: OFF

Encapsulation: LLC

Authentication Type: shared key

Preamble type: Long

SSID broadcast: Disabled

Relay blocking: Disabled

Ethernet to wireless network blocking: Disabled

Multicast to unicast Wi-Fi: Enabled

Aggregation: Enabled

Short GI: Enabled

Fragmentation Threshold: 2346

RTS Threshold: 2347

Beacon Interval: 100

DTIM Interval: 1

Have you set the WLAN MAC in your marble?
When it is a address conflict, it will be a MAC conflict, not IP, because this is not assigned at this time.

It would be interesting if the request or the response is late.
Do you have a wireshark or kismet at hand to look what is flying by on the WLAN? Best on a WLAN Adapter with monitor mode, but for DHCP analysis the promiscuous mode should be enough.

it's a beryl not marble, it's MT-3000.
i use the random mac automatically generated.

I checked the Isp router and didn't found a device with similar mac address so it can't be a conflict of mac address.
I have tried to forget the network and connect to it again(new random mac is generated) but it still takes minutes to get an IP.

one time or two it got an IP is 30 seconds but most of time it takes minutes.

can you please elaborate more on the suggested analysis process

My bad .. There are too many devices on market. 1st world problems :wink: But the issue is the same.

Keep in mind, you are assigning a random MAC for the same hostname. I don't know how the DHCP implementation of D-Link handle this, if the hostname is important here.

The DHCP is defined in RFC2131: RFC 2131 - Dynamic Host Configuration Protocol

At first contact, the client asks a DHCPDISCOVER with its own MAC per broadcast (MAC FF:FF:FF:FF:FF:FF) to UDP port 67 at the interface. The DHCP server answers with a DHCPOFFER, to tell the client which IP is free and the LEASETIME, how long this offer will be valid. The client will choose the offer with a DHCPREQUEST. The DHCP server could answer with a DHCPACK (okay) or a DHCPNACK (not okay).
After the lease is over, the client will ask the server a DHCPREQUEST, if he could play a little longer with the IP.

The server will store this information in the lease 'database' (or file).
Some DHCP Server are also using the hostname, that is optional transmitted in the request (see optional parameter in RFC 2132).

Most of the time we are only seeing 'Client connects to Wifi, Client gets IP (optional Gateway) and we can see cat videos', because the process is so fast, that more then one DHCP will lead to raced condition.
Most of the time you will connect a client to the Wifi, and get wrong data ... In case of an mobile phone it will down rate this Wifi (as 'no Internet available, using other Wifi or mobile data') and search for a new connection. In other cases, the client will get an IP, but no or the wring Gateway without routing ...
Long story short: Make sure you've got only one DHCP server in your network. Except you know exactly what you are doing. But in this case I wouldn't write this text.

One easy way to get on the ground of this issue is a little hand work.
At first you need a client, which is already in the LAN. Wireless or wired should not matter.
Take a look at Wireshark · Download ... could install it at windows, but in my experience it performs better at Linux.
Choose your network card. For example wifi0 or wlan0 or at a Microsoft Surface mlan0, and click 'start capture' ... Wow, this are a lot of packages.
Click with the right mouse button at the row 'protocol' and choose 'use as filter -> selected' ... At the top row the filter will appear, for example: _ws.col.protocol == "TCP". Change TCP to DHCP ...

When your Beryl will connect to the WLAN, it will ask the DHCP Server for an address. And you should be able to see the dialoge above.
Most likely you need administrator privilege at your system to switch the network card in promiscuous mode (which means something like: capture all packages, don't drop packages for another MAC).
Using a hub is much better, because also a switch won't route the packages to your interface ... But you will get at least the broadcasts, maybe not the DHCP(N)ACK.

I am pretty sure you will see the request is send and the D-Link will take quite a time to answer. And a workaround could be to remove the lease from the dhcp entry in the configuration at the D-Link. But we can tell more, if we definetly know this is what happens there.

Or wait 4 to 7 days and I could take a look at the local logs at the Beryl, how the steps are processed there. I am on the road right now.

Today I am on my Beryl AX, but I can't confirm that DHCP will take too long.

I don't want to install too many packets extra. So I am choosing my main router (Fritz!Box 7590, yes I know ... Will be GL-iNet soon, when the Flint3 is released).
At first I booted the Beryl AX without any connection. Then I connected my spare Laptop via RJ45/CAT6 to LAN (should work via WLAN as well). I opened the admin panel on http://192.168.8.1 selected the page 'Internet' and configured the 'Repeater' to my main LAN.

Worked flawless, this is no useful information for you. But If you choose a 5G/Mixed WLAN, the radar check on the channel could take up to 3 minutes. Maybe you want to try 2,4G networks first.

I connected to my beryl via ssh ssh root@192.168.8.1 and entered my Admin Panel password. In Linux terminal you could just use 'ssh', at windows you may need to download Putty first.
In the terminal, I typed ip a to search the repeater connection. My home SSID is listed at the interface 'apcli0'.
I started a new dhcp request with dhcpdiscover -v -i apcli0.
In less then one second I've got a new offer from my DHCP Server (PiHole).

It would be interesting if the command dhcpdiscover -v -i apcli0 would take more time as well. And if so:

  1. At which line it stuck?
  2. Does the correct DHCP server (router IP) answers your request?