
Linux基础
1 前言
一个问题,一篇文章,一出故事。
笔者在生产环境遇到过DNS的解析IPv6优先与IPv4的情况,这造成访问不可达(因为IPv6地址没有被真实使用起来)。
2 最佳实践
2.1 调整GLIBC的优先级别
2.1.1 查找模板位置
find /usr/ -name gai.conf
一般会有如下显示,
/usr/share/doc/glibc-common-2.17/gai.conf
2.1.2 部署配置文件
cp /usr/share/doc/glibc-common-2.17/gai.conf /etc/
2.1.3 修改配置
vim /etc/gai.conf
启用如下配置,
precedence ::ffff:0:0/96 100
需要注意的是,
– 以上通过调整GLIBC的内部逻辑,决定是“IPv4”优先还是“IPv6”优先
– 以上设置分三列,第一列是“标签”,第二列是“网络掩码”,第三列是“优先级”
另外,如果找不到模板文件,你可以尝试使用如下命令直接创建,
echo 'precedence ::ffff:0:0/96 100' >> /etc/gai.conf
2.2 验证配置
getent ahosts ser.cmdschool.org
可见如下显示,
10.168.0.68 STREAM 10.168.0.68 DGRAM 10.168.0.68 RAW
以上是正常后的返回,非正常返回,
fda7:e6ee:2e09:0:b785:528c:78dc:99d5 DGRAM fda7:e6ee:2e09:0:b785:528c:78dc:99d5 RAW 10.168.0.68 STREAM 10.168.0.68 DGRAM 10.168.0.68 RAW
参阅文档
===============
https://man7.org/linux/man-pages/man5/gai.conf.5.html
https://man7.org/linux/man-pages/man1/getent.1.html
没有评论