On Thu, 24 Sep 2020, Clément Guivy wrote:
On 24/09/2020 14:37, Oliver wrote:
Hello,
after upgrading to debian buster with kernel 4.19 we also had problems.
How filled is your route cache compared to the sysctl treshold? See the (hex) value with : cut -d'' -f 6 /proc/net/rt6_stats awk '{ print ("0x"$6)+0, "(" $6 ")" }' /proc/net/rt6_stats It is between 1315 (0523) and 1738 (06ca)
Do you get a "Network is unreachable" error at some point if you do an "ip route get" on each prefix of your (ipv6) routing table? (while you are doing this test you should see the cache being filled according to the rt6_stats file as said before) After we set "net.ipv6.route.max_size = 400000" we do not get any "Network is unreachable" anymore. This is how we tested it: ip -6 route |egrep "^[0-9a-f]{1,4}:"|awk '{ print $1; }'|sed "s#/.*##"|xargs -L 1 ip -6 route get 1> /dev/null
How filled is your neighbor table compared to the sysctl treshold? You can read it with : ip -6 neigh sh | wc -l 18 (so very low)
Do you notice random drops on Bird sessions? After we set "net.ipv6.route.max_size = 400000" we do not have any drops anymore.
We have many ipv6_routes: cat /proc/net/ipv6_route | wc -l 207281 (so more then the normal full IPv6 BGP table which is around 90000) At the moment just the "jitter" is the problem we have. I just increased net.ipv6.route.gc_thresh to 102400 as suggested from micah. (1/4 of ipv6.route.max_size) With the increased value /proc/net/rt6_stats is going up to 2186 (088a) and stayes in that region. So for the past minutes with this config everything runs smoothly: net.ipv6.route.max_size = 400000 net.ipv6.route.gc_thresh = 102400 I did not changed the net.ipv6.neigh.default.gc_thresh* values. I will monitor the values and write again after some time. Oliver