В NetBSD (по умолчанию), а также, я полагаю, и в OpenBSD, процесс, отправляющий через сокет маршрутизации запрос на добавление или удаление маршрута из таблиц (или таблиц) маршрутизации (или, в действительности, на что угодно, кроме получения маршрута). должен иметь эффективный идентификатор пользователя, равный нулю (т. е. быть "root"). Т.е. процесс не может отбросить привилегии после открытия сокета маршрутизации и все же изменить таблицу (таблицы) маршрутизации - привилегии проверяются во время обработки сообщения запроса маршрутизации, а не во время первого открытия сокета маршрутизации.
В NetBSD можно было бы установить новую модель безопасности в ядре, которая могла бы изменить это правило, но я не знаю ни одной, предназначенной для этого специально для таблиц маршрутизации. (OpenBSD не использует подсистему NetBSD kauth
.)