Когда я на работе и подключаю свой ноутбук кабелем, я сразу попадаю в нашу внутреннюю сеть. Поэтому я могу напрямую подключаться к компьютерам внутри без доменного имени, например: ssh host1
, с доменным именем: ssh host1.example.com
или напрямую через IP: ssh 192.168.100.101
.
Но когда я дома, мне нужно сначала войти в наш vpn. После этого я могу безопасно
подключиться как с ssh host1.example.com
и ssh 192.168.100.101
.Но как мне добраться ssh host1
до работы?
Я использую Ubuntu 18.04.3 LTS и подключаюсь к VPN с помощью OpenVPN 2.4.4.
До недавнего времени у меня это работало, но как оказалось,всеМой трафик направлялся через vpn, что, конечно, создавало ощущение, что я нахожусь в офисе, но это также добавляло дополнительный трафик туда и обратно для трафика, который не
предназначался для офиса. Поэтому в NetworkManager->изменить VPN-подключение->"
Настройки IPv4"->Маршруты... есть флажок "Использовать это подключение только для ресурсов в его сети".
Если этот флажок не установлен, я получаю маршрут по умолчанию, который направляет весь трафик на интерфейс vpn (tun0):
$ ip route
default via 172.30.0.25 dev tun0 proto static metric 50
default via 192.168.1.1 dev enxc8f750cc2555 proto dhcp metric 100
...
Если этот флажок установлен, первое правило по умолчанию отменяется:
$ ip route
default via 192.168.1.1 dev enxc8f750cc2555 proto dhcp metric 100
...
Конечно, есть и другие правила маршрутизации, которые завершают настройку VPN, но я думаю, что здесь для описания проблемы они не нужны.
Итак, после установки этого флажка все работает (за исключением DNS-поиска) и работа в остальной части сети становится быстрее (я так думаю).
Я немного повозился с resolve, но так и не понял, как заставить его
работать. Я пытался указать /etc/resolve.conf
на оба:
/run/systemd/resolve/resolv.conf
/run/systemd/resolve/stub-resolv.conf
Но, похоже, никаких изменений в поведении не произошло.
Думаю, это связано с настройками search
, resolve.conf
но я не могу понять, как именно.
Итак, я бы хотел (я думаю):
- Получаю конфигурацию сети с DHCP, куда бы я ни подключился (это работает)
- Если я войду в VPN, то DNS внутри VPN должен быть DNS по умолчанию.
Что/как я могу изменить, проверить и подтвердить? Предложения? Вопросы?
Или я лаю не на то дерево?
решение1
Интерфейс VPN должен иметь адрес DNS локальной работы и домен поиска, добавленный к нему. Удаленно подключитесь к машине через vpn к вашему основному сайту и проверьте адрес DNS. Вам также понадобится ваш суффикс DNS, также известный как домен поиска. (например, если ваше полное доменное имя похоже на computer1.xyz.com или comp1.abc.local, домен/суффикс поиска будет xyz.com или abc.local)
После того, как вы получите эту информацию, измените настройки в netplan, добавив сервер имен (сервер DNS) и суффикс поиска DNS. Выглядит это примерно так:
$ sudo vi /etc/netplan/50-cloud-init.yaml
ethernets:
vpn0:
addresses: [192.168.86.30/24]
dhcp4: no
dhcp6: no
gateway4: 192.168.86.1
nameservers:
addresses: [192.168.86.10] #dns server address goes here
search: [xyz.com] #end of FQDN goes here
$ sudo netplan apply
Добавьте только серверы имен/адреса/значения поиска. Игнорируйте остальных. Возможно, после этого придется поднять и опустить интерфейс vpn.