У меня есть сервер Linux, подключенный к VPN.

Дома я использую тот же VPN на своем ноутбуке, когда подключен к серверу напрямую через беспроводной маршрутизатор.

Для этого у меня есть две записи в моем /etc/hosts :

192.168.1.1 myserver
10.1.1.1 myserver.vpn

Таким образом, я могу выбрать способ подключения вручную, используя другое имя хоста.

Мой вопрос: как я могу подключиться динамически, используя то же имя хоста? В идеале ноутбук должен знать, какой IP-адрес использовать, на основе каких сетевых интерфейсов он подключен, отдавая предпочтение реальному интерфейсу, а не виртуальному. И если адрес не был доступен, я хочу попробовать другой!

Я попытался настроить это, используя dnsmasq на ноутбуке с несколькими записями хоста и опцией localise-queries . В моем dnsmasq.conf меня есть:

host-record=myserver,10.1.1.1
host-record=myserver,192.168.1.1

Когда я использую dig myserver +short я получаю:

10.1.1.1
192.168.1.1

в первый раз и

192.168.1.1
10.1.1.1

во второй раз и так далее ...

Но если я изменяю статический адрес myserver на 192.168.1.2 и выполняю ping myserver с ноутбука (192.168.1.3), я получаю:

PING myserver (192.168.1.1) 56(84) bytes of data.
From localhost (192.168.1.3) icmp_seq=1 Destination Host Unreachable
From localhost (192.168.1.3) icmp_seq=2 Destination Host Unreachable
From localhost (192.168.1.3) icmp_seq=3 Destination Host Unreachable
...

Итак, пара вопросов:

(1) почему ноутбук не использует другой маршрут, даже если dnsmasq его предоставляет? (2) как я могу определить приоритеты маршрутов в зависимости от того, какое сетевое соединение используется?

Кстати, я пытался использовать NetworkManager и настраивать записи DNS для каждого соединения (например, использовать DNS-сервер моего маршрутизатора для разрешения имен хостов в локальной сети и локальный dnsmasq ноутбука для поиска имен хостов в VPN). Ну, это казалось хорошей идеей, но каждый раз, когда я активировал интерфейс, он отменял настройки DNS других интерфейсов. Это не то, что я хотел!

Вопрос (3): Есть ли лучший способ сделать это?

1 ответ1

0

Я мог бы что-то здесь упустить, но как ваш компьютер узнал, что myserver больше не имеет IP 192.168.1.1 после того, как вы измените его?

Когда вы ping myserver после изменения IP- адреса , он говорит:

PING myserver (192.168.1.1) 56 (84) байт данных.

Таким образом, он пытается пинговать адрес, который вы установили ранее.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .