如何让IPv4地址优先于IPv6?

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

没有评论

发表回复

Linux基础
如何安装部署Collabora Online?

1 基础知识 1.1 Collabora Online 1.1.1 Collabora Online …

Linux基础
如何安装Oracle Linux 9.x的milvus-cli

1 前言 一个问题,一篇文章,一出故事。 笔者今天部署好Milvus的服务端,想在Oracle Li …

Linux基础
如何安装Ubuntu的milvus-cli?

1 前言 一个问题,一篇文章,一出故事。 笔者今天部署好Milvus的服务端,想在Ubuntu客户端 …