Howto dhcp server

From Vidalinux Wiki
Jump to navigation Jump to search

first we need to configure our network interfaces for the server:

  • eth0 interface connected to the internet
  • eth1 interface connected to lan

make sure you have network-manager installed:

yum install networkmanager -y

start and enable networkmanager:

systemctl start NetworkManager
systemctl enable NetworkManager

erase default network profiles:

nmcli con del eth0
nmcli con del eth1
nmcli con del Wired\ connection\ 1
nmcli con del Wired\ connection\ 2

configure network interfaces nmcli:

nmcli con add con-name eth0 ipv4.method manual type ethernet ifname eth0 ipv4.addresses 192.168.75.254/24 ipv4.gateway 192.168.75.1 ipv4.dns 4.2.2.1,4.2.2.2 autoconnect yes
nmcli con add con-name eth1 ipv4.method manual type ethernet ifname eth1 ipv4.addresses 192.168.33.1/24  autoconnect yes

configuring dhcp service

first we install the required package:

yum install dhcp -y

edit the dhcp server configuration file at /etc/dhcp/dhcpd.conf:

server-identifier server;
ddns-update-style ad-hoc;
shared-network DHCP {
      option subnet-mask 255.255.255.0;

        subnet 192.168.33.0 netmask 255.255.255.0 {
                range 192.168.33.100 192.168.33.150;
                option broadcast-address 192.168.33.255;
                option routers 192.168.33.1;
                option domain-name "cdqgroup.com";
                option domain-name-servers 192.168.33.1;
                default-lease-time 600;
                max-lease-time 7200;
 }
}

if you want to assign specific ip address to a client add the following:

host linuxwebserver {
        hardware ethernet 00:40:F4:A8:60:5E;
        fixed-address 192.168.3.3;
}

copy and modify dhcpd.service to specify dhcp server network interface:

cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system/

edit ExecStart command on /etc/systemd/system/dhcpd.service and add your network interface:

ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid eth1

then reload systemd and start the service:

systemctl --system daemon-reload
systemctl restart dhcpd.service

make sure to add dhcpd service to start at boot:

systemctl enable dhcpd

Se supone que si tenemos dos interface una de ellas se conecta al internet y otra reparte IP con el servidor DHCP que acabamos de configurar, y lo que deseamos es compartir este internet que viene de la otra interface con la red que esta tomando IP de nuestro servidor DHCP, utilizamos los siguientes comandos para establecer reglas con IPTABLES que nos permitan lograrlo:

iptables --table nat --append POSTROUTING --out-interface INTERNET -j MASQUERADE
iptables --append FORWARD --in-interface NETWORK -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward

INTERNET = eth0 NETWORK = eth1