我们没有从我们的ISP获得IPv6,因此我有一个IPv6隧道工作正常但当然不是很快.并不是真的可靠.我希望“以防万一”提供IPv6,但我希望某些主机(域)仅与IPv4连接.
默认协议
在我看来,所有应用程序都首先尝试IPv6;这可能是一个glibc设置.如果违反此默认值(对于所有应用程序),我会没事的.
Netfilter的
使用Netfilter阻止IPv6地址/网络是可能的,但有两个问题:
>当应用程序在尝试IPv4之前等待IPv6超时时,是否会导致延迟?
>有些域似乎是混乱的,看起来像混乱.如果可以避免,将google.com和youtube.com分开似乎是你不想做的事情.
我只是注意到ip route的手册页说的路由类型无法访问:
The local senders get an EHOSTUNREACH error.
Netfilter DROPs或REJECTs会发生同样的情况吗?这样的错误不应导致相关的延迟.
DNS过滤
另一种解决方案(如果可能的话,相当简单)可以过滤某些域的AAAA记录.如果这不是(轻松)可能:是否可以连接DNS服务器和Netfilter,以便我知道“IP地址X属于域Y”,以便我可以将其添加到Netfilter?还有什么比记录所有东西和点击日志更优雅?
要走的路?
有哪些(其他)可能性,最简单的是什么?
解决方法
/etc/gai.conf
控制地址选择.配置文件已有详细记录,并且已包含默认值,因此您可以开始调整.
这里有趣的默认值是:
label ::1/128 0 label ::/0 1 label 2002::/16 2 label ::/96 3 label ::ffff:0:0/96 4 precedence ::1/128 50 precedence ::/0 40 precedence 2002::/16 30 precedence ::/96 20 precedence ::ffff:0:0/96 10
最后一行给出了所有IPv4地址的最低优先级.
如果要为所有IPv4提供更高的首选项,可以将其更改为:
precedence ::ffff:0:0/96 100
如果您只想对特定的IPv4地址或块提供更高的优先级,您也可以指定它们.请记住,您必须使用十六进制的IPv4映射IPv6.
因此,要优先考虑所有IPv6的203.0.113.0/24,您需要添加:
label ::ffff:cb00:7100/120 5 precedence ::ffff:cb00:7100/120 100
重新启动运行的应用程序,让他们获取您所做的更改.
在Debian派生系统上,/ etc / gai.conf已经存在.在Red Hat派生系统上,它不存在,但是示例文件位于/usr/share/doc/glibc-common-*/gai.conf;只需将其复制到/ etc.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。