当局域网中有大量的主机时,如果逐个为每一台主机手动设置IP地址、默认网关、DNS服务器等网络参数,显然是一个费力而且容易出错的办法。那就就需要使用部署一台——DHCP服务器。
DHCP的典型应用模式: 在网络中搭建一台DHCP服务器,负责集中分配各种网络地址参数(IP地址、子网掩码、广播地址、默认网关地址、DNS服务器地址);其他主机作为DHCP客户机,将网卡配置为自动获取IP地址,即可与DHCP服务器进行通信,完整自动配置的过程。
关于如何在Windows中如何搭建DHCP服务可以参考博文:Windows server 2016 搭建DHCP服务
今天我们在Linux系统中搭建DHCP服务器
配置DHCP服务器
1.安装DHCP服务器软件
首先确定本机的IP地址,
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
//这是网卡的配置文件
其中个选项的含义,如图: 为了方便起见,我们使用yum的方式安装DHCP服务
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# rm -rf *
[root@localhost yum.repos.d]# vim a.repo
[a]
baseurl=file:///mnt
gpgcheck=0
[root@localhost ~]# mount /dev/cdrom /mnt
[root@localhost ~]# yum clean all
//清空yum缓存
[root@localhost ~]# yum -y install dhcp
//安装dhcp服务
2.建立dhcp服务的主配置文件
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
//这是dhcp默认的主配置文件(默认是空的)
[root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
//将dhcp服务的模板复制过来,充当dhcp服务的主配置文件
1)dhcp服务的主配置文件的构成,如图: 2)确定dhcp服务的全局配置
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
……………… //省略部分内容
subnet 192.168.1.0 netmask 255.255.255.0 {
//声明网段,子网掩码
range 192.168.1.10 192.168.1.100;
//分配的地址范围
option domain-name-servers 192.168.1.1;
//DNS服务器地址
option domain-name "internal.example.org";
option routers 192.168.1.1;
//网关地址
option broadcast-address 192.168.1.255;
//广播地址
default-lease-time 60000;
//默认租约时间(单位是秒)
max-lease-time 720000;
//最大租约时间(单位是秒)
}
……………… //省略部分内容
host fantasia {
hardware ethernet 00:0C:29:DC:C9:08;
//客户机的MAC地址
fixed-address 192.168.1.88;
//分配给客户机的IP地址
}
3.启动DHCP服务
[root@localhost ~]# systemctl start dhcpd
//启动DHCP服务
[root@localhost ~]# netstat -anput | grep 67
udp 0 0 0.0.0.0:67 0.0.0.0:* 3592/dhcpd
//查看监听端口是UDP协议67端口
验证试验效果
Windows 客户端(分配的固定的IP地址)
Windows主机可以使用以下命令:
ipconfig /renew:可以为主机重新获取新的IP地址;
ipconfig /release: 释放IP地址;
tracert IP地址:可以测试从当前主机到目的主机经过的网络节点;
route print:查看路由表。
Linux客户端 只需将网卡信息中“BOOTPROTO=dhcp”即可:
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::da26:8c07:1d19:3e1e prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:2b:56:b5 txqueuelen 1000 (Ethernet)
RX packets 138 bytes 16340 (15.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 114 bytes 16307 (15.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Linux客户端可以使用以下命令:
dhclient -d ens33:可以为主机重新获取新的IP地址;
dhclient -r ens33:释放IP地址;
hostnamectl -set hostname:主机名”可以永久使用主机名(使用“bash”命令立即生效);
route add default gw IP地址:添加默认网关;
route del default gw IP地址:删除默认网关;
traceroute IP地址:可以测试从当前主机到目的主机经过的网络节点;
通过查看“/etc/resolv.conf”了解本机的默认DNS地址,对该文件的修改保存退出后会立即生效,不用重启系统(这是获取IP地址的linux主机自动获取的DNS服务器地址)
Linux操作主机默认最多三个DNS服务器地址(第三个以后会被忽略)优先使用第一个DNS地址。