解析兩個斷開連接的專用網路的 DNS 查詢
我正在嘗試設置兩台 PC(一台 Windows,一台 Linux,但我的理解是這個問題更多的是 DNS 和更少的作業系統),如下所示:
Home network: 192.168.1.0/24 VPN (via OpenVPN server not within the home network): 192.168.2.0/24 .
我希望兩個網路上的 PC 能夠訪問三種不同類型的站點:
- 網際網路地址
- 家庭網路上的地址
- vpn上的地址
但是,我不確定如何/使用哪些 DNS 伺服器。如果我優先考慮我的家庭 DNS 伺服器,我可以解決 (1) 和 (2),但不能解決 (3)。如果我優先考慮我的 VPN DNS 伺服器,我無法解析類型 (2) 的地址。當然,通過 nslookup 查找地址並明確設置正確的伺服器是可行的,所以我知道我的本地 DNS 伺服器是可以的。
如果找不到地址 (NXDOMAIN),有什麼方法可以將我的 PC 設置為回退到第二個 DNS 伺服器上?或者,有什麼方法可以告訴不同的查詢去不同的伺服器
$$ maybe by setting up different subdomains; foo.local.something vs. bar.vpn.something $$? 謝謝
我沒有使用過這個,但我相信最有可能滿足您在 Linux 機器上的需求的工具是dnsmasq。
可以設置 DNS 遮罩以將其請求轉發到上游。同時它還可以提供在本地 /etc/hosts 文件中定義的名稱。您可以使用該
--server
選項將請求轉發到您定義的域的特定 DNS 伺服器。-S,–本地,–伺服器=
$$ /[ $$/$$ domain/ $$]$$ [# $$$$ @|[# $$]
直接指定上游伺服器的IP地址。設置此標誌不會禁止讀取 /etc/resolv.conf,請使用 -R 來執行此操作。如果給定一個或多個可選域,則該伺服器僅用於這些域,並且僅使用指定的伺服器查詢它們。這適用於私有名稱伺服器:如果您的網路上有一個名稱伺服器,它在 192.168.1.1 處理 xxx.internal.thekelleys.org.uk 形式的名稱,然後給出標誌 -S /internal.thekelleys.org.uk/ 192.168.1.1 會將內部機器的所有查詢發送到該名稱伺服器,其他一切都將發送到 /etc/resolv.conf 中的伺服器。
我不確定如何在您的 Windows 電腦上解決此問題。如果您無法想出替代方案來避免該問題,您可以從 Linux 電腦連接到 openvpn 伺服器,然後在客戶端的 tun* 介面上設置路由 NAT 並啟用 ip 轉發。調整所有其他系統上的路由和 DNS 設置,以指向具有 OpenVPN 連接的 Linux 框。這將有效地使您的 Linux 機器成為一個網關,可以根據需要通過 VPN 引導流量。