09-16-2021 01:20 AM
Hello everyone. There are two sides connected by a provider channel. On each side is an ASR-902 router (Cisco IOS XE Software, Version 16.09.04). A GRE tunnel is configured between the routers for OSPF. The data transfer rate in this tunnel is about 1 Mbps. When connecting laptops instead of routers and measuring the speed between them, the speed will be slightly over 20 Mbps. What could be the speed issue in the gre tunnel between the two ASR902s? Maybe this is some kind of firmware bug in ASR?
#show running-config interface tunnel 0
Building configuration...
Current configuration : 178 bytes
!
interface Tunnel0
description Tunnel_to_B
bandwidth 10000
ip address x.x.x.x/30
tunnel source y.y.y.y
tunnel destination z.z.z.z
end
#show interface tunnel 0
Tunnel0 is up, line protocol is up
Hardware is Tunnel
Description: Tunnel_to_B
Internet address is x.x.x.x/30
MTU 17916 bytes, BW 10000 Kbit/sec, DLY 50000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation TUNNEL, loopback not set
Keepalive not set
Tunnel linestate evaluation up
Tunnel source y.y.y.y, destination z.z.z.z
Tunnel protocol/transport GRE/IP
Key disabled, sequencing disabled
Checksumming of packets disabled
Tunnel TTL 255, Fast tunneling enabled
Tunnel transport MTU 1476 bytes
Tunnel transmit bandwidth 8000 (kbps)
Tunnel receive bandwidth 8000 (kbps)
Last input 00:00:01, output 00:00:01, output hang never
Last clearing of "show interface" counters 1y33w
Input queue: 0/375/0/0 (size/max/drops/flushes); Total output drops: 2786
Queueing strategy: fifo
Output queue: 0/0 (size/max)
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
133985756 packets input, 74757220179 bytes, 0 no buffer
Received 0 broadcasts (0 IP multicasts)
0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
99270058 packets output, 13988905457 bytes, 0 underruns
0 output errors, 0 collisions, 0 interface resets
0 unknown protocol drops
0 output buffer failures, 0 output buffers swapped out
#show ip interface tunnel 0
Tunnel0 is up, line protocol is up
Internet address is x.x.x.x/30
Broadcast address is 255.255.255.255
Address determined by setup command
MTU is 1476 bytes
Helper address is not set
Directed broadcast forwarding is disabled
Multicast reserved groups joined: 224.0.0.5 224.0.0.2
Outgoing Common access list is not set
Outgoing access list is not set
Inbound Common access list is not set
Inbound access list is not set
Proxy ARP is enabled
Local Proxy ARP is disabled
Security level is default
Split horizon is enabled
ICMP redirects are always sent
ICMP unreachables are always sent
ICMP mask replies are never sent
IP fast switching is enabled
IP Flow switching is disabled
IP CEF switching is enabled
IP CEF switching turbo vector
IP Null turbo vector
Associated unicast routing topologies:
Topology "base", operation state is UP
IP multicast fast switching is enabled
IP multicast distributed fast switching is disabled
IP route-cache flags are Fast, CEF
Router Discovery is disabled
IP output packet accounting is disabled
IP access violation accounting is disabled
TCP/IP header compression is disabled
RTP/IP header compression is disabled
Probe proxy name replies are disabled
Policy routing is disabled
Network address translation is disabled
BGP Policy Mapping is disabled
Input features: MCI Check
#show interface BDI 555
BDI555 is up, line protocol is up
Hardware is BDI, address is 848a.8d4b.2abf (bia 848a.8d4b.2abf)
Description: B
Internet address is y.y.y.y/30
MTU 1500 bytes, BW 10000 Kbit/sec, DLY 10 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive not supported
ARP type: ARPA, ARP Timeout 04:00:00
Last input 00:00:02, output 00:00:02, output hang never
Last clearing of "show interface" counters never
Input queue: 0/375/0/1406 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/40 (size/max)
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
134716628 packets input, 78189079604 bytes, 0 no buffer
Received 0 broadcasts (1236 IP multicasts)
0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
161215711 packets output, 79038873019 bytes, 0 underruns
0 output errors, 0 interface resets
0 unknown protocol drops
0 output buffer failures, 0 output buffers swapped out
09-16-2021 01:33 AM
- Check this document :
M.
09-16-2021 01:39 AM
Hello,
try and set the values below on both tunnel interfaces:
Ip mtu 1400
ip tcp adjust-mss 1360
09-16-2021 02:39 AM
Changing the mtu value does not affect the speed increase in this problem.
09-16-2021 03:14 AM
Hi,
I have a number of questions that may be able to give you direction in finding the solution:
1. Can you elaborate a bit on the "provider channel" perhaps a topology for example?
2. Did you make sure there is as little ip fragmentation as possible ?
3. Can you elaborate a bit on how you test the speed (What software do you use and what kind of traffic goes between the routers)?
4. Is the OS the same on both sides?
5. In what software do you test speed?
09-17-2021 01:07 AM - edited 09-17-2021 01:22 AM
1. GRE over leased channel provider
2. We have a lot of gre-tunnels on other routers, speed problem occurs on ASRs. We tried changing the mss parameter, but it didn't any better.
3-5. iperf on laptops instead of routers
09-16-2021 07:15 AM
The usual cause, for poorer performance across any kind of tunnel, is the tunnel's encapsulation size is smaller than MTU of the data being encapsulated, and the issues this creates.
Cisco has a nice TechNote on the subject, found here: https://www.cisco.com/c/en/us/support/docs/ip/generic-routing-encapsulation-gre/25885-pmtud-ipfrag.html
The best option is using the "TCP adjust-MSS" (on the tunnel interface), as already suggested by @Georg Pauwen. As your tunnel's lists its MTU as
Tunnel transport MTU 1476 bytes
, normally you would set the adjust-MSS parameter 40 bytes less, or, rather than what Georg suggest, to 1436.
Do understand, this only works for TCP traffic that "opens" its session across the interface when/where this command is active. It doesn't work for non-TCP traffic and using a value 40 bytes less can also be incorrect, as both IP and TCP options can increase either beyond their usual 20 bytes.
Even with TCP, there are other issues you can run into - again, TechNote discusses those.
Also, again, non-TCP traffic can be problematic, because it often doesn't use PMTUD. So, @pman 's 3rd question is significant (as would what kind of "normal/expected" data traffic will be using this tunnel?
09-17-2021 01:17 AM
Could it be that gre is being handled by the ASR's CPU while the rest of the traffic is handled differently, causing poor speed in GRE? Perhaps, for the correct operation of GRE, it is necessary to somehow switch the ASR to a different operating mode? For example, change the SDM template?
10-27-2021 10:06 AM
"Prior to Cisco IOS XE Gibraltar Release 16.12.x, GRE tunnels could provide a speed of 520 kbps for unidirectional and 250 kbps for bidirectional traffic. Starting with Cisco IOS XE Gibraltar Release 16.12.x, GRE tunnels enable the traffic to pass at a speed according to the size of the interface".
What prevented them from fixing this problem earlier?! WTF???
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide