当前位置:首页 > 编程笔记 > 正文
已解决

由于 MAC 地址的问题,导致网络不通的原因和分析

来自网友在路上 181881提问 提问时间:2023-10-11 08:48:21阅读次数: 81

最佳答案 问答题库818位专家为你答疑解惑

由于 MAC 地址的问题,导致网络不通的原因和分析

  • 将现象及原因分析发给大家,供大家参考,以后有类似问题时有个解决问题的参考
  • 开发板网络不通,也抓不到包,折腾了好久,将电脑和开发板用网线直连,结果包能抓到了,网络通了(代码未做修改)
  • 分析原因:最有可能的是以太网的 CRC 32 校验错误,导致交换机将这个包给过滤掉了。(用的是 H3C 的交换机)
  • 接着折腾,查CRC32算法,甚至把数据包抓出来算出 CRC32 校验。所有的结果都证明,板子的 CRC32 校验是正确的。
  • 接着实验分析,不用交换机用网线直连能通,用普通的傻交换机能通,用 H3C 网管型交换机网络不能通。怀疑开发板发出的包是个特殊的包,被交换机给虑掉了。
    看代码中,开发板的 MAC 地址是 E1:E1:E1:E1:E1:E1 ,感觉有些特殊,换掉了,改成 11:22:33:44:55:66 六六大顺。结果还是不通。
  • 继续折腾,实在是看不出问题所在,再次关注到 MAC 地址上来发现 E1:E1:E1:E1:E1:E1 和 11:22:33:44:55:66 都是组播地址,接着查看相关文章,组播地址不能当成以太网的源地址。
  • 接着改,将 MAC 地址改成 00:11:22:33:44:55 结果网络通了。

结果:

MAC[47:0] 共 48 位,从 0 开始数,第 40 位为 1 时是多播地址。就是说,MAC 的最高字节是奇数的话就是多播地址。
比如下面的地址就是多播地址

x1:xx:xx:xx:xx:xx
x3:xx:xx:xx:xx:xx
x5:xx:xx:xx:xx:xx
x7:xx:xx:xx:xx:xx
x9:xx:xx:xx:xx:xx
xb:xx:xx:xx:xx:xx
xd:xx:xx:xx:xx:xx
xf:xx:xx:xx:xx:xx

  • 多播地址只能当目的 MAC 地址,不能当成源 MAC 地址。
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"由于 MAC 地址的问题,导致网络不通的原因和分析":http://eshow365.cn/6-18860-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!