AdguardTeam / AdguardTeam/AdGuardHome

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

未关闭
#6,749 2 条评论 10 个 reaction 已指派 0 人 在 GitHub 查看
enhancement research
主要语言
TypeScript
星标
36.9k
派生
2.5k
PR 合并指标
30 天内没有已合并 PR

描述

### Prerequisites

- [X] I have checked the [Wiki](https://github.com/AdguardTeam/AdGuardHome/wiki) and [Discussions](https://github.com/AdguardTeam/AdGuardHome/discussions/categories/q-a) and found no answer

- [X] I have searched other issues and found no duplicates

- [X] I want to report a bug and not [ask a question or ask for help](https://github.com/AdguardTeam/AdGuardHome/discussions/categories/q-a)

- [X] I have set up AdGuard Home correctly and [configured clients to use it](https://github.com/AdguardTeam/AdGuardHome/wiki/Clients). (Use the [Discussions](https://github.com/AdguardTeam/AdGuardHome/discussions/categories/q-a) for help with installing and configuring clients.)

### 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:
```yaml
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:
```log
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:
```sh
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:
```diff
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:
```diff
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:
```diff
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_

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。