PXE DHCP获取IP与传统DHCP获取IP地址的区别

  • 正常的DHCP获取IP的流程(Discover-Offer-Request-Ack):
    • (Discovery)主机端在LAN中发布MAC地址为FF:FF:FF:FF:FF:FF的广播来寻找DHCP服务器。
    • (Offer)DHCP Server对收到的Discovery包进行响应,从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的IP地址和其他设置的DHCP offer提供信息。
    • (Request)根据First Come First Server原则,主机会选择其收到的第一个offer,并在此之后以广播方式回答一个DHCP request请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。
    • (ACK)DHCP服务器确认所提供的IP地址。当DHCP服务器收到DHCP客户机回答的DHCP request请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP ACK确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器在收到客户端的Request包之后都将收回曾提供的IP地址。
  • PXE启动,DHCP获取IP的流程(Discover-Ack):
    • (Discovery)主机端在LAN中发布MAC地址为FF:FF:FF:FF:FF:FF的广播来寻找DHCP服务器。
    • (Request)根据First Come First Server原则,主机会选择其收到的第一个offer,并在此之后以广播方式回答一个DHCP request请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。
    • (ACK)DHCP服务器确认所提供的IP地址。当DHCP服务器收到DHCP客户机回答的DHCP request请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP ACK确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器在收到客户端的Request包之后都将收回曾提供的IP地址。
时间: 2024-11-07 17:07:43

PXE DHCP获取IP与传统DHCP获取IP地址的区别的相关文章

linux中配合IS-IS搭建DHCP服务让客户机自动获取IP地址

实验目的:首先是配置上次发表IS-IS的部分配置过程,然后结合两台linux虚拟机,一台DHCP服务器,一台客户机,让客户机自动获取IP,使用DHCP给他保留的特定的IP地址,然后测试能够和另外一台添加的PC机互联互通. 实验过程:首先配置路由器的IP地址和IS-IS协议.RIP协议.并设置路由重分发. 然后配置linux-1的DHCP服务器以及配置文件. 然后配置linux-2的网卡参数为自动获取IP地址. 最后使用VPCS配置C1的IP地址测试和linux-2客户机的互通性.下面是详细过程.

centos7 之dhcp服务为多个网段分配ip地址

实验目的:通过一台DHCP服务器实现给多网段分配IP地址 在GNS3上构建如上图的拓扑结构图配置:在SW2二层交换机上:SW2#conf tSW2(config)#no ip routing //关闭路由功能SW2(config)#vlan 10,20,80 //创建10,20,80的vlanSW2(config-vlan)#int f1/1 SW2(config-if)#switchport mode accessSW2(config-if)#switchport access vlan 10

PXE环境下安装系统(DHCP+TFTP+HTTP+kickstart)

简单的说,这就是一个通过PEX网卡自动安装系统的过程.整个启动的过程大概可以理解为这样:计算机从PEX网卡设备启动,通过网卡与DHCP服务之间的4次互相广播后获得DHCP服务器提供的IP地址,并且DHCP服务器会告诉该网卡TFTP服务的位置,从而使PXE网卡可以获得"pxelinux.0"的启动文件,然后通过该文件可以读取TFTP服务器中的一些相应的配置文件,从而使该计算机可以进入系统安装界面,而这里我们想通过自动化的方法安装,所以我们就需要kickstart文件,而为了能够获得源,在

APUE之通过popen,fputc等函数获取本虚拟机网卡eth0的IP

任务:unix环境通过c程序获取本虚拟机网卡eth0的IP. 总结: 1. 标准I/O库函数相对于系统调用的函数多了个缓冲区(,buf),安全性上通过buf 防溢出. 2.用system函数输出是标准输出,进一步理解fork函数和exec函数重新开启一个进程运行程序: 3.printf 这类输出函数中" "若包含"记得要换成转义字符\"            资料链接:   http://blog.csdn.net/ce123_zhouwei/article/det

【Linux】CentOS设置静态IP(非动态获取IP)

在VMware上安装好Linux后,默认设置的动态IP,每次启动的IP都不同,远程连接挺费劲的. 于是,需要设置静态的IP,至少我从远程工具连接上去方便多了.另外,为了安装一些软件,也需要访问互联网. > 版本说明 [[email protected] ~]$ cat /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m > VMware设置 虚拟机的网络配置:右击 > 设置 > 网络适配器 > 桥接模式(B):直接

router 分配ip address(dhcp)和dhcp中继

路由器的主要功能是网络寻址,有时候也需要用来分配ip地址.但用路由器分配地址又会加大路由器的负载,所以,有的时候我们可以把分配地址的工作交给一台PC. 1.使用router分配ip address: Router>en Router#conf t Enter configuration commands, one per line.  End with CNTL/Z. Router(config)#int vlan 1 Router(config-if)#ip dhcp pool vlan1  

linux下的shell命令的编写,以及java如何调用linux的shell命令(java如何获取linux上的网卡的ip信息)

程序员都很懒,你懂的! 最近在开发中,需要用到服务器的ip和mac信息.但是服务器是架设在linux系统上的,对于多网口,在获取ip时就产生了很大的问题.下面是在windows系统上,java获取本地ip的方法.贴代码: package com.herman.test; import java.net.InetAddress; /** * @see 获取计算机ip * @author Herman.Xiong * @date 2014年5月16日 09:35:38 */ public class

java如何获取其它用户登录的真是IP地址

获取其它用户的ip,可能会遇到了request.getRemoteAddr()获取的值为0:0:0:0:0:0:0:1,这是为什么呢,照道理讲,应该是127.0.0.1才对,为什么这个获取的值变成了ipv6了呢,而且我发现这种情况只有在服务器和客户端都在同一台电脑上才会出现(例如用localhost访问的时候才会出现),后来上网查了查原因,原来是/etc/hosts这个东西作怪(在windows上应该是C:\Windows\system32\drivers\etc\ hosts这个文件),只需要

获取客户端、服务器、本地IP地址

//获取客户端.服务器.本地IP地址 public static string getIPAddress() { ////本地IP //string address = System.Net.Dns.GetHostAddresses(System.Net.Dns.GetHostName()).GetValue(2).ToString();//IP4 地址 ////本地电脑名称 //string addname = System.Net.Dns.GetHostName().ToString();