使用dhcp动态管理主机地址
1 介绍:dynamic host configuration protocl 协议用于让被管理的局域网主机自动获取到地址池中的网络参数,包括地址,掩码,网关,dns等参数,好处一大堆吧,就是自动不用管理,几个需要了解的词:
¾ 作用域:一个完整的 IP 地址段, DHCP 协议根据作用域来管理网络的分布、分配 IP
地址及其他配置参数。
¾ 超级作用域:用于管理处于同一个物理网络中的多个逻辑子网段。超级作用域中包含
了可以统一管理的作用域列表。
¾ 排除范围:把作用域中的某些 IP 地址排除,确保这些 IP 地址不会分配给 DHCP
客户端。
¾ 地址池: 在定义了DHCP的作用域并应用了排除范围后, 剩余的用来动态分配给DHCP
客户端的 IP 地址范围。
¾ 租约: DHCP 客户端能够使用动态分配的 IP 地址的时间。
¾ 预约:保证网络中的特定设备总是获取到相同的 IP 地址。
2 部署:
2.1 安装: yum install dhcp-server
守护进程: systemctl status dhcpd
配置文件: cat /etc/dhcp/dhcpd.conf,客户端和服务端的配置文件都有,我们先看这个服务端,默认里面是三行注释,没有正文。但是提示去看see /usr/share/doc/dhcp-server/dhcpd.conf.example,可以看到一个标准的配置文件包括,【全局配置参数,子网网段声明,地址配置选项以及地址配置参数】,常用参数介绍如下
3 配置服务
3.1 准备工作:地址池作为实际可以分配的地址区间,要小于作用域,由于我们是虚拟机做实验,所以先关闭vmware提供的dhcp服务启动客户机做准备
3.2 从例子中复制一段来更新配置文件 vim /etc/dhcp/dhcpd.conf
# 全局配置
ddns-update-style none; # dns不自动更新域名映射
ignore client-updates; # 忽略客户端更新dns记录
# 子网配置
subnet 192.168.88.0 netmask 255.255.255.0 { # 作用域
range 192.168.88.20 192.168.88.30; # 地址池
option domain-name-servers 192.168.88.11; # 客户端的dns
option domain-name "www.lipengchao.com"; # 默认搜索域
option routers 192.168.88.11; # 网关
default-lease-time 600; # 默认一次租赁时间秒
max-lease-time 7200; # 最大租赁时间,如果不续租超过最大时间就会被回收
}
3.3 启动服务进行测试,可以看到端口使用了udp 67
[[email protected] ~]# systemctl start dhcpd
找到我们的客户端,就是在一个网段即可
然后把我们默认的dhcp配置恢复,mv ifcfg-ens33_bak ifcfg-ens33
重启网卡:nmcli connection up ens33 已经变成了我们设定的范围
这样理解的话,我感觉就是说一个局域网只要有一个dhcp服务,那么网段内只要是dhcp模式的网卡都会从这里获取地地址,那么如果是有两台服务,那么会获取谁的?
如果想要知道哪些主机获取过地址,cat /var/log/message 最后几行会记录,比如:
Nov 11 08:20:58 www dhcpd[3301]: Server starting service.
Nov 11 08:32:18 www dhcpd[3301]: DHCPDISCOVER from 00:0c:29:54:cc:4a via bond0
Nov 11 08:32:19 www dhcpd[3301]: DHCPOFFER on 192.168.88.100 to 00:0c:29:54:cc:4a (ogg_src1) via bond0
Nov 11 08:32:19 www dhcpd[3301]: DHCPREQUEST for 192.168.88.100 (192.168.88.11) from 00:0c:29:54:cc:4a (ogg_src1) via bond0
Nov 11 08:32:19 www dhcpd[3301]: DHCPACK on 192.168.88.100 to 00:0c:29:54:cc:4a (ogg_src1) via bond0
Nov 11 08:32:19 www dhcpd[3301]: DHCPREQUEST for 192.168.88.100 (192.168.88.11) from 00:0c:29:54:cc:4a (ogg_src1) via bond0
Nov 11 08:32:19 www dhcpd[3301]: DHCPACK on 192.168.88.100 to 00:0c:29:54:cc:4a (ogg_src1) via bond0
Nov 11 08:36:45 www dhcpd[3301]: DHCPREQUEST for 192.168.88.100 from 00:0c:29:54:cc:4a (ogg_src1) via bond0
Nov 11 08:36:45 www dhcpd[3301]: DHCPACK on 192.168.88.100 to 00:0c:29:54:cc:4a (ogg_src1) via bond0
仅主机模式下,如果客户端是dhcp 但是没有一个提供dhcp服务的主机,则无法启动网卡
4 针对特殊设备固定ip 其他设备动态获取
原理就是将地址和网卡mac绑定,ether 后面的标记,我们从刚才两个随便挑一个出来
或者windows的适配器属性同样可以看到
如果想要在服务端看,可以参考刚才那段日志,每一个地址分配都会记录两天一条是请求,另一条是ack确认,一样的,找到之后,我们去修改服务配置文件,需要的两个参数,查看服务或者日志都有,一个是名称,一个是mac,下面这个配置参数没问题,但是最后没有加分号;所以无法启动,
增加分号后正常启动,当续租时间到或者是重启服务之后,再去查看客户端,地址已经更改成指定的,完整配置
# 全局配置
ddns-update-style none; # dns不自动更新
ignore client-updates; # 忽略客户端更新dns记录
# 子网配置
subnet 192.168.88.0 netmask 255.255.255.0 { # 作用域
range 192.168.88.100 192.168.88.200; # 地址池
option domain-name-servers 192.168.88.11; # 客户端的dns
option domain-name "www.lipengchao.com"; # 默认搜索域
option routers 192.168.88.11; # 网关
default-lease-time 600; # 默认租赁时间秒
max-lease-time 7200; # 最大租赁时间
# 固定ip指定部分
host ogg_src1 {
hardware ethernet 00:0c:29:54:cc:4a;
fixed-address 192.168.88.110;
}
}