DHCP
介绍
DHCP(Dynamic Host Configuration Protocol)是一种网络协议,用于在局域网(LAN)中自动分配IP地址和其他网络配置信息给计算机设备。DHCP旨在简化网络管理,允许设备自动获取IP地址,无需手动配置,从而降低了网络配置的复杂性和管理工作量。
在Linux中,可以通过安装DHCP服务器软件来实现DHCP功能,常用的DHCP服务器软件有ISC DHCP Server和dnsmasq。这些DHCP服务器软件允许Linux系统充当DHCP服务器,为局域网中的设备提供IP地址和其他网络配置信息。
以下是DHCP服务器在Linux中的主要功能和工作原理:
-
IP地址分配:
DHCP服务器负责将IP地址动态分配给局域网中的设备。当设备加入网络时,DHCP客户端软件会发送一个DHCP请求,请求分配一个IP地址。DHCP服务器接收请求后,从预先配置的地址池中选择一个可用的IP地址,并将其分配给设备。 -
网关和子网掩码分配:
DHCP服务器不仅分配IP地址,还分配网关和子网掩码等网络配置信息。这些信息允许设备正确地与其他网络设备进行通信,实现互联网访问。 -
租约管理:
DHCP服务器分配的IP地址是有限的资源,为了合理利用IP地址,DHCP服务器通过租约管理机制对分配的IP地址进行管理。每个设备被分配一个IP地址时,会与DHCP服务器建立一个租约,指定IP地址的租期。在租约到期前,设备可以继续使用该IP地址。如果租约到期后设备继续存在于网络上,它需要重新请求IP地址,否则该IP地址会被释放供其他设备使用。 -
动态更新:
DHCP服务器允许设备在连接网络时动态地获取IP地址和其他配置信息。这样,设备的网络配置可以根据不同的网络环境和场景进行动态更新。
DHCP服务器软件的配置文件允许管理员定义IP地址池、网关、子网掩码、租约时长和其他网络配置选项。通过正确配置DHCP服务器,可以大大简化网络管理,提高网络的可扩展性和灵活性。
linux中配置
- 安装dhcp相关的软件包
[root@ydh ~]# yum install dhcp -y
[root@ydh ~]# cd /etc/dhcp/
[root@ydh dhcp]# ls
dhclient.d dhclient-exit-hooks.d dhcpd6.conf dhcpd.conf scripts
- 修改配置文件
拷贝样例文件到/etc/dhcp目录
[root@ydh dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
dhcp服务器里的网关或者dns服务器配置错误,就会误导客户机上不了网
[root@ydh dhcp]# cat dhcpd.conf
# have to hack syslog.conf to complete the redirection).
log-facility local7;#指定日志类型
# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.
# A slightly different configuration for an internal subnet.
subnet 192.168.2.0 netmask 255.255.255.0 { #指定分配ip地址的网段号和子网掩码
range 192.168.2.210 192.168.2.240; #指定地址池的范围,必须是上面的网段里的ip
option domain-name-servers 114.114.114.114; #指定dns服务器地址
option routers 192.168.2.1; #指定网关
default-lease-time 600; #最短租约时间600秒
max-lease-time 7200; #最长租约时间7200秒
}
- 启动
[root@ydh dhcp]# service dhcpd start
Redirecting to /bin/systemctl start dhcpd.service
看进程、看端口
[root@ydh dhcp]# ps aux|grep dhcp
dhcpd 2044 0.0 0.8 105992 8104 ? Ss 21:13 0:00 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid
root 2048 0.0 0.0 112824 988 pts/0 S+ 21:15 0:00 grep --color=auto dhcp
[root@ydh dhcp]# netstat -anplut
- 测试使用
再开一台linux服务器做客户机,网卡类型选择nat/hostonly模式,前面的linux dhcp服务器网卡也改为nat/hostonly模式
nfs 这台linux测试机也改为nat/hostonly
要把VMware 在hostonly 网卡类型上的dhcp功能关闭,因为一个局域网里最好只有一个dhcp服务器,不然会抢生意的
nfs测试机重新获得ip
service network restart
ifdown ens33;ifup ens33
nfs测试查看ip地址是谁分配的
dhclient -lf /var/lib/dhclient/dhclient.leases #保存租约信息到文件dhclient.leases
cat /var/lib/dhcpd/dhcpd.leases
dhcp服务器直接cat /var/lib/dhcpd/dhcpd.leases
查看
这是一开始的
[root@ydh dhcp]# cat /var/lib/dhcpd/dhcpd.leases
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.2.5
server-duid "\000\001\000\001,U*\000\000\014)\020\"=";
可以看到dhcp已经成功分配了一个ip地址了