为什么不切换重写Mac地址?


10

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

是否使用MAC地址或其他任何方式识别终端主机?


5
假设您的名字叫Kumar。如果人们开始称您“杰西卡”,您是否想要它?
Mike Pennington

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

4
你能想到的一个正当的理由,为什么一个开关应该改变MAC地址?
Teun Vink

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

Answers:


10

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

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

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

如果交换机要更改源MAC地址,则目标主机将使用该MAC地址进行任何响应(包括使用不良数据更新任何ARP条目)。这将导致我已经描述的相同情况,仅适用于所有回程流量。

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

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


4

数据报地址的重写发生在第3层,例如,当运行NAT的网关(路由器或防火墙)重写内部网络上主机的IP地址时,它们全部从网关自身上的一个(或几个)外部IP地址出现。

如上面的评论所述,在第2层级别(我们使用MAC地址来区分主机和交换机进行数据报的移动,即帧)的类似事件没有发生的原因确实没有必要。

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

  • IP地址用于全局通信,并且可用IP地址池有限,必须共享。通过使用NAT,可以确保大量的内部主机可以共享较少(通常只有一个)在公共Internet上可见的IP地址。
  • 一些人(而非所有人)考虑重写IP地址,以通过伪装内部计算机的IP地址来增加安全性。

因此,如果我们坚持使用NAT示例,则实际上并不需要NAT的第二层副本。

  • MAC地址未全局用于在I​​nternet上寻址数据报,而是用于将帧发送到本地子网上的正确主机。由于本地子网相对较小,并且可能的MAC地址数量非常大,因此在第2层级别上不会“用完”可用的MAC地址。(手动将NIC的MAC地址重新配置为任意值的选项不会对此进行更改)
  • 并且在转发时重写数据报地址具有可争议的安全性好处:由于MAC地址仅在本地子网内使用,从安全角度而言,通常相对于该子网(从物理角度以及大多数与第3层案例中的对应设备相比,后者是整个Internet(我们作为连接用户和网络工程师实际上对安全性没有控制)。

希望这可以阐明为什么交换机不重写MAC地址。我脑海中唯一想到的第3层案例是NAT,其他人当然可以提供需要重写IP的其他第3层案例的示例(以及为什么这些技术在第2层级别上没有真正意义) 。


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

1
@IllvilJa:说得好..!您解决了一个困扰我近几个星期的疑问。几周前,我认为如下:“路由器在处理WAN时,倾向于将其MAC地址而不是发送方的MAC地址(在每个数据包上)放置,然后将数据包传递给接收方。局域网,路由器不会将其MAC地址而不是发送方的MAC地址(在每个数据包上)放置,而只是在发送方和接收方之间传递数据包。”但是在您做出解释之后,我已经足够清楚地区分“路由器”和“开关”。再次感谢..!
Maharan 2014年

0

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

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

http://ebtables.netfilter.org/examples/example1.html

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.