我最近遇到了从 IOS 设备升级到 IOS XE ASR 1000 路由器的问题,该路由器涉及 SONET 上的以太网 (EOS)。VLAN 标记用于将流量从集线器路由器映射到 SONET 连接到辐条,然后集线器的 SONET 盒从帧中剥离 VLAN 标记。
在这种情况下,集线器上的 IOS 设备运行正常,但是当它被 ASR 1000 EIGRP 替换时,它每 120 秒就会抖动一次。
问题被追溯到 IOS 和 ASR 1000 填充以太网帧的方式不同,以使它们达到 64 字节的最小大小。看起来 IOS 在添加 VLAN 标记之前将未标记的以太网帧填充为 64 字节,但 IOS XE 添加了 VLAN 标记,然后将大小填充为 64 字节。
下面是从 ASR 尝试启动 telnet 会话时捕获的帧。Wireshark 的帧大小为 62 Bytes,但这不包括 4 Byte Frame Check Sequence (FCS),因此实际大小为 66 Bytes,包括 VLAN tag。一旦 VLAN 标记被 SONET 盒剥离,帧大小为 62 字节。
下面是从 IOS 路由器捕获的类似帧。请注意,规定的大小是 64 字节而不是 62 字节,因为路由器添加了两个字节的填充(标记为预告片)。添加 FCS 后,即使剥离了 VLAN 标记,该帧也将满足 64 字节的最小要求。
在集线器处的 SONET 设备剥离 VLAN 标记后,来自 ASR 1000 的 EIGRP 更新数据包低于最小帧大小并被远端 SONET 盒丢弃。
使用的解决方案是不剥离 VLAN 标记,而是将它们通过 SONET 系统。
有没有办法强制 IOS XE 在添加 VLAN 标记之前将帧填充到 64 字节,例如 IOS?或者,有没有办法将 IOS XE 上的最小帧大小设置为 68 字节?
我在网上找到的唯一命令(plim min-frame-length 68byte)是针对特定线路卡的,路由器接口不接受。