2.0 KiB
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