14.4 分配固定IP地址

在DHCP协议中有个术语是“预约”,它用来确保局域网中特定的设备总是获取到固定的IP地址。换句话说,就是dhcpd服务程序会把某个IP地址私藏下来,只将其用于相匹配的特定设备。

要想把某个IP地址与某台主机进行绑定,就需要用到这台主机的MAC地址。MAC地址是网卡上面的一串独立的标识符,具备唯一性,因此不会存在冲突的情况,如图14-6所示。DHCP自动获取IP地址MAC地址

图14-6 查看运行Linux系统的主机MAC地址

在Linux系统或Windows系统中,都可以通过查看网卡的状态来获知主机的MAC地址。在dhcpd服务程序的配置文件中,按照如下格式将IP地址与MAC地址进行绑定。

host 主机名称 {
hardwareethernet 该主机的MAC地址;
fixed-address 欲指定的IP地址;
}

如果不方便查看主机的MAC地址,该怎么办呢?比如,要给老板使用的主机绑定IP地址,总不能随便就去查看老板的主机信息吧。针对这种情况,刘遄老师告诉大家一个很好的办法。我们首先启动dhcpd服务程序,为老板的主机分配一个IP地址,这样就会在DHCP服务器本地的日志文件中保存这次的IP地址分配记录。然后查看日志文件,就可以获悉主机的MAC地址了(即下面加粗的内容)。

  1. [root@linuxprobe ~]# tail -f /var/log/messages
  2. Mar 30 05:33:17 localhost dhcpd: Copyright 2004-2013 Internet Systems Consortium.
  3. Mar 30 05:33:17 localhost dhcpd: All rights reserved.
  4. Mar 30 05:33:17 localhost dhcpd: For info, please visit https://www.isc.org/software/dhcp/
  5. Mar 30 05:33:17 localhost dhcpd: Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file
  6. Mar 30 05:33:17 localhost dhcpd: Wrote 0 leases to leases file.
  7. Mar 30 05:33:17 localhost dhcpd: Listening on LPF/eno16777728/00:0c:29:c4:a4:09/192.168.10.0/24
  8. Mar 30 05:33:17 localhost dhcpd: Sending on LPF/eno16777728/00:0c:29:c4:a4:09/192.168.10.0/24
  9. Mar 30 05:33:17 localhost dhcpd: Sending on Socket/fallback/fallback-net
  10. Mar 30 05:33:26 localhost dhcpd: DHCPDISCOVER from 00:0c:29:27:c6:12 via eno16777728
  11. Mar 30 05:33:27 localhost dhcpd: DHCPOFFER on 192.168.10.50 to 00:0c:29:27:c6:12 (WIN-APSS1EANKLR) via eno16777728
  12. Mar 30 05:33:29 localhost dhcpd: DHCPDISCOVER from 00:0c:29:27:c6:12 (WIN-APSS1EANKLR) via eno16777728
  13. Mar 30 05:33:29 localhost dhcpd: DHCPOFFER on 192.168.10.50 to 00:0c:29:27:c6:12 (WIN-APSS1EANKLR) via eno16777728
  14. Mar 30 05:33:29 localhost dhcpd: DHCPREQUEST for 192.168.10.50 (192.168.10.10) from 00:0c:29:27:c6:12 (WIN-APSS1EANKLR) via eno16777728
  15. Mar 30 05:33:29 localhost dhcpd: DHCPACK on 192.168.10.50 to 00:0c:29:27:c6:12 (WIN-APSS1EANKLR) via eno16777728

之前我在线下讲课时,讲完DHCP服务后总是看到有些学员在挠头。起初我很不理解,毕竟dhcpd服务程序是Linux系统中一个很简单的实验,总共就那么十几行的配置参数还能写错?后来发现了原因—有些学员是以Windows系统为对象做的IP与MAC地址的绑定实验。而在Windows系统中看到的MAC地址,其格式类似于00-0c-29-27-c6-12,间隔符为减号(-)。但是在Linux系统中,MAC地址的间隔符则变成了冒号(:)。

  1. [root@linuxprobe ~]# vim /etc/dhcp/dhcpd.conf
  2. ddns-update-style none;
  3. ignore client-updates;
  4. subnet 192.168.10.0 netmask 255.255.255.0 {
  5. range 192.168.10.50 192.168.10.150;
  6. option subnet-mask 255.255.255.0;
  7. option routers 192.168.10.1;
  8. option domain-name "linuxprobe.com";
  9. option domain-name-servers 192.168.10.1;
  10. default-lease-time 21600;
  11. max-lease-time 43200;
  12. host linuxprobe {
  13. hardware ethernet 00:0c:29:27:c6:12;
  14. fixed-address 192.168.10.88;
  15. }
  16. }

确认参数填写正确后就可以保存退出配置文件,然后就可以重启dhcpd服务程序了。

  1. [root@linuxprobe ~]# systemctl restart dhcpd

需要说明的是,如果您刚刚为这台主机分配了IP地址,则它的IP地址租约时间还没有到期,因此不会立即换成新绑定的IP地址。要想立即查看绑定效果,则需要重启一下客户端的网络服务,如图14-7所示。

绑定指定的IP地址

图14-7 重启客户端的网络服务,查看绑定效果

出现问题?大胆提问!

因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~

Linux技术交流请加A群:560843(),B群:340829(推荐),C群:463590(推荐),点此查看全国群

*本群特色:通过口令验证确保每一个群员都是《Linux就该这么学》的读者,答疑更有针对性,不定期免费领取定制礼品。

本章节的复习作业(答案就在问题的下一行哦,用鼠标选中即可看到的~)

1.简述DHCP协议的主要用途。

答:为局域网内部的设备或网络供应商自动分配IP地址等参数。

2.DHCP协议能够为客户端分配什么网卡资源?

答:可为客户端分配IP地址、子网掩码、网关地址以及DNS地址等信息。

3.真正供用户使用的IP地址范围是作用域还是地址池?

答:地址池,因为作用域内还会包含要排除掉的IP地址。

4.简述DHCP协议中“租约”的作用。

答:租约分为默认租约时间和最大租约时间,用于在租约时间到期后自动回收主机的IP地址,以免造成IP地址的浪费。

5.把IP地址与主机的什么信息绑定,就可以保证该主机一直获取到固定的IP地址?

答:主机网卡的MAC地址。

本文原创地址:https://www.linuxprobe.com/chapter-14.html   编辑:刘遄,审核员:暂无

为您推荐一些与本文相关的文章:

转载必需保留本文链接:https://www.linuxprobe.com/chapter-14.html

本文依据CC-BY-NC-SA 3.0协议发布,竭诚为读者提供Linux视频教程、Linux学习资料以及红帽考试资料等优质学习资源。