网卡的HWADDR和MACADDR的区别?

在centos中可以在如下文件中查看一个NIC的配置 : /etc/sysconfig/network-scripts/ifcfg-ethN

会发现有两个和网卡物理地址有关的配置一个是HWADDR还有一个是MACADDR,这两个的区别是什么?

我本来觉得网卡物理地址不是固定的吗?网卡出厂时就已经确定了,不会再更改了呀,我还是太年轻。。。实际上网卡MAC地址是可以动态修改的,那么HWADDR又是指什么呢?

它实际上才是刚才说的出厂时固定的硬件物理地址,它是被厂家写入到芯片中的,需要特殊的rom工具才能修改,它的作用相当于是MAC地址的默认值。

由于我并没有做过网卡驱动,没有看过对应datasheet,仅仅通过Linux中的可配置行为和网络上搜索的一些文章,进行了大胆的推测:

1.MAC地址属于芯片中的一个属性,因为在接收数据包时需要根据这个值来做包过滤。
2.MAC地址可以配置,比如利用配置寄存器修改该值。
3.HWADDR保存到网卡芯片的ROM中,由芯片厂商出厂前写入,相当于是芯片的序列号一般不能修改。
4.MAC地址默认值是从HWADDR中读出,如果我们没有配置MAC地址,它默认就是等于HWADDR的。

按照以上理解我已经觉得整个逻辑很顺了,如果有不准确的地方,请网友们与我联系探讨,请多多指教!!!

你可能感兴趣的:(网络子系统)