Назад | Перейти на главную страницу

Почему ifconfig сбрасывает маршрут шлюза по умолчанию?

В FreeBSD ifconfig кажется, что вызов удаляет маршрут шлюза по умолчанию, даже если ему задан тот же IP-адрес (например, при обновлении только сетевой маски). Это ошибка или особенность?
Насколько я помню, Linux в этом случае не меняет шлюз по умолчанию.

Во FreeBSD ifconfig который удаляет прямое подключение к подсети, также удаляет маршруты, содержащие эту подсеть (обновление сетевых масок IIRC сводится к удалению и замене). Это «особенность», позволяющая не запутать вашу конфигурацию маршрутизации, пытаясь поговорить с хостом, которого он больше не может достичь, хотя и вызывает определенную путаницу, когда пользователи сталкиваются с исчезающими маршрутами.

Смотрите также: http://forums.freebsd.org/showthread.php?t=12132

Я считаю, что это происходит потому, что команда ifconfig фактически удаляет старый IP-адрес и создает новый, а не просто меняет его. "Это особенность!"

Я искал способ сохранить маршрут к gw по умолчанию на месте, но, поскольку я увидел эту ветку и попробовал самостоятельно, думаю, выхода нет. Единственное, что мне нужно было сделать, это установить gw по умолчанию вручную сразу после установки ip:

sudo ifconfig eth0 10.0.0.2 subnet 255.255.255.0
sudo route add default gw 10.0.0.138

так что имейте в виду, если вы делаете это удаленно, лучше запустите обе команды с помощью &&, иначе вы застрянете

sudo ifconfig eth0 10.0.0.2 subnet 255.255.255.0 && sudo route add default gw 10.0.0.138