新足迹

 找回密码
 注册

精华好帖回顾

· 【摄出你的足迹】拍三年 (2013-1-3) 星星星星 · 我在悉尼的平房梦—今天搬了新家,感觉很很好啊,上图,谢谢大家。。。 (2012-5-14) CITYLOOK
· 写点卖车经历,回国前最后为车版做点贡献 (2013-1-31) look2046 · 带你的孩子阅读 (2007-6-21) poloand
Advertisement
Advertisement
查看: 1978|回复: 26

没有DHCP到底PC能不能拿到IP [复制链接]

发表于 2011-2-23 19:17 |显示全部楼层
此文章由 roo81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 roo81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
今天做了一个有趣的实验,我自己也不能很好的解释为什么。

我们用的cisco switch上有十多个VLAN。每个VLAN的配置中有IP HELPER指向我们的WINDOWS 2003的DHCP server。

我们测试了其中一个VLAN上的一个XP机器。这个机器从DHCP拿到了IP。我们用了IPCONFIG /RELEASE,释放掉了IP。马上disable掉VLAN上的IP HELPER,在XP机器上运行IPCONFIG/RENEW 没有得到任何IP。
然后,我们重新启动了XP,发现这个机器居然开始使用它原来的IP address。这个时候,DHCP依旧没有开启。

是CISCO的siwtch上记住了IP mac address和IP 的相关信息吗?还是其它什么东西给了这个机器一个IP?

我的理解一直是,DHCP是XP启动时候的重要服务。如果这个服务在网络上不可用,那么XP是无法正常启动的。这个实验倒是让我觉得应该好好重新分析下网络和机器的设置。我依旧认为计算机经过重新启动,是无法记住它自己原先的IP的。难道这个概念不对吗?

谢谢各位IT仁兄先!!
Water
Advertisement
Advertisement

发表于 2011-2-23 21:49 |显示全部楼层
此文章由 roo81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 roo81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
奇怪

发表于 2011-2-23 23:11 |显示全部楼层
此文章由 roo81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 roo81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
weird

发表于 2011-2-23 23:26 |显示全部楼层
此文章由 lingyang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingyang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
你用的是什么型号的cisco交换机?

1. 如果是IOS能把完整的#debug ip packet 打包attach上来么?

2. 如果是nexus7K/5k的交换机就用 #debug dhcp pkt-events
然后抓一下包: #ethanalyzer local interface inband capture-filter "udp dst port 67" limit-captured-frames 15
attach上来

还有你的交换机的端口配置

评分

参与人数 1积分 +3 收起 理由
roo81 + 3 兄弟,你这要求难度对我太大了。

查看全部评分

发表于 2011-2-23 23:46 |显示全部楼层
此文章由 adler 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 adler 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 roo81 于 2011-2-23 19:17 发表
今天做了一个有趣的实验,我自己也不能很好的解释为什么。

我们用的cisco switch上有十多个VLAN。每个VLAN的配置中有IP HELPER指向我们的WINDOWS 2003的DHCP server。
我们测试了其中一个VLAN上的一个XP机器。这个机 ...


dhcp server是独立的vlan是么 如果你测试用的机器跟dhcp server在一个vlan 不用配ip helper也可以拿到ip add
PC重启肯定是会重新索取ip地址的 因为DHCP client service restart了

其实抓一下包就好了 就知道谁给你的PC分的地址了

评分

参与人数 1积分 +3 收起 理由
roo81 + 3 VLAN中能记住前次XP MAC address 和IP的联系吗?

查看全部评分

发表于 2011-2-24 14:07 |显示全部楼层
此文章由 roo81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 roo81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 lingyang 于 2011-2-23 23:26 发表
你用的是什么型号的cisco交换机?

1. 如果是IOS能把完整的#debug ip packet 打包attach上来么?

2. 如果是nexus7K/5k的交换机就用 #debug dhcp pkt-events
然后抓一下包: #ethanalyzer local interface inband ca ...


兄弟啊,你这个要求难度对我实在是太大了。

只是想要核实一下,XP 启动后 不会记住之前的IP。如果拿到了一个IP,一定有什么东西在网络上起到了,类似DHCP的功能。不知道CISCO的交换机是否有这个功能。
Water
Advertisement
Advertisement

发表于 2011-2-24 14:12 |显示全部楼层
此文章由 roo81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 roo81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 adler 于 2011-2-23 23:46 发表


dhcp server是独立的vlan是么 如果你测试用的机器跟dhcp server在一个vlan 不用配ip helper也可以拿到ip add
PC重启肯定是会重新索取ip地址的 因为DHCP client service restart了

其实抓一下包就好了 就知道谁给你的PC分的地址了


是啊。XP启动的时候,通过广播来找DHCP server 。广播是不能胯VLAN的。但是同一个VLAN应该可以找到DHCP。

