我的工作场所有两个办公区域,相距仅200米。他们有自己的本地网络,自己的互联网连接,路由器配置成在自己的互联网连接中断时退回到另一个路由器。两个路由器之间的连接是稳定的,多个冗余链路。
这两个区域之间有多个无线接入点,与任何一个区域都有有线连接。用户经常在这两个区域之间移动,我希望为他们提供一个无缝的AP转换,而不是设置两个单独的SSID。为了实现这一点,所有访问点(或同名的SSID)必须位于同一层-2网络上。两个路由器中的一个将用作默认网关,另一个仍用作后备。
在我学习了很多无线操作模式,以及如何使用GRE隧道将802.1q帧封装到802.11包中之后,过去的2周对我来说是一件很有趣的事情(也让我头疼)。将1522字节分组放入允许2304字节有效负载的数据包内是简单的。到目前一切尚好。
当我试图在带有1500字节MTU的有线接口上做同样的事情时,问题就出现了。GRE本身需要4个字节,而外部IPv4标头需要20个字节,如果是IPv6,则GRE的MTU应该分别减少到1476和1456。在隧道的两侧,我将GRE接口连接到一个物理网络上,将隧道两端的2层-2网络合并在一起。

问题来了:2层-2网络上的所有设备和接口都使用1500字节的默认MTU。从技术角度来看,所有负载超过MTU的以太网帧都不会通过隧道--它们将被丢弃。从最终用户的角度来看,这个问题是显而易见的,并且会立即生效,因为隧道另一端的网络服务被报告为联机服务,但没有响应请求。
请注意,没有第3层涉及,所以没有MSS夹紧或路径MTU发现这里。手动减少2个网络上所有主机的MTU不是一种选择。有什么优雅的解决方案吗?
我考虑将GRE隧道MTU设置为1500字节,而不考虑物理接口MTU。物理接口上的隧道流量是在第3层路由(而不是在第2层切换),这意味着它可以是支离破碎的,但我不知道它是否会工作,在什么样的性能。如果外部IPv4数据包头超过默认的20个字节,或者外部IPv6头超过默认的40个字节,我也不确定会发生什么。
发布于 2022-12-06 05:33:59
有什么优雅的解决方案吗?
不怎么有意思。桥接的L2段中的MTU不匹配会造成各种问题,并且在L2上没有解决方案。正如您已经说过的,您可以尝试使用“隐藏”碎片(用于完整的内部MTU的外部数据包片段),但这会严重增加开销,并可能极大地影响性能。
关键不是使用桥接,而是使用路由。路由使PMTUD正确工作,并启用IPv4在路径内的碎片(不可取,但优于在链路MTU不匹配)。PMTUD (主要是)依赖于ICMP数据包太大(v6)或碎片要求(v4),这只能由一个第三层路由器,而不是第二层交换机。
MSS夹紧工作在传输层(仅TCP)上,通常也只能在路由器上使用。
在问题更新/评论之后进行编辑您的目标是为无线用户提供无缝漫游,需要在WAPs之间架设一个桥梁。由于您似乎在控制建筑物之间的中间连接,所以您应该考虑在该链接上运行一个VLAN,从而创建一个直接的桥。这将是一个非常简单的设计。
使用使用GRE的更复杂的方法,您可以在链接上使用小巨人:& MTU,以便使GRE能够携带带有1500个字节有效负载的全尺寸帧。根据确切的帧大小和正在使用的IP版本,您至少需要增加GRE开销(IPv4 20 + GRE 4字节)加上以太网的18字节。
PS:一些人对GRE隧道桥接位感到好奇: GRE标准传输网络层数据包.通过隧道推动以太网帧需要一些专有的扩展或另一个封装。
发布于 2022-12-06 19:42:22
移到在网络之间的“WAN”链接上使用大型帧(在这里,由于某种原因使用GRE )也会工作,因为不再会出现帧大小超过1500个字节的问题。
但我同意,你需要一些非常具体的理由来做你想做的事情,即使这样做也可能不是正确的方法。路由连接会更好,如果您需要隧道化的东西,只需做一个VPN。如果您需要一个单一的第二层网络,然后寻找VXLAN,另一个覆盖网络技术或类似的东西。但是,使用VPN的分段网络或它们之间的路由链接可能会更容易。
https://networkengineering.stackexchange.com/questions/80787
复制相似问题