[转]车小胖谈网络:DHCP 与 DHCP Relay

http://blog.sina.com.cn/s/blog_1533e35800102wyli.html

http://blog.sina.com.cn/s/blog_1533e35800102wyli.html

http://blog.sina.com.cn/s/blog_1533e35800102wyli.html


一个人生病的时候才能深刻地知道,健康的身体比什么都重要!网络无处不在,平时很难感受到它的存在,只有当网络发生故障,才能感受它的存在、它的重要性! 我们今天来谈谈DHCP的话题,以及它的安全漏洞以及应对措施!


什么是DHCP?

Dynamic Host Configuration Protocol,动态主机配置协议,很拗口,它主要用来给用户的电脑分配IP地址等,如果运气好,这个过程是自动的,不需要用户任何干预,运气不好,看完这篇文章也许你就会知道问题出在哪里,自力更生,自己排错!


DHCP是如何工作的?

电脑在启动的时候,会发送一个广播包,名称为:DHCP discovery,为了在广播域里找到DHCP服务器,格式如下:
二层Mac地址为:0xFF FF FF FF FF FF
三层IP地址为:255.255.255.255
四层协议为:UDP Port 67
五层:DHCP discovery 
通过网卡发送到以太网。


以太网通过Hub、网桥、二层交换机(假定只有VLAN 1)连接的所有电脑,都在一个广播域里,都会收到这条消息,消息会上传到IP层,IP层发现本地没有提供UDP 67的服务,纷纷丢弃;

而DHCP 服务器发现本地可以提供UDP Port67
的服务,于是DHCP报文上传给DHCP服务来处理,服务器发DHCP offer消息,这个消息一单播unicast的方式直接发给此电脑,假定此电脑的Mac为:0x11 11 11 11 11 11 ,那消息格式如下:

二层目的Mac地址:0x11 11 11 1111 11

二层源Mac: 0x 22 22 22 22 22 22

三层目的IP地址:255.255.255.255

三层源IP地址:10.1.1.254

四层协议:UDP Port 68

五层协议:DHCP offer,报文消息里包含有:分配电脑的IP是10.1.1.2/24,网关10.1.1.1,DNS server
10.1.1.1,并通过网卡发送到以太网。


此电脑收到offer消息,先ping一下10.1.1.2,看是否可以ping通?如果可以,说明此地址已经被使用,发information消息给服务器,告知情况,服务器从自己的地址池重新选择,再重复步骤2,如果没有ping通,说明可以使用,于是可以发送DHCP request,请求服务器批准同意,由于已经知道DHCP的IP地址,此消息使用单播的方式发送出去。


服务器收到request之后,发送确认消息ACK给电脑主机,电脑收到此消息,就完成了电脑IP地址得配置工作。以上就是DHCP的整个工作流程,有同学会问:DHCP是通过广播方式工作的,那岂不是每个广播域(网段)都要有一台DHCP服务器?那也太笨拙了!我们可以采用DHCPRelay方式来克服这个困难,那什么是DHCP Relay呢?


什么是DHCP Relay?

一个网段里有这么一种角色,可以把收到的DHCP广播报文修改一下,变成一个目的IP地址为DHCP server的单播报文,因为它知道server 的IP地址,这个角色就是DHCP Relay,再把从server端返回的offer,ACK等单播报文变回广播报文,再发给电脑主机。

那有一个问题,服务器怎么知道从哪个地址池分配IP地址给电脑主机呢?一个地址池对应一个网段,比如10.1.1.0/24是一个网段,10.1.2.0/24代表的是另一个网段,那好办,和DHCP Relay 在同一个网段就可以了,所以Relay在做二传手的时候,在DHCP discovery报文里添加了自己的地址,格式为:Gateway IP Address:10.1.1.1,那服务器就知道原来这是10.1.1.0/24网段发过来的请求信息,那我就选择10.1.1.0/24这个地址池,分配10.1.1.2/24就万事大吉了!


那DHCP的安全漏洞是什么呢?

如果一个邪恶软件伪造不同的Mac地址,不断发送DHCP discovery,比如1000个,如果没有安全措施,DHCP server很有可能就分配1000个IP地址给它,因为server是根据client Mac来分配IP的,这样很快就可以把地址池资源耗尽,其它的用户因为没有地址可用而无法上网!

应对方法:配置DHCP option 82,DHCP discovery途径二层交换机时,交换机修改报文,增加option 82信息,即这条消息是从哪个端口收到的,把这个端口信息添加到DHCP discovery 报文里,服务器根据 client Mac 交换机端口号来分配IP,即任意一个交换机端口最多分配一个IP,即使用不同的Mac来请求也是一个!

这就是DHCP反欺骗措施,DHCP Anti-Spoofing!


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值