准备一台linux服务器
linux环境,要求服务器能够上网
[root@lb-1 ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
[root@lb-1 ~]#
[root@lb-1 ~]# ping www.baidu.com -c 2
PING www.baidu.com (14.215.177.38) 56(84) bytes of data.
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=128 time=16.0 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=128 time=15.5 ms
--- www.baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 15.512/15.757/16.003/0.275 ms
[root@lb-1 ~]#
步骤:
1.安装dhcp相关的软件包
[root@lb-1 ~]# yum install dhcp -y
2.修改配置文件,配置dhcp服务器
[root@lb-1 ~]# cd /etc/dhcp/
[root@lb-1 dhcp]# ls
dhclient.d dhclient-exit-hooks.d dhcpd6.conf dhcpd.conf scripts
[root@lb-1 dhcp]#
dhcpd.conf 是我们的主要的配置文件–》ipv4
dhcpd6.conf 是ipv6的配置文件
拷贝下载的dhcp中的样例文件到/etc/dhcp目录
[root@lb-1 dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
编辑配置文件
[root@lb-1 dhcp]# vim /etc/dhcp/dhcpd.conf
[root@lb-1 dhcp]# cat /etc/dhcp/dhcpd.conf
# have to hack syslog.conf to complete the redirection).
log-facility local7; #指定日志类型
# A slightly different configuration for an internal subnet.
subnet 192.168.88.0 netmask 255.255.255.0 { #指定分配ip地址的网段号和子网掩码
range 192.168.88.10 192.168.88.254; #指定地址池的范围,必须是上面的网段里的ip
option domain-name-servers 114.114.114.114; #指定dns服务器地址
option routers 192.168.88.1; #指定网关
default-lease-time 600; #最短租约时间600秒
max-lease-time 7200; #最长租约时间7200秒
}
dhcp服务器里的网关或者dns服务器配置错误,就会误导客户机上不了网
3.启动服务及调试
如何服务启动不起来,需要在接口上配置dhcp服务器里分配的网段的ip地址
在我的实验里,需要在ens33接口配置192.168.88.0网段的ip,这里IP地址配置为192.168.88.1
配置地址
[root@lb-1 network-scripts]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:37:fb:39 brd ff:ff:ff:ff:ff:ff
inet 192.168.88.1/24 brd 192.168.88.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
[root@lb-1 network-scripts]#
再次启动dhcp服务
[root@lb-1 network-scripts]# service dhcpd start
Redirecting to /bin/systemctl start dhcpd.service
如何知道dhcp服务启动了呢?
1.看进程 dhcpd
[root@lb-1 network-scripts]# ps aux|grep dhcpd
dhcpd 3890 0.0 0.2 105996 11964 ? Ss 11:37 0:00 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid
root 3893 0.0 0.0 112832 2292 pts/3 S+ 11:37 0:00 grep --color=auto dhcpd
2.看端口 67 udp
[root@lb-1 network-scripts]# netstat -anplut|grep dhcp
udp 0 0 0.0.0.0:67 0.0.0.0:* 3890/dhcpd
[root@lb-1 network-scripts]#
4.测试使用
1.再开一台linux服务器做客户机,网卡类型选择hostonly模式,前面的linux dhcp服务器网卡也是hostonly模式
web3 :这台linux测试服务器
2.要把VMware 在设置中hostonly 网卡类型上的dhcp功能关闭,因为一个局域网里最好只有一个dhcp服务器,不然会冲突:
在测试的客户机上使用dhcp动态获得ip地址
[root@web3 ~]# cd /etc/sysconfig/network-scripts/
[root@web3 network-scripts]# ls
ifcfg-ens33 ifdown-eth ifdown-post ifdown-Team ifup-aliases ifup-ipv6 ifup-post ifup-Team init.ipv6-global
ifcfg-lo ifdown-ippp ifdown-ppp ifdown-TeamPort ifup-bnep ifup-isdn ifup-ppp ifup-TeamPort network-functions
ifdown ifdown-ipv6 ifdown-routes ifdown-tunnel ifup-eth ifup-plip ifup-routes ifup-tunnel network-functions-ipv6
ifdown-bnep ifdown-isdn ifdown-sit ifup ifup-ippp ifup-plusb ifup-sit ifup-wireless
[root@web3 network-scripts]# cat ifcfg-ens33
BOOTPROTO="dhcp" #指定动态获得ip地址 dhcp表示动态获得 none表示静态配置
NAME="ens33"
DEVICE="ens33" #网卡的名字
ONBOOT="yes" #开机激活网卡
[root@web3 network-scripts]#
[root@web3 network-scripts]# service network restart 刷新网卡服务,重新去获得ip地址
[root@web3 network-scripts]# ifdown ens33;ifup ens33 刷新网卡服务,重新去获得ip地址
正在确定 ens33 的 IP 信息... 完成。
保存租约信息到文件dhclient.leases
dhclient -lf /var/lib/dhclient/dhclient.leases
启动网卡从新获得ip地址
service network restart
如果要释放地址: dhclient -r ens33
在dhcp服务器上看给哪些客户机分配的ip地址
记录到文件里/var/lib/dhcpd/dhcpd.leases
cat /var/lib/dhcpd/dhcpd.leases
在客户机上查看租约信息:
dhclient -lf /var/lib/dhclient/dhclient.leases
cat /var/lib/dhclient/dhclient.leases
如果修改了配置文件,需要刷新服务才能生效
[root@lb-1 dhcp]# vim dhcpd.conf
# have to hack syslog.conf to complete the redirection).
log-facility local7;
# A slightly different configuration for an internal subnet.
subnet 192.168.88.0 netmask 255.255.255.0 {
range 192.168.88.10 192.168.88.254;
option domain-name-servers 114.114.114.114;
option routers 192.168.88.88;
default-lease-time 600;
max-lease-time 7200;
}
[root@lb-1 dhcp]# service dhcpd restart
Redirecting to /bin/systemctl restart dhcpd.service
提醒:网关和dns服务器一定要配置正确,不然后导致客户机获得错误的网关和dns会不能上网