2.0 KiB
title | visible |
---|---|
DHCP Server and Routing | true |
[toc]
Installation
# apt install isc-dhcp-server
Configuration
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
Enable routing
# 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
Enable DHCP-managed fixed IP address
host (hostname) {
hardware ethernet (mac);
fixed-address (ip address);
}
Dynamic DNS
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);
}
Client
DHCP Request
# dhclient -v
Release IP
# dhclient -v -r