Поскольку он работает, когда вы комментируете строку шлюза, вы страдаете от неудачного состояния гонки: как только соединение интерфейса установлено, Linux начинает обнаруживать и принимать окрестности объявления маршрута, которые могут помещать маршруты IPv6 в вашу таблицу маршрутизации, хотя интерфейс еще не полностью настроен. Когда позже сценарий попытается добавить маршрут по умолчанию, вы получите ответы RTNETLINK: Файл существует
. Чтобы обойти это, вы можете либо закомментировать строку шлюза (что рекомендуется при условии, что маршруты правильно объявляются в вашей сети), либо отключить прием RA через sysctl -w net.ipv6.conf.device. accept_ra = 0
(устройство является фактическим устройством, по умолчанию или все).