实战:使用DHCP为局域网中的机器分配IP地址
首先为了避免和当前网络环境中DHCP冲突,我们使用虚拟机自定义的网络模式: 使用VMnet2即可
安装DHCP
1.使用yum进行安装。
[root@xuegod63 ~]# yum -y install dhcp #使用yum安装DHCP。
2.配置文件位置: 主配置文件:
[root@xuegod63 ~]# vim /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
3.DHCP主程序包安装好后会自动生成主配置文件的范本文件。 将范本配置文件复制到/etc 目录下替换掉空白dhcpd.conf 主配置文件。
[root@xuegod63~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example \
/etc/dhcp/dhcpd.conf
4.启动DHCP服务
[root@xuegod63~]# systemctl restart dhcpd
Job for dhcpd.service failed because the control process exited with error code. See "systemctl status dhcpd.service" and
"journalctl -xe" for details.
5.此时启动会失败 原因:启动失败的原因是 dhcp服务器配置的IP地址和默认配置文件里定义的地址段不相同,在启动DHCP服务之前,需要给DHCPServer配置一个静态的IP地址。而且需要DHCP中定义分配的IP地址网段和当前静态IP地址网段相同。27行修改为自己的静态IP网段。 保证开机启动:
[root@xuegod63~]# systemctl enable dhcpd #配置的服务要保证开机启动。
DHCP配置文件参数说明 主配置文件介绍: DHCP 范本配置文件内容包含了部分参数、声明以及选项的用法,其中注释部分可以放在任何位置,并以“#”号开头,当一行内容结束时,以“;”号结束,大括号所在行除外。 可以看出整个配置文件分成全局和局部两个部分。但是并不容易看出哪些属于参数,哪些属于声明和选项。
概念与协议: 作用域:可以分配IP的范围 subnet 。 地址池:可以分配给客户端的IP,range包括的IP。 保留地址:指定某个客户端使用一个特定IP,通过host配置的。 租约(时间):客户端可以使用这个IP地址的时间。
配置文件:/etc/dhcp/dhcpd.conf #部分配置解析 。 先示范个简单的例子,然后逐个讲解各个参数,一般来说,配置文件分为两部分,一部分为全局配置,第二部分为子网配置,下面例子是简单的dhcpd配置文件:
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
option domain-name "test.com";
option domain-name-servers 192.168.1.1;
option default-lease-time 600;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
range 192.168.1.20 192.168.1.50;
# 下列host www设定一个固定的主机地址。
host www {
hardware ethernet 00:0C:29:37:5B:11;
fixed-address 192.168.1.35;
}
}
注释: dhcpd.conf大致可以分为四个区域: 1)定义dhcpd自身的工作属性: 例: log-facilify #定义日志facilify
2)全局地址分配属性:以options开头。 例:option router 指定网关
3)子网配置:如果子网中没有定义分配给客户端的DNS,但全局中有定义,那么子网则继承全局的DNS,如果子网中定义有DNS,全局中也有定义DNS,那么则根据那地个作用范围小则最终生效。通常每个作用域(地址池)通过一个subnet(子网)定义。
例:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.0 netmask 255.255.255.0 #定义分配的地址(地址池)
option routes routers rtr-239-0-1.example.org, rtr-239-0-2.example.org; #在子网定义中也可以使用option定义网关,但仅在子网中范围生效。
}
4)主机配置: 通常为某特定MAC地址固定的分配一个地址。
host fantasia {
hardware ethernet 08:00:07:26:c0:a5; #定义MAC地址。
fixed-address fantasia.fugue.com; #定义固定ip地址。
}
5)文件详解:
option domain-name "example.org"; #搜索域。
option domain-name-servers ns1.example.org, ns2.example.org; #全局默认DNS。
default-lease-time 600; #默认最小租约期限(单位为秒)。
max-lease-time 7200; #最长租约期限(单位为秒)。
在DHCP引入了租约的概念,所以DHCP服务端在向各个客户端发送IP地址时会告知对方,分配的地址使用多长时间,或默认能使用多长时间,在分配的使用时间内,当达到百分之50时,客户端则自动向服务端发起续租请求(此时以单播方式进行通信)。
50%:DHCP REQUEST,当达到50%时,向服务端发起续租,只能在续租时刻起,续租过去的50%的两倍,如果此时续租失败,那么则到剩下的时间的50%再次发起续租请求(就是整体的时间75%)。
75%:DHCP REQUEST,当达到整体的时间75%时,再次发起续租请求,如果此时再次续租失败时,那么则到剩下的时间的50%再次发起续租请求(就是整体的时间87.5%)。
87.5%:DHCP REQUEST,当达到整体的时间87.5%时,再次发起续租请求,如果此时再次续租失败时,则会放弃续租此地址。 当会放弃续租上个使用的地址时,则再次发起 DHCP DISCOVER 广播,重新获取地址
#ddns-update-style none; #动态dns。
log-facility local7; #日志地址,在/etc/rsyslog.conf日志服务配置文件中定义所有发往local7的日志定义存放到/var/log/boot.log文件中。
subnet 10.254.239.0 netmask 255.255.255.224 { #定义分配的IP地址、掩码。
range 10.254.239.10 10.254.239.20; # 定义地址池,起始地址,结束地址,以空格分隔。
option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org; #提供的网关
}
subnet 10.254.239.32 netmask 255.255.255.224 {
range dynamic-bootp 10.254.239.40 10.254.239.60; #定义向bootp提供服务,兼容协议。
option broadcast-address 10.254.239.31; #定义广播地址。
option routers rtr-239-32-1.example.org;
}
subnet 10.5.5.0 netmask 255.255.255.224 {
range 10.5.5.26 10.5.5.30;
option domain-name-servers ns1.internal.example.org; #定义DNS。
option domain-name "internal.example.org";
option routers 10.5.5.1; #定义默认网关。
option broadcast-address 10.5.5.31; #定义广播地址。
default-lease-time 600; #默认最小租约期限(单位为秒)。
max-lease-time 7200; #最长租约期限(单位为秒)。
}
host fantasia {
hardware ethernet 08:00:07:26:c0:a5; #定义对方的MAC地址。
fixed-address fantasia.fugue.com; #定义固定ip地址。
}
class "foo" {
match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
} #定义函数,用来定义特定系统分配特定的地址。
常见声明的使用
1.subnet 网络号 netmask 子网掩码 {…} 作用:定义作用域,指定子网。 如图 所示: 注意:网络号必须与DHCP 服务器的网络号相同
2.range 起始IP 地址结束IP 地址 作用:指定动态IP 地址范围 注意:可以在subnet(子网)声明中指定多个range,但多个range 所定义IP 范围不能重复。
3.常用选项介绍 选项通常用来配置DHCP 客户端的可选参数,比如定义客户端的DNS 地址、默认网关等等。选项 内容都是以option 关键字开始。
实战-使用DHCP为局域网内主机分配IP地址
公司有60 台计算机,IP 地址段为192.168.1.1-192.168.1.254,子网掩码是255.255.255.0,网关为192.168.1.1,192.168.1.2-192.168.1.30 网段地址给服务器配置,客户端可以使用的地址段为192.168.1.100-200,其余剩下的IP 地址为保留地址。
实验环境: 不建议虚拟机使用桥接模式操作此实验,因为你的局域网中有可能就有DHCP服务器,因此很难让客户端是从虚拟机搭建的DHCP服务器获得IP地址。 另外,也可能造成公司局域网中其它机器因为获得了你DHCP服务器上的IP地址,而上不了网。
1.修改DCHP配置文件:
[root@xuegod63 ~]# vim /etc/dhcp/dhcpd.conf
#编辑DHCP配置文件,删除其他内容,只保留如下内容:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option domain-name-servers 192.168.1.1;
option domain-name "xuegod.cn";
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
}
[root@xuegod63 ~]# systemctl start dhcpd #启动DCHP服务。
[root@xuegod63 ~]# ps aux|grep dhcp #查看DHCP进程。
dhcpd 4676 0.2 1.9 119060 19040 ? Ss 20:17 0:00 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid
[root@xuegod63 ~]# netstat -tlunp|grep dhcpd #查看DHCP端口是否监听。
udp 0 0 0.0.0.0:67 0.0.0.0:* 1971/dhcpd
udp 0 0 0.0.0.0:30086 0.0.0.0:* 1971/dhcpd
udp6 0 0 :::31454 :::* 1971/dhcpd
2.在xuegod64主机上获取IP地址。
[root@xuegod64 ~]# service network restart
#重启网络服务,由于网络配置是DHCP方式获取IP,所以直接重启网络服务即可,如果网卡配置为非DHCP方式,需要修改为DHCP方式获取IP地址。
[root@xuegod64 ~]# ifconfig ens38 #查看是否获取IP成功。
ens38: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::ad06:ed0b:c309:5e35 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:ba:dc:06 txqueuelen 1000 (Ethernet)
RX packets 105 bytes 33938 (33.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 376 bytes 65115 (63.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
(1)查看默认网关
[root@xuegod64 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 ens33
0.0.0.0 192.168.1.1 0.0.0.0 UG 101 0 0 ens37
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 ens37
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
(2)查看DNS
[root@xuegod64 network-scripts]# cat /etc/resolv.conf
[root@xuegod64 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search xuegod.cn cn
nameserver 192.168.1.1
(3)查看租约数据库文件
[root@xuegod63 ~]# 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
lease 192.168.1.100 {
starts 4 2018/10/11 13:18:01;
ends 4 2018/10/11 13:28:01;
cltt 4 2018/10/11 13:18:01;
binding state active;
next binding state free;
rewind binding state free;
hardware ethernet 00:0c:29:ba:dc:06;
client-hostname "xuegod64";
}
今天的分享就到这里,想要获取更多技术干货的话看下方小卡片哦!!!
|