all: sync with master
This commit is contained in:
@@ -1,61 +1,50 @@
|
||||
# Testing DHCP Server
|
||||
# Testing DHCP Server
|
||||
|
||||
Contents:
|
||||
* [Test setup with Virtual Box](#vbox)
|
||||
* [Quick test with DHCPTest](#dhcptest)
|
||||
|
||||
## <a href="#vbox" id="vbox" name="vbox">Test setup with Virtual Box</a>
|
||||
- [Test setup with Virtual Box](#vbox)
|
||||
- [Quick test with DHCPTest](#dhcptest)
|
||||
|
||||
### Prerequisites
|
||||
## <a href="#vbox" id="vbox" name="vbox">Test setup with Virtual Box</a>
|
||||
|
||||
### Prerequisites
|
||||
|
||||
To set up a test environment for DHCP server you will need:
|
||||
|
||||
* Linux AG Home host machine (Virtual).
|
||||
* Virtual Box.
|
||||
* Virtual machine (guest OS doesn't matter).
|
||||
- Linux AG Home host machine (Virtual)
|
||||
- Virtual Box
|
||||
- Virtual machine (guest OS doesn't matter)
|
||||
|
||||
### Configure Virtual Box
|
||||
### Configure Virtual Box
|
||||
|
||||
1. Install Virtual Box and run the following command to create a Host-Only
|
||||
network:
|
||||
1. Install Virtual Box and run the following command to create a Host-Only network:
|
||||
|
||||
```sh
|
||||
$ VBoxManage hostonlyif create
|
||||
```
|
||||
```sh
|
||||
VBoxManage hostonlyif create
|
||||
```
|
||||
|
||||
You can check its status by `ip a` command.
|
||||
You can check its status by `ip a` command.
|
||||
|
||||
You can also set up Host-Only network using Virtual Box menu:
|
||||
You can also set up Host-Only network using Virtual Box menu in *File → Host Network Manager.*
|
||||
|
||||
```
|
||||
File -> Host Network Manager...
|
||||
```
|
||||
2. Create your virtual machine and set up its network in *VM Settings → Network → Host-only Adapter.*
|
||||
|
||||
2. Create your virtual machine and set up its network:
|
||||
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.
|
||||
|
||||
```
|
||||
VM Settings -> Network -> Host-only Adapter
|
||||
```
|
||||
4. To see the current IP addresses on client OS you can use `ip a` command on Linux or `ipconfig` on Windows.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
4. To see the current IP addresses on client OS you can use `ip a` command on
|
||||
Linux or `ipconfig` on Windows.
|
||||
### Configure server
|
||||
|
||||
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.
|
||||
1. Edit server configuration file `AdGuardHome.yaml`, for example:
|
||||
|
||||
### Configure server
|
||||
|
||||
1. Edit server configuration file `AdGuardHome.yaml`, for example:
|
||||
|
||||
```yaml
|
||||
dhcp:
|
||||
enabled: true
|
||||
interface_name: vboxnet0
|
||||
local_domain_name: lan
|
||||
dhcpv4:
|
||||
```yaml
|
||||
dhcp:
|
||||
enabled: true
|
||||
interface_name: vboxnet0
|
||||
local_domain_name: lan
|
||||
dhcpv4:
|
||||
gateway_ip: 192.168.56.1
|
||||
subnet_mask: 255.255.255.0
|
||||
range_start: 192.168.56.2
|
||||
@@ -63,34 +52,33 @@ To set up a test environment for DHCP server you will need:
|
||||
lease_duration: 86400
|
||||
icmp_timeout_msec: 1000
|
||||
options: []
|
||||
dhcpv6:
|
||||
dhcpv6:
|
||||
range_start: 2001::1
|
||||
lease_duration: 86400
|
||||
ra_slaac_only: false
|
||||
ra_allow_slaac: false
|
||||
```
|
||||
```
|
||||
|
||||
2. Start the server
|
||||
2. Start the server:
|
||||
|
||||
```sh
|
||||
./AdGuardHome -v
|
||||
```
|
||||
```sh
|
||||
./AdGuardHome -v
|
||||
```
|
||||
|
||||
There should be a message in log which shows that DHCP server is ready:
|
||||
There should be a message in log which shows that DHCP server is ready:
|
||||
|
||||
```
|
||||
[info] DHCP: listening on 0.0.0.0:67
|
||||
```
|
||||
```none
|
||||
[info] dhcpv4: listening
|
||||
```
|
||||
|
||||
## <a href="#dhcptest" id="dhcptest" name="dhcptest">Quick test with DHCPTest utility</a>
|
||||
## <a href="#dhcptest" id="dhcptest" name="dhcptest">Quick test with DHCPTest utility</a>
|
||||
|
||||
### Prerequisites
|
||||
### Prerequisites
|
||||
|
||||
* [DHCP test utility][dhcptest-gh].
|
||||
- [DHCP test utility][dhcptest-gh].
|
||||
|
||||
### Quick test
|
||||
### Quick test
|
||||
|
||||
The DHCP server could be tested for DISCOVER-OFFER packets with in
|
||||
interactive mode.
|
||||
The DHCP server could be tested for DISCOVER-OFFER packets with in interactive mode.
|
||||
|
||||
[dhcptest-gh]: https://github.com/CyberShadow/dhcptest
|
||||
|
||||
@@ -84,7 +84,7 @@ func parseDHCPOptionDur(s string) (val dhcpv4.OptionValue, err error) {
|
||||
return nil, fmt.Errorf("decoding dur: %w", err)
|
||||
}
|
||||
|
||||
return dhcpv4.Duration(v.Duration), nil
|
||||
return dhcpv4.Duration(v), nil
|
||||
}
|
||||
|
||||
// parseDHCPOptionUint parses a DHCP option as an unsigned integer. bitSize is
|
||||
|
||||
@@ -144,8 +144,8 @@ func TestParseOpt(t *testing.T) {
|
||||
in: "24 dur 3y",
|
||||
wantCode: nil,
|
||||
wantVal: nil,
|
||||
wantErrMsg: "invalid option string \"24 dur 3y\": decoding dur: " +
|
||||
"unmarshaling duration: time: unknown unit \"y\" in duration \"3y\"",
|
||||
wantErrMsg: `invalid option string "24 dur 3y": decoding dur: time: ` +
|
||||
`unknown unit "y" in duration "3y"`,
|
||||
}, {
|
||||
name: "u8_error",
|
||||
in: "23 u8 256",
|
||||
|
||||
Reference in New Issue
Block a user