dhcp服务器1(dhcp原理,arp协议原理)

一.dhcp工作原理

    dhcp(Dynamic Host configuration Protocol,动态主机配置协议 )是一个局域网的 网络协议,它主要是通过客户端发送广播数据包给整个物理网段内的所有主 机,若局域网内有 DHCP 服务器时,才会响应客户端的 IP 参数要求。

客户端取得 IP 参数的过程如下:

(1)客户端:利用广播数据包发送搜索 DHCP 服务器的数据包 若客户端网络设置使用 DHCP 协议取得 IP,则当客户端开机或者是重新启动网 卡时,客户端主机会发送出查找 DHCP 服务器的 UDP 数据包(discover)给所 有物理网段内的计算机。因为客户端还不知道自己属于哪一个网络,所以该数 据包的来源地址会为 0.0.0.0,而目的地址则为 255.255.255.255。一般主机接收 到这个数据包之后会直接丢弃,若局域网内有 DHCP 服务器,则会开始后续行 为。

(2)服务器端:提供客户端网络相关的租约以供选择。(dhcp offer) DHCP 服务器在监听到客户端发出的 dhcp discover 广播后,会针对这个客户端的硬件地址( MAC)与本身的设置数据进行下列工作:

到服务器的日志文件中查找该用户之前是否曾经租用过某个 IP,若有且该 IP 目前无人使用,则提供此 IP 给客户端。 若配置文件针对该 MAC 地址提供特定的固定 IP 时,则提供该固定的 IP 给 客户端

若不符合上述两个条件,则随机选取当前没有被使用的 IP 参数给客户端, 并记录下来。

dhcp报文

 

 *DHCP DISCOVER客户端开始DHCP过程发送的包,是DHCP协议的开始。以广播的方式发送dhcp discover报文 来寻找局域网中的DHCP服务器。源地址为0.0.0.0 目的255.255.255.255, 网络上所有支持TCP/IP的主机都会收到该dhcp discover报文,但是只有dhcp Server会响应该报文

*DHCP OFFER服务器接收到DHCP DISCOVER之后做出的响应,通过解析报文,查dhcpd.conf配置文件,如果在地址池中 能找到合适的IP地址,DHCP Server会给DHCP Client发送Offer报文。它包括了给予客户端的IP(yiaddr)、客户端的MAC地址、租约过期时间、服务器的识别符自己其他信息。 如果存在多个DHCP服务器,依然会发送多个DHCP OFFER报文。

*DHCP REQUEST客户端对于服务器发出的DHCP OFFER所做出的响应,在续约租期的时候同样会使用。 Client根据先收到的Offer报文来决定使用哪个服务器提供的DHCP的地址。(优先先到的offer报文)然后根据这个Offer提供的地址信息,发送Request报文请求。

        a.客户端初始化时,发送广播的DHCP Request报文来回应服务器的DHCP Offer报文

      ​ b.客户端重启初始化后,发送广播的DHCP的DHCP Request报文来确认先前被分配的IP地址           等配置信息。

      c.当客户端已知和某个IP地址绑定后,发送单播的DHCP Request报文来延长IP地址租期。  

*DHCP ACK服务器在接收到客户端发来的DHCP REQUEST之后发出的成功确认的报文。在建立连接的时候,客户端在接收到这个报文之后才会确认分配给他的IP和其他信息可以被允许使用。服务器接收到request报文以后,确认地址池中的这个地址没有被分配,如果没有被分配就回复ACK报文,如果被​分配了,就会回复DHCP-NAK报文,告诉Client地址已经被分配了。


 *DHCP NAK:DHCP ACK的相反报文,表示服务器拒绝了客户端的请求。

 

当Client收到服务器分配到的地址后,会向这个广播域内发送一个免费的ARP的请求,如果没有人响应这个请求,Client才正式使用这个IP,如果有人回应的话,会返回一个DHCP-DECLINE报文,要求客户端重新获取IP。

当Client的IP租期到达一半时,会单播发送DHCP-REQUEST报文,请求服务器更新租期,服务器收到以后,如果可以继续使用IP地址的话,会响应Client DHCP-ACK,如果该IP不能继续分配,则响应Client DHCP-NAK。此时Client会在租期的75%再次询问server进行续约,如果该IP地址可用则回复ACK,反则回复NAK。

