LINUX.ORG.RU
решено ФорумAdmin

Default gateway в другой сети

 ,


0

1

Собственно в теме весь вопрос.

По данной теме нашел еще два треда:
Default gateway в другой сети,
Default gateway в другой сети.

Прошу понять правильно. В другой ситуации я и сам бы ответил на подобный вопрос, что это не возможно. Но, к сожалению, встретился с подобной ситуацией, хотя и с некоторой оговоркой:

Вводная:
Имеется VPS у одного немецкого провайдера.
Для виртуалки выделен ip:

    address   194.28.XXX.YYY/32
    broadcast 255.255.255.255
    gateway   10.0.0.1

Вот тут то собственно и вопрос, как указать шлюз из другой подсети?

Если указать командой:

ip r add default via 10.0.0.1

то получим ошибку.

Если присвоить интерфейсу ip адрес, например 10.0.0.99/24, а потом назначить default-маршрут, то маршрут применится, но от этого интернет не появится, так как отправителем пакетов будет выступать 10.0.0.99/24, а шлюз ожидает пакеты от 194.28.XXX.YYY/32.
Пока делаю так:

/sbin/ip a add 10.0.0.99/24 dev ens1 && \
/sbin/ip r add default via 10.0.0.1 dev ens1 && \
/sbin/ip a delete 10.0.0.99/24 dev ens1

После удаления «временного» ip, интернет начинает работать на виртуалке.

Но всё же я уверен, должен быть какой то способ без костыля. Только вот какой? Может быть кто-нибудь знает? Вдруг у утилиты «ip» есть некий параметр, который принудительно присвоит сетевому интерфейсу маршрут без промежуточного присвоения «левого» ip?

★★★★★

Последнее исправление: ivanlex (всего исправлений: 2)

Так как это VPS скорее всего оно из каробки должно робить без лишних телодвижений с вашей стороны. Вроде, но не точно на все 146%, встречалась хня когда для real ip поднимался отдельный интерфейс. Или ещё вариант когда real ip прописывается алиасом на тот же интерфейс.

anc ★★★★★
()
Ответ на: комментарий от kostik87

Если ты имеешь в виду, добавление маршрута без указания ip адреса шлюза, как ip r add default dev ens1, то команда выполнится, но интернет не появится.
Уже пробовал так. К сожалению, без указания ip адреса шлюза, интернет не появляется.

Именно по этому я сначала добавляю «временный» ip на интерфейс.
Потом добавляю маршрут, в этом случае маршрут добавляется без ошибки.
Потом удаляю «временный» ip с интерфейса, в этом случае маршрут остается.

Хотелось как то без этого «временного» ip обойтись. Просто адрес «временного» ip может быть уже занят у провайдера.
Не хотелось бы попасть в ситуацию, когда провайдер заблочит меня, за то, что я использую его ip, пусть и пару секунд (пока добавляется маршрут).

ivanlex ★★★★★
() автор топика
Последнее исправление: ivanlex (всего исправлений: 1)

Всего то надо добавить onlink в последним параметром утилиты «ip».
Даже пояснение к параметру нашел:
«При указании параметра onlink, шлюз становится доступным, даже если адрес шлюза не соответствует какому-либо префиксу интерфейса».

Итоговая команда:

ip r add default via 10.0.0.1 dev ens1 onlink

«временный» ip больше не нужен.

Всем спасибо.

ivanlex ★★★★★
() автор топика