-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
6 changed files
with
167 additions
and
335 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,96 +1,84 @@ | ||
# 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> | ||
|
||
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). | ||
### Prerequisites | ||
|
||
### Configure Virtual Box | ||
To set up a test environment for DHCP server you will need: | ||
|
||
1. Install Virtual Box and run the following command to create a Host-Only | ||
network: | ||
- Linux AG Home host machine (Virtual) | ||
- Virtual Box | ||
- Virtual machine (guest OS doesn't matter) | ||
|
||
```sh | ||
$ VBoxManage hostonlyif create | ||
``` | ||
### Configure Virtual Box | ||
|
||
You can check its status by `ip a` command. | ||
1. Install Virtual Box and run the following command to create a Host-Only network: | ||
|
||
You can also set up Host-Only network using Virtual Box menu: | ||
```sh | ||
VBoxManage hostonlyif create | ||
``` | ||
|
||
``` | ||
File -> Host Network Manager... | ||
``` | ||
You can check its status by `ip a` command. | ||
|
||
2. Create your virtual machine and set up its network: | ||
You can also set up Host-Only network using Virtual Box menu in *File → Host Network Manager.* | ||
|
||
``` | ||
VM Settings -> Network -> Host-only Adapter | ||
``` | ||
2. Create your virtual machine and set up its network in *VM Settings → Network → Host-only Adapter.* | ||
|
||
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. | ||
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. | ||
|
||
4. To see the current IP addresses on client OS you can use `ip a` command on | ||
Linux or `ipconfig` on Windows. | ||
4. To see the current IP addresses on client OS you can use `ip a` command on Linux or `ipconfig` on Windows. | ||
|
||
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. | ||
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. | ||
|
||
### Configure server | ||
### Configure server | ||
|
||
1. Edit server configuration file `AdGuardHome.yaml`, for example: | ||
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 | ||
range_end: 192.168.56.2 | ||
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 |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,35 +1,27 @@ | ||
# AdGuard Home OpenAPI | ||
|
||
We are using | ||
[OpenAPI specification](https://swagger.io/docs/specification/about/) | ||
to generate AdGuard Home API specification. | ||
We are using [OpenAPI specification](https://swagger.io/docs/specification/about/) to generate AdGuard Home API specification. | ||
|
||
## How To Edit The API Spec | ||
## How to edit the API spec | ||
|
||
The easiest way would be to use | ||
[Swagger Editor](http://editor.swagger.io/) | ||
and just copy/paste the YAML file there. | ||
The easiest way would be to use [Swagger Editor](http://editor.swagger.io/) and just copy/paste the YAML file there. | ||
|
||
## How To Read The API Doc | ||
## How to read the API doc | ||
|
||
1. `yarn install` | ||
2. `yarn start` | ||
3. Open `http://localhost:4000/` | ||
3. open `http://localhost:4000/` | ||
|
||
## Changelog | ||
|
||
[Here](CHANGELOG.md) we keep track of all non-compatible changes that are being | ||
made. | ||
[Here](CHANGELOG.md) we keep track of all non-compatible changes that are being made. | ||
|
||
## Authentication | ||
|
||
If AdGuard Home's web user is password-protected, a web client must use | ||
authentication mechanism when sending requests to server. Basic access | ||
authentication is the most simple method - a client must pass `Authorization` | ||
HTTP header along with all requests: | ||
If AdGuard Home’s web user is password-protected, a web client must use authentication mechanism when sending requests to server. Basic access authentication is the most simple method: a client must pass `Authorization` HTTP header along with all requests: | ||
|
||
```http | ||
Authorization: Basic BASE64_DATA | ||
``` | ||
|
||
Where BASE64_DATA is base64-encoded data for `username:password` string. | ||
Where `BASE64_DATA` is base64-encoded data for `username:password` string. |
Oops, something went wrong.