DNS と VPN をうまく連携させるにはどうすればよいですか?

DNS と VPN をうまく連携させるにはどうすればよいですか?

職場でラップトップをケーブルで接続すると、すぐに社内ネットワーク内に入ることができます。そのため、ドメイン名なしで ( など) ssh host1、ドメイン名を使用して ( など)、ssh host1.example.comまたは IP 経由で直接内部のコンピューターに接続できますssh 192.168.100.101

しかし、自宅にいるときは、まず VPN にログインする必要があります。その後は、と
の両方に安全に接続できます。ssh host1.example.comssh 192.168.100.101でも、どうやってssh host1仕事に行けばいいのでしょうか?

私は Ubuntu 18.04.3 LTS を使用しており、OpenVPN 2.4.4 を使用して VPN に接続しています。

最近までうまくいっていたのですが、全て私のトラフィックは 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 ルックアップを除く)、ネットの残りの部分の動作が速くなります (と思います)。

私は解決方法をいろいろいじっていますが、どうやったらうまく動作するのかまだわかりません。私は次の両方にポイントを
設定しようとしました:/etc/resolve.conf

/run/systemd/resolve/resolv.conf
/run/systemd/resolve/stub-resolv.conf

しかし、行動に変化はないようです。

searchこれは設定に関係していると思いますresolve.confが、正確にどのように関係しているのかわかりません。

私が望むのは(そう思うのは)次のとおりです。

  • どこに接続しても DHCP でネットワーク構成を取得します (動作しています)
  • VPN にログインする場合、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 インターフェイスを起動および停止する必要がある可能性があります。

関連情報