From 1a8843345eb14f9e995947007dadaa8a38b6d3b3 Mon Sep 17 00:00:00 2001 From: Ainar Garipov Date: Fri, 8 Oct 2021 19:08:41 +0300 Subject: [PATCH] Pull request: DHCP: imp markup, opt docs Merge in DNS/adguard-home-wiki from imp-opt to master Squashed commit of the following: commit 9ddad2fb3a1dd72dc0306eb3ef00fed41e813b98 Author: Ainar Garipov Date: Fri Oct 8 19:07:27 2021 +0300 DHCP: imp wording commit 1baf136849127585fb7d87ef21ff72224aadd570 Author: Ainar Garipov Date: Fri Oct 8 18:51:08 2021 +0300 DHCP: imp markup, opt docs --- Configuration.md | 2 +- DHCP.md | 140 +++++++++++++++++++++++++------------------- Hosts-Blocklists.md | 2 +- 3 files changed, 82 insertions(+), 62 deletions(-) diff --git a/Configuration.md b/Configuration.md index b3359b2..5234603 100644 --- a/Configuration.md +++ b/Configuration.md @@ -82,7 +82,7 @@ Examples: * `[/example.local/]1.1.1.1`: DNS upstream for specific domains, see below. -### Specifying Upstreams For Domains +### Specifying Upstreams For Domains You can specify upstreams that will be used for specific domains using the dnsmasq-like syntax (see the documentation for the option `--server` diff --git a/DHCP.md b/DHCP.md index 2b3c5d1..8bb7c40 100644 --- a/DHCP.md +++ b/DHCP.md @@ -1,4 +1,4 @@ - # AdGuard Home - DHCP Server + # AdGuard Home - DHCP Server * [Prerequisites](#prereq) * [Default Options](#default) @@ -7,96 +7,112 @@ * [DHCPv6 Options](#config-6) * [Automatic Hosts](#autohosts) -*AdGuard Home* can be used as a DHCP server. This page describes how to do that. +AdGuard Home can be used as a DHCP server. This page describes how to do that. + + ## Prerequisites -1. Make sure that you run an OS on which *AdGuard Home* supports DHCP. We - currently don't support DHCP on *Windows*. +1. Make sure that you run an OS on which AdGuard Home supports DHCP. We + currently don't support DHCP on Windows. + 1. Make sure that your machine has a static IP address. + + ## Default Options -By default, *AdGuard Home* will set itself as the DNS server for the DHCP -clients. The default lease time is 24 hours. +By default, AdGuard Home will set itself as the DNS server for the DHCP clients. +The default lease time is 24 hours. + + ## Configuration See the DHCP section in the [configuration] article for the overview of the DHCP configuration options. There are several configuration parameters for DHCP that -can't be set via the *AdGuard Home* administrator dashboard. Those are -described below. +can't be set via the AdGuard Home administrator dashboard. Those are described +below. - ### The `dhcp.dhcpv4.options` Array Field -The `options` field accepts two types of values: `hex` and `ip`. Both start -with the `CODE`, which MUST be an integer in the [1, 255] range. -See [RFC 2132, sec. 3](https://tools.ietf.org/html/rfc2132#section-3). + ### The `dhcp.dhcpv4.options` Array Field -The `hex` format is: +The `options` field accepts four types of values: `hex`, `ip`, `ips`, and +`text`. They all start with the `CODE`, which MUST be an integer in the [1, +255] range. See also [RFC 2132, sec. 3][rfc-2132]. -``` -CODE hex HEX_VALUE -``` +In accordance with [RFC 2131, sec. 4.3.1][rfc-2131], these options override the +default options set by Adguard Home. Which means that if you want to set DNS +server addresses using option `6`, you should also add Adguard Home's own +addresses there. Otherwise, AdGuard Home's filtering won't work for the DHCP +clients who receive these DNS server addresses. -For example, to set option `6`, the DNS server, to two IP addresses, `1.2.3.4` -and `1.2.3.5`, use: + * The `hex` format is: -```yaml -# … -'dhcp': - # … - 'dhcpv4': + ``` + CODE hex HEX_VALUE + ``` + + For example, to set option `6`, the DNS server, to two IP addresses, + `1.2.3.4` and `1.2.3.5`, use: + + ```yaml # … - 'options': - - '6 hex 0102030401020305' -``` + 'dhcp': + # … + 'dhcpv4': + # … + 'options': + - '6 hex 0102030401020305' + ``` -The `ip` format is: + * The `ip` format is: -``` -CODE ip IPV4_VALUE -``` + ``` + CODE ip IPV4_VALUE + ``` -For example, to set option `6`, the DNS server, to one IP address, `1.2.3.4`, -use: + For example, to set option `6`, the DNS server, to one IP address, + `1.2.3.4`, use: -```yaml -# … -'dhcp': - # … - 'dhcpv4': + ```yaml # … - 'options': - - '6 ip 1.2.3.4' -``` + 'dhcp': + # … + 'dhcpv4': + # … + 'options': + - '6 ip 1.2.3.4' + ``` -The `ips` format (since **v0.106.0**) is the same, but with comma-separated -IP-addresses: + * The `ips` format (since **v0.106.0**) is the same, but with comma-separated + IP-addresses: -```yaml -# … -'dhcp': - # … - 'dhcpv4': + ```yaml # … - 'options': - - '6 ips 1.2.3.4,5.6.7.8' -``` + 'dhcp': + # … + 'dhcpv4': + # … + 'options': + - '6 ips 1.2.3.4,5.6.7.8' + ``` -The `text` format (since **v0.106.0**) allows you to put arbitrary UTF-8 text as -the option data. For example: + * The `text` format (since **v0.106.0**) allows you to put arbitrary UTF-8 + text as the option data. For example: -```yaml -# … -'dhcp': - # … - 'dhcpv4': + ```yaml # … - 'options': - - '252 text http://example.com' -``` + 'dhcp': + # … + 'dhcpv4': + # … + 'options': + - '252 text http://example.com' + ``` + + ### DHCPv6 Options @@ -107,6 +123,10 @@ The option `dhcp.dhcpv6.ra_allow_slaac`, if `true`, sends RA packets allowing the clients to choose between SLAAC and DHCPv6. [configuration]: https://github.com/AdguardTeam/AdGuardHome/wiki/Configuration +[rfc-2131]: https://tools.ietf.org/html/rfc2131#page-29 +[rfc-2132]: https://tools.ietf.org/html/rfc2132#section-3 + + ## Automatic Hosts diff --git a/Hosts-Blocklists.md b/Hosts-Blocklists.md index 9ca5914..1718480 100644 --- a/Hosts-Blocklists.md +++ b/Hosts-Blocklists.md @@ -75,7 +75,7 @@ work. --> and alike) for a host is basically the same as blocking that host. ```none - # Returns the IP address 1.2.3.4 for exmaple.org. + # Returns the IP address 1.2.3.4 for example.org. 1.2.3.4 example.org # Blocks example.com by responding with 0.0.0.0. 0.0.0.0 example.com