讓 Unbound 使用上游伺服器查詢

前言

我們都知道 Unbound 伺服器主要是靠遞迴的方式查找 DNS,那能不能讓特定的網域或是全部都像是 Adguard Home DNS 那樣,從一個上游伺服器查找呢?今天就要來說說 Unbound 的 forward-zone 參數。

操作方式

如果你只想讓特定的 Domain 透過特定的上游 DNS 查找,你可以補上這樣的參數。如以下範例就是當查詢網域為 example.com 時,就直接到 8.8.8.8 或是 8.8.4.4 查詢,而不要自己遞迴了。

forward-zone:
    name: "example.com"
    forward-addr: 8.8.8.8
    forward-addr: 8.8.4.4

那如果你想讓全部都透過上游 DNS 查詢,都不要自己遞迴了,那可以這麼寫。

forward-zone:
    name: "."
    forward-addr: 8.8.8.8
    forward-addr: 8.8.4.4

所以完整的 Config 可能看起來會像是這樣。

server:
    interface: 0.0.0.0
    interface: ::0
    access-control: 0.0.0.0/0 allow
    access-control: ::/0 allow

    module-config: "subnetcache validator iterator"

    edns-buffer-size: 4096
    send-client-subnet: ::/0
    send-client-subnet: 0.0.0.0/0
    max-client-subnet-ipv4: 24
    max-client-subnet-ipv6: 56
    client-subnet-always-forward: yes
    forward-zone:
        name: "."
        forward-addr: 2001:4860:4860::8888
        forward-addr: 2001:4860:4860::8844
        forward-addr: 8.8.8.8
        forward-addr: 8.8.4.4

接著重啟 Unbound 就好囉。

sudo systemctl restart unbound