Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement DHCP REQUEST handling according to RFC 2131 #4863

Closed
3 tasks done
EugeneOne1 opened this issue Aug 26, 2022 · 0 comments
Closed
3 tasks done

Implement DHCP REQUEST handling according to RFC 2131 #4863

EugeneOne1 opened this issue Aug 26, 2022 · 0 comments
Assignees
Milestone

Comments

@EugeneOne1
Copy link
Member

EugeneOne1 commented Aug 26, 2022

Prerequisites

  • I have checked the Wiki and Discussions and found no answer

  • I have searched other issues and found no duplicates

  • I want to report a bug and not ask a question

Operating system type

macOS (aka Darwin)

CPU architecture

AMD64

Installation

GitHub releases or script from README

Setup

On one machine

AdGuard Home version

Built from master

Description

What did you do?

  1. Request and receive a dynamic lease with the Client Host Name option (12) specified.
  2. Repeat the step above before the lease expired.

Expected result

The latest lease has the same host name in the option 12 as the one before.

Actual result

AdGuard Home considers the sender of the DHCPREQUEST message as the new client and checks it's host name for uniqueness, finds the same client and responds with generated host name.

The subsequent releases will swap these names over and over again.

Additional information

Currently, AdGuard Home processes the DHCPREQUEST messages in a single way (as if it follows the DHCPDISCOVER message). RFC 2131, however, states a few kinds of DHCPREQUEST, such as for rebinding or for lease extension. This leads to incorrect serving of the clients sending standalone DHCPREQUEST messages for those purposes.

@EugeneOne1 EugeneOne1 self-assigned this Aug 26, 2022
@EugeneOne1 EugeneOne1 added the bug label Aug 26, 2022
@EugeneOne1 EugeneOne1 added this to the v0.107.12 milestone Aug 26, 2022
@EugeneOne1 EugeneOne1 changed the title New hostname in each DHCP ACK Implement DHCP REQUEST handling according to RFC 2131 Aug 30, 2022
heyxkhoa pushed a commit to heyxkhoa/AdGuardHome that referenced this issue Mar 20, 2023
Merge in DNS/adguard-home from 4863-fix-dhcp-request to master

Closes AdguardTeam#4863.

Squashed commit of the following:

commit f887201
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Tue Aug 30 20:34:35 2022 +0300

    dhcpd: imp code

commit b63c5d9
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Tue Aug 30 20:19:22 2022 +0300

    dhcpd: fix deadlock

commit 5c03b54
Merge: f076cf8 8733f55
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Tue Aug 30 19:12:27 2022 +0300

    Merge branch 'master' into 4863-fix-dhcp-request

commit f076cf8
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Tue Aug 30 19:08:04 2022 +0300

    dhcpd: imp code, names

commit a09540b
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Tue Aug 30 17:28:39 2022 +0300

    dhcpd: imp code, docs

commit 38b1223
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Tue Aug 30 16:42:32 2022 +0300

    dhcpd: imp docs more

commit ff07c2f
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Tue Aug 30 16:41:42 2022 +0300

    dhcpd: fix docs

commit fafbc2e
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Tue Aug 30 16:35:42 2022 +0300

    dhcpd: imp code

commit 9fe3019
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Tue Aug 30 15:00:56 2022 +0300

    all: imp chlog

commit 1067fe9
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Tue Aug 30 14:54:03 2022 +0300

    dhcpd: log changes

commit 20de395
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Tue Aug 30 14:49:58 2022 +0300

    dhcpd: impl rfc 2131 for req
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants