BOOTP引导程序协议
2019-05-16 本文已影响0人
食梦狸猫
无盘系统在不知道自身IP地址的情况下,可在系统引导时通过RARP来获取它的IP地址。然而这存在两个问题:
- IP地址是返回的唯一结果
- 因为RARP是使用链路层广播,RARP就不会由路由器进行转发,这就需要每个实际网络都设置一个RARP服务器。
BOOTP使用UDP,与TFTP协议共同进行。其格式为:
12.17.47.png 12.18.23.png
“跳数”字段由客户设置为0,但也能被一个代理服务器设置。
“事务标识”字段是一个由客户设置并由服务器返回的32bit整数。客户用它来对请求和应答进行匹配。
客户开始进行引导时,将“秒数”字段设置为一个时间值。
如果客户已经知道自身的IP地址,那么它将写入“客户IP地址”字段。否则将该字段设置为0,然后服务器用客户的IP地址写入“你的IP地址”字段。服务器并且填入“服务器IP地址”字段。如果使用了某个代理服务器,那么该代理服务器就填写“网关IP地址”字段。
服务器还将在“引导文件名字段”填入包括用于系统引导的文件名及其所在位置的路径全名。
BOOTP有两个熟知端口:BOOTP服务器为67,BOOTP客户为68。
如果路由器支持BOOTP协议,那么BOOTP能够由路由器转发。当路由器(BOOTP中继代理)在服务器的熟知端口(67)收到BOOTP请求时,中继代理会将自己的IP地址写入到BOOTP请求中的“网关IP地址字段”,然后将该请求发送到真正的BOOTP服务器,同时代理中继还将跳数字段值加1。当真正的BOOTP服务器接收到这个请求后,产生BOOTP应答,并将它发回中继代理。