DHCP和BOOTP
名称:DHCP - Dynamic Host Configuration Protocol 动态主机配置协议
功能:DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作.
使用场景:
1、给内部网络或网络服务供应商自动分配IP地址,主机名,DNS服务器,域名
2、配合其它服务,实现集成化管理功能。如:无人执守安装服务器
特点:
C/S 模式
自动分配IP地址,方便管理
DHCP不会同时租借相同的IP地址给两台主机;
DHCP管理员可以约束特定的计算机使用特定的IP地址;
可以为每个DHCP作用域设置很多选项;
客户机在不同子网间移动时不需要重新设置IP地址。每次都自动获取IP地址就可以了。
DHCP缺点:
当网络上存在多服务器时,一个DHCP服务器不能查出已被其它服务器租出去的IP地址;
DHCP服务器不能跨路由器与客户机通信,除非路由器允许BOOTP协议转发。
端口:67(bootps) 68(bootpc) 。
DHCP协议由 bootp协议发展而来,是BOOTP的增强版本,bootps代表服务端端口, bootpc代表客户端端口。
所有的IP网络设定数据都由DHCP服务器集中管理,并负责处理客户端的DHCP要求;
而客户端则会使用从服务器分配下来的IP环境数据。比较BOOTP, DHCP透过“租约”的概念,有效且动态的分配客户端的TCP/IP设定,而且,作为兼容考虑,DHCP也完全照顾了BOOTP Client的需求。
bootp协议:
引导程序协议(BOOTP)。它可以让无盘工作站从一个中心服务器上获得IP地址,为局域网中的无盘工作站分配动态IP地址,并不需要每个用户去设置静态IP地址。
BOOTP缺点:
您在设定前须事先获得客户端的硬件地址,而且,MCA地址与IP的对应是静态的。换而言之,BOOTP非常缺乏“动态性 ”,若在有限的IP资源环境中,BOOTP的一对一对应会造成非常可观的浪费。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
DHCP运行原理
获取:
客户端发送DHCP DISCOVER广播包进行查找DHCP服务器
服务器对DHCP客户端发送DHCP OFFER单播包进行响应,并且发送一些关于出租的IP地址信息
客户端再次发送REQUEST广播包,为了向多台DHCP服务器进行通过,我已经选择了其中的一个DHCP服务器
DHCP服务器收到REQUEST后,发送一个ACK信息以及详细的出租IP地址的信息。客户机收到就会将该IP地址与网卡绑定
重新登录:
DHCP客户端发送一个关于自己之前的IP地址信息给DHCP服务器,如果服务器还保留着客户端之前的IP,那么就会发送一个ack确认信息,如果不是,则发送一个nack信息,并且告知客户端需要重新获取IP地址
租约更新:
DHCP客户端在租约时间一半的时候发送一个renew进行续约。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
DHCP小细节
1安装:yum install -y dhcp
2主要的配置文件:/etc/dhcp/dhcpd.conf
3当我们打开主配置文件的时候,我们会发现里面只有一些提示信息
告诉我们需要去/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample找模板文件。找到模板文件后,我们需要将模板文件替换为主配置文件。当我们进行简单的配置的时候,我们用不到模板文件,我们自己就可以写一个dhcpd的配置文件。
4刚开始配置dhcp的时候,我们不能开启dchpd服务,因为dhcp服务器配置分配的网段和本地IP不符。
5开机自启动:systemctl enable dhcpd
- 1
- 2
- 3
- 4
- 5
- 6
模板文件
dhcp配置文件写入内容进行说明
和其他服务的配置文件不同的是,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 "xiaodu";
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
host break {
hardware ethernet 06:0c:29:ee:2b:88;
fixed-address 192.168.1.110;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
以上内容 | 说明 |
---|---|
1 | 声明信息,指定作用域和子网 |
2 | 指定动态IP地址的范围 |
3 | DNS的地址 |
4 | DNS的名字 |
5 | 默认路由 |
6 | 广播地址 |
7 | 默认租约期限 |
8 | 最大租约时间 |
9 | 本地主机名 |
10 | 网卡绑定 |
11 | 设置网卡的固定的IP |
/var/lib/dhcpd/dhcpd.leases可以在这个文件中查看我们DHCP的租约信息了,相当于房租。
下图是下面实验的结果,可以提前看一下
实例: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 地址为保留地址。
实验环境:
192.168.1.63 vmnet5
192.168.1.64 vmnet5
思路:服务器增加的网卡是作为DHCP服务器的网卡,实现DHCP的服务,客户端增加的网卡是通过DHCP服务器分配的新的IP
详细过程
服务器:
1分别在2台虚拟机上增加网卡。设置为自定义。自定义可以不同,但是要保证2个新增的网卡的一致。
临时设置网卡的IP地址。
2修改配置文件如下:
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 "xiaodu";
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
3重启DHCP的服务,并且设置为开机自启动
4在观察到客户端新增的网卡可以获取IP后,我们可以通过查看dhcp的租约信息
[root@break ~]# cat /var/lib/dhcpd/dhcpd.leases
客户端
1复制之前网卡的信息,然后修改一些内容
2重启新增的网卡,并查看ip,,可以发现IP已经通过dhcp获取到
[root@break network-scripts]# ifdown ens37 && ifup ens37
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/17)
[root@break network-scripts]# ifconfig ens37
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.110 netmask 255.255.255.0 broadcast 192.168.1.255
- 1
- 2
- 3
- 4
- 5
3查看网关和路由的信息
[root@break network-scripts]# cat /etc/resolv.conf
[root@break network-scripts]# route -n
- 1
- 2
在上一个实验中,如何设置,才能使得固定的网卡绑定固定的IP
将客户端获取的IP固定为192.168.1.3
1在服务器增加内容
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 "xiaodu";
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
host break {
hardware ethernet 06:0c:29:ee:2b:88;
fixed-address 192.168.1.3;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
2重启dhcpd服务
systemctl start dhcpd
3客户端重启网卡
时间的同步,我们服务器的时间想要保持一个正确的时间,需要使用ntpf进行时间的同步。
#安装
yum install -y ntp
#一般与ntp1.aliyun.com或者time.windows.com
[root@break ~]# ntpdate ntp1.aliyun.com
14 Apr 10:22:26 ntpdate[4740]: adjust time server 120.25.115.20 offset -0.001831 sec
[root@break ~]# ntpdate time.windows.com
14 Apr 10:22:45 ntpdate[4751]: adjust time server 52.175.49.4 offset -0.000240 sec
#系统时间和BIOS时间,默认ntpdate同步时间只会同步系统时间,可以设置/etc/sysconfig/ntpdate
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8