从昨天晚上开始,我的服务器网络接口就无法使用了。我没有做任何更改,但不久前我添加了一条新的 DNS 记录。
不幸的是,我用来添加此 DNS 记录的 Web 界面转义了一些字符,因此我得到了错误的 DNS 记录:
example.com 86400 IN TXT "\"v=spf1 mx a -all\""
然而,这是我注意到的唯一不寻常的事情。
我的 DNS 记录中的 \ 字符是否会使某些路由器感到困惑?或者可能是系统本身对此感到困惑(这是 Debian Lenny 系统)。
不幸的是,由于记录的 TTL 很长,我无法进行快速测试。
答案1
错误的 DNS 记录只会对名称解析产生影响,而不会对纯 IP 通信产生影响,也不会对路由器产生任何干扰。
一个损坏的区域文件可能会阻止整个 DNS 服务器运行,至少我使用 Bind 时遇到过这种情况。因此,如果这是您的工作站正在使用的主要 DNS 服务器,那么我可以看出您在名称解析方面存在问题。
如果您无法直接通过 IP 访问系统,则说明有其他问题。
您提到涉及路由器,您是否尝试从不同的网络访问该系统,所以您正在穿越路由器,或者您在同一个子网中?
如果您处于不同的网络中,您是否能够访问与您无法访问的服务器位于同一网络中的其他系统?
如果可以的话,请远程访问其中一个系统,并尝试从同一网络中的机器访问服务器,这样就可以解决路由问题。
编辑:
您可以联系其他人,但不能联系到他们,这确实表明这是路由上的系统问题,但并不排除这种可能性。最好的确认方法仍然是登录或让其他人从同一子网中的另一个机器测试 ping 该机器。
您如何穿越这个网络、VPN、公共互联网、点对点?
除了 SSH 之外,您还可以在机器上测试什么吗?可能只是 SSH 守护进程不工作。
尽管 DNS 有问题,但您可以尝试使用nslookup或者挖测试DNS解析。
如果有网络或邮件服务器,你可以远程登录到 80 (web) 或 25 (smtp) 看看是否连接。注意:您不需要执行所有测试步骤,只需 telnet serverip 25 或 telnet serverip 80 就足够了。如果它们在那里,您将看到文本响应。
此外,从您的机器运行跟踪路由到无响应的机器,再到其中一台响应的机器,可能会有所帮助。查看它们采取的步骤,如果它们走不同的路线,那么您可能存在路由问题。根据您的环境,您的跟踪路由命令可能是 traceroute、tracert、tracepath。
答案2
我不知道其他 DNS 服务器的情况,但就 BIND 而言,如果不喜欢其中一条记录,则不会加载该区域文件。在这种情况下,您将只能使用缓存的记录。
作为允许您访问服务器的中间措施,您可以尝试将其添加到本地主机文件中。