AdGuardHome icon indicating copy to clipboard operation
AdGuardHome copied to clipboard

DHCP server does not announce local_domain_name info (dhcp option 15)

Open cenk opened this issue 6 months ago • 0 comments

Prerequisites

Platform (OS and CPU architecture)

Linux, ARMv6

Installation

GitHub releases or script from README

Setup

On one machine

AdGuard Home version

v0.107.44

Action

I'm not really sure if this is a bug or a design policy, but I wanted to report it because I was having problems with the local network.

The local_domain_name option on the DHCP server is never announced on the network.

If you want to be announced, dhcp option 15 and/or 119 must be added manually. Logs are below.

config without manual addition:

dhcp:
  enabled: true
  interface_name: eth0
  local_domain_name: ulas
  dhcpv4:
    gateway_ip: 10.0.0.1
    subnet_mask: 255.255.255.0
    range_start: 10.0.0.100
    range_end: 10.0.0.200
    lease_duration: 86400
    icmp_timeout_msec: 1000
  dhcpv6:
    range_start: ""
    lease_duration: 86400
    ra_slaac_only: false
    ra_allow_slaac: false

AGH verbose log without manual addition:

2024/02/19 12:56:08.911599 9656#87 [debug] dhcpv4: received message: DHCPv4 Message
  opcode: BootRequest
  hwtype: Ethernet
  hopcount: 0
  transaction ID: 0x4acdd0f4
  num seconds: 0
  flags: Broadcast (0x8000)
  client IP: 0.0.0.0
  your IP: 0.0.0.0
  server IP: 0.0.0.0
  gateway IP: 0.0.0.0
  client MAC: e4:d5:3d:a1:95:28
  server hostname:
  bootfile name:
  options:
    Host Name: CENK-PC
    Requested IP Address: 10.0.0.106
    DHCP Message Type: REQUEST
    Parameter Request List: Subnet Mask, Router, Domain Name Server, Domain Name, Perform Router Discovery, Static Routing Table, Vendor Specific Information, NetBIOS over TCP/IP Name Server, NetBIOS over TCP/IP Node Type, NetBIOS over TCP/IP Scope, DNS Domain Search List, Classless Static Route, unknown (249), unknown (252)
    Class Identifier: MSFT 5.0
    Client identifier: [1 228 213 61 161 149 40]
    FQDN: [0 0 0 67 69 78 75 45 80 67]

2024/02/19 12:56:08.935708 9656#87 [info] dhcp: stored 10 leases in "/opt/AdGuardHome/data/leases.json"
2024/02/19 12:56:08.938537 9656#87 [debug] dhcpv4: sending 302 bytes to 255.255.255.255:68: DHCPv4 Message
  opcode: BootReply
  hwtype: Ethernet
  hopcount: 0
  transaction ID: 0x4acdd0f4
  num seconds: 0
  flags: Broadcast (0x8000)
  client IP: 0.0.0.0
  your IP: 10.0.0.106
  server IP: 0.0.0.0
  gateway IP: 0.0.0.0
  client MAC: e4:d5:3d:a1:95:28
  server hostname:
  bootfile name:
  options:
    Subnet Mask: ffffff00
    Router: 10.0.0.1
    Domain Name Server: 10.0.0.15, 10.0.0.15
    Perform Router Discovery: [1]
    IP Addresses Lease Time: 24h0m0s
    DHCP Message Type: ACK
    Server Identifier: 10.0.0.15
    Client identifier: [1 228 213 61 161 149 40]
    FQDN: [3 255 255 99 101 110 107 45 112 99]

tcpdump without manual addition:

alpine [~]$ doas tcpdump -v -n -i eth0 udp port 67 and port 68
tcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
12:51:04.408922 IP (tos 0x0, ttl 128, id 30157, offset 0, flags [none], proto UDP (17), length 334)
    0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from e4:d5:3d:a1:95:28, length 306, xid 0x2bcebcf1, Flags [Broadcast]
          Client-Ethernet-Address e4:d5:3d:a1:95:28
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message (53), length 1: Request
            Client-ID (61), length 7: ether e4:d5:3d:a1:95:28
            Requested-IP (50), length 4: 10.0.0.106
            Hostname (12), length 7: "CENK-PC"
            FQDN (81), length 10: "CENK-PC"
            Vendor-Class (60), length 8: "MSFT 5.0"
            Parameter-Request (55), length 14:
              Subnet-Mask (1), Default-Gateway (3), Domain-Name-Server (6), Domain-Name (15)
              Router-Discovery (31), Static-Route (33), Vendor-Option (43), Netbios-Name-Server (44)
              Netbios-Node (46), Netbios-Scope (47), Unknown (119), Classless-Static-Route (121)
              Classless-Static-Route-Microsoft (249), Unknown (252)
12:51:04.429063 IP (tos 0x0, ttl 64, id 43161, offset 0, flags [DF], proto UDP (17), length 330)
    10.0.0.15.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 302, xid 0x2bcebcf1, Flags [Broadcast]
          Your-IP 10.0.0.106
          Client-Ethernet-Address e4:d5:3d:a1:95:28
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            Subnet-Mask (1), length 4: 255.255.255.0
            Default-Gateway (3), length 4: 10.0.0.1
            Domain-Name-Server (6), length 8: 10.0.0.15,10.0.0.15
            Router-Discovery (31), length 1: Y
            Lease-Time (51), length 4: 86400
            DHCP-Message (53), length 1: ACK
            Server-ID (54), length 4: 10.0.0.15
            Client-ID (61), length 7: ether e4:d5:3d:a1:95:28
            FQDN (81), length 10: [SO] 255/255 "cenk-pc"

