apt install isc-dhcp-server
Edit /etc/default/isc-dhcp-server
INTERFACESv4="[INTERFACE 1] [INTERFACE 2]"
Edit /etc/dhcp/dhcpd.conf
to set a subnet
subnet [NETADDRESS] netmask [SUBNETMASK] {
range [FIRST DHCP] [LAST DHCP];
option subnet-mask [SUBNETMASK];
option routers [GATEWAY];
option domain-name "[NAME]";
option domain-name-servers [DNS SERVER];
}
Edit /etc/network/interfaces
auto [INTERFACE]
iface [INTERFACE] inet static
address [ADDRESS]
network [NETADDRESS]
netmask [NETMASK]
broadcast [BROADCAST]
Enable the interface
ifup [INTERFACE]
Restart DHCP Server
systemctl restart isc-dhcp-server.service
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.d/80-forwarding.conf
sysctl -p /etc/sysctl.d/80-forwarding.conf
iptables -t nat -A POSTROUTING -o [WAN INTERFACE] -j MASQUERADE
iptables -A FORWARD -i [LAN INTERFACE] -j ACCEPT
Make iptables permanent
Select Yes
during the installation to save current rules
apt install iptables-persistent
host [HOSTNAME] {
hardware ethernet [MAC ADDRESS];
fixed-address [IP ADDRESS];
}
Needs a supported DNS like BIND or PowerDNS
Configure your DNS server to accept updates
Add the following snippet to your /etc/dhcp/dhcpd.conf
file
How to generate the key is also described in the DNS article
ddns-updates on;
ddns-update-style interim;
update-static-leases on;
ddns-domainname "testpdns";
ddns-rev-domainname "in-addr.arpa.";
key "[KEYNAME]" {
algorithm hmac-md5;
secret "[KEY]";
};
zone testpdns {
primary 127.0.0.1;
key [KEYNAME];
}
zone 7.168.192.in-addr.arpa. {
primary 127.0.0.1;
key [KEYNAME];
}
DHCP Request
dhclient -v
Release IP
dhclient -v -r