Linux

解析兩個斷開連接的專用網路的 DNS 查詢

  • March 23, 2010

我正在嘗試設置兩台 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 能夠訪問三種不同類型的站點:

  1. 網際網路地址
  2. 家庭網路上的地址
  3. 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 引導流量。

引用自:https://serverfault.com/questions/124672