本文档介绍了Cisco IOS® XR路由器上的最大传输单元(MTU)行为,并将这些行为与Cisco IOS路由器进行比较。它还讨论了路由第3层(L3)接口和第2层VPN(L2VPN)第2层接口上同时使用以太网虚拟连接(EVC)和非EVC型号的MTU。本文档还介绍了在版本5.1.1及更高版本中如何自动配置以太网接口驱动程序MTU和最大接收单元(MRU)的重要更改。
在计算机网络中,某层通信协议的MTU定义了允许该层通过一个接口传输的最大协议数据单元的大小(以字节为单位)。一个MTU参数与每个接口、层和协议关联。
Cisco IOS XR软件中的MTU特征如下:
本文档的其余部分说明MTU特征,比较Cisco IOS和Cisco IOS XR软件行为,并提供以下类型接口的示例:
本部分将Cisco IOS和Cisco IOS XR软件行为与MTU特征进行比较。
在Cisco IOS软件中,mtu命令和相应的show命令不包含L2报头。使用mtu命令将L2负载配置为第3层数据包(包括L3报头)的最大大小。
这与Cisco IOS XR软件不同,其中mtu命令包括L2报头(以太网为14字节,PPP/HDLC为4字节)。
如果Cisco IOS路由器配置了mtu x并连接到Cisco IOS XR路由器,则Cisco IOS XR路由器上的相应接口应配置有mtu x+14(用于以太网接口)或mtu x+4(用于串行接口)。
Cisco IOS和Cisco IOS XR软件对ipv4 mtu、ipv6 mtu和mpls mtu命令具有相同的含义;必须使用相同的值配置它们。
因此,这是以太网接口上Cisco IOS软件中的配置:
mtu 9012
ipv4 mtu 9000
ipv6 mtu 9000
Cisco IOS XR软件邻居上的相应配置为:
mtu 9026
ipv4 mtu 9000
ipv6 mtu 9000
连接到第2层网络的所有设备上的MTU值必须相同。否则,可能会报告以下症状:
本节分析未配置mtu命令时路由接口的默认MTU:
RP/0/RP0/CPU0:motorhead#sh run int gigabitEthernet 0/1/0/3
interface GigabitEthernet0/1/0/3
cdp
ipv4 address 10.0.1.1 255.255.255.0
ipv6 address 2001:db8::1/64
!
RP/0/RP0/CPU0:router#sh int gigabitEthernet 0/1/0/3 | i MTU
MTU 1514 bytes, BW 1000000 Kbit (Max: 1000000 Kbit)
RP/0/RP0/CPU0:router#show im database interface gigabitEthernet 0/1/0/3
View: OWN - Owner, L3P - Local 3rd Party, G3P - Global 3rd Party,
LDP - Local Data Plane, GDP - Global Data Plane, RED - Redundancy
Node 0/1/CPU0 (0x11)
Interface GigabitEthernet0/1/0/3, ifh 0x01180100 (up, 1514)
Interface flags: 0x000000000010059f (IFCONNECTOR|IFINDEX
|SUP_NAMED_SUB|BROADCAST|CONFIG|HW|VIS|DATA
|CONTROL)
Encapsulation: ether
Interface type: IFT_GETHERNET
Control parent: None
Data parent: None
Views: GDP|LDP|L3P|OWN
Protocol Caps (state, mtu)
-------- -----------------
None ether (up, 1514)
arp arp (up, 1500)
clns clns (up, 1500)
ipv4 ipv4 (up, 1500)
mpls mpls (up, 1500)
ipv6 ipv6_preswitch (up, 1500)
ipv6 ipv6 (down, 1500)
ether_sock ether_sock (up, 1500)
RP/0/RP0/CPU0:router#show ipv4 interface gigabitEthernet 0/1/0/3 | i MTU
MTU is 1514 (1500 is available to IP)
RP/0/RP0/CPU0:router#show ipv6 interface gigabitEthernet 0/1/0/3 | i MTU
MTU is 1514 (1500 is available to IPv6)
RP/0/RP0/CPU0:router#sh mpls interfaces gigabitEthernet 0/1/0/3 private location 0/1/CPU0
Interface IFH MTU
-------------- ---------- -----
Gi0/1/0/3 0x01180100 1500
RP/0/RP0/CPU0:router#
在本示例中,默认L2接口MTU为1514字节,包括14字节的以太网报头。14个字节由目的MAC地址的6个字节、源MAC地址的6个字节以及类型或长度的2个字节计算。这不包括前导码、帧定界符、4字节的帧校验序列(FCS)和帧间间隙。对于PPP或HDLC帧,L2报头有4个字节;因此默认接口MTU为1504字节。
L3子协议从父MTU的有效负载继承其MTU。当您从1514字节的L2 MTU中减去L2报头的14字节时,您的L2负载为1500字节。这成为L3协议的MTU。IPv4、IPv6、MPLS和无连接网络服务(CLNS)继承此1500字节的MTU。因此,默认情况下,Cisco IOS XR以太网接口可以传输1500字节的第3层数据包,该数据包与Cisco IOS以太网接口上的defauIt相同。
本部分显示如何配置mpls mtu 1508,以便在数据包顶部发送1500字节的IPv4数据包,其中每个IPv4数据包具有两个4字节的MPLS标记:
RP/0/RP0/CPU0:router#conf
RP/0/RP0/CPU0:router(config)#int gig 0/1/0/3
RP/0/RP0/CPU0:router(config-if)#mpls mtu 1508
RP/0/RP0/CPU0:router(config-if)#commit
RP/0/RP0/CPU0:Mar 12 00:36:49.807 CET: config[65856]: %MGBL-CONFIG-6-DB_COMMIT : Configuration
committed by user 'root'. Use 'show configuration commit changes 1000000124' to view the
changes.RP/0/RP0/CPU0:router(config-if)#end
RP/0/RP0/CPU0:Mar 12 00:36:54.188 CET: config[65856]: %MGBL-SYS-5-CONFIG_I : Configured
from console by root on vty0 (10.55.144.149)
RP/0/RP0/CPU0:router#sh mpls interfaces gigabitEthernet 0/1/0/3 private location 0/1/CPU0
Interface IFH MTU
-------------- ---------- -----
Gi0/1/0/3 0x01180100 1500
RP/0/RP0/CPU0:router#show im database interface gigabitEthernet 0/1/0/3
View: OWN - Owner, L3P - Local 3rd Party, G3P - Global 3rd Party,
LDP - Local Data Plane, GDP - Global Data Plane, RED - Redundancy
Node 0/1/CPU0 (0x11)
Interface GigabitEthernet0/1/0/3, ifh 0x01180100 (up, 1514)
Interface flags: 0x000000000010059f (IFCONNECTOR|IFINDEX
|SUP_NAMED_SUB|BROADCAST|CONFIG|HW|VIS|DATA
|CONTROL)
Encapsulation: ether
Interface type: IFT_GETHERNET
Control parent: None
Data parent: None
Views: GDP|LDP|L3P|OWN
Protocol Caps (state, mtu)
-------- -----------------
None ether (up, 1514)
arp arp (up, 1500)
clns clns (up, 1500)
ipv4 ipv4 (up, 1500)
mpls mpls (up, 1500)
ipv6 ipv6_preswitch (up, 1500)
ipv6 ipv6 (down, 1500)
ether_sock ether_sock (up, 1500)
RP/0/RP0/CPU0:router#
虽然mpls mtu 1508命令已提交,但并未应用,因为MPLS在show命令中仍有1500字节的MTU。这是因为L3子协议的MTU不能大于其父L2接口的负载。
要在1500字节的IP数据包上允许两个标签,您必须:
RP/0/RP0/CPU0:router#sh run int gig 0/1/0/3
interface GigabitEthernet0/1/0/3
cdp
mtu 1522
ipv4 mtu 1500
ipv4 address 10.0.1.1 255.255.255.0
ipv6 mtu 1500
ipv6 address 2001:db8::1/64
!
!
RP/0/RP0/CPU0:router#show im database interface gigabitEthernet 0/1/0/3
View: OWN - Owner, L3P - Local 3rd Party, G3P - Global 3rd Party,
LDP - Local Data Plane, GDP - Global Data Plane, RED - Redundancy
Node 0/1/CPU0 (0x11)
Interface GigabitEthernet0/1/0/3, ifh 0x01180100 (up, 1522)
Interface flags: 0x000000000010059f (IFCONNECTOR|IFINDEX
|SUP_NAMED_SUB|BROADCAST|CONFIG|HW|VIS|DATA
|CONTROL)
Encapsulation: ether
Interface type: IFT_GETHERNET
Control parent: None
Data parent: None
Views: GDP|LDP|L3P|OWN
Protocol Caps (state, mtu)
-------- -----------------
None ether (up, 1522)
arp arp (up, 1508)
clns clns (up, 1508)
ipv4 ipv4 (up, 1500)
mpls mpls (up, 1508)
ipv6 ipv6_preswitch (up, 1508)
ipv6 ipv6 (down, 1500)
ether_sock ether_sock (up, 1508)
RP/0/RP0/CPU0:router#
通过此配置,您可以发送1500字节的IPv4和IPv6数据包以及1508字节的MPLS数据包(顶部有两个标记的1500字节数据包)。
这些特征适用于路由的L3子接口。
路由的子接口MTU继承其父主接口的MTU;为子接口上配置的每个VLAN标记添加4个字节。因此,dot1q子接口有4个字节,IEEE 802.1Q隧道(QinQ)子接口有8个字节。
因此,相同大小的L3数据包可以在主接口和子接口上转发。
可以在子接口下配置mtu命令,但仅当该命令低于或等于从主接口继承的MTU时才应用。
以下示例中主接口的MTU为2000字节:
RP/0/RP0/CPU0:router#sh run int gig 0/1/0/3
interface GigabitEthernet0/1/0/3
cdp
mtu 2000
!
RP/0/RP0/CPU0:router#sh run int gig 0/1/0/3.100
interface GigabitEthernet0/1/0/3.100
ipv4 address 10.0.2.1 255.255.255.0
ipv6 address 2001:db9:0:1::1/64
dot1q vlan 100
!
RP/0/RP0/CPU0:router#sh int gig 0/1/0/3.100 | i MTU
MTU 2004 bytes, BW 1000000 Kbit (Max: 1000000 Kbit)
RP/0/RP0/CPU0:router#show im database interface gigabitEthernet 0/1/0/3.100
View: OWN - Owner, L3P - Local 3rd Party, G3P - Global 3rd Party,
LDP - Local Data Plane, GDP - Global Data Plane, RED - Redundancy
Node 0/1/CPU0 (0x11)
Interface GigabitEthernet0/1/0/3.100, ifh 0x01180260 (up, 2004)
Interface flags: 0x0000000000000597 (IFINDEX|SUP_NAMED_SUB
|BROADCAST|CONFIG|VIS|DATA|CONTROL)
Encapsulation: dot1q
Interface type: IFT_VLAN_SUBIF
Control parent: GigabitEthernet0/1/0/3
Data parent: GigabitEthernet0/1/0/3
Views: GDP|LDP|L3P|OWN
Protocol Caps (state, mtu)
-------- -----------------
None vlan_jump (up, 2004)
None dot1q (up, 2004)
arp arp (up, 1986)
ipv4 ipv4 (up, 1986)
ipv6 ipv6_preswitch (up, 1986)
ipv6 ipv6 (down, 1986)
RP/0/RP0/CPU0:router#
在show命令中,子接口的MTU为2004;在主接口的MTU中添加4个字节,因为子接口下配置了一个dot1q标记。
但是,IPv4和IPv6数据包的MTU仍然与主接口(1986)的MTU相同。 这是因为L3协议的MTU现在计算为:2004 - 14 - 4 = 1986。
可以在子接口下配置mtu命令,但配置的MTU仅在小于或等于从主接口继承的MTU(比主接口的MTU大4字节)时才应用。
当子接口的MTU大于继承的MTU时,不会应用它,如下所示:
RP/0/RP0/CPU0:router#sh int gig 0/1/0/3.100 | i MTU
MTU 2004 bytes, BW 1000000 Kbit (Max: 1000000 Kbit)
RP/0/RP0/CPU0:router#conf
RP/0/RP0/CPU0:router(config)#int gig 0/1/0/3.100
RP/0/RP0/CPU0:router(config-subif)#mtu 2100
RP/0/RP0/CPU0:router(config-subif)#commit
RP/0/RP0/CPU0:router(config-subif)#end
RP/0/RP0/CPU0:router#sh int gig 0/1/0/3.100 | i MTU
MTU 2004 bytes, BW 1000000 Kbit (Max: 1000000 Kbit)
RP/0/RP0/CPU0:router#
因此,您只能使用mtu命令来降低从主接口继承的MTU值。
同样,您还可以使用L3协议(IPv4、IPv6、MPLS)的MTU命令来降低从子接口L2负载继承的L3 MTU值。当将L3协议MTU配置为不适合L2 MTU负载的值时,MTU不起作用。
L2VPN的MTU非常重要,因为当PW两端的连接电路上的MTU不同时,标签分配协议(LDP)不会启动伪线(PW)。
以下是show命令,该命令说明L2VPN PW在MTU不匹配时停机:
RP/0/RP0/CPU0:router1#sh l2vpn xconnect
Legend: ST = State, UP = Up, DN = Down, AD = Admin Down, UR = Unresolved,
SB = Standby, SR = Standby Ready, (PP) = Partially Programmed
XConnect Segment 1 Segment 2
Group Name ST Description ST Description ST
------------------------ ----------------------------- -----------------------------
mtu mtu DN Gi0/0/0/2.201 UP 10.0.0.12 201 DN
----------------------------------------------------------------------------------------
RP/0/RP0/CPU0:router1#sh l2vpn xconnect detail
Group mtu, XC mtu, state is down; Interworking none
AC: GigabitEthernet0/0/0/2.201, state is up
Type VLAN; Num Ranges: 1
VLAN ranges: [201, 201]
MTU 2000; XC ID 0x1080001; interworking none
Statistics:
packets: received 0, sent 0
bytes: received 0, sent 0
drops: illegal VLAN 0, illegal length 0
PW: neighbor 10.0.0.12, PW ID 201, state is down ( local ready )
PW class mtu-class, XC ID 0xfffe0001
Encapsulation MPLS, protocol LDP
Source address 10.0.0.2
PW type Ethernet, control word disabled, interworking none
PW backup disable delay 0 sec
Sequencing not set
PW Status TLV in use
MPLS Local Remote
------------ ------------------------------ -----------------------------
Label 16046 16046
Group ID 0x1080100 0x6000180
Interface GigabitEthernet0/0/0/2.201 GigabitEthernet0/1/0/3.201
MTU 2000 1986
Control word disabled disabled
PW type Ethernet Ethernet
VCCV CV type 0x2 0x2
(LSP ping verification) (LSP ping verification)
VCCV CC type 0x6 0x6
(router alert label) (router alert label)
(TTL expiry) (TTL expiry)
------------ ------------------------------ -----------------------------
Incoming Status (PW Status TLV):
Status code: 0x0 (Up) in Notification message
Outgoing Status (PW Status TLV):
Status code: 0x0 (Up) in Notification message
MIB cpwVcIndex: 4294836225
Create time: 18/04/2013 16:20:35 (00:00:37 ago)
Last time status changed: 18/04/2013 16:20:43 (00:00:29 ago)
Error: MTU mismatched
Statistics:
packets: received 0, sent 0
bytes: received 0, sent 0
RP/0/RP0/CPU0:router1#
RP/0/RP0/CPU0:router1#sh int GigabitEthernet0/0/0/2 | i MTU
MTU 2014 bytes, BW 1000000 Kbit (Max: 1000000 Kbit)
RP/0/RP0/CPU0:router1#sh int GigabitEthernet0/0/0/2.201 | i MTU
MTU 2018 bytes, BW 1000000 Kbit (Max: 1000000 Kbit)
RP/0/RP0/CPU0:router1#
在本示例中,请注意,每一端的MPLS L2VPN提供商边缘(PE)必须发出相同的MTU值才能启用PW。
由MPLS LDP发出信号的MTU不包括L2开销。这不同于包含L2开销的XR interface config和show命令。子接口上的MTU为2018字节(继承自2014字节的主接口),但LDP发出的MTU为2000字节。 因此,它从L2报头中减去18字节(14字节的以太网报头+ 4字节的1 dot1q标记)。
了解每台设备如何计算连接电路的MTU值以修复MTU不匹配非常重要。这取决于供应商、平台、软件版本和配置等参数。
Cisco ASR 9000系列聚合服务路由器使用EVC基础设施模型,允许在L2VPN L2接口和子接口上灵活地匹配VLAN。
EVC L2VPN L2接口具有以下特征:
要计算子接口MTU,请采用主接口MTU(默认值或手动在主接口下配置的),并为使用encapsulation命令配置的每个VLAN标记添加4个字节。请参阅特定EFP封装命令。
当子接口下有mtu命令时,仅当该命令低于计算MTU时才生效。rewrite命令不会影响子接口的MTU。
示例如下:
RP/0/RSP0/CPU0:router2#sh run int gig 0/1/0/3
interface GigabitEthernet0/1/0/3
cdp
mtu 2014
negotiation auto
!
RP/0/RSP0/CPU0:router2#sh run int gig 0/1/0/3.201
interface GigabitEthernet0/1/0/3.201 l2transport
encapsulation dot1q 201 second-dot1q 10
rewrite ingress tag pop 2 symmetric
!
RP/0/RSP0/CPU0:router2#
RP/0/RSP0/CPU0:router2#sh int gig 0/1/0/3.201
GigabitEthernet0/1/0/3.201 is up, line protocol is up
Interface state transitions: 1
Hardware is VLAN sub-interface(s), address is 0024.986c.63f3
Layer 2 Transport Mode
MTU 2022 bytes, BW 1000000 Kbit (Max: 1000000 Kbit)
在本示例中,主接口中的MTU为2014字节;添加8字节,因为子接口下配置了两个标记。
如果在子接口下配置mtu 2026字节,则不会应用它,因为它大于从主接口(2022)继承的子接口的MTU。因此,只能配置小于2022字节的子接口MTU。
根据此子接口MTU,计算向邻居发出信号的MPLS LDP负载的MTU,并确保它与远程L2VPN PE计算的负载相同。此时将执行rewrite命令。
为了计算MPLS LDP负载的MTU,请采用子接口的MTU,然后:
以下是gig 0/1/0/3.201上QinQ配置的相同示例:
interface GigabitEthernet0/1/0/3
cdp
mtu 2014
negotiation auto
!
interface GigabitEthernet0/1/0/3.201 l2transport
encapsulation dot1q 201 second-dot1q 10
rewrite ingress tag pop 2 symmetric
!
RP/0/RSP0/CPU0:router2#sh int gig 0/1/0/3.201
GigabitEthernet0/1/0/3.201 is up, line protocol is up
Interface state transitions: 1
Hardware is VLAN sub-interface(s), address is 0024.986c.63f3
Layer 2 Transport Mode
MTU 2022 bytes, BW 1000000 Kbit (Max: 1000000 Kbit)
以下是MPLS LDP负载MTU的计算:
确保远程端通告2000字节的MPLS LDP负载。否则,请调整本地或远程连接电路(AC)的MTU大小,使其匹配。
RP/0/RSP0/CPU0:router2#sh l2vpn xconnect det
Group mtu, XC mtu, state is up; Interworking none
AC: GigabitEthernet0/1/0/3.201, state is up
Type VLAN; Num Ranges: 1
Outer Tag: 201
VLAN ranges: [10, 10]
MTU 2000; XC ID 0x1880003; interworking none
这些封装会计为匹配的零标记,因此它们不会增加子接口MTU:
这些封装修饰符不影响计算子接口MTU所需的标记数量:
encapsulation [dot1q|dot1ad] priority-tagged计数与单个标记匹配。
用作最内部标记匹配的“any”关键字不会增加子接口MTU。
VLAN-ID的范围会增加子接口MTU:
作为分离匹配的EFP的封装MTU开销被视为其最高元素的MTU。
Cisco XR 12000系列路由器和运营商路由系统(CRS)等路由器使用子接口上VLAN匹配的传统配置。以下特征适用于不遵循EVC模型的CRS和XR 12000路由器上的L2VPN L2接口:
这里有几个例子说明了这些特征。
此示例说明如何配置非EVC子接口:
RP/0/RP0/CPU0:router1#sh run int gigabitEthernet 0/0/0/2.201
interface GigabitEthernet0/0/0/2.201 l2transport
dot1q vlan 201
!
RP/0/RP0/CPU0:router1#
非EVC平台使用dot1q vlan或dot1ad vlan命令,而不是EVC平台(ASR9000)的encapsulation和rewrite命令。
如果未在主接口或子接口上显式配置MTU,则默认情况下可以接收1500字节的第3层数据包:
RP/0/RP0/CPU0:router1#sh int gig 0/0/0/2 | i MTU
MTU 1514 bytes, BW 1000000 Kbit (Max: 1000000 Kbit)
RP/0/RP0/CPU0:router1#sh int gig 0/0/0/2.201 | i MTU
MTU 1518 bytes, BW 1000000 Kbit (Max: 1000000 Kbit)
RP/0/RP0/CPU0:router1#
子接口MTU从主接口MTU(1514)计算;每个dot1q标记增加4个字节。由于子接口上使用dot1q vlan 201命令配置了一个标记,因此对于1518字节的MTU,请将4个字节添加到1514。
MPLS LDP中相应的负载MTU为1500字节,因为以太网报头的14字节不计数,并且,当非EVC平台通过PW时,会自动弹出1 dot1q标记:
RP/0/RP0/CPU0:router1#sh l2vpn xconnect detail
Group mtu, XC mtu, state is down; Interworking none
AC: GigabitEthernet0/0/0/2.201, state is up
Type VLAN; Num Ranges: 1
VLAN ranges: [201, 201]
MTU 1500; XC ID 0x1080001; interworking none
如果将主接口的MTU增加到2014字节,子接口的MTU将相应地增加:
RP/0/RP0/CPU0:router1#sh run int gig 0/0/0/2
interface GigabitEthernet0/0/0/2
description static lab connection to head 4/0/0 - dont change
cdp
mtu 2014
ipv4 address 10.0.100.1 255.255.255.252
load-interval 30
!
RP/0/RP0/CPU0:router1#sh run int gig 0/0/0/2.201
interface GigabitEthernet0/0/0/2.201 l2transport
dot1q vlan 201
!
RP/0/RP0/CPU0:router1#sh int gig 0/0/0/2 | i MTU
MTU 2014 bytes, BW 1000000 Kbit (Max: 1000000 Kbit)
RP/0/RP0/CPU0:router1#sh int gig 0/0/0/2.201 | i MTU
MTU 2018 bytes, BW 1000000 Kbit (Max: 1000000 Kbit)
RP/0/RP0/CPU0:router1#sh l2vpn xconnect detail
Group mtu, XC mtu, state is down; Interworking none
AC: GigabitEthernet0/0/0/2.201, state is up
Type VLAN; Num Ranges: 1
VLAN ranges: [201, 201]
MTU 2000; XC ID 0x1080001; interworking none
因此,为了计算MPLS LDP MTU,请减去14字节的以太网报头,并为子接口下配置的每个标记添加4个字节。
在以太网接口上,接口驱动程序配置有基于接口MTU配置的MTU和MRU。
使用show controller <interface> all命令可以查看以太网接口驱动程序上配置的MTU和MRU。
在早于Cisco IOS XR版本5.1.1的版本中,以太网接口驱动程序上的MTU和MRU是根据接口上的Cisco IOS XR MTU配置自动配置的。
在以太网驱动程序上配置的MTU/MRU仅基于配置的MTU + 12字节,用于添加2个以太网标记和CRC字段。无论子接口上是否配置了VLAN标记,12个字节都已添加到以太网驱动程序MTU/MRU中。
以下示例显示了所有Cisco IOS XR版本(低于Cisco IOS XR版本5.1.1)和ASR 9000接口上的默认MTU 1514:
RP/0/RSP0/CPU0:ASR2#show interface Gi0/2/0/0
GigabitEthernet0/2/0/0 is up, line protocol is up
Interface state transitions: 3
Hardware is GigabitEthernet, address is 18ef.63e2.0598 (bia 18ef.63e2.0598)
Description: Static_Connections_to_ME3400-1_Gi_0_2 - Do Not Change
Internet address is Unknown
MTU 1514 bytes, BW 1000000 Kbit (Max: 1000000 Kbit)
<snip>
MTU/MRU programmed on ethernet interface driver is 1514 + 12 bytes
RP/0/RSP0/CPU0:ASR2#show controllers Gi0/2/0/0 all
<snip>
Operational values:
Speed: 1Gbps
Duplex: Full Duplex
Flowcontrol: None
Loopback: None (or external)
MTU: 1526
MRU: 1526
Inter-packet gap: standard (12)
<snip>
在Cisco IOS XR版本5.1.1及更高版本中,以太网接口驱动程序中使用的MTU和MRU已更改,现在基于任何子接口上配置的VLAN标记数量。
如果在任何子接口上未配置VLAN标记,则驱动程序MTU/MRU等于接口上配置的MTU + 4 CRC字节,例如1514 + 4 = 1518字节。
如果在任何子接口上配置了一个VLAN,则驱动程序MTU/MRU等于配置的MTU + 8字节(1标记+ CRC),例如1514 + 8 = 1522字节。
如果在任何子接口上配置了两个VLAN标记,则驱动程序MTU/MRU等于配置的MTU + 12字节(2个标记+ CRC),例如1514 + 12 = 1526字节
如果为second-do1q标记配置带有any关键字的QinQ,则驱动程序MTU/MRU等于配置的MTU + 8字节(1标记+ CRC),例如1514 + 8 = 1522字节。
以下示例显示了ASR 9000上Cisco IOS XR版本5.1.1及更高版本中的行为:
RP/0/RSP0/CPU0:ASR2#sh run int ten0/1/0/0
interface TenGigE0/1/0/0
cdp
RP/0/RSP0/CPU0:ASR2#show controllers ten0/1/0/0 all
<snip>
Operational values:
Speed: 10Gbps
Duplex: Full Duplex
Flowcontrol: None
Loopback: Internal
MTU: 1518
MRU: 1518
Inter-packet gap: standard (12)
<snip>
RP/0/RSP0/CPU0:ASR2#config
RP/0/RSP0/CPU0:ASR2(config-if)#int ten0/1/0/0.1
RP/0/RSP0/CPU0:ASR2(config-subif)#encapsulation dot1q 1
RP/0/RSP0/CPU0:ASR2(config-subif)#commit
RP/0/RSP0/CPU0:ASR2#show controllers ten0/1/0/0 all
<snip>
Operational values:
Speed: 10Gbps
Duplex: Full Duplex
Flowcontrol: None
Loopback: Internal
MTU: 1522
MRU: 1522
Inter-packet gap: standard (12)
<snip>
RP/0/RSP0/CPU0:ASR2#config
RP/0/RSP0/CPU0:ASR2(config)#int ten0/1/0/0.2
RP/0/RSP0/CPU0:ASR2(config-subif)#encapsulation dot1q 10 second-dot1q 20
RP/0/RSP0/CPU0:ASR2(config-subif)#commit
RP/0/RSP0/CPU0:ASR2#show controllers ten0/1/0/0 all
<snip>
Operational values:
Speed: 10Gbps
Duplex: Full Duplex
Flowcontrol: None
Loopback: Internal
MTU: 1526
MRU: 1526
Inter-packet gap: standard (12)
<snip>
RP/0/RSP0/CPU0:ASR2#config
RP/0/RSP0/CPU0:ASR2(config)#int ten0/2/0/0
RP/0/RSP0/CPU0:ASR2(config)#cdp
RP/0/RSP0/CPU0:ASR2(config)#int ten0/2/0/0.1 l2transport
RP/0/RSP0/CPU0:ASR2(config-subif)#encapsulation dot1q 10 second-dot1q any
RP/0/RSP0/CPU0:ASR2(config-subif)#commit
RP/0/RSP0/CPU0:ASR2#show controllers ten0/1/0/0 all
<snip>
Operational values:
Speed: 10Gbps
Duplex: Full Duplex
Flowcontrol: None
Loopback: Internal
MTU: 1522
MRU: 1522
Inter-packet gap: standard (12)
<snip>
在大多数情况下,版本5.1.1及更高版本中的此行为更改不应要求对接口上的MTU配置进行任何更改。
如果子接口配置了单个VLAN标记,则此行为更改会导致问题,但会收到具有两个VLAN标记的数据包。在这种情况下,收到的数据包可能会超过以太网接口驱动程序上的MRU。为了消除这种情况,接口MTU可以增加4个字节,也可以使用两个VLAN标记配置子接口。
5.1.1版本中的自动以太网接口驱动程序MTU和MRU配置对于CRS和ASR 9000路由器而言是相同的。但是,运行版本5.1.1的CRS路由器在show controller输出中显示的MTU和MRU值中不包含4字节的CRC。 CRS和ASR9000之间的报告行为不同。
RP/0/RP0/CPU0:CRS#sh run int ten0/4/0/0
Mon May 19 08:49:26.109 UTC
interface TenGigE0/4/0/0
<snip>
Operational values:
Speed: 10Gbps
Duplex: Full Duplex
Flowcontrol: None
Loopback: None (or external)
MTU: 1514
MRU: 1514
Inter-packet gap: standard (12)
RP/0/RP0/CPU0:CRS(config)#int ten0/4/0/0.1
RP/0/RP0/CPU0:CRS(config-subif)#encapsulation dot1q 1
RP/0/RP0/CPU0:CRS(config-subif)#commit
Operational values:
Speed: 10Gbps
Duplex: Full Duplex
Flowcontrol: None
Loopback: None (or external)
MTU: 1518
MRU: 1518
Inter-packet gap: standard (12)
ASR 9000上show controller输出中MTU和MRU的显示方式将来会更改,因此4字节的CRC不会包含在显示的MTU/MRU值中。 此未来更改可通过Cisco Bug ID CSCuo93379进行跟踪。
如果5.1.1之前的版本中存在不带任何子接口且没有mtu命令的主接口:
interface TenGigE0/1/0/19
l2transport
!
!
并且此接口传输dot1q或QinQ帧,然后,在版本5.1.1及更高版本中,应将MTU手动配置为“mtu 1522”:
interface TenGigE0/1/0/19
mtu 1522
l2transport
!
!
此配置允许QinQ帧像较早版本一样进行传输。如果只传输dot1q而不传输QinQ,则MTU值可配置为1518。
如果存在为dot1q或QinQ配置的子接口,但带有“any”关键字,且版本低于5.1.1的版本中未配置带有2个显式标记的QinQ子接口:
interface TenGigE0/1/0/19
!
interface TenGigE0/1/0/19.100 l2transport
encapsulation dot1q 100
!
interface TenGigE0/1/0/19.101 l2transport
encapsulation dot1q 101 second-dot1q any
!
版本5.1.1及更高版本中的此配置只允许传输带一个标记的帧,因此,如果要传输QinQ帧,MTU也应手动增加4字节:
interface TenGigE0/1/0/19
mtu 1518
!
interface TenGigE0/1/0/19.100 l2transport
encapsulation dot1q 100
!
interface TenGigE0/1/0/19.101 l2transport
encapsulation dot1q 101 second-dot1q any
!
如果配置了带有2个显式标记(不使用“any”关键字)的QinQ子接口,则在升级到版本5.1.1及更高版本时,无需修改MTU配置:
interface TenGigE0/1/0/19
!
interface TenGigE0/1/0/19.101 l2transport
encapsulation dot1q 101 second-dot1q 200
!
如果没有L2传输子接口,而只有L3路由接口,则预计两端的MTU配置将会匹配,并且不会出现大于传输的MTU的帧。升级到版本5.1.1及更高版本时,无需更新MTU配置。
同样,在早于5.1.1版本的版本中配置了非默认MTU且未配置任何子接口且必须传输dot1q或QinQ帧时,当您升级到版本5.1.1或更高版本时,配置的MTU值应增加8字节。
低于5.1.1的版本:
interface TenGigE0/1/0/19
mtu 2000
l2transport
!
!
升级到版本5.1.1及更高版本时,应手动增加8个字节:
interface TenGigE0/1/0/19
mtu 2008
l2transport
!
!
如果存在dot1q子接口且没有QinQ子接口或带有any关键字的second-dot1q子接口,则配置的MTU值也应增加4字节。
低于5.1.1的版本:
interface TenGigE0/1/0/19
mtu 2000
!
interface TenGigE0/1/0/19.100 l2transport
encapsulation dot1q 100
!
interface TenGigE0/1/0/19.101 l2transport
encapsulation dot1q 101 second-dot1q any
!
版本5.1.1及更高版本:
interface TenGigE0/1/0/19
mtu 2004
!
interface TenGigE0/1/0/19.100 l2transport
encapsulation dot1q 100
!
interface TenGigE0/1/0/19.101 l2transport
encapsulation dot1q 101 second-dot1q any
!
如果配置了2个显式标记(不使用“any”关键字)的QinQ子接口,则升级到版本5.1.1及更高版本时,无需修改MTU配置。
interface TenGigE0/1/0/19
!
interface TenGigE0/1/0/19.101 l2transport
encapsulation dot1q 101 second-dot1q 200
!
如果没有L2传输子接口,但只有L3路由接口,则预计两端的MTU配置将匹配,并且不会出现大于传输的MTU的帧。升级到版本5.1.1及更高版本时,无需更新MTU配置。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
02-Feb-2015 |
初始版本 |