以太网交换机不更改数据包的MAC地址是否有任何特定原因?
是否使用MAC地址或其他任何方式识别终端主机?
以太网交换机不更改数据包的MAC地址是否有任何特定原因?
是否使用MAC地址或其他任何方式识别终端主机?
Answers:
如果交换机要更改MAC地址,这将完全破坏网络。
MAC地址是本地网络上的主机使用的唯一标识符。
如果交换机要更改目标MAC,则不会将帧传递到适当的主机。在某些情况下(例如,如果帧被淹没),目标主机将丢弃它,因为不再将其发送给主机。
如果交换机要更改源MAC地址,则目标主机将使用该MAC地址进行任何响应(包括使用不良数据更新任何ARP条目)。这将导致我已经描述的相同情况,仅适用于所有回程流量。
这可能会进一步引起诸如802.1X之类的问题,以及使用MAC地址识别/分类设备的其他机制。
是否可以制定机制来做到这一点?我相信他们可以。但这时没有理由这样做,这只会使网络复杂化并增加不必要的处理。我们还没有穷尽可用的MAC地址池,因此不需要MAT之类的东西(不知道MAC地址转换的概念是否存在于任何地方,所以也许我只是创造了一个术语?)。
数据报地址的重写发生在第3层,例如,当运行NAT的网关(路由器或防火墙)重写内部网络上主机的IP地址时,它们全部从网关自身上的一个(或几个)外部IP地址出现。
如上面的评论所述,在第2层级别(我们使用MAC地址来区分主机和交换机进行数据报的移动,即帧)的类似事件没有发生的原因确实没有必要。
在使用NAT的第三层情况下,NAT解决了许多问题:
因此,如果我们坚持使用NAT示例,则实际上并不需要NAT的第二层副本。
希望这可以阐明为什么交换机不重写MAC地址。我脑海中唯一想到的第3层案例是NAT,其他人当然可以提供需要重写IP的其他第3层案例的示例(以及为什么这些技术在第2层级别上没有真正意义) 。
重写MAC地址将增加相当大的复杂性(交换机将必须了解诸如arp之类的更高级别的协议,以便它可以重写地址解析),使故障排除更加困难,将阻止诸如STP之类的协议正常工作,并且通常是PITA。通常也不需要它。
这并不是说不可能。ebtables(与iptables对应的第2层)确实提供了一些用于MAC地址转换的选项。如果您的交换机不使用基于vlan的MAC表,并且您想进行一些第2层过滤,那么这将很有用。