希望添加的功能:删除匹配特定列表域名第一次查询返回结果中的cname域名。
之前有大神提过这个功能,详见#256
主要因为在linux环境下,分流或者prefer_ipv4时,第二次查询的cname 不在list里,造成功能失效。
Linux DNS 查询行为:
Linux 系统中常用的 DNS 解析器(如 glibc 的 getaddrinfo 或 systemd-resolved)在查询域名时,通常会按以下步骤进行:
第一次查询 A 记录(IPv4 地址)。
如果返回包含 CNAME 记录(别名记录),解析器会提取 CNAME 指向的目标域名。
第二次查询 AAAA 记录(IPv6 地址)时,使用的是 CNAME 指向的目标域名,而不是原始输入的域名。
这种行为是 Linux DNS 解析器设计的标准行为,遵循 RFC 1034 和 RFC 1035 的 DNS 规范。这种行为的根本原因在于 Linux 系统通常会更积极地遵循 DNS 协议中的CNAME(Canonical Name)记录,解析器会将后续查询基于 CNAME 的目标域名继续进行,以确保查询的是实际的资源记录。