《博达通信DHCP原理.ppt》由会员分享,可在线阅读,更多相关《博达通信DHCP原理.ppt(92页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、DHCPDHCP原理原理课程内容课程内容 DHCP DHCP简介简介 DHCP DHCP原理原理 DHCP DHCP扩展介绍扩展介绍 实验与练习实验与练习 本章小结本章小结DHCPDHCP简介简介为什么会有为什么会有DHCPDHCP?所有基于TCP/IP协议族实现的网络,其通信的一个重要基础就是IP地址,但对于大多数非专业的用户而言,IP地址是什么都不甚了解,要正确设置或者修改就更难了但用户主机需要访问网络时,其网卡的IP却又是必不可少的DHCPDHCPD Dynamic H Host CControl P Protocol动态主机配置协议,就是用于简化主机IP地址设置的协议。通过DHCP,用
2、户可以实现各项必要网络参数IP、DNS、Wins等的“零设置”,做到“即插即用DHCPDHCP简介简介DHCPDHCP的设计目标的设计目标DHCP设计的主要目标是使TCP/IP网络的管理易于实现和维护:自动IP地址的分配和配置,用户无需手工配置所有IP地址资源都由服务器统一存放、控制,集中IP子网的管理对不使用的IP地址资源回收,提高利用率DHCPDHCP简介简介DHCPDHCP的优缺点的优缺点可避免手工设置所产生的错误可避免多个用户使用相同IP地址而产生的冲突无需网络管理员干涉,减少网络管理工作量每个用户的IP地址是不固定的、随机性的,不利于管理和监控服务器故障可能会导致全网瘫痪,需要在网内
3、做相应的冗余备份,网络组建成本增加课程内容课程内容 DHCP DHCP简介简介 DHCP DHCP原理原理 DHCP DHCP扩展介绍扩展介绍 实验与练习实验与练习 本章小结本章小结DHCPDHCP原理原理DHCPDHCP要解决的问题要解决的问题问题:问题:DHCP目的是为了方便使用者,无需手工配置IP等相关信息,而DHCP又是一种基于IP运行的协议,在没有IP地址的情况下,DHCP又如何交互呢?我们先介绍一下BOOTPBOOTP协议,即Bootstrap,它是DHCP协议的前身,在早期常使用在无盘工作站组建的网络中DHCPDHCP原理原理BOOTPBOOTP报文介绍报文介绍BOOTP协议承载
4、在于OSI七层模型的传输层之上,使用UDP协议BOOTP客户端发起的报文,UDP:68 UDP:68 UDP:67 UDP:67BOOTP服务器发起的报文,UDP:67 UDP:67 UDP:68 UDP:68DHCPDHCP原理原理BOOTPBOOTP报文介绍(续)报文介绍(续)DHCPDHCP原理原理BOOTPBOOTP报文介绍(续)报文介绍(续)主要字段解释:主要字段解释:OPOP消息类型,=1时表示BootRequest;=2时表示BootReplyHtypeHtype和HlenHlen硬件地址类型和地址长度,实际上表示物理层网络的类型,一般为以太网,长度为6bytesHopsHops
5、跳数,通常为0;中继时会修改,一般不用。XidXid会话id,随机数,用于确定Serv和Client的对应关系DHCPDHCP原理原理BOOTPBOOTP报文介绍(续)报文介绍(续)主要字段解释:主要字段解释:CiaddrCiaddrClient IP Addr,客户端IP地址,由客户端在发送请求时填写(如果有的话)YiaddrYiaddrYour IP Addr,客户端的IP地址;如果Ciaddr值为全0时,由服务器在Reply报文中填写SiaddrSiaddrServer IP Addr,服务器IP地址DHCPDHCP原理原理BOOTPBOOTP报文介绍(续)报文介绍(续)主要字段解释:主
6、要字段解释:GiaddrGiaddrGateway IP Addr,网关IP地址,通常只在BOOTP中继时才会用到ChaddrChaddrClient Hardware Addr,客户端硬件地址,通常在以太网中就是MAC地址,由客户端自己填写DHCPDHCP原理原理BOOTPBOOTP报文介绍(续)报文介绍(续)主要字段解释:主要字段解释:SnameSname客户端希望启动后使用的hostnamefilefilefile为空时,表示客户端只需要获得服务器分配的IP信息,或者由服务器来统一指定程序的加载;file可以填入指定的名字“unix”“gateway”,用以控制启动时需要加载的程序DHC
7、PDHCP原理原理BOOTPBOOTP简要处理流程简要处理流程BOOTP BOOTP RequetRequet客户端发送请求前首先需要确定如下几个参数:Ciaddr,通常启动时没有IP,置为0.0.0.0Chaddr,本机网卡硬件地址,按实填写Yiaddr、Siaddr、Giaddr均设为0.0.0.0随机生成一个Xid值OP=1将上述关键信息填写并封装到UDP报文中,目的UDP端口号为67,源端口为68将UDP封装到IP报文中,其目的IP为全网广播,源地址为0.0.0.0(未知,待分配)DHCPDHCP原理原理BOOTPBOOTP简要处理流程(续)简要处理流程(续)BOOTP ReplyBO
8、OTP Reply服务器收到Request请求之后,进行判断:如果Client没有Ciaddr,且自己有可用IP,给对方分配一个,填入Yiaddr;如果没有IP资源,丢弃将Server自己的IP地址填入SiaddrXid值与Request中完全相等OP=2将上述关键信息填写并封装到UDP报文中,目的UDP端口号为68,源端口为67将UDP封装到IP报文中,单播单播给客户端DHCPDHCP原理原理BOOTPBOOTP简要处理流程(续)简要处理流程(续)细节细节BOOTP客户端如果不知道服务器IP,可以通过广播报文来发送;但服务器在发送Reply报文的时候,客户端却是没有IP地址的,怎么实现?有两
9、种方法:1、虽然客户端没有IP,但服务器却知道Yiaddr和Chaddr两个关键地址,有了这些内容,服务器可以自己生成一个ARP信息,以实现IP报文的二层转发2、直接广播!DHCPDHCP原理原理BOOTPBOOTP简要处理流程简要处理流程Reply ReceivedReply Received客户端收到Reply回应之后,会进行判断:Ciadr、Chaddr、Xid是否和自己发送时的值相等,如果不等,则丢弃如果上述匹配关系正确,则读取Yiaddr地址给网卡设置,并进行后续的引导文件/程序的传输DHCPDHCP原理原理BOOTPBOOTP的缺点的缺点BOOTP协议过程非常的简单,中间缺乏必要的
10、安全控制机制BOOTP给每个用户分配的IP地址是“永久”的,不利于IP地址资源的合理高效利用随着网络的逐步发展,BOOTP逐渐被DHCP所取代DHCPDHCP原理原理DHCPDHCP和和BOOTPBOOTP的关系的关系BOOTP给客户端分配的IP地址是永久的,而DHCP分配的IP地址资源则具有时效性、是动态的,有利于提高IP资源的利用率DHCP和BOOTP使用相同的UDP协议报头,服务器端口67,客户端端口68,以至于很多程序对两者不做区分DHCP和BOOTP使用几乎完全相同的Request和Reply消息格式,只是DHCP的功能是依赖于报文的OPTIONOPTION字段来进行实现的;BOOT
11、P也有自己的“OPTION”字段,称之为VendVend,DHCP Option兼容BOOTP VendDHCPDHCP原理原理DHCPDHCP报文介绍报文介绍DHCPDHCP原理原理DHCPDHCP报文介绍(续)报文介绍(续)DHCP报文直接借用了BOOTP的报文格式,其中的核心内容是OPTIONOPTIONDHCP OPTIONDHCP OPTION格式格式每个Option都由TagTag、LenLen、DataData三大部分组成:1、Tag表示本Option的作用2、Len表明后续Data的长度(Tag=0、255的option比较特殊,没有对应Data,当然也不需要Len长度)3、D
12、ata内容作为Tag的补充详细说明DHCPDHCP原理原理DHCPDHCP报文介绍(续)报文介绍(续)DHCPDHCP常见常见OPTIONOPTIONRequested IP AddressRequested IP Address,DHCP客户端曾请求并使用过的IP地址,通常出现在请求报文中。Tag=50,Len=4,Data=ip.addrDHCPDHCP原理原理DHCPDHCP报文介绍(续)报文介绍(续)DHCPDHCP常见常见OPTIONOPTIONIP Address Lease TimeIP Address Lease Time,用户请求分配IP地址的使用时间(租约期),在DHCP客
13、户端的请求报文和服务器的回应报文中都有,但以服务器分配为准Tag=51,Len=4,Data=timeDHCPDHCP原理原理DHCPDHCP报文介绍(续)报文介绍(续)DHCPDHCP常见常见OPTIONOPTIONDHCP Message TypeDHCP Message Type,DHCP协议交互的控制报文类型Tag=53,Len=1,Data=1717(只用了3bit)DHCPDHCP原理原理DHCPDHCP报文介绍(续)报文介绍(续)DHCP Message Type是本文的一个重点,Data Value取值如下:Value=1,标示DHCP Discover DiscoverVal
14、ue=2,标示DHCP Offer OfferValue=3,标示DHCP Request RequestValue=4,标示DHCP Decline DeclineValue=5,标示DHCP ACK ACKValue=6,标示DHCP NAK NAKValue=7,标示DHCP Release ReleaseDHCPDHCP原理原理DHCPDHCP报文介绍(续)报文介绍(续)DHCPDHCP常见常见OPTIONOPTIONServer IdentifierServer Identifier,服务器身份,通常在DHCP报文中指定与哪个服务器进行交互通信Tag=54,Len=4,Data=ip
15、.adrDHCPDHCP原理原理DHCPDHCP报文介绍(续)报文介绍(续)DHCPDHCP常见常见OPTIONOPTIONParameter Request ListParameter Request List,请求参数列表,标示客户端需要服务器分配的内容Tag=55,Len=n(n1n1),Data=parameters其中,具体的参数内容使用代码来标示,如:1为子网掩码、6为DNS-Server等等,有兴趣的可以查找rfc获得更详细的内容DHCPDHCP原理原理DHCPDHCP报文介绍(续)报文介绍(续)DHCPDHCP常见常见OPTIONOPTIONClient identifierC
16、lient identifier,客户端身份识别,用以表示DHCP客户端的唯一身份,服务器据此查询数据库,唯一指定一个IP地址资源Tag=61,Len=n(n2n2),Data=hw.addr类似的Option还有OP=12,客户端的HostnameHostname,服务器也可以据此唯一绑定一个IP地址DHCPDHCP原理原理DHCPDHCP报文介绍(续)报文介绍(续)DHCPDHCP常见常见OPTIONOPTIONEndEnd,Tag=255时,是一个特殊的Option,表示所有的Options字段已经填充完毕,后面没有了。DHCPDHCP原理原理DHCPDHCP的协议流程的协议流程下面以D
17、HCP客户端的角度来描述DHCP整个协议流程转换机制DHCPDHCP原理原理DHCPDHCP的协议流程(续)的协议流程(续)INITINIT客户机第一次启动之后,进入InitInit初始化状态,此时通过发送DHCP Discover,用于探测和发现服务器,同时状态切换到SelectingSelecting状态该报文承载于UDP:67中,通过IP广播发送 DHCPDHCP原理原理DHCPDHCP的协议流程(续)的协议流程(续)DiscoverDiscover报文常见参数构成报文常见参数构成:OP1,BOOT Request XidRandomRandom,由,由ClientClient确定确定
18、Ciaddr0.0.0.00.0.0.0 YiaddrSiaddrGiaddr0.0.0.0 ChaddrClient MAC Client MAC AddrAddrDHCPDHCP原理原理DHCPDHCP的协议流程(续)的协议流程(续)DiscoverDiscover报文常见报文常见OptionOption构成构成:Requested IP addrMAY IP Addr Lease TimeMAY Client IentifierMAY Server IdentifierMust NOTMust NOT Parameter Request ListMAYMAYDHCPDHCP原理原理DHC
19、PDHCP的协议流程(续)的协议流程(续)INITINIT由于该请求为广播形式,通常在发送时会设置一个随机的实验延迟(10秒),以避免各个DHCP Client同时发送广播报文,对局域网造成不必要的影响DHCPDHCP原理原理DHCPDHCP的协议流程(续)的协议流程(续)SELECTINGSELECTING服务器收到Discover报文后,查看自己的IP Pool,如果IP Pool有地址可用,则选取一个地址,分配到Yiaddr中;如果没有可用IP,则丢弃;该报文被封装到UDP:68中,通过IP广播给ClientsDHCPDHCP原理原理DHCPDHCP的协议流程(续)的协议流程(续)SEL
20、ECTINGSELECTINGDHCP Serv判断Discover报文接收端口的IP网段,然后从与之相同的DHCP IP Pool中按顺序选取一个服务器同时还必须分配Lease Time给用户:如果Discover请求的Lease Time未指定,且Client还没有IP地址,则按照Server的默认设置分配 如果请求的Lease Time未指定,但Client已经获取了地址,则把该IP Binding的Lease time值返回 如果Discover指定了Lease Time值,则无论Client是否已经有IP地址,Server可以选择在请求值和自己的默认Lease Time中选取一个进行
21、分配DHCPDHCP原理原理DHCPDHCP的协议流程(续)的协议流程(续)OfferOffer报文常见参数构成:报文常见参数构成:OP2,BOOT Reply Xid,由由ClientClient的的DiscoverDiscover报文确定报文确定 Ciaddr0.0.0.0 YiaddrOffered IP Offered IP AddrAddr,由,由ServerServer确定确定 SiaddrBOOTP/DHCPBOOTP/DHCP ServServ IP IP AddrAddrGiaddr,由Discover报文确定 ChaddrClient MAC Client MAC Addr
22、Addr,from Discoverfrom DiscoverDHCPDHCP原理原理DHCPDHCP的协议流程(续)的协议流程(续)OfferOffer报文常见报文常见OptonOpton构成:构成:Requested IP addrMust NotMust Not IP Addr Lease TimeMustMust Client IentifierMust Not Server IdentifierMustMust Parameter Request ListMust NotMust NotDHCPDHCP原理原理DHCPDHCP的协议流程(续)的协议流程(续)REQUESTINGREQ
23、UESTING在一个广播域中,客户端可能同时收到多个DHCP Serv的Offer,如何选择呢?Client设置一个较短的收集时间段,在此期间可能收到的多个Offers,一般最先到达的Offer为优先,或者可以选择上次确定使用的Server,Client可以根据需要来进行选择,并向该Serv发起后续请求报文,同时状态切换为RequestingRequestingDHCPDHCP原理原理DHCPDHCP的协议流程(续)的协议流程(续)REQUESTINGREQUESTINGClient选定一个最优的Offer以后,就会根据该Offer提供的OPTION来发起Request,正式请求这些资源以上内
24、容被封装到UDP:6867报文,通过IP广播发送到指定的ServDHCPDHCP原理原理DHCPDHCP的协议流程(续)的协议流程(续)RequestRequest报文常见参数构成:报文常见参数构成:OP1,BOOT Request Xid,根据根据ServerServer的的OfferOffer报文确定报文确定 Ciaddr0.0.0.00.0.0.0 YiaddrSiaddrGiaddr0.0.0.0 ChaddrClient MAC AddrDHCPDHCP原理原理DHCPDHCP的协议流程(续)的协议流程(续)RequestRequest报文常见报文常见OptonOpton构成:构成:
25、Requested IP addrMustMust IP Addr Lease TimeMay Client IentifierMay Server IdentifierMustMust Parameter Request ListMayMayDHCPDHCP原理原理DHCPDHCP的协议流程(续)的协议流程(续)BOUNDBOUND服务器收到Request报文之后,会通过ACK报文给用户正式指派一个IP地址,并进行Binding操作;如果用户请求的IP地址非法,则回应NAK以上内容被封装到UDP:6768报文,通过IP广播发送到指定的ClientDHCPDHCP原理原理DHCPDHCP的协议
26、流程(续)的协议流程(续)ACKACK报文常见参数构成:报文常见参数构成:OP2,BOOT Reply Xid,根据根据ClientClient的的RequestRequest报文确定报文确定 Ciaddr0.0.0.0或者与Request报文相同 YiaddrServerServer指定指定 SiaddrBOOTP/DHCP BOOTP/DHCP ServServ IP IP AddrAddr Giaddr根据Request报文确定 ChaddrClient MAC AddrDHCPDHCP原理原理DHCPDHCP的协议流程(续)的协议流程(续)ACKACK报文常见报文常见OptonOpto
27、n构成:构成:Requested IP addrMust NotMust Not IP Addr Lease TimeMustMust Client IentifierMustMust Server IdentifierMustMust Parameter Request ListMust NotMust NotDHCPDHCP原理原理DHCPDHCP的协议流程(续)的协议流程(续)最后客户端收到ACK报文之后,从中提取相关的IP Addr、Lease Time、Router、DNS等信息,并自动设置到自己的网卡中DHCP基本流程就此结束,用户可以进行后续的网络访问和操作当然,Client如果
28、发现ACK报文异常,可以使用Decline报文进行拒绝,此时状态将回到初始INITINIT注意:DHCP Serv在正式ACK之前,通常需要通过Ping或者ARP报文来探测一下所分配的IP地址是否被其他主机占用!DHCPDHCP原理原理DHCPDHCP实例实例课程内容课程内容 DHCP DHCP简介简介 DHCP DHCP原理原理 DHCP DHCP扩展介绍扩展介绍 实验与练习实验与练习 本章小结本章小结DHCPDHCP扩展介绍扩展介绍DHCPDHCP的扩展介绍的扩展介绍DHCPDHCP的定时器的定时器DHCPDHCP的的REBOOTREBOOTDHCPDHCP的释放的释放DHCPDHCP中继
29、中继DHCP-SnoopingDHCP-SnoopingDHCPDHCP扩展介绍扩展介绍DHCPDHCP定时器定时器DHCPDHCP定时器定时器BOOTP协议中,服务器为客户主机分配完IP地址等之后,该地址将被“永久”使用,但这显然不利于有限IP资源的高效利用,所以DHCP在设计中引入了Lease Time这个租约的概念,并围绕它设置了多个定时器,以确保IP地址资源都分配给了活动的主机,不活动主机的IP地址资源将被回收再利用 Lease Time初始值通常由DHCP Serv统一指定DHCPDHCP扩展介绍扩展介绍DHCPDHCP定时器(续)定时器(续)T1T1定时器定时器DHCP客户主机首先
30、需要维护一个T1定时器,它通常是Lease Time的一半当客户端收到服务器分配地址的T1时间之后,将自动进入RenewingRenewing状态,重新向DHCP Serv发送Request报文,用以请求/续订原IP地址的租约时间注意该IP报文是单播给原DHCP服务器的DHCPDHCP扩展介绍扩展介绍DHCPDHCP定时器(续)定时器(续)与正常与正常RequestRequest报文的差异报文的差异相对于正常DHCP流程,Renewing状态中发起的Request报文,主要有如下几个差异:CiaddrClient IP Client IP addraddrServer IdentifierMu
31、st NotMust Not服务器收到Renewing的Request报文之后,如果判定该IP地址还有效,会回应ACK报文,其中包含了一个新的Lease Time值DHCPDHCP扩展介绍扩展介绍DHCPDHCP定时器(续)定时器(续)客户端收到DHCP ACK之后,提取其中的Lease Time,更新自己的定时器,同时其状态返回BOUNDBOUND。如果客户端没有收到ACK报文,则继续等待:在后续的时间段中,每到剩余时间的一半时,就会重新发送Renewing Request报文,即分别在1/2、3/4、7/8等时发送,但两个发送的最小时间间隔不会小于一分钟如果客户端在7/8租约期时的请求还没
32、有回应,则状态自动切换到RebindingRebindingDHCPDHCP扩展介绍扩展介绍DHCPDHCP定时器(续)定时器(续)T2T2定时器定时器T2定时器就是租约期的,显然如果如果客户端的T1 Renewing更新正常的话,DHCP是不会等到T2定时器到来并进入Rebinding状态的。只有Renewing更新不正常时,Client的才会在T2时刻进入Rebinding,并发送Request报文来续订原IP地址的租约DHCPDHCP扩展介绍扩展介绍DHCPDHCP定时器(续)定时器(续)RebindingRebinding状态中的状态中的RequestRequest报文报文Rebind
33、ing状态中的Request报文,上层格式和参数方面,几乎完全相同,需要注意:CiaddrClient IP Client IP addraddrServer IdentifierMust NotMust Not但该Request报文不再通过单播来发送,而是通过广播DHCPDHCP扩展介绍扩展介绍DHCPDHCP定时器(续)定时器(续)客户端在T2时刻进入Rebinding状态后,如果发送的Request广播没有任何回应,会跟Renewing状态相似,每当剩余租约时间减半的时候,将重新发送续约请求,当然最小时间间隔60秒如果有服务器返回ACK,即续约成功,客户端将复位自己的租约时间并重新进入到
34、BOUNDBOUND状态如果在Lease Time完全到期之前,服务器都没有回应,Client将重新返回INITINIT初始状态,开始新一轮的DHCP请求。DHCPDHCP扩展介绍扩展介绍DHCPDHCP的的REBOOTREBOOTREBOOTREBOOT用户通过DHCP获取的IP地址虽然是“动态”的,但一般情况下为了方便日常使用,同一台主机在不同时刻请求到的IP地址尽量保持不变,用户通常缓冲上次获取的IP地址等信息,这种情况下,它在请求时,就直接通过广播发送Request报文;当然其中包含了原有的IP地址等信息DHCPDHCP扩展介绍扩展介绍DHCPDHCP的的REBOOTREBOOT(续)
35、(续)服务器收到这种指定IP地址(Requested IP Addr)的Request报文,会查看自己的Binding数据库,如果有匹配的条目且没有超过Lease Time,就直接通过ACK报文来分配地址;否则发送NAK;客户端收到NAK,或者在有限时间内没有收到服务器ACK报文之后,状态将切换会初始的INITINIT状态DHCPDHCP扩展介绍扩展介绍DHCPDHCP的释放的释放DHCPDHCP的的ReleaseRelease如果用户离开,不再需要原有分配的IP信息时,可以通过发送Release报文给DHCP Server,这样可以让Serv端尽快的释放IP资源,而不必等到Lease Tim
36、e的结束Release报文的发送,是不期待服务器有回应的。DHCPDHCP扩展介绍扩展介绍DHCPDHCP的释放(续)的释放(续)ReleaseRelease报文常见参数构成:报文常见参数构成:OP1,BOOT Request Xid,由客户端确定 Ciaddr Client IP Client IP AddrAddr YiaddrSiaddrGiaddr0.0.0.0 ChaddrClient MAC AddrDHCPDHCP扩展介绍扩展介绍DHCPDHCP的释放(续)的释放(续)ReleaseRelease报文常见报文常见OptonOpton构成:构成:Requested IP addrM
37、ustMust IP Addr Lease TimeMust NotMust Not Client IentifierMay Server IdentifierMustMust Parameter Request ListMust NotMust NotDHCPDHCP扩展介绍扩展介绍DHCPDHCP的中继的中继DHCP-RelayDHCP-Relay正常情况下,DHCP Client和Serv属于同一个广播域,也就是说Client发送的Discover广播能够找到Serv,只有这样,后续的Offer、Req、ACK等报文才有可能出现,但如果在多VLAN环境中,Serv和Client处于不同的
38、广播域,情况又如何呢?这就需要开启DHCP-Relay功能关键:解决三层设备默认不转发广播报文的问题。DHCPDHCP扩展介绍扩展介绍DHCPDHCP的中继(续)的中继(续)DHCP-RelayDHCP-Relay原理很简单,Relay设备在收到DHCP相关报文之后,如果自己本地没有DHCPd服务,就将原报文通过IP单播送到指定的DHCPd服务器上进行处理从而,Client和Server之间可以间接的进行通讯DHCPDHCP扩展介绍扩展介绍DHCPDHCP的中继(续)的中继(续)Option:82Option:82Relay在将DHCP报文转发到Serv的过程中,需要添加一个Option:82
39、Option:82选项,即Relay Agent Info Option;该Option比较特殊,它处于255(End)之前,所有其他Option之后。Option82又可包括若干sub-optionsub-option,至少包含一个,其中常见的为sub-option1、sub-option2、sub-option5DHCPDHCP扩展介绍扩展介绍DHCPDHCP的中继(续)的中继(续)Sub-option1Sub-option1Circuit ID,通常在Relay设备上配置,用于描述Client连接交换机的对应VLAN、Port等信息Sub-option2Sub-option2Remote
40、 ID,也在Relay设备上面配置,用于描述中继设备的MAC地址信息Sub-option5Sub-option5Link Selection,用于在Option82中添加Relay设备的IP地址,Server将会根据这个IP地址分配同网段的IP地址资源给ClientDHCPDHCP扩展介绍扩展介绍DHCP-SnoopingDHCP-SnoopingDHCP-snoopingDHCP-snooping这个功能与DHCP本身并没有太多的关联,这是一种借助DHCP应用而存在的解决、防止ARP欺骗的技术手段在预防ARP欺骗时,可以使用静态ARP绑定,这种方法虽然很高效,但实际维护起来工作量很大。DHC
41、P-Snooping就是一种借助于DHCP协议,来方便、自动的预防ARP欺骗的详细内容请参阅局域网问题之ARP篇解决方案解决方案DHCP-SnoopingDHCP-SnoopingDHCP-SnoopingDHCP-Snooping相比于静态ARP,Port-Security的Bind/Block功能已经进了一步,可以完全在交换机上进行操作,并达到预防ARP欺骗的目的,但操作起来还是非常麻烦,尤其是需要维护大量的IP和MAC对应关系DHCP-Snooping的就是在实现Port-Security功能的前提下,不需要人工去收集和维护IP、MAC对应关系。该功能可分为DHCPdDHCPd和DHCP
42、-RelayDHCP-Relay两部分 很明显DHCP-snooping依存于DHCP而存在。解决方案解决方案DHCP-SnoopingDHCP-Snooping(续)(续)DHCPdDHCPd Snooping SnoopingDHCPd-snooping的原理比较简单:根据DHCP协议的原理,服务器在给客户端的最后一个报文DHCP Reply中,是包含有对方的IP信息和MAC的,且两者都是正确的信息。DHCP过程中的这组对应关系恰恰就是“绑定”所需要而人工收集很麻烦的,能不能通过软件来自动处理并利用起来呢?答案是肯定的。解决方案解决方案DHCP-SnoopingDHCP-Snooping(
43、续)(续)命令语法命令语法ipip dhcpddhcpd snooping snooping arparp该功能需要配置在开启了DHCPd功能的BDCOM路由器或者三层交换机上。DHCPd每次给客户端分配完地址之后,自动将对方的ARP信息写成静态的条目。解决方案解决方案DHCP-SnoopingDHCP-Snooping(续)(续)注意:注意:1、DHCPd-snooping不需要再额外配置Port-Security功能2、只能预防网关设备/DHCPd的ARP被欺骗,而客户端的需要另外的手段来防护(想想为什么?)解决方案解决方案DHCP-SnoopingDHCP-Snooping(续)(续)D
44、HCP-Relay SnoopingDHCP-Relay SnoopingDHCP-Relay snooping实现的原理与DHCPd snooping完全一致,只是在局域网交换机上收集这些IP、MAC对应关系,并选择进行“绑定”通过在交换机端口上的绑定,可以实现客户端PC的ARP免受欺骗,同时也防止客户端PC去欺骗其他主机/网关的ARP信息。在这一点上,其功能和Port-Security bindbind非常相似。解决方案解决方案DHCP-SnoopingDHCP-Snooping(续)(续)DHCP-RelayDHCP-Relay与与DHCP-Relay snoopingDHCP-Rela
45、y snooping注意,DHCP-Relay与DHCP-Relay snooping,两者完全没有任何直接的关联。前者是用于解决DHCP的服务器和客户端不在同一广播域中而产生的技术(请参阅DHCP章节的内容)后者只是用于区分DHCPd-Snooping而给了一个别的称谓。多数情况下,我们直接把DHCP-Relay Snooping简称为DHCP snooping,这是本节的核心内容解决方案解决方案DHCP-SnoopingDHCP-Snooping(续)(续)DHCP snoopingDHCP snooping命令命令ipip dhcpdhcp-relay snooping-relay sn
46、ooping软件开关,使能DHCP snooping功能ipip dhcpdhcp-relay snooping-relay snooping vlanvlan 指定在某个/某些VLAN中生效ipip dhcpdhcp-relay snooping db-file-relay snooping db-file 将绑定关系写入到Flash种的指定文件ipip dhcpdhcp-relay snooping database-agent-relay snooping database-agent 将绑定关系备份到外部服务器中(TFTP协议)ipip dhcpdhcp-relay snooping
47、write-time-relay snooping write-time 设定绑定关系更新/写入文件的时间间隔解决方案解决方案DHCP-SnoopingDHCP-Snooping(续)(续)以上命令仅作用于DHCP流程中的各个报文,对于ARP、其他IP报文则没有影响同时,从DHCP协议交互过程中,提取必要的正确的IP、MAC对应关系;通常这些信息都是关于Client的思考:思考:DHCP snooping中的MAC和IP地址信息分别来自于DHCP交互过程中的哪个报文?解决方案解决方案DHCP-SnoopingDHCP-Snooping(续)(续)信任端口信任端口dhcpdhcp snoopin
48、g trust snooping trust该命令可以将交换机端口设置为信任信任/非信任非信任端口交换机收到Serv端的DHCP报文,如果是从信任端口接收,则正常处理;如果是从非信任端口接收,则直接丢弃交换机收到Client端的DHCP报文,如果是从信任端口接收,则正常处理;如果是从非信任端口接收,则需要比对其MAC地址是否符合对应关系(如果有),符合则正常处理,不符合则丢置。解决方案解决方案DHCP-SnoopingDHCP-Snooping(续)(续)显然,只有连接在信任端口上的DHCP Serv才能正常工作,如果接在非信任端口上,Serv是无法工作的PC(DHCP client)无论连接
49、到信任/非信任端口,都可以正常工作,交换机都会进行收集其IP、MAC地址对应关系;Client连接在信任端口时,DHCP报文正常处理;但如果连接在非信任端口,交换机需要检查其源MAC地址,即其以太网帧的源MAC与DHCP payload中的Client MAC地址是否相等,若相等,正常处理;若不等,判为DHCP欺骗,丢弃解决方案解决方案DHCP-SnoopingDHCP-Snooping(续)(续)DHCP snoopingDHCP snooping调用调用DHCP snooping从DHCP协议交互过程中获取的IP、MAC对应关系,在不做更多操作的情况下,只会对DHCP报文产生影响,但对AR
50、P、IP等比较敏感的报文则不起任何作用只有经过相应的调用之后才会起到过滤作用,并以此可以实现ARP欺骗的预防、安全绑定等效果解决方案解决方案DHCP-SnoopingDHCP-Snooping(续)(续)针对针对ARPARP报文报文开启ARP inspection后,交换机会判断接收接收的ARP报文,如果是从trust端口,则默认允许;如果是非信任端口接收的,那么必须先匹配DHCP snooping手机的IP、MAC对应关系,只有匹配的ARP报文才会放行 ipip arparp inspection inspection vlanvlan 全局开启ARP inspection功能arparp