行为不端的主机总是使用 gw 的 MAC 作为目的地:违反标准?

网络工程 路由器 以太网 IPv6
2022-02-04 19:58:58

我们的设备始终使用 IPv6 网关的 MAC 地址作为其所有传出 IPv6 数据包的链路层目标地址,即使接收方 IPv6 地址位于同一子网上也是如此。网络是基于以太网的 IPv6。

例如:

Appliance: 2001:DB8::2342/64, MAC 00:11:11:11:11:11
Gateway: 2001:DB8::1/64, MAC 00:AA:AA:AA:AA:AA
Client: 2001:DB8::4711/64, MAC: 00:22:22:22:22:22

当设备尝试向客户端发送数据包时,它看起来像这样:

Source IP address: 2001:DB8::2342, Source MAC address: 00:11:11:11:11:11
Dest IP address: 2001:DB8::4711, Dest MAC address: 00:AA:AA:AA:AA:AA

代替

Source IP address: 2001:DB8::2342, Source MAC address: 00:11:11:11:11:11
Dest IP address: 2001:DB8::4711, Dest MAC address: 00:22:22:22:22:22

不幸的是,我们无法访问设备路由表,并且我们的网关正在丢弃应该传送到它们源自的同一子网的数据包。因此,设备与其本地子网的连接实际上是单向的。

我们与行为不端设备的制造商保持联系,但设备的支持工程师完全不知道 IPv6 的工作原理。

我的问题是:

  • 如果主机将每个IPv6 数据包都发送到网关,即使接收方在同一个子网上,这是否违反了任何标准?如果是这样,哪些标准(RFC、BCP、IEEE 等)是相关的?
  • 网关是否行为不端丢弃了这些数据包,而不是将它们发送到它们进入的接口?
1个回答

将所有数据包发送到网关并不违反标准,但效率低下。通常,该行为由路由器通告控制。如果它包含本地前缀并且将其宣传为 on-link,则设备应在其路由表中插入一个路由,以将该流量直接传递到本地网络。因此,在断定设备有故障之前,请查看您的路由器广告。

网关有问题,因为它肯定有一个路由并且应该传递数据包,可选地向发送者发送重定向,让它知道它不需要使用网关。某些防火墙允许您阻止子网内流量转发,因此这也可能是那里的配置问题。

由于两个问题的结合,您的流量正在中断,这两个问题要么是错误,要么是配置错误/选择。