By default sysctl params for gc_thresh is small if we use VyOS as BRAS or DHCP Server (L2).
Also it can take negative effect if we use VRRP and active arp entries more than 512.
Default params:
net.ipv4.neigh.default.gc_thresh1 = 128 net.ipv4.neigh.default.gc_thresh2 = 512 net.ipv4.neigh.default.gc_thresh3 = 1024 net.ipv6.neigh.default.gc_thresh1 = 128 net.ipv6.neigh.default.gc_thresh2 = 512 net.ipv6.neigh.default.gc_thresh3 = 1024
Proposed params:
net.ipv4.neigh.default.gc_thresh1 = 2048 net.ipv4.neigh.default.gc_thresh2 = 4096 net.ipv4.neigh.default.gc_thresh3 = 8192 net.ipv6.neigh.default.gc_thresh1 = 2048 net.ipv6.neigh.default.gc_thresh2 = 4096 net.ipv6.neigh.default.gc_thresh3 = 8192
Sure we can increase this params via CLI, but I think best practices if we add this params by default.
set system ip arp table-size 8192 set system ipv6 neighbor table-size 8192