dhcptftp及pxe简介
Posted hanshanxiaoheshang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dhcptftp及pxe简介相关的知识,希望对你有一定的参考价值。
DHCP:
全称:Dynamic Host Configuration Protocol 动态主机配置协议
DHCP配置内容:
IP/Netmask
Gateway
DNS Server
bootp: boot protocol --> dhcp 动态指派IP,永久有效
租约:即使用期限,DHCP服务器为客户端分配IP后,客户端使用IP地址是有期限的
2hours:假如租约期限为2小时
50%: 1hours --> 2hours 过了一个小时之后就要续租
50%:1hours --> 2hours 续租后又过了一个小时,就再续租,如果不用的时候,地址会自动被释放
75%: 0.5hours --> 2hours
87.5%: 0.25hours --> 2hours
dhcp discover 如果租约快要到期一直无法续租就要提前广播寻找DHCP服务器
RARP:(Reverse Address Resolution Protocol),是一种网络协议,互联网工程任务组(IETF)在RFC903中描述了RARP。RARP使用与ARP相同的报头结构,作用与ARP相反。 RARP用于将MAC地址转换为IP地址。其因为较限于IP地址的运用以及其他的一些缺点,因此渐为更新的BOOTP或DHCP所取代。
RARP工作原理
- 发送主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址;
- 本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址;
- 如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用;
- 如果不存在,RARP服务器对此不做任何的响应;
- 源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。
DHCP的工作流程:
比如客户端刚开机,那么客户端关机的时候地址是被释放的了。所以客户端开机后要重新做地址获取。地址获取是通过RARP协议获取的,所以客户端广播请求DHCP服务为其分配一个IP地址。分以一下4个步骤,都是以广播的方式进行的
1、Client: dhcp discover:客户端发送广播寻找DHCP服务器
2、Server: dhcp offer:(IP/netmask, gw) DHCP服务器端收到广播报文后会做出响应,提供与客户端MAC匹配的IP/network,gw
3、Client:dhcp request 客户端选择DHCP服务器提供的IP后,要发出一个广播说采用了哪个IP。假如采用了DHCP服务器1的提供的IP,那么这台服务器就要在地址池中删除这次被采用的地 址。而没有被采用的IP,DHCP服务器会回收过来
(有两种情况:1:多台DHCP服务器同时响应客户端的广播请求为客户端提供IP,2:客户端MAC相匹配的IP已经被占用)
4、Server: dhcp ack DHCP 被选定地址的服务器确认
续租:是以单播的方式
Client: dhcp request 客户端直接给DHCP服务器发送请求采用续租的地址
Server: dhcp ack 服务器端响应,
Server: dhcp nak DHCP服务器拒绝续租,如果DHCP服务器拒绝续租,有可能DHCP服务器上的地址范围被修改了,客户端请求续租的地址不在此范围内
假如公司的网络做了两个区域,一个区域是财务,另一个区域是技术部门,彼此之间使用路由器链接。在财务部门的网络区域中提供了一台DHCP服务器,所以财务部门获取IP地址是没有问题。但技术部门如何获取IP地址?由于路由器是广播报文的屏障,所以财务部门这边的DHCP服务器是无法收到技术部门的客户端发送的广播。那么如何才能让DHCP服务器为技术部门的客户端分配地址呢?由于DHCP协议是可以被中继的,但是需要路由器开启中继功能,即路由器在右侧网络接口上安装一个提供DHCP服务的程序,这里成为A,监听在某个接口上接收技术部门客户端的请求并分配地址。所以技术部门的客户端广播的时候是路由器的A是可以接收到广播报文的。但路由器是没有DHCP功能的,所以路由器在收到报文后会定向单播给财务部门的DHCP服务器,DHCP服务器收到路由器的报文后,会定向把响应报文定向单播给路由器,路由器接收响应报文后再有A把此报文广播给技术部门的客户端。技术部门的客户端接收到IP地址后会再广播一个request,路由器接会把这个广播报文封装后再次单播给DHCO服务器。DHCP服务器接收到报文后再次单播给路由器,路由器A再次广播给技术部门的客户端。
问题:
1、DHCP服务器本身有地址,同时DHCP服务器自己的地址是不能动态分配的。
2、DHCP服务器应该跟财务部门一体。首先先满足财务部门客户端的需求,才能提供其他网络提供DHCP服务。
为每一个网络提供地址服务的功能称为作用域。所谓作用域就是能够为哪些网络提供地址池列表,从而能够完成地址分配。首先保证本地作用域,才能为其他网络提供。
Linux DHCP协议的实现程序:dhcp, dnsmasq
dnsmasq既可以配置成DNS转发器又可以作为DHCP server使用
# yum info dnsmasq
Dnsmasq is lightweight, easy to configure DNS forwarder and DHCP server.
: It is designed to provide DNS and, optionally, DHCP, to a small network.
: It can serve the names of local machines which are not in the global
: DNS. The DHCP server integrates with the DNS server and allows machines
: with DHCP-allocated addresses to appear in the DNS with names configured
: either in each host or in a central configuration file. Dnsmasq supports
: static and dynamic DHCP leases and BOOTP for network booting of diskless
: machines.
Linux也可以充当DHCP中继器
# yum install dhcp //提供了两个守护进程,dhcp服务器和dhcp中继器,且二者取其一
/etc/dhcp/dhcpd.conf //配置文件
/etc/dhcp/dhcpd6.conf
/etc/dhcp/scripts
/etc/dhcp/scripts/README.scripts
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/usr/bin/omshell
/usr/lib/systemd/system/dhcpd.service
/usr/lib/systemd/system/dhcpd6.service
/usr/lib/systemd/system/dhcrelay.service
/usr/sbin/dhcpd --> /etc/rc.d/init.d/dhcpd(centos6) //启动进程
/usr/sbin/dhcrelay --> /etc/rc.d/init.d/dhcrelay //中继器不需要配置文件
如何配置使用DHCP
# cat /etc/dhcp/dhcpd.conf //是一个空文件
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example //这里有一个模板
# see dhcpd.conf(5) man page
#
# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf //把模板copy过来用
# vim /etc/dhcp/dhcpd.conf
在dhcpd.conf配置文件中:如果定义了多个option,那么范围最小的option优先级最高
subnet { //每一个subnet用来定义一个子网,在windows中叫作用域,所以地址池就是在子网中定义的,每一个地址再分配是,额外的属性如网关、DNS服务器等都
... //通过option指定,而option既可以放在subnet之外也可以放在subnet之内,如果option放在subnet之外,则全局有效,对每一个subnet都有效。
}
host { //固定分配给某一个主机的保留地址,有些主机来请求IP地址,都期望使用固定地址,这个地址不在地址池中,而是额外保留给某个主机使用
...
}
share-network { //超级作用域,把多个对应的地址网段在同一个池中进行同一分配
#option指明除了地址和掩码以外分配的其他属性,既可以定义在全局位置,也可以定义在subnet中
option domain-name "example.org"; //搜索域,比如在主机上#ping www,这时候是不通的,如果在此处定义了搜索域,他会在www后面自动补全的
option domain-name-servers ns1.example.org, ns2.example.org; //域名服务器,如果是域名,则需要先把域名转换成IP地址,再分配给客户端,因为客户端本来就没有域名服务器指向,没办法解析
#全局配置选项
default-lease-time 600; //默认租约期限,单位是秒钟,比如改为1天86400,后面必须是分号结尾
max-lease-time 7200; //最大租约期限
log-facility local7; //日志
subnet 10.152.187.0 netmask 255.255.255.0 { //先满足本子网,在服务其他网段。这里是为10.152.187.0分配IP地址,注意:这里的这里定义的网络一定是配置文件的当前主机所在的网络
range 10.152.187.120 10.152.187.130; //指明起始地址和结束地址,叫地址池,这里一共定义了10个地址
}
对本机的dhcpd.conf进行修改
option domain-name "dongshi.com"; option domain-name-servers 8.8.8.8; default-lease-time 86400; max-lease-time 86400;
log-facility local7;
subnet 192.168.184.0 netmask 255.255.255.0 {
range 192.168.184.130 192.168.184.160;
}
:.,$s/^[^#]/#/g //然后把后面的不以#开头的内容加上#号
# systemctl start dhcpd // 启动
监听在udp的67号端口
在另外一个主机上进行测试
# dhclient -d //用另一个主机以工作于前台的方式动态获取地址,dhclient进程只能启动一次
此时绑定的192.168.184.130是可以登录的,监听在68号端口上
如何知道DHCP服务器把地址分配给哪个主机?
# cat /var/lib/dhcpd/dhcpd.leases //记录了DHCP的租约位置
# 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 server-duid "