IPv6 BGP & kernel 4.19

Oliver bird-o at sernet.de
Thu Sep 24 21:52:14 CEST 2020


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



More information about the Bird-users mailing list