以太网交换机不更改数据包的MAC地址是否有特定原因?

评论

假设您的名字叫Kumar。如果人们开始称您“杰西卡”,您会喜欢吗?

交换机不重写数据包(帧);他们只是将它们从一个界面移动到另一个界面。 (对于广播/多播,这包括复制到多个端口。)

您能想到交换机更改MAC地址的正当理由吗?

有什么答案对您有帮助吗?如果是这样,您应该接受答案,这样问题就不会永远弹出来寻找答案。或者,您可以发布并接受自己的答案。

#1 楼

如果交换机要更改MAC地址,则将完全破坏网络连接。

MAC地址是本地网络上的主机使用的唯一标识符。

如果交换机要更改目标MAC,则不会将帧传递到适当的主机。在某些情况下(例如,如果帧被淹没),目标主机将丢弃它,因为它将不再发往该主机。

如果交换机要更改源MAC地址, ,目标主机将使用该MAC地址进行任何响应(包括使用错误数据更新任何ARP条目)。这将导致我已经描述过的相同情况,只是针对所有返回流量。

这可能进一步导致诸如802.1X以及其他使用MAC地址识别/分类设备的机制之类的问题。

可以开发机制来做到这一点吗?我相信他们可以。但这时没有理由这样做,这只会使网络复杂化并增加不必要的处理。我们还没有用尽可用的MAC地址池,因此不需要MAT之类的东西(不知道MAC地址转换的概念是否存在于任何地方,所以也许我只是创造了一个术语?)。

#2 楼

数据报地址的重写发生在第3层,例如,当运行NAT的网关(路由器或防火墙)重写内部网络上主机的IP地址时,它们全部从网关自身上的一个(或几个)外部IP地址出现。 />
在第二层级别(我们使用MAC地址来区分主机和交换机进行数据报的移动,即帧)的类似事件未发生的原因如上面的评论所述,实际上并没有

在NAT的第三层情况下,NAT解决了许多问题:


IP地址用于全局通信,并且是必须共享的有限IP地址池。通过使用NAT,人们可以确保有更多的内部主机可以共享较少(通常只有一个)在公共Internet上可见的IP地址。通过伪装内部计算机的IP地址来实现一层安全保护。不能在全球范围内使用MAC地址寻址Internet上的数据报,而将MAC地址用于将帧发送到本地子网上的正确主机。由于本地子网相对较小,并且可能的MAC地址数量非常大,因此在第2层级别上不会“用完”可用的MAC地址。 (将NIC的MAC地址手动重新配置为任意值的选项不会对此进行更改)
并且对于在转发时重写数据报地址具有可争议的安全性好处:由于MAC地址仅在本地子网内使用,从安全角度而言,通常相对于该子网(物理上以及大多数子网),其控制权要好得多。相比于第3层案例中的对应设备,即整个互联网(我们作为连接的用户和网络工程师实际上对安全性没有控制权)。为什么交换机不重写MAC地址。我脑海中唯一想到的第3层案例是NAT,其他人当然可以提供需要重写IP的其他第3层案例的示例(以及为什么这些技术在第2层级别上没有真正意义) 。

评论


当场,但我确实对你的回答有一点点小疑问。您提到“实际上不需要NAT的第二层对应物”……虽然我没有看到MAC NAT,但是我看到了mac级隧道。在某些情况下,切换到其他Mac地址中的“隧道” mac地址确实很有意义。立即想到的情况是IEEE 802.1ah基于提供商的桥接(PBB)。通常,这用于扩展可用的VLAN或减少服务提供商城域网中的Mac学习

–迈克·彭宁顿
2013年12月6日16:05



@IllvilJa:说得好..!您解决了一个使我迷惑了数周的疑问。几周前,我认为如下:“当路由器处理WAN时,倾向于在每个数据包上放置其MAC地址而不是发送方的MAC地址,并将数据包传递给接收方。局域网,路由器不会在每个数据包上放置其MAC地址而不是发送方的MAC地址,而只是在发送方和接收方之间传递数据包。开关”。再次感谢..!

–玛哈兰
2014年4月29日15:56

#3 楼

重写MAC地址将增加相当大的复杂性(交换机将必须了解诸如arp之类的更高级别的协议,以便它可以重写地址解析),使故障排除更加困难,将阻止诸如STP之类的协议正常工作并且通常是PITA。通常也不需要。

这并不是说不可能。 ebtables(与iptables对应的第2层)确实提供了一些用于MAC地址转换的选项。如果您的交换机不使用基于vlan的MAC表,并且您想进行一些第2层过滤,则此功能很有用。 html