Yo! 服务器

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

如何禁用AAAA查找?

…来弥补我们无法控制的破损的DNS服务器。 我们的问题:我们部署embedded式设备,收集各种传感器数据,主要是纯IPv4站点。 有些网站的networking维护能力较差,例如configuration不当或以其他方式破坏的DNScaching和/或防火墙,或者完全忽略AAAA查询,或者以破坏的应答(例如,错误的源IP)对其进行响应。 作为设施部门的外部供应商,我们几乎不会影响(有时是不情愿的)IT部门。 他们很快修复DNS服务器/防火墙的机会很小。 对我们的设备的影响是,对于每个gethostbyname(),进程必须等待,直到AAAA查询超时,此时一些进程已经完成超时连接尝试。 我正在寻找解决scheme,是… 全系统。 我无法单独重新configuration几十个应用程序 非永久的和可configuration的。 我们需要(重新)启用IPv6的地方/当它被固定/推出。 重新启动即可。 如果一个解决scheme需要像glibc这样的核心库被replace,那么应该从一个已知维护良好的库(如Debian Testing,Ubuntu universe,EPEL)中提供replace库包。 自我build设不是一个可select的原因,我甚至不知道从哪里开始,所以我根本就没有列出它们。 最明显的解决scheme是configurationparsing器库,例如通过/ etc / { resolv , nsswitch , gai } .conf来不查询AAAAlogging。 像这里build议的resolv.conf选项no-inet6将正是我正在寻找的。 不幸的是,它并没有实现,至less在我们的系统上(Debian 7上的libc6-2.13-38 + deb7u4; Ubuntu 14.04上的libc6-2.19-0ubuntu6.3) 那么怎么样? 人们发现在SF和其他地方提出了以下方法,但是它们不工作: 禁用IPv6,例如将/etc/modprobe.d/中的ipv6 LKM或sysctl -w net.ipv6.conf.all.disable_ipv6=1列入黑名单。 ( 出于好奇:为什么parsing器要求禁用IPv6的AAAA? ) 从/etc/resolv.conf中删除options inet6 。 这不是第一个, inet6现在只是默认启用。 在/etc/resolv.conf中设置options single-request 。 这只能确保A和AAAA查询顺序而不是并行地完成 改变/etc/gai.conf中的precedence 。 这不会影响DNS查询,只会处理多个答复。 […]

IPv6部署的障碍:寻址

在我的工作中,有几件事情将IPv6的部署当作是一个积极讨论的话题。 通常存在技术问题,但是一个非技术问题似乎是实际部署项目进展的主要障碍。 地址,记住。 具体而言,IPv4地址是易于理解的,IPv6地址看起来像是一个很长的hexstring。 记住超过7-8项的列表真的很麻烦,一个IPv4地址(192.168.231.148)里面有四个项目让我们很容易记住。 完全填充的IPv6地址不仅有8个部分,而且每个部分都有4个hex数字。 IPv6地址不是为了记忆而devise的。 对于知道DNS服务器为192.168.42.42(或者更可能是“42.42”,因为公司前缀可能被记住)的技术人员来说,记住IPv6地址的想法使他们感到恐惧。 这反过来又使得他们参与IPv6部署项目的热情降低了。 由于我们的networking工作原理,我们在v4寻址方面还没有完全dynamic的。 由于各种原因,我们有几个到几个完全静态分配的子网,其中最主要的是静态DHCP分配的开销被认为太大了。 而且,有些设备仍然不够聪明,无法从DNS中提取DNS地址,同时也要进行静态分配,因此需要手动configurationDNS设置。 因此,一些v6地址记忆将不得不完成。 我们没有任何要求v6出门,所以我们没有从顶部的压力。 但是,即使我们不转换批发,现在是开始准备处理IPv6的基础设施的时候了。 对于那些曾经在IPv6地区工作过一段时间的人来说,使用什么捷径方法来讨论或跟踪子网和特定/关键IP地址? 如果我能帮助减less一些围绕IPv6的恐惧,我们可能会得到这个项目。