Linux

儘管在綁定中禁用了 IPv6,為什麼我看到 IPv6 解決錯誤?

  • March 27, 2020

我看到諸如

Feb 13 21:45:48 srv named[2355]: address not available resolving 'secure.gravatar.com/A/IN': 2a04:fa87:ffff::c6b5:7405#53
Feb 13 21:42:29 srv named[2355]: address not available resolving 'la1.akamaiedge.net/AAAA/IN': 2001:500:a8::e#53

/var/log/syslog儘管僅在bindIPv4 模式下執行

srv # cat /etc/default/bind9
# run resolvconf?
RESOLVCONF=no

# startup options for the server
OPTIONS="-u bind -4"

為什麼會這樣?

如果系統正在使用 systemd,則編輯/etc/default/bind9將無效。

改為編輯/lib/systemd/system/bind9.service文件並將-4選項添加到ExecStart變數。我正在使用 Ubuntu 16 並且必須這樣做。

ExecStart=/usr/sbin/named -f -4 -u bind

還要仔細檢查重新啟動後named是否正在執行-4選項。

實際上有一個關於這種配置混淆的錯誤https://bugs.launchpad.net/ubuntu/+source/bind9/+bug/1565060

-4選項僅更改告訴綁定偵聽和響應 IPv4 數據包。它不會禁用AAAA記錄的使用。

那麼有沒有辦法在綁定中丟棄 IPv6 地址?

如果那是您真正想要的,那麼您可以調整綁定配置以包含以下內容。您必須禁用 dnssec 驗證,因為您正在刪除有效記錄。

options {
   ...
   dnssec-enable no;
   filter-aaaa-on-v4 yes;
   ...
};

引用自:https://serverfault.com/questions/833270