Last Updated: 2023-04-18 09:44:07 Tuesday
-- TOC --
本文汇总一些与MAC地址有关的知识。
MAC地址是绑定硬件的,烧在网卡内,长度为48bit。(IP地址32bit,IPv6地址128bit)
MAC地址分单播,组播和广播!
FF-FF-FF-FF-FF-FF
,全F!二层广播,ARP协议就是利用全F的广播MAC地址进行请求。
高25bit固定,低23bit可变,低23bit是组播IP地址的映射。IANA规定,IPv4组播MAC地址的高24位为0x01005e,第25位为0,低23位为IPv4组播地址的低23位。
To map an IP multicast address to a MAC-layer multicast address, the low order 23 bits of the IP multicast address are mapped directly to the low order 23 bits in the MAC-layer multicast address. Because the first 4 bits of an IP multicast address are fixed according to the class D convention, there are 5 bits in the IP multicast address that do not map to the MAC-layer multicast address. Therefore, it is possible for a host to receive MAC-layer multicast packets for groups to which it does not belong. However, these packets are dropped by IP once the destination IP address is determined.
交换机如果不运行IGMP Snooping,对于组播MAC报文来说,就是广播!
这样的映射有何作用?
2层交换机通过此地址格式来判断接收到的frame类型,单播frame直接查找mac转发表,组播报文查找通过IGMP Snooping建立起来的组播转发表,这样组播就是组播,不用广播,优化性能。
IPv4组播地址的后28位中,只有23位被映射到MAC地址,因此丢失了5位的地址信息,直接结果是有32个IPv4组播地址会映射到同一MAC地址上。例如IP地址为224.0.1.1、224.128.1.1、225.0.1.1、239.128.1.1等组播组的组播MAC地址都为01-00-5e-00-01-01。
技术上可以解决组播IP地址后23bit映射带来的mac组播地址重复,这就要2层交换机snoop到packet层面,建立的组播转发表也是基于组播IP地址的,而不是组播Mac地址,但是带来的就是转发性能的降低,不过减少了无效转发。可以考虑一个折中的办法:只对会造成MAC组播地址重复的组播IP地址进行特别处理。
L2交换机的端口收到任何Frame(我们管2层报文叫帧,Frame),就把这个Frame里面的Source MAC Address(源MAC地址)记录下来,并与此接收端口形成对应关系,以此形成MAC转发表。
2层交换机对frame进行转发,不会对frame进行任何修改。(这个跟3层IP路由一样,报文中的源地址和目的地址在整个路由交换的过程中,是不变的。2层交换网络同样如此,不过,如果经过了3层路由,2层头被剥离然后再重新组装,这个时候源MAC和目的MAC才会改变。)
不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这样建立和维护它自己的地址表。
So, networks are to routers as individual devices are to switches and bridges。路由器连接的是不同的网络,交换机链接的是一个个独立的设备。
其实就是修改网口MAC地址的功能,一般是修改WAN口的。
为什么要更换MAC地址呢?
原因在于,在某些网络环境下,运营商限制了接入设备的MAC地址,比如,只有某个C地址才可以接入网络(运营商在它的网络接入的地方进行MAC地址判断,发现非法的MAC地址,报文直接丢弃)。这个时候,如果我们更换了设备,原设备WAN口MAC地址也会变化,这时就需要在新设备上绑定原来的MAC地址,将原来设备的MAC地址克隆到新设备上来,其实就是修改新设备的MAC地址为原来设备的MAC地址,这样,网络就通了。
MAC地址克隆只是一个比较形象有趣的说法。
本文链接:https://cs.pynote.net/net/eth/202111182/
-- EOF --
-- MORE --