DHCP数据库异常解决方法数据库
一.问题简述:windows
1.問題主題:安全
在windows2008StandardR2DHCPServer手動為客戶端綁定IP地址出錯,同時有的用戶電腦IP地址沒有任何缘由出錯。服务器
2問題描述网络
1)在DHCPserverconsole介面,在Vlan115網段為MAC地址為b8ac6f626d61手動綁定ip出現問題圖片中的問題,app
可是將該mac地址綁定到其余vlan就OK,類似現象出現了4次。dom
2)今天eric的電腦沒有任何缘由出現問題圖片(2)中的顯示錯誤。ide
3問題圖片优化
1)以下圖,ui
2)
二.问题分析:
是dhcpdatabasecrash,也就是dhcpdatabase出现异常,正常状况下在命令提示符下导出的database文件dhcp.txt和dump.txt文件包含的内容是同样的,可是因database导出的dhcp.txt只能在UI界面显示,而没法修复dhcp.txt(直接打开dhcp.txt文件会显示乱码)里的数据,而导出的dump.txt文件能够直接打开修改相关异常数据,故修改了dump.txt文件的内容后再导入到dhcp中,也就是修改了dhcpdatabase里的内容。
1.将DHCPdatabase导出,可是导出的此文件没法打开,只能在UI界面能够打开,导出命令为:
在命令提示符下C:\Users\gzpadmin>netshdhcpserverexportd:\dhcp.txtall
2.导出DUMP文件,此文件包含了DHCPscope里全部详细的信息(比dhcp在UI界面看到的详细),导出命令为:
在命令提示符下C:\Users\gzpadmin>netshDHCPserverdump>d:\dump.txt
3.根据有问题的vlan的ip地址和mac地址查看dump.txt文件里的异常信息,将异常的信息删除后保存为dump2.txt
4.将dump2.txt从新导入到dhcp中,导入命令为:
在命令提示符下C:\Users\gzpadmin>netshexecd:\dump2.txt
5.导入dump2.txt文件后,刷新dhcp,不须要重启dhcpservice,就能够解决此问题了。
附:具体状况以下:
状况一:
为mac地址为082e5f0a5214绑定vlan124网段的ip地址出现以下异常:
缘由是这个mac地址在vlan124网段已经分配了124.18这个ip地址,在同一个vlan中不能够给一个mac地址分配2个ip地址。
状况二:
在dhcpUI界面看到这种类型的异常,以下图:
可能缘由有当dhcp为client分配了ip地址为114.15后,在网络中有其余的client手动设定114.15的ip地址,就会出现这种状况。
MS回复:收到BAD_ADDRESS的信息,是由于客户端申请IP地址时,若是本身经过ARP检测到这个IP地址已经被别的机器用了,那他就会发NACK包给DHCPserver,DHCPserver收到后就会把这个IP地址标记成BAD_ADDRESS。
这种状况处理方法:删除此ip地址,刷新DHCP,从新绑定ip地址便可。
状况三:
为mac地址为f46d04791032绑定vlan115网段的ip地址出现以下异常,只要是在vlan115网段为此mac地址分配任何一个ip都会出现以下界面,可是在其余vlan为此mac地址分配ip就OK。
这种状况是dhcpdatabasecrash,也就是dhcpdatabase异常形成的。
也就是说在vlan115网段的database中已经为此mac绑定过ip地址,可是在UI界面是看不到的。处理方法以下:
1.导出dhcpdatabase文件,导出方法以下:
在命令提示符下C:\Users\gzpadmin>netshDHCPserverdump>d:\dump.txt
2.打开此dump.txt文件,查看是否是已经存在了f46d04791032这个mac地址,以下图:
说明dhcpdatabase文件中已经为f46d04791032这个mac地址绑定了ip地址为10.132.115.151,不可能在同一个vlan中为一个mac地址绑定多个ip地址,因此在vlan115中为此mac地址绑定任何一个ip都是不成功的。
3.根据状况将异常的信息删除后保存为dump2.txt,将dump2.txt从新导入到dhcp中,导入命令为:在命令提示符下C:\Users\gzpadmin>netshexecd:\dump2.txt
,这步的操做也是修改dhcpdatabase的内容。导入dump2.txt文件后,刷新dhcp,不须要重启dhcpservice,就能够解决此问题了。
DHCPdatabasecrash缘由分析
对于DHCPdatabasecorrupt的问题,由于问题已经发生,咱们没有办法追溯到问题发生以前的状态,若是没有办法还原发生以前的状态,并重现一次问题,即便咱们有您在DHCPdatabasecorrupt时的database,咱们也很难启用audit,给出rootcause,可是一般咱们遇到这样的问题,咱们建议您对DHCPdatabase作一个按期的维护,您能够参照如下的步骤作一个按期的维护操做:
1.Toreconcileascope:
Reconcile操做方法:http://technet.microsoft.com/zh-cn/library/dd145311(v=WS.10).aspx
http://technet.microsoft.com/zh-tw/library/dd183579(v=ws.10).aspx
Reconcile的操做能够在线操做,对dhcpserver和client没有任何影响
a.OpentheDHCPManagementsnap-in.
b.ExpandtheDHCPserverobjectandhighlighttheapplicablescope
c.OntheActionmenu,clickReconcile
d.IntheReconciledialogbox,clickVerify.Inconsistenciesfoundwillbereportedinthestatuswindow
e.Ifthescopeisnotconsistent,selectthedisplayedaddressesthatneedtobereconciled,andclickReconciletorepairtheinconsistencies.
a.OpentheDHCPManagementsnap-in.
b.HighlightorselecttheapplicableDHCPserverobject.
c.OntheActionmenu,clickReconcileAllScopes
d.IntheReconcileAllScopesdialogbox,clickVerify.Inconsistenciesfoundwillbereportedinthestatuswindow.
e.Ifthedatabaseisnotconsistent,selectthedisplayedaddressesthatneedtobereconciled,andclickReconciletorepairtheinconsistencies.
3.Makesurethatthecustomerhasthe%systemroot%\system32\dhcpand%systemroot%\system32\dhcp\backupfolderssetasanexceptionforAnti-Virusapplicationscanningengines.
4.UsetheMicrosoftJetpack.exeutilitytocompactorrepairtheWindowsDHCP.mdbdatabase.
jetpack.exe操做方法:http://support.microsoft.com/kb/145881
jetpack.exe程序是一个字符型的命令程序,必须手工进行操做。
Cd\winnt\system32\dhcp(进入DHCP目录)
Netstopdhcpserver(让dhcp服务器中止运行)
Jetpackdhcp.mdbtemp.mdb(dhcp.mdb是dhcp数据库文件,temp.mdb是用于调整的临时文件)
Netstartdhcpserver(让dhcp服务器开始运行)
5.RestoringtheDHCPserverdatabaseisusefulinsituationswherethedatabasehaseitherbecomecorruptedorlost.Inordertosuccessfullyrestorethedatabase,youneedtobackupthedatabaseonaregularbasis.Bydefault,DHCPperformssynchronousbackupsthatoccurautomaticallyata60minuteintervaltothefolderlocation%systemroot%\System32\Dhcp\Backup,butyoucanalsoperformmanualbackups,orusebackupsoftwaretocopythedatabasetootherlocations.YoucanrestoretheDHCPdatabasefromabackupcopyofthedatabasefile,Dhcp.mdb,usingtheRestorecommandontheActionmenuintheDHCPconsole.WhenyourestoretheDHCPdatabasefromabackupcopyofDhcp.mdb,thefollowinginformationisconfiguredontheserver:
Allscopes,includingsuperscopesandmulticastscopes
Reservations
Leases
Alloptions,includingserveroptions,scopeoptions,reservationoptions,andclassoptions
Allregistrykeysandotherconfigurationsettings(forexample,auditlogsettingsandfolderlocationsettings)setinDHCPserverproperties
Note:TheDNSdynamicupdatecredentials(username,domain,andpassword)thattheDHCPserveruseswhenregisteringDHCPclientcomputersinDNSarenotbackedupwithanybackupmethod;thereforetheyarenotrestoredduringtherestoreprocedure.AfterrestoringtheDHCPdatabase,configurecredentialsfortheserver.
A:reconcile协调机制是什么,是协调dhcpdatabase和注册表的设置?仍是协调dhcpserver和client之间的信息?
您说当dhcpdatabase老化,也就是dhcpdatabase的设置和相关内容与注册表(仍是client)不一致时,reconcile操做会使其一致?
Q:主要是DHCPdatabase本身检查简单的语法问题和逻辑问题,和注册表不能说彻底没有关系,可是基本不会有易动,只是常规的检查如下。这里的语法问题或逻辑问题包括:1).ipaddress对应的host信息不正确,好比hostname丢失,错误;2).ipaddress丢失,好比4段ip10.132.126.80,变成了3段ip10.132.126.;3).dhcpdatabasecrash;
A:是否是dhcpserver的任何设置或修改都会写到注册表中?
Q:不是,注册表里存的是DHCP的一些全局配置,DHCPdatabase里存的是信息。
A:您说dhcp为client分配ip地址的动做也会写到注册表中?
Q:这个不会.
A:Jetpack.exe的机制是什么,具体是如何优化数据库的?先压缩后释放是什么意思?
此操做除了需stopdhcpservice以外,对dhcp还有没有其余的影响?
Q:相似于磁盘碎片整理。在database数据表中有不少数据块,当某些数据块再也不使用就空出了数据表,这样有数据的数据表和没有数据的数据表很分散,经过Jetpack.exe会整理数据表,将有数据的数据表整理到一块儿,没有数据的数据表整理到一块儿,这样达到释放空间的做用。请避开高峰操做。
A:咱们一般删除ip地址的方法是选择ip右键删除。这种删除实际上该ip在database里仍是存在的。
请教咱们这种操做是正确的吗,仍是说要用其余方法删除ip?可否麻烦您告知正确删除ip的方法?能够在UI的同时也在database里删除
Q:DHCPlease的删除只有在DHCPmanager里面能够删,您不用担忧UI和咱们上次所说的database不一样步的问题,上次没有显示在UI界面,是偶然现象,是由于DHCPdatabasecorrupt掉致使的,不会常常发生。请您放心。
技术连接可供参考:
-------------------------------------------
173396HowtoRestoreaCorruptedDHCPDatabaseFile
http://support.microsoft.com/default.aspx?scid=kb;EN-US;173396
283251HowtousetheJetpackutilityonaclusteredWINS/DHCPdatabase
http://support.microsoft.com/default.aspx?scid=kb;EN-US;283251
145881HowtoUseJetpack.exetoCompactaWINSorDHCPDatabase
http://support.microsoft.com/default.aspx?scid=kb;EN-US;145881
另外根据咱们的经验,能够提供可能形成DHCPdatabasecorrupt的possiblecause:
-----------------------------------------------------------------------------------------------------------
1.三方的应用程序和服务干扰了DHCPdatabase的读写操做。
2.检查磁盘读写是否正常,须要具体检查一下您的磁盘。
3.是否安装了三方安全软件,能够控制安全软件的扫描程序,将DHCP服务排除在外,以防干扰。
另外对于您的第二个问题,这里须要解释的就是,咱们前面所提供的cleanboot加二分法的步骤,就是能够定位具体是哪一个三方服务可能干扰DHCPservice。还有形成这个问题的rootcause跟第一个问题DHCPdatabasecorrupt确定不相关,若是要追踪这个新问题,咱们须要您上一个新case继续跟踪,同时您可放心,SA的客户能够免费上无限个case,不会对您有额外的收费要求,谢谢您一直以来的耐心和配合。