但是,我们这个测试的XP在另外一个VLAN。IP 地址也不在一个网段。正常说,DHCP的请求广播是不会找到DHCP的。

但是重启后,XP就是拿到了它自己原来的IP,而且,leasing时间都一致。说明什么地方确实记住了这些setting,但是XP是不会自己记住的。对吧。
Water

发表于 2011-2-24 14:20 |显示全部楼层
此文章由 teltell 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 teltell 所有!转贴必须注明作者、出处和本声明,并保持内容完整
BOOTP也可以分配地址的。

评分

参与人数 1积分 +2 收起 理由
roo81 + 2 确实可能有这个原因。

查看全部评分

发表于 2011-2-24 14:23 |显示全部楼层
此文章由 bulaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bulaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dhcp has a lease expiry period (TTL) thingy. When it reaches half the period, XP start checking with DHCP server. The closer it gets the more frequent it checks. But it WILL remember the IP, even through reboot, until it expires. Then if the workstation still can't get an IP address from DHCP server, it'll assign itself a 169.254.*.* IP address (after SP3). Before SP3 it'll just disable TCP/IP stack.

评分

参与人数 1积分 +3 收起 理由
roo81 + 3 Will XP ask DHCP to check it's previous

查看全部评分

发表于 2011-2-24 16:06 |显示全部楼层

回复 6# 的帖子

此文章由 lingyang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingyang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Cisco交换机没有这样的功能. 在交换机上的debug能让我们清楚知道是不是交换机的问题. anyway 版主已经给出了官方解释了.

评分

参与人数 1积分 +2 收起 理由
roo81 + 2 一听你说switch上的debug我就晕。难度太大了。

查看全部评分

发表于 2011-2-24 18:30 |显示全部楼层
此文章由 roo81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 roo81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 bulaohu 于 2011-2-24 14:23 发表
dhcp has a lease expiry period (TTL) thingy. When it reaches half the period, XP start checking with DHCP server. The closer it gets the more frequent it checks. But it WILL remember the IP, even thro ...


so, if a xp rebooted with IP leasing not expired, it doesn't need DHCP server to be available. it will use old IP address after reboot. that sounds weird to me.
Water
Advertisement
Advertisement

发表于 2011-2-24 19:28 |显示全部楼层
此文章由 bulaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bulaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 roo81 于 2011-2-24 18:30 发表


so, if a xp rebooted with IP leasing not expired, it doesn't need DHCP server to be available. it will use old IP address after reboot. that sounds weird to me.


yes this is what I recall. No this is not weird - pay attention to the concept of DHCP lease - If you lease an IP address out for 28 days, then the client should have confidence that this ip will be assigned to it for 28 days. White paper suggests that DHCP client will normally start asking server "hey is this ip still mine?" by 14 days, then start asking more frequently at 21 days, until eventually when the lease expires, it renews. Reboot should not affect this contract. If it does, that's putting lots of unnecessary pressure on the DHCP server which helps nobody.

发表于 2011-2-24 20:15 |显示全部楼层
此文章由 roo81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 roo81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 bulaohu 于 2011-2-24 19:28 发表


yes this is what I recall. No this is not weird - pay attention to the concept of DHCP lease - If you lease an IP address out for 28 days, then the client should have confidence that this ip will be ...


this is with DHCP is online and working well.

if the DHCP is not avaialbe any more, XP reboots, it won't get a IP, at least wont get a IP from DHCP range.

the test we are trying to prove is if DHCP client XP reboots without a DHCP will it keep its previous IP address or not?

If a XP can remember its previous IP address after reboot without DHCP, the things will become very weird. For example, if your laptop obtained a IP from your company's DHCP server, which is, say, 10.9.8.7. Then you shutdown it down, bring it back to your home, and restart it with your ADSL modem with DHCP function, 192.168.0.1. You will not be able to see 足迹 because it will keep the old ip address 10.9.8.7, which is conflict with your home network.
So, i think the concept should still be that when XP reboots, it needs DHCP to either assign IP or keep it previous leasing session. And without a DHCP, it will not have a IP and not be able to keep its previous leasing.

the test we had yesterday, didn't show me what i was expecting. just don't understand why.
Water

发表于 2011-2-24 21:41 |显示全部楼层
此文章由 lingyang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingyang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
你见到的是正常的XP behaviour, 和cisco交换机没有关系. 简单来说如果DHCP server offline, 但是gateway still pingable, XP 重启后仍然会用之前的DHCP IP.

你可以在xp机器上用wireshark抓包来confirm

[ 本帖最后由 lingyang 于 2011-2-24 21:42 编辑 ]

评分

参与人数 1积分 +1 收起 理由
roo81 + 1 不对,pingable 是拿到IP后才能做的事情。

查看全部评分