如果客户端重启后,会自动发送DHCP REQUEST广播给DHCP服务器以便请求继续租用原来使用的IP地址,如果服务器收到这个消息,确认客户端可以使用该地址,则回答一个DHCP ACK确认消息,如果此IP地址已经无法再分配,则返回一个DHCP NAK否认信 息,客户端收到这个信息以后,则必须重新发送DHCP Discover消息获取新的地址。 若没有得到响应,则尝试与网关通信,如果通信正常,这个租期还没到期的话,则可以继续使用,但是不能和网关通信的话,则会获得169.254.0.1~169.254.255.254之间的IP地址,然后每隔5min尝试更新租约。          
 

 *DHCP RELEASE:一般出现在客户端关机、下线等情况。这个报文将会使DHCP服务器释放发出此报文的客户端的IP地址。 当客户端可通过DHCP RELEASE报文主动释放服务器分配给它的地址,当服务器收到此报文后,可将这个IP地址分配给其他客户端。

*DHCP INFORM:客户端发出的服务器请求一些信息的报文。如DNS, 网关。

*DHCP DECLINE: 当客户端发现服务器分配的IP地址无法使用(IP地址冲突),将发出此报文,通知服务器禁止使用该IP地址。

二.arp工作原理

  1. 每个主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址之间的对应关系。
  2. 主机(网络接口)新加入网络时(也可能只是mac地址发生变化,接口重启等), 会发送免费ARP报文把自己IP地址与Mac地址的映射关系广播给其他主机。
  3. 网络上的主机接收到免费ARP报文时,会更新自己的ARP缓冲区。将新的映射关系更新到自己的ARP表中。
  4. 某个主机需要发送报文时,首先检查 ARP 列表中是否有对应 IP 地址的目的主机的 MAC 地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送 ARP 数据包,该数据包包括的内容有:源主机 IP 地址,源主机 MAC 地址,目的主机的 IP 地址等。
  5. 当本网络的所有主机收到该 ARP 数据包时:

             (A)首先检查数据包中的 IP 地址是否是自己的 IP 地址,如果不是,则忽略该数据包。

             (B)如果是,则首先从数据包中取出源主机的 IP 和 MAC 地址写入到 ARP 列表中,如果已经存在,则覆盖。

             (C) 然后将自己的 MAC 地址写入 ARP 响应包中,告诉源主机自己是它想要找的 MAC 地址。

          6.源主机收到 ARP 响应包后。将目的主机的 IP 和 MAC 地址写入 ARP 列表,并利用此信息发送数据。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。

当一台主机a向主机b发送一个数据包时,数据帧进入交换机后,交换机将会把主机a的mac地址缓存在本地mac地址表中,然后查询mac地址表中是否存在主机b的mac地址,如果存在,将数据帧直接转发给主机b,若不存在,将会以广播的形式迫使所有接口复制转出(除进入接口的流量外)。收到该数据帧的主机将会检查数据帧中的ip是否为自己的ip,若不是,将会忽略该数据帧,若是,将会回应发送数据帧的主机

实例

 搭建网络拓扑,pc1,pc2,pc3,交换机sw1

pc1ip 192.168.1.1/24

pc2ip 192.168.1.2/24

pc3ip 192.168.1.3/24

使用pc1 ping pc3,在pc1,pc2,pc3下抓包验证

 使用pc1 ping pc3

Welcome to use PC Simulator!

PC>ping 192.168.1.3

Ping 192.168.1.3: 32 data bytes, Press Ctrl_C to break
From 192.168.1.3: bytes=32 seq=1 ttl=128 time=62 ms
From 192.168.1.3: bytes=32 seq=2 ttl=128 time=47 ms
From 192.168.1.3: bytes=32 seq=3 ttl=128 time=47 ms
From 192.168.1.3: bytes=32 seq=4 ttl=128 time=31 ms
From 192.168.1.3: bytes=32 seq=5 ttl=128 time=47 ms

--- 192.168.1.3 ping statistics ---
  5 packet(s) transmitted
  5 packet(s) received
  0.00% packet loss
  round-trip min/avg/max = 31/46/62 ms

PC>

pc1抓包

 当pc1向pc3发送数据帧时,知道pc3的ip地址,不知道pc3的mac地址,流量进入交换机时若没有pc3的mac地址,将会以广播形式迫使pc2,pc3复制转发该数据帧(目标mac为全f)。

pc2抓包

 当pc2收到该数据帧进入pc2时,pc2会查询该数据帧中的ip和自己是否相同,若不同将会忽略

pc3抓包

 当pc3收到该数据帧,查询到该数据帧的ip与自己的相同,将会以单播形式回应pc1

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值