我正在使用公司 VPN 访问内部资源。通过 Shrewsoft VPN 客户端连接后,这些内部资源尚未解析,因为 resolv.conf 始终使用其他 DNS 来解析 VPN 网络。
所以我安装了 dnsmasq 并设置:
listen-address=127.0.0.1
domain-needed
bogus-priv
no-resolv
no-poll
strict-order
server=/somedevhost.com/10.4.0.21
server=8.8.8.8
server=/slack-edge.com/8.8.8.8
server=/somedevhost.com/10.4.0.22
no-hosts
设置网络管理器来使用它:
[main]
dns=dnsmasq
plugins=ifupdown,keyfile
[ifupdown]
managed=false
[device]
wifi.scan-rand-mac-address=no
现在 VPN 资源可用,但某些外部主机第一次尝试时解析缓慢或无法解析;例如,slack 正在加载,但消息和通道在浏览器控制台中没有出现错误(我使用 webclient) - 仅在启用 VPN 后才会出现:
2018/1/29 12:42:30.595 logging error:
{"subtype":"api_call_error","message":"{\"ok\":false,\"error\":\"not_allowed\"}","stack":"Error\n
at Object.n [as logError]
(https://a.slack-edge.com/bv1-1/rollup-core_required_ts.9069eb596bccc6b1a2d8.min.js:1:62608)\n
at e
(https://a.slack-edge.com/bv1-1/rollup-secondary_a_required.0718dfd6831f53c92d4a.min.js:1:129606)\n at e
(https://a.slack-edge.com/bv1-1/rollup-secondary_a_required.0718dfd6831f53c92d4a.min.js:1:124805)\n at e
(https://a.slack-edge.com/bv1-1/rollup-secondary_a_required.0718dfd6831f53c92d4a.min.js:1:126400)\n at XMLHttpRequest.m.onreadystatechange
(https://a.slack-edge.com/bv1-1/rollup-secondary_a_required.0718dfd6831f53c92d4a.min.js:1:128098)"} (I tried to add slack-edge.com to be served over google dns but it
seem to have no effect)
对我来说,当我预计使用 devhostname.com DNS 服务器的规则仅用于指定资源,而 google DNS8.8.8.8
用于所有其他请求时,它似乎被广泛应用。
我究竟做错了什么?
答案1
将不同的 DNS 服务器设置为解析器并不是一个好的标准设计实践不同的“世界”的愿景。
把这些决定留给谁去讨论/询问并不会带来好的结果。您必须处理 DNS 服务器错误,甚至负缓存超时。
然后是完整 VPN 隧道和分割 VPN 隧道。首先,有意识地设置了阻止最终用户使用互联网的设置当他们启用 VPN 时。
一种选择是在您的一侧设置一些 DNS 服务器设置,仅将 DNS 内部名称转发到 VPN 的另一侧。
过去,我们没有严格的安全要求,对于不那么信任的人,我们给他们分割VPN隧道。
对于我们信任的人,我们提供了完整的 VPN 隧道,使他们能够访问互联网。我们还强制 DNS 请求通过我们自己的 DNS 服务器,无论他们配置了什么 DNS 服务器,而且效果很好。如果您不是管理 VPN 的人,请记住您也可能正在处理此类配置。
再次请记住,完整的 VPN 隧道可能会配置为阻止 Internet 访问,并且只允许访问公司资产,即它可能会阻止您使用 Internet按设计。
与您的网络人员交谈。