High latency on IPv6

Hi all,

I am seeing latency of ~10ms for IPv6 traffic when IPv4 is showing <1ms

Is this type of latency expected for IPv6 in RouterOS ?

Simple topology

ROS1 <-> ROS2 <-> INTERNET/PEERING

ROS1 going to internet via next hop ROS2 0.2ms for Ipv4 and 12.2ms for IPv6 ?

[matt@ROS1] > /tool traceroute ipv4.google.com

ADDRESS LOSS SENT LAST AVG BEST WORST STD-DEV STATUS

1 x.x.0.129 0% 4 0.2ms 0.4 0.2 0.8 0.2
<..>

[matt@ROS1] > /tool traceroute ipv6.google.com

ADDRESS LOSS SENT LAST AVG BEST WORST STD-DEV STATUS

1 x:x:200:beef::b4b5:df 0% 7 12.2ms 11.3 9.9 12.2 0.7
<..>

IPv6 Ping between ROS1 and ROS2 anywhere from 9 to 25 ms

40 x:x:200:beef::b4b5:df 56 255 9ms echo reply
41 x:x:200:beef::b4b5:df 56 255 9ms echo reply
42 x:x:200:beef::b4b5:df 56 255 28ms echo reply
43 x:x:200:beef::b4b5:df 56 255 9ms echo reply
44 x:x:200:beef::b4b5:df 56 255 25ms echo reply
45 x:x:200:beef::b4b5:df 56 255 13ms echo reply
46 x:x:200:beef::b4b5:df 56 255 19ms echo reply
47 x:x:200:beef::b4b5:df 56 255 10ms echo reply
48 x:x:200:beef::b4b5:df 56 255 10ms echo reply
49 x:x:200:beef::b4b5:df 56 255 10ms echo reply
50 x:x:200:beef::b4b5:df 56 255 9ms echo reply
51 x:x:200:beef::b4b5:df 56 255 9ms echo reply
52 x:x:200:beef::b4b5:df 56 255 10ms echo reply
53 x:x:200:beef::b4b5:df 56 255 9ms echo reply
54 x:x:200:beef::b4b5:df 56 255 21ms echo reply
55 x:x:200:beef::b4b5:df 56 255 10ms echo reply
56 x:x:200:beef::b4b5:df 56 255 10ms echo reply
57 x:x:200:beef::b4b5:df 56 255 9ms echo reply

Same path IPv4 solid 0 ms

SEQ HOST SIZE TTL TIME STATUS
0 x:x.237.129 56 64 0ms
1 x:x.237.129 56 64 0ms
2 x:x.237.129 56 64 0ms
3 x:x.237.129 56 64 0ms
4 x:x.237.129 56 64 0ms
5 x:x.237.129 56 64 0ms
6 x:x.237.129 56 64 0ms
7 x:x.237.129 56 64 0ms
8 x:x.237.129 56 64 0ms
9 x:x.237.129 56 64 0ms
10 x:x.237.129 56 64 0ms
11 x:x.237.129 56 64 0ms
12 x:x.237.129 56 64 0ms
13 x:x.237.129 56 64 0ms
14 x:x.237.129 56 64 0ms
15 x:x.237.129 56 64 0ms
16 x:x.237.129 56 64 0ms

Is RouterOS just really bad at IPv6 ?

I’m pinging from a host to another host with 2 MikroTiks and the internet in between using ipv4 and ipv6 and the ping times are very comparable.

Do you have a long chain of IPv6 firewall rules or something?

Hi there,
Thanks for the reply.
These boxes are intended to be for packets in packets out with a bit of BGP/OSPF.
There is no IPv6 firewall rules at all.

What I have noticed is an increase in latency corresponds with increased resource utilisation and table sizes ;
3K IPv6 routes : sent=10 received=10 packet-loss=0% min-rtt=1ms avg-rtt=1ms max-rtt=4ms
7K IPv6 routes : sent=10 received=10 packet-loss=0% min-rtt=3ms avg-rtt=3ms max-rtt=4ms
25K IPv6 routes : sent=10 received=10 packet-loss=0% min-rtt=9ms avg-rtt=10ms max-rtt=18ms

Additionally, we can observe that traffic to the CCRs own IPv6 interface addresses are also affected.

