我对网络管理器、systemd-resolve、/etc/resolv.conf 和其他文件(例如 nsswitch.conf)的内部运作有几个疑问。
是否有一个文件或几个文件,可以在其中输入 DNS 服务器信息并让解析器读取它并在每次启动时自动将其添加到 /etc/resolv.conf,而不是删除我的信息或仅使用 DHCP DNS 信息?
是否有任何文档包含深入的技术细节,介绍所有这些子系统现在如何工作,网络管理器、解析、命名服务和 DHCP?
是否有人设置了类似的设置并解决了我们遇到的问题?
问题:
我有一台 ubuntu 18.04 台式电脑,我们正在测试它是否是公司新的、更大、更好的台式电脑。这台台式电脑必须通过 AT&T 或 SPECTRUM 或一些有线电视公司连接到互联网。然后,openvpn 隧道将连接到我们的 openvpn 服务器。在我们目前的测试中,当我们这样做时,允许网络管理员控制事物,除非满足一组非常特殊的情况,否则我们的计算机不会通过 openvpn 隧道解析我们公司的服务器。本质上,最后我们必须手动将 DNS 服务器信息放入 /etc/resolv.conf 文件中。
所以我有一个理论,但如果没有技术文献来解释事物如何运作,它就只是一个理论。
台式计算机打开后,它会启动并读取 DHCP 以获取其网络数据。此数据包括所有正常信息。IP 地址、DNS、网关等。DNS 数据存储在操作系统内核空间的某个缓存中。此数据与来自静态文件的正常数据分开存储。然后,此数据通过内部网络 127.0.0.0/8 连接到系统。DNS 机制通过内核中的各种 IPC 调用来处理。这就是允许应用程序通过 API 访问 DNS 数据的原因。
现在我已经有 35 年的 UNIX 工程师经验了,所以这些解释可能部分或全部都是错误的。如果有一份文档解释了所有这些是如何工作的,并且包含了大量技术细节,那么我可能可以读一读,自己弄清楚。也许我只是没有在正确的地方寻找文档。
如果我能找到一种方法来实现这一点,那就太好了。所以最终的结果应该是这样的:
用户通过某个 ISP 的 Internet 调制解调器从家里登录。然后启动 openvpn。一旦 openvpn 启动并连接,就可以开始工作了。
现在它已经坏了。
如果您需要更多数据,请随时询问我。我可以为您提供有关计算机配置的各种数据,但我不能为您提供任何敏感的公司数据或参考资料。
提前感谢您的帮助。
真挚地
比尔·布兰森
答案1
我想感谢大家的意见和帮助。我们进行了试验,并想出了一个解决方案。可能还有其他解决方案,但这是我们所做的。1) 使用 apt 安装 resolvconf。2) 运行 sudo dpkg-reconfigure resolvconf 3) 对动态更新回答否。4) 使用正确的 DNS 名称服务器更新我们的 /etc/network/interfaces。5) 重新启动网络服务。因此不再有来自 ISP 的动态更新,VPN 隧道保持正常运行。这是我们必须测试的东西,因为它是二手或三手信息。感谢您的时间、思想和智慧。我希望这对其他人有所帮助。真诚的
比尔·布兰森