2023-06-07 20:04:01 +03:00
|
|
|
# Testing DHCP Server
|
2019-03-01 17:39:20 +03:00
|
|
|
|
|
|
|
Contents:
|
2023-06-07 20:04:01 +03:00
|
|
|
* [Test setup with Virtual Box](#vbox)
|
|
|
|
* [Quick test with DHCPTest](#dhcptest)
|
2019-03-01 17:39:20 +03:00
|
|
|
|
2023-06-07 20:04:01 +03:00
|
|
|
## <a href="#vbox" id="vbox" name="vbox">Test setup with Virtual Box</a>
|
2019-03-01 17:39:20 +03:00
|
|
|
|
2023-06-07 20:04:01 +03:00
|
|
|
### Prerequisites
|
2019-03-01 17:39:20 +03:00
|
|
|
|
2023-06-07 20:04:01 +03:00
|
|
|
To set up a test environment for DHCP server you will need:
|
2019-03-01 17:39:20 +03:00
|
|
|
|
2023-06-07 20:04:01 +03:00
|
|
|
* Linux AG Home host machine (Virtual).
|
|
|
|
* Virtual Box.
|
|
|
|
* Virtual machine (guest OS doesn't matter).
|
2019-03-01 17:39:20 +03:00
|
|
|
|
2023-06-07 20:04:01 +03:00
|
|
|
### Configure Virtual Box
|
2019-03-01 17:39:20 +03:00
|
|
|
|
2023-09-07 17:13:48 +03:00
|
|
|
1. Install Virtual Box and run the following command to create a Host-Only
|
2023-06-07 20:04:01 +03:00
|
|
|
network:
|
2019-03-01 17:39:20 +03:00
|
|
|
|
2023-06-07 20:04:01 +03:00
|
|
|
```sh
|
|
|
|
$ VBoxManage hostonlyif create
|
|
|
|
```
|
2019-03-01 17:39:20 +03:00
|
|
|
|
2023-09-07 17:13:48 +03:00
|
|
|
You can check its status by `ip a` command.
|
|
|
|
|
|
|
|
You can also set up Host-Only network using Virtual Box menu:
|
|
|
|
|
2023-06-07 20:04:01 +03:00
|
|
|
```
|
|
|
|
File -> Host Network Manager...
|
|
|
|
```
|
2019-03-01 17:39:20 +03:00
|
|
|
|
2023-06-07 20:04:01 +03:00
|
|
|
2. Create your virtual machine and set up its network:
|
2019-03-01 17:39:20 +03:00
|
|
|
|
2023-06-07 20:04:01 +03:00
|
|
|
```
|
|
|
|
VM Settings -> Network -> Host-only Adapter
|
|
|
|
```
|
2019-03-01 17:39:20 +03:00
|
|
|
|
2023-06-07 20:04:01 +03:00
|
|
|
3. Start your VM, install an OS. Configure your network interface to use
|
|
|
|
DHCP and the OS should ask for a IP address from our DHCP server.
|
2019-03-01 17:39:20 +03:00
|
|
|
|
2023-06-07 20:04:01 +03:00
|
|
|
4. To see the current IP addresses on client OS you can use `ip a` command on
|
|
|
|
Linux or `ipconfig` on Windows.
|
2019-03-01 17:39:20 +03:00
|
|
|
|
2023-06-07 20:04:01 +03:00
|
|
|
5. To force the client OS to request an IP from DHCP server again, you can
|
|
|
|
use `dhclient` on Linux or `ipconfig /release` on Windows.
|
2020-09-24 18:33:11 +03:00
|
|
|
|
2023-06-07 20:04:01 +03:00
|
|
|
### Configure server
|
2020-09-24 18:33:11 +03:00
|
|
|
|
2023-06-07 20:04:01 +03:00
|
|
|
1. Edit server configuration file `AdGuardHome.yaml`, for example:
|
2019-03-01 17:39:20 +03:00
|
|
|
|
2023-06-07 20:04:01 +03:00
|
|
|
```yaml
|
|
|
|
dhcp:
|
2019-03-01 17:39:20 +03:00
|
|
|
enabled: true
|
|
|
|
interface_name: vboxnet0
|
2023-06-07 20:04:01 +03:00
|
|
|
local_domain_name: lan
|
2020-09-24 18:33:11 +03:00
|
|
|
dhcpv4:
|
|
|
|
gateway_ip: 192.168.56.1
|
|
|
|
subnet_mask: 255.255.255.0
|
|
|
|
range_start: 192.168.56.2
|
|
|
|
range_end: 192.168.56.2
|
|
|
|
lease_duration: 86400
|
|
|
|
icmp_timeout_msec: 1000
|
|
|
|
options: []
|
|
|
|
dhcpv6:
|
|
|
|
range_start: 2001::1
|
|
|
|
lease_duration: 86400
|
|
|
|
ra_slaac_only: false
|
|
|
|
ra_allow_slaac: false
|
2023-06-07 20:04:01 +03:00
|
|
|
```
|
|
|
|
|
|
|
|
2. Start the server
|
|
|
|
|
|
|
|
```sh
|
|
|
|
./AdGuardHome -v
|
|
|
|
```
|
|
|
|
|
|
|
|
There should be a message in log which shows that DHCP server is ready:
|
|
|
|
|
|
|
|
```
|
|
|
|
[info] DHCP: listening on 0.0.0.0:67
|
|
|
|
```
|
|
|
|
|
|
|
|
## <a href="#dhcptest" id="dhcptest" name="dhcptest">Quick test with DHCPTest utility</a>
|
|
|
|
|
|
|
|
### Prerequisites
|
2019-03-01 17:39:20 +03:00
|
|
|
|
2023-06-07 20:04:01 +03:00
|
|
|
* [DHCP test utility][dhcptest-gh].
|
2019-03-01 17:39:20 +03:00
|
|
|
|
2023-06-07 20:04:01 +03:00
|
|
|
### Quick test
|
2019-03-01 17:39:20 +03:00
|
|
|
|
2023-06-07 20:04:01 +03:00
|
|
|
The DHCP server could be tested for DISCOVER-OFFER packets with in
|
|
|
|
interactive mode.
|
2019-03-01 17:39:20 +03:00
|
|
|
|
2023-06-07 20:04:01 +03:00
|
|
|
[dhcptest-gh]: https://github.com/CyberShadow/dhcptest
|