Re: [问题] ISP的IP好像不是靠MAC记忆的?

楼主: s25g5d4 (function(){})()   2017-07-09 20:02:30
※ 引述《LIAR (玻璃做的大叔)》之铭言:
: 这问题单纯是技术问题,倒不是说我非得固定IP或是要换IP,纯粹好奇而已。
: 我用的是凯播cable。以往的经验,因为分享器没拔掉,一个IP可以用几个月没问题,
: 之前看到有人想换IP,所以有高手提到DHCP的租约时间,还有MAC等问题。
: 我因为买了几个行动基地台,还有centOS可以玩,我把大家的MAC都改成和我的分享器
: 一样,有用过ifconfig确认或是接别台router确认过MAC,不过插到modem上面就
: 都是不同的IP。
: 我有把modem整个拔掉重新过电,只是拿到的IP还是本身机器原本拿到的,
: 不同机器拿的IP就是不同,所以我认为应该不只MAC作用,请问有人知道
: 这种IP短时间的记忆,是靠什么办到的?
刚好小弟大学时研究过一阵子 DHCP。(明明才刚毕业)
这里要谈起 RFC 2131,也就是 DHCP 协定的标准。
我不打算详谈内容与历史,不过我要介绍一下 DHCP 协定的运作方式。
作者: crazycy (LCY)   2017-07-09 20:34:00
真巧 小弟我在大学时(刚毕业)也稍微读了一下RFC 2131
楼主: s25g5d4 (function(){})()   2017-07-09 20:45:00
谢大大 carry 毕业
作者: LIAR (玻璃做的大叔)   2017-07-10 00:46:00
感激说明,根据您最后一段的说明,意思是有可能还有MAC以外的参数送出给server判断给哪个IP囉?我下一步想改hostname看看会怎样XD
楼主: s25g5d4 (function(){})()   2017-07-10 00:57:00
不是... 是你的装置第一次拿到 IP 之后就爱上那个 IP,之后他都跟 server 要同一个 IP 来用,server 看看这个 IP 能用就给他了,所以才会一直拿到同一个 IP。DHCP server 一般不会设计得那么复杂,虽然可以看 hostname 去发,但不是每个装置都会送 hostname。实务上我也没听过用 hostname 去发 IP 的。
作者: LIAR (玻璃做的大叔)   2017-07-10 07:34:00
我是假设sapido的携带基地台每次断电都会【忘掉】之前用的IP,看来有盲点...那请问如果我用EPC装CentOS的话,他【爱上的IP】请问会是记忆在哪里呢?
楼主: s25g5d4 (function(){})()   2017-07-10 12:19:00
/var/lib/dhcpd 看看 或 /var/lib/dhcp我用 Kubuntu 试了一下,lease file 在 /var/lib/NetworkManager 下。没清掉 lease file 的话重插网络线会从 REQUEST 开始,请求之前用过的 IP。把 lease file 清掉后会从 DISCOVER 开始,并且不带 IP。不过我的 router 会发同一个 IP 回来就是了。
作者: Windcws9Z (闻肉丝就饿)   2017-07-10 14:30:00
Me too...即便Router等网络设备 都已经断电两分钟以上区网上线后 所有的电脑跟手机平板都还是会要到同一个IP
作者: lwrwang (lwr)   2017-07-10 15:41:00
简单来说,DHCP发IP是靠MAC"算出来",如果已经有人用了就会去算出第二个IP,所以如果没有人用过第一个IP,就可以天长地久的用下去
楼主: s25g5d4 (function(){})()   2017-07-10 15:58:00
我去翻了 dnsmasq,确实会有看 hostname 发 IPdnsmasq 的 lease file 里面存了 lease time, MAC, IP,hostname
作者: LIAR (玻璃做的大叔)   2017-07-10 23:35:00
我周末来改改lease file再回报状况XD,我猜这个就是我追寻许久的答案了。
楼主: s25g5d4 (function(){})()   2017-07-11 03:44:00
其实我试过了,没删 lease file 的情况下把网络线接上去会发 DHCPREQUEST 试着拿旧的 IP,把 lease file 砍掉会从 DHCPDISCOVER 重新开始,但结果 router 又发同一个IP 回来。在去 router 上看,发现他不只记录 MAC 还记录hostname, 所以其实两个参数都可能被拿去参考。

Links booklink

Contact Us: admin [ a t ] ucptt.com