Skip to content

记一次解决IP和MAC不匹配过程 #16

@oufeng

Description

@oufeng

问题重现

已经确定了摄像头的IP192.168.1.8,而每次从chrome输入192.168.1.8时都会跳转到路由器的管理界面,而不是摄像头的管理界面。

解决过程

怀疑是chrome本身的DNS缓存机制导致

通过google查询如何强刷chromeDNS缓存,通过以下方式强刷缓存之后。chrome算是可以通过192.168.1.8访问到摄像头的管理界面了。

Navigate to chrome://net-internals/#dns and click "Clear Host Cache"
Navigate to chrome://net-internals/#sockets abd click "Flush Socket Pools"

换了台电脑,结果还是无法通过192.168.1.8跳转到摄像头的管理界面

此时说明问题不仅仅出在浏览器本身了,操作系统层的DNS和路由器的DNS缓存可能都有问题。先尝试强刷操作系统层的DNS缓存。结果没有任何的作用,问题依然存在。

ipconfig /flushdns

寻找解决方案的过程发现核心问题是ARP,而不是DNS

  • DNS 是域名系统(Domain Name System) 的缩写,它是由解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。
  • ARP,即地址解析协议,实现通过IP地址得知其网卡的MAC地址即物理地址。
  • 总结:DNS是应用层协议,简单点说就是将域名网址转为IP地址,是将域名与IP联系。而ARP是网络层协议,是在以太网中通过IP地址得到物理地址,将IPMAC联系。他们两个是完全不同的东西。

了解原理之后继续解决问题。先确定摄像头的MAC,通过arp -a来观察192.168.1.8映射的是不是摄像头的MAC
结果192.168.1.8这个IP映射的确实不是摄像头的MAC,然后通过arp -d 192.168.1.8删除错误的映射记录。
随后在终端通过ping 192.168.1.8让操作系统寻找正确的MAC并写入到ARP表中,反复两次操作之后,通过arp -a发现192.168.1.8指向了摄像头的MAC了。
到这里,这个问题算是告一段落。其实解决过程远比想象中复杂,中途尝试了换不同的浏览器换不同的电脑,也重启过路由器。如果自己的计算机网络基础知识扎实一点,可能这个问题解决起来就容易多了,不过在实践中学习也会更深刻。

遇到相同问题时如何应对

  1. 先确定摄像头的MAC地址和IP地址,通过arp -a查看IPMAC的对应关系。
  2. 通过MAC找到IP,直接在浏览器输入IP看看是否跳转到摄像头的管理页面。
  3. 如果发现不对应的话,通过arp -d cam-ip-addr来删除错误的映射关系,让操作系统去找正确的映射关系,反复操作几次。确保ARP的映射关系是正确的。
  4. 如果这时候浏览器还是无法跳转到摄像头的管理页面时,再着手解决浏览器的DNS缓存问题。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions