搭建dhcp服务之前先简单的讲一下什么是dhcp服务,DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段lP地址范围,客户机登录服务器时就可以自动获得服务器分配的lP地址和子网掩码。
那么这个过程是什么样子的呢?
先看下网络拓扑,这是最简单最经典的dhcp拓扑结构,一台server多台client。
DHCP方式获取IP地址过程主要是四步:
第一步,客户机发送Discover广播报文,原ip地址为0.0.0.0,目的ip255.255.255.255,目的mac全f。报文携带信息包括了,客户机的主机名和mac地址。
第二步,服务器收到后响应客户机,向客户机发送offer报文,为客户机提供详细的配置信息(ip地址,子网掩码,默认网关,租约信息)。
第三步,DHCP客户机从接收到的第一个DHCP OFFER消息中选择IP地址。发出IP地址的DHCP server将该地址保留。这样该地址就不能提供给其它DHCP客户机。当客户机从第一个DHCP server接收DHCP OFFER并选择IP地址后,DHCP租约的第三过程发生。客户机将DHCP REQUEST消息广播到全部的DHCP server,表明它接受提供的内容。DHCP REQUEST消息包含为该客户机提供IP配置的server的服务标识符(IP地址)。DHCPserver查看server标识符字段。以确定它自己是否被选择为指定的客户机提供IP地址,假设那些DHCP OFFER被拒绝。则DHCP server会取消提供并保留其IP地址以用于下一个IP租约请求。
第四步,服务器确认发送ack报文,终端收到ack后就把ip地址等信息跟网卡绑定。
下面再来聊聊具体架设。
环境:VMware 服务端:Ubuntu 18 客户端:winxp 软件:ISC-DHCP-SERVER
1.首先我们需要安装我们需要用到的软件ISC-DHCP-SERVER
sudo apt install isc-dhcp-server
2.我们需要修改两个配置文件。
首先是/etc/dhcp/dhcpd.conf
我们根据自己的配置,配置需要分配的ip地址就可以了。
第二个是/etc/default/isc-dhcp-server
这个配置文件是配置我们将要将哪个接口用来服务。
按照自己的实际情况配置即可。用ifconfig查看下就知道接口名字了。
还有一个配置文件是dhcpd.conf,按照实际配置修改
nano -w /etc/dhcp/dhcpd.conf
# Sample /etc/dhcpd.conf # (add your comments here) default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2; option domain-name "mydomain.example"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; range 192.168.1.150 192.168.1.200; }
3.服务的开启和关闭
sudo service isc-dhcp-server restart sudo service isc-dhcp-server start sudo service isc-dhcp-server stop
我们可以看到client已经拿到ip了,但是注意此时是不能上网的我们还需要去开启转发设置下iptable规则就可以了
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -i ens34 -o ens33 -j ACCEPT
iptables -A FORWARD -i ens33 -o ens34 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE
来源:CSDN
作者:NewSunRise
链接:https://blog.csdn.net/ak66366/article/details/104071512