But if I add option 15 manually, there is no problem.

config with manual addition:

dhcp:
  enabled: true
  interface_name: eth0
  local_domain_name: ulas
  dhcpv4:
    gateway_ip: 10.0.0.1
    subnet_mask: 255.255.255.0
    range_start: 10.0.0.100
    range_end: 10.0.0.200
    lease_duration: 86400
    icmp_timeout_msec: 1000
    options:
+     - 15 text ulas
  dhcpv6:
    range_start: ""
    lease_duration: 86400
    ra_slaac_only: false
    ra_allow_slaac: false

AGH verbose log with manual addition:

2024/02/19 13:10:42.623226 9980#116 [debug] dhcpv4: received message: DHCPv4 Message
  opcode: BootRequest
  hwtype: Ethernet
  hopcount: 0
  transaction ID: 0x67ab60ca
  num seconds: 0
  flags: Broadcast (0x8000)
  client IP: 0.0.0.0
  your IP: 0.0.0.0
  server IP: 0.0.0.0
  gateway IP: 0.0.0.0
  client MAC: e4:d5:3d:a1:95:28
  server hostname:
  bootfile name:
  options:
    Host Name: CENK-PC
    Requested IP Address: 10.0.0.106
    DHCP Message Type: REQUEST
    Parameter Request List: Subnet Mask, Router, Domain Name Server, Domain Name, Perform Router Discovery, Static Routing Table, Vendor Specific Information, NetBIOS over TCP/IP Name Server, NetBIOS over TCP/IP Node Type, NetBIOS over TCP/IP Scope, DNS Domain Search List, Classless Static Route, unknown (249), unknown (252)
    Class Identifier: MSFT 5.0
    Client identifier: [1 228 213 61 161 149 40]
    FQDN: [0 0 0 67 69 78 75 45 80 67]

2024/02/19 13:10:42.643638 9980#116 [info] dhcp: stored 10 leases in "/opt/AdGuardHome/data/leases.json"
2024/02/19 13:10:42.647488 9980#116 [debug] dhcpv4: sending 308 bytes to 255.255.255.255:68: DHCPv4 Message
  opcode: BootReply
  hwtype: Ethernet
  hopcount: 0
  transaction ID: 0x67ab60ca
  num seconds: 0
  flags: Broadcast (0x8000)
  client IP: 0.0.0.0
  your IP: 10.0.0.106
  server IP: 0.0.0.0
  gateway IP: 0.0.0.0
  client MAC: e4:d5:3d:a1:95:28
  server hostname:
  bootfile name:
  options:
    Subnet Mask: ffffff00
    Router: 10.0.0.1
    Domain Name Server: 10.0.0.15, 10.0.0.15
+   Domain Name: ulas
    Perform Router Discovery: [1]
    IP Addresses Lease Time: 24h0m0s
    DHCP Message Type: ACK
    Server Identifier: 10.0.0.15
    Client identifier: [1 228 213 61 161 149 40]
    FQDN: [3 255 255 99 101 110 107 45 112 99]

tcpdump with manual addition:

alpine [~]$ doas tcpdump -v -n -i eth0 udp port 67 and port 68
tcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
13:05:44.848009 IP (tos 0x0, ttl 128, id 30160, offset 0, flags [none], proto UDP (17), length 334)
    0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from e4:d5:3d:a1:95:28, length 306, xid 0x2931f90e, Flags [Broadcast]
          Client-Ethernet-Address e4:d5:3d:a1:95:28
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message (53), length 1: Request
            Client-ID (61), length 7: ether e4:d5:3d:a1:95:28
            Requested-IP (50), length 4: 10.0.0.106
            Hostname (12), length 7: "CENK-PC"
            FQDN (81), length 10: "CENK-PC"
            Vendor-Class (60), length 8: "MSFT 5.0"
            Parameter-Request (55), length 14:
              Subnet-Mask (1), Default-Gateway (3), Domain-Name-Server (6), Domain-Name (15)
              Router-Discovery (31), Static-Route (33), Vendor-Option (43), Netbios-Name-Server (44)
              Netbios-Node (46), Netbios-Scope (47), Unknown (119), Classless-Static-Route (121)
              Classless-Static-Route-Microsoft (249), Unknown (252)
13:05:44.864974 IP (tos 0x0, ttl 64, id 42800, offset 0, flags [DF], proto UDP (17), length 336)
    10.0.0.15.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 308, xid 0x2931f90e, Flags [Broadcast]
          Your-IP 10.0.0.106
          Client-Ethernet-Address e4:d5:3d:a1:95:28
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            Subnet-Mask (1), length 4: 255.255.255.0
            Default-Gateway (3), length 4: 10.0.0.1
            Domain-Name-Server (6), length 8: 10.0.0.15,10.0.0.15
+           Domain-Name (15), length 4: "ulas"
            Router-Discovery (31), length 1: Y
            Lease-Time (51), length 4: 86400
            DHCP-Message (53), length 1: ACK
            Server-ID (54), length 4: 10.0.0.15
            Client-ID (61), length 7: ether e4:d5:3d:a1:95:28
            FQDN (81), length 10: [SO] 255/255 "cenk-pc"

Expected result

The DHCP server should announce the local_domain_name.

Actual result

DHCP server does not announce local_domain_name info.

Additional information and/or screenshots

No response

cenk avatar Feb 19 '24 11:02 cenk