For example;
[matt@CCR] > /ipv6 address print terse where interface =AVC000012345678
0 G comment=SAMSID000000159521 address=x:x:c23e:e5dc:4e5e:cff:fe64:b9e6/64 from-pool=“” interface=AVC000012345678 actual-interface=AVC000012345678 eui-64=yes advertise=yes
1 DL address=fe80::4e5e:cff:fe64:b9e6/64 from-pool=“” interface=AVC000012345678 actual-interface=AVC000012345678 eui-64=no advertise=no

[matt@CCR] > ping x:x:c23e:e5dc:4e5e:cff:fe64:b9e6
SEQ HOST SIZE TTL TIME STATUS
0 x:x:c23e:e5dc:4e5e:cff:fe64:b9e6 56 64 11ms echo reply
1 x:x:c23e:e5dc:4e5e:cff:fe64:b9e6 56 64 12ms echo reply
2 x:x:c23e:e5dc:4e5e:cff:fe64:b9e6 56 64 11ms echo reply
3 x:x:c23e:e5dc:4e5e:cff:fe64:b9e6 56 64 11ms echo reply
4 x:x:c23e:e5dc:4e5e:cff:fe64:b9e6 56 64 11ms echo reply
5 x:x:c23e:e5dc:4e5e:cff:fe64:b9e6 56 64 11ms echo reply
6 x:x:c23e:e5dc:4e5e:cff:fe64:b9e6 56 64 12ms echo reply
sent=7 received=7 packet-loss=0% min-rtt=11ms avg-rtt=11ms max-rtt=12ms

[matt@CCR] > ping fe80::4e5e:cff:fe64:b9e6 interface=AVC000012345678
SEQ HOST SIZE TTL TIME STATUS
0 fe80::4e5e:cff:fe64:b9e6 56 64 8ms echo reply
1 fe80::4e5e:cff:fe64:b9e6 56 64 10ms echo reply
2 fe80::4e5e:cff:fe64:b9e6 56 64 8ms echo reply
3 fe80::4e5e:cff:fe64:b9e6 56 64 9ms echo reply
4 fe80::4e5e:cff:fe64:b9e6 56 64 8ms echo reply
5 fe80::4e5e:cff:fe64:b9e6 56 64 8ms echo reply
6 fe80::4e5e:cff:fe64:b9e6 56 64 9ms echo reply
7 fe80::4e5e:cff:fe64:b9e6 56 64 8ms echo reply
sent=8 received=8 packet-loss=0% min-rtt=8ms avg-rtt=8ms max-rtt=10ms

This seems to imply there is a fundamental performance constraint that I will not be able to remedy myself.

This one is over my head. I’m not a performance guy (yet).

You have a pretty clear relationship between routing table size and ping time, although it’s not 100% certain that this is the cause, could just be coincidence.

You probably need to open a bug for that one unless someone knows something specific about this particular thing.

I’ve never run into any performance difference in Mikrotik - and I have native IPv6 service at home, so I would definitely know if it were doing something wrong. Perhaps the forwarding engine doesn’t scale well as the size of the routing table increases.

Given that as the problem, I wouldn’t be shocked at all to learn that this is going to be “fixed in RouterOS version 7” (along with every other bug that ever gets discovered in the core routing engine of ROSv6).

Besides the routing engine getting a complete overhaul in v7 (hence the long wait for some functionality to be implemented / fixed), Mikrotik doesn’t give me the impression that IPv6 is a strong concern of theirs. The IPv6 functionality in ROS is a bare-bones, no-frills experience IMO. It works but don’t try anything fancy with it.

NAT? nope. not any flavor of it.
DHCP server for LAN? nope.
Wanna specify the link-local address of an interface? Sorry.
Want to listen for RAs from another router to learn a default GW? Too bad.
Policy-based routing in IPv6? nah.
Update a AAAA record on your DDNS server with the built-in dyndns client? Sorry - it only lets you send A records.
Wanna have a plug-and-play IPv6 experience? Sorry - you need to first enable the IPv6 package and reboot.

Now I’m not saying the thing is total junk for IPv6 - I use it at home every day and IPv6 works flawlessly. It let me easily build a tunnel to Hurricane Electric back in the days before Comcast rolled out IPv6 to the home. Tunnels seem to be one of the more protocol-agnostic things Mikrotik does at the moment. But if ROS-IPv6 were a house, it would be a college bachelor’s apartment with milk crates / cable spools / posters of swimsuit models and a fridge full of beer and condiments.