IPOE Renewal Loop

IPoE related questions
Post Reply
Phyllo
Posts: 11
Joined: 25 Aug 2021, 19:28

IPOE Renewal Loop

Post by Phyllo »

Hi,

I am wondering if anyone has run into this issue where the router constantly tries to renew and gets a different IP? We have been using Mikrotiks to connect customers on IPOE without any issues, but we have also allowed customers to use their own routers. We are often finding that some of the routers that the customers use have issues with reconnecting to IPOE. The pattern is that the first connection will always work and stays stable, but if there is a drop in connection to the IPOE server then when the router attempts a renewal it basically goes into a renewal loop for lack of a better term; it never gets an actual connection to the customer again until the ethernet is reset. This is most notable on Google routers.

I did packet captures and what I have noticed is that the Google routers are always using broadcasts for all responses back to the IPOE server, but the Mikrotik when it gets its lease switches to unicast.
The Mikrotik (which works) gets a NAK back saying the "session doesn't exist", but the Google router gets a NAK back saying "Wrong server id".

So the scenario is:

Lease Time: 10 minutes
1. Router gets a connection and is successful in getting online.
2. Something disrupts the path temporarily to the IPOE server.
3. Router at the 5 minute mark attempts to renew the IP and receives a NAK, but instead of saying it does not have the session it says that it is talking to the wrong server.
4. Router is offered a lease, it accepts it, then after a few minutes go buy the same process repeats.

Would the IPOE server saying that it has the wrong server cause this type of behavior?
Is there any settings on the IPOE server which I can set that will force the google router to use unicast instead of broadcasts?

Here is the IPOE section of the concentrator:

Code: Select all

[ipoe]
#noauth=1
verbose=1
username=lua:username
password=csid
lua-file=/etc/accel-ppp-mysql-username.lua
lease-time=600
renew-time=600
max-lease-time=600
shared=1
ifcfg=1
mode=L3
start=dhcpv4
vlan-mon=ens2f3,1-4095
vlan-timeout=60
vlan-name=%I.%N
idle-timeout=50
interface=re:^ens2f3\.
gw-ip-address=REDACTED
weight=100
Thanks ahead of time!
dimka88
Posts: 866
Joined: 13 Oct 2014, 05:51
Contact:

Re: IPOE Renewal Loop

Post by dimka88 »

Hi, I think you have to use renew-time 1/2 from lease time, it can be calculated automatically if this param not defined. As for max-lease-time, it also should be great than lease time, you will not lose anything if you increase it to 1200

Code: Select all

lease-time=600
renew-time=300
max-lease-time=1200
It will be good to get accel-ppp logs and dump of DHCP packets with and without problem.
Phyllo
Posts: 11
Joined: 25 Aug 2021, 19:28

Re: IPOE Renewal Loop

Post by Phyllo »

Hi dimka,

Thanks for the response; I'll give that a try tonight!
Definitely worth a shot. That could cause a race condition with renewal potentially.

I'll post the results when I try it.

Attached are the DHCP Packet captures from the router. I separated the working from the not working instances.
Attachments
Wireshark-DHCP-CAPS.7z
(1.91 KiB) Downloaded 366 times
Phyllo
Posts: 11
Joined: 25 Aug 2021, 19:28

Re: IPOE Renewal Loop

Post by Phyllo »

I tried this last night, but unfortunately, I am still getting the same type of captures as the above.
Last edited by Phyllo on 07 Jan 2023, 01:00, edited 1 time in total.
Phyllo
Posts: 11
Joined: 25 Aug 2021, 19:28

Re: IPOE Renewal Loop

Post by Phyllo »

To update. The issue here was because of the iPOE pool configuration.
Google routers only respond in broadcasts, and because of the /32 mask, the broadcast never got to the gateway.

After I adjusted the pool size and mask to standard, the google router stopped acting up.

Why it worked some of the time, though, is a mystery.
Either way, I'm glad it is working now!
Post Reply