AdGuardHome/dhcpd
Simon Zolin 07db05dd80 * makefile: test: use '-race' parameter on UNIX, don't use it on Windows
Squashed commit of the following:

commit b01379bb223dd28464e8f0b1e8878d3e6b314c26
Merge: 16c7ab79 4efc464e
Author: Simon Zolin <s.zolin@adguard.com>
Date:   Thu Sep 3 10:00:31 2020 +0300

    Merge remote-tracking branch 'origin/master' into fix-test

commit 16c7ab7949ee0a175f89285c1f1fbde0aa27081b
Author: Simon Zolin <s.zolin@adguard.com>
Date:   Wed Sep 2 20:04:00 2020 +0300

    minor

commit af8002b09a3017955e9892db413fa62ce1e4ad81
Author: Simon Zolin <s.zolin@adguard.com>
Date:   Wed Sep 2 19:56:01 2020 +0300

    * makefile: test: use '-race' parameter on UNIX, don't use it on Windows

commit b893358cbe5d1b7dc7db23b0b159ec436c20ee3e
Author: Simon Zolin <s.zolin@adguard.com>
Date:   Wed Sep 2 19:36:48 2020 +0300

    test

commit c52a82b720f61f874d49708e9cc1b307d2f62839
Author: Simon Zolin <s.zolin@adguard.com>
Date:   Wed Sep 2 17:47:51 2020 +0300

    - fix test
2020-09-03 10:10:54 +03:00
..
nclient4 * makefile: test: use '-race' parameter on UNIX, don't use it on Windows 2020-09-03 10:10:54 +03:00
check_other_dhcp_windows.go * POST /control/dhcp/find_active_dhcp: add dhcpv6 server info 2020-08-20 15:19:58 +03:00
check_other_dhcp.go fix linter issues 2020-08-20 15:41:25 +03:00
db.go + dhcpv6 server; rewrite dhcpv4 server; changed API 2020-08-19 18:32:23 +03:00
dhcp_http.go * POST /control/dhcp/find_active_dhcp: add dhcpv6 server info 2020-08-20 15:19:58 +03:00
dhcpd_test.go + dhcp custom options 2020-08-25 14:07:11 +03:00
dhcpd.go Merge: * DHCP fixes 2020-08-25 17:29:49 +03:00
helpers.go + dhcpv6 server; rewrite dhcpv4 server; changed API 2020-08-19 18:32:23 +03:00
network_utils_test.go + dhcpv6 server; rewrite dhcpv4 server; changed API 2020-08-19 18:32:23 +03:00
network_utils.go *: fix golangci-lint warnings 2020-04-05 18:34:43 +03:00
os_windows.go - dhcp: fix build on macos #704 2019-04-23 15:14:26 +03:00
README.md + DHCP: step-by-step guide for test setup with Virtual Box 2019-03-15 14:00:32 +03:00
server.go + dhcp custom options 2020-08-25 14:07:11 +03:00
v4_test.go + dhcp custom options 2020-08-25 14:07:11 +03:00
v4.go - fix linter 2020-08-25 17:44:30 +03:00
v6_test.go + dhcpv6 server; rewrite dhcpv4 server; changed API 2020-08-19 18:32:23 +03:00
v6.go - DHCP: fix crash after adding static lease which replaces the dynamic one 2020-08-25 13:38:52 +03:00
v46_windows.go + dhcpv6 server; rewrite dhcpv4 server; changed API 2020-08-19 18:32:23 +03:00

DHCP server

Contents:

Test setup with Virtual Box

To set up a test environment for DHCP server you need:

  • Linux host machine
  • Virtual Box
  • Virtual machine (guest OS doesn't matter)

Configure client

  1. Install Virtual Box and run the following command to create a Host-Only network:

     $ VBoxManage hostonlyif create
    

    You can check its status by ip a command.

    You can also set up Host-Only network using Virtual Box menu:

     File -> Host Network Manager...
    
  2. Create your virtual machine and set up its network:

     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.

Configure server

  1. Edit server configuration file 'AdGuardHome.yaml', for example:

     dhcp:
       enabled: true
       interface_name: vboxnet0
       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
    
  2. Start the server

     ./AdGuardHome
    

    There should be a message in log which shows that DHCP server is ready:

     [info] DHCP: listening on 0.0.0.0:67