发表于 2011-2-24 22:24 |显示全部楼层
此文章由 roo81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 roo81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 lingyang 于 2011-2-24 21:41 发表
你见到的是正常的XP behaviour, 和cisco交换机没有关系. 简单来说如果DHCP server offline, 但是gateway still pingable, XP 重启后仍然会用之前的DHCP IP.

你可以在xp机器上用wireshark抓包来confirm


还是不理解。
你说gateway pingable, 那是有了IP之后才能做的事情啊。没有分配给XP ip,xp怎么知道gateway是否可以ping呢?

那么在XP启动后,加载各个服务的时候,应该是和DHCP有通话。但是应该不是全部的更新DHCP leasing。象bulaohu说的,那样DHCP server 会累死的。
更重要的一点是,之前的所有TCP/IP信息,在shutdown时候应该就没有了,因为他们是在内存里的。下次重新启动,TCP/IP的服务需要重新初始化。这个初始化应该和前一次的DHCP 一点关系都没有。只是当重启后,如果能和同一个DHCP server通话,就可以续用前次保存在DHCP上的leasing。而不是保存在XP上的leasing。如果,前次DHCP server不可用,那这次的初始化就要全部重新来。XP系统里是不会自己记住IP 地址,更不该重新开始使用相同的设置。

最少最少,xp的TCP 服务是会试图和在网络上可用的DHCP服务联系,而不是自己闷头使用上次的IP,而全然不管DHCP和其它的情况。
Water

发表于 2011-2-24 22:30 |显示全部楼层
此文章由 roo81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 roo81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
wireshark也是要等TCP服务栈全部加载完成后才能正常工作吧。

这个问题的麻烦就在于这个TCP的初始化应该是在OS加载后,甚至同时完成的。很难追查。

谢谢这位兄弟的分析!
Water
Advertisement
Advertisement

发表于 2011-2-24 22:33 |显示全部楼层
此文章由 lingyang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingyang 所有!转贴必须注明作者、出处和本声明,并保持内容完整

发表于 2011-2-24 22:36 |显示全部楼层

回复 16# 的帖子

此文章由 lingyang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingyang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
忘了你的电脑还要重启, 不过你可以SPAN交换机的端口然后在另一台通网段的PC上用wireshark抓包.

发表于 2011-2-24 22:37 |显示全部楼层
此文章由 bulaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bulaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 roo81 于 2011-2-24 20:15 发表


this is with DHCP is online and working well.

if the DHCP is not avaialbe any more, XP reboots, it won't get a IP, at least wont get a IP from DHCP range.

the test we are trying to prove is if DHC ...


ya, dhcp client probably will send a broadcast out when it boots up. if the dhcp server which answers has a different MAC, then it knows the world has changed. Or other means to detect this. I'm not sure about the details here, but there has to be a way for it to detect network change, and if that happens, go back to step 1 of dhcp negotiating.

发表于 2011-2-24 22:39 |显示全部楼层
此文章由 bulaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bulaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 lingyang 于 2011-2-24 22:33 发表
看看这个MS的doc
http://support.microsoft.com/kb/958336


hmm. why M$ changed this in Vista? Interesting. Maybe to promote the use of APIPA?

发表于 2011-2-24 22:50 |显示全部楼层
此文章由 ghrong 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ghrong 所有!转贴必须注明作者、出处和本声明,并保持内容完整
If DHCP is not available, client should get an APIPA address which is 169.254.x.x
Advertisement
Advertisement

发表于 2011-2-24 23:01 |显示全部楼层
此文章由 lingyang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingyang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
OK, 终于找到这个文档了

Restarting a DHCP Client: http://technet.microsoft.com/en-us/library/cc958945.aspx

评分

参与人数 1积分 +2 收起 理由
roo81 + 2 偶对你的景仰如滔滔江水

查看全部评分

发表于 2011-2-24 23:28 |显示全部楼层
此文章由 roo81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 roo81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
xp 看来真的会记住前次的IP地址啊。只是,它记在哪里了呢?注册表?还是一个文件里?反正不是内存了。

发表于 2011-2-25 09:07 |显示全部楼层
此文章由 lingyang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingyang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这个就不清楚了, tz里有没有MS的大牛来解释一下阿
头像被屏蔽

禁止发言

发表于 2011-2-25 09:28 |显示全部楼层
此文章由 linkspeed 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 linkspeed 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这个169.254.x.x很讨厌的,有时候多少遍ipconfig都无法更正。有时候开机就好。 我这个是1台PC接到路由器上。

发表于 2011-2-25 09:52 |显示全部楼层
此文章由 lingyang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingyang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dhcp 有个62秒的限制, 超过62秒拿不到地址就只能是APIPA的地址了,5mins之后会retry. 你在你的PC上抓一下包看看是不是dhcp超时了
Advertisement
Advertisement

发表于 2011-2-25 22:32 |显示全部楼层
此文章由 roo81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 roo81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
回头找个VMWARE, 装几个机器试试

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部