Однажды на сервере с Quagga после добавления нескольких тысяч сетевых интерфейсов, заметил сообщение в логах /var/log/zebra.log:
ZEBRA: netlink-listen recvmsg overrun: No buffer space available
Посмотрел текущие значения (у меня везде было 212992):
cat /proc/sys/net/core/rmem_default
cat /proc/sys/net/core/rmem_max
cat /proc/sys/net/core/wmem_default
cat /proc/sys/net/core/wmem_max
Чтобы решить проблему я увеличил максимальные значения буфера приема данных для всех соединений на 16 мегабайт (16777216 byte = 16Mb):
sudo -i
echo 16777216 > /proc/sys/net/core/rmem_max
echo 16777216 > /proc/sys/net/core/wmem_max
А также чтобы при перезапуске системы значение не сбросилось, добавил в sysctl.conf:
sudo nano /etc/sysctl.conf
net.core.rmem_max=16777216
net.core.wmem_max=16777216
Также в файле /etc/quagga/debian.conf добавим «nl-bufsize»:
zebra_options=" --daemon -A 127.0.0.1 --nl-bufsize 16777216"
И перезапустим quagga чтобы применить изменения:
sudo /etc/init.d/quagga restart
В Ubuntu Server 18.04 я указывал в другом файле:
nano /lib/systemd/system/zebra.service
nano /etc/systemd/system/multi-user.target.wants/zebra.service
ExecStart=/usr/sbin/zebra -d -A 127.0.0.1 -s 16777216 -f /etc/quagga/zebra.conf
Смотрите также мои статьи:
Настройка BGP в Quagga
Как включить или отключить Proxy ARP в Linux