็†ฑ้–€ๅˆ†้กž
 ่ผ‰ๅ…ฅไธญ…
็›ฎ้Œ„

๐Ÿง Linux DNS Cache Server ๆžถ่จญ(Unbound / dnsmasq)

    ๐Ÿง Linux DNS Cache Server ๆžถ่จญ(Unbound / dnsmasq)

    ้€้Ž DNS ๅฟซๅ–ไผบๆœๅ™จ(Cache Server)ๅฏๆœ‰ๆ•ˆๆธ›ๅฐ‘ๆŸฅ่ฉขๅปถ้ฒ、้™ไฝŽๅค–้ƒจๆต้‡่ฒ ๆ“”,ๅธธ่ฆ‹ๆ–นๆกˆๅŒ…ๅซ Unbound ่ˆ‡ dnsmasq。ๆœฌๆ–‡ๅฐ‡้€ๆญฅ่ชชๆ˜Žๅœจ Linux ็’ฐๅขƒไธญ้ƒจ็ฝฒ、่จญๅฎš่ˆ‡้ฉ—่ญ‰็š„ๆ–นๆณ•。

    ๐Ÿงฑ ไธ€、ไป€้บผๆ˜ฏ DNS Cache Server?

    DNS Cache Server(ๅŸŸๅๅฟซๅ–ไผบๆœๅ™จ)่ฒ ่ฒฌๅœจไฝฟ็”จ่€…ๆŸฅ่ฉข็ถฒๅŸŸๅ็จฑๆ™‚,ๆšซๅญ˜่งฃๆž็ตๆžœ,ไปฅไพฟ็›ธๅŒ่ซ‹ๆฑ‚ๅฏ็›ดๆŽฅๅพžๅฟซๅ–ๅ›žๆ‡‰。ๆญค่ˆ‰ไธๅƒ…่ƒฝ็ฏ€็œๅค–้ƒจ DNS ๆŸฅ่ฉขๆ™‚้–“,ไนŸ่ƒฝ้™ไฝŽ็ถฒ่ทฏๅปถ้ฒ่ˆ‡้ ปๅฏฌๆถˆ่€—。

    • Unbound:้ซ˜ๅฎ‰ๅ…จๆ€ง、ๆ”ฏๆด DNSSEC ้ฉ—่ญ‰。
    • dnsmasq:่ผ•้‡็ดš,้ฉๅˆๅ…ง็ถฒ่ˆ‡ๅฐๅž‹็ณป็ตฑ。

    ⚙️ ไบŒ、ๅฎ‰่ฃ Unbound / dnsmasq

    ไปฅๅธธ่ฆ‹็™ผ่กŒ็‰ˆ็‚บไพ‹:

    # Rocky / CentOS / RHEL
    sudo dnf install unbound -y
    sudo systemctl enable --now unbound
    
    # Ubuntu / Debian
    sudo apt install unbound -y
    sudo systemctl enable --now unbound
    
    # ๆˆ–ๅฎ‰่ฃ dnsmasq
    sudo apt install dnsmasq -y
    sudo systemctl enable --now dnsmasq
    

    ๐Ÿ“‚ ไธ‰、Unbound ๅŸบๆœฌ่จญๅฎš

    Unbound ็š„ไธป่จญๅฎšๆช”ไฝๆ–ผ /etc/unbound/unbound.conf,ๅฏๆ นๆ“š้œ€ๆฑ‚ไฟฎๆ”นๅฆ‚ไธ‹:

    server:
        interface: 0.0.0.0
        access-control: 192.168.0.0/16 allow
        verbosity: 1
        cache-min-ttl: 3600
        cache-max-ttl: 86400
        prefetch: yes
        num-threads: 2
    
    forward-zone:
        name: "."
        forward-addr: 8.8.8.8
        forward-addr: 1.1.1.1
    

    ๅฎŒๆˆๅพŒ้‡ๆ–ฐๅ•Ÿๅ‹•ๆœๅ‹™:

    sudo systemctl restart unbound
    sudo systemctl status unbound
    

    ๐Ÿงฉ ๅ››、dnsmasq ๅฟซๅ–่จญๅฎš็ฏ„ไพ‹

    dnsmasq ่จญๅฎšๆช”ไฝๆ–ผ /etc/dnsmasq.conf,็ฏ„ไพ‹ๅฆ‚ไธ‹:

    no-resolv
    server=8.8.8.8
    server=1.1.1.1
    cache-size=1000
    log-queries
    log-facility=/var/log/dnsmasq.log
    

    ๅ„ฒๅญ˜ๅพŒ้‡ๆ–ฐๅ•Ÿๅ‹•ๆœๅ‹™:

    sudo systemctl restart dnsmasq
    

    ๐Ÿ” ไบ”、ๆธฌ่ฉฆ DNS ๅฟซๅ–ๆ˜ฏๅฆ็”Ÿๆ•ˆ

    ๅฏไฝฟ็”จ dig ๆˆ– drill ๆธฌ่ฉฆๅฟซๅ–ๅ›žๆ‡‰ๆ™‚้–“:

    dig @127.0.0.1 google.com
    dig @127.0.0.1 google.com  # ็ฌฌไบŒๆฌกๆ‡‰้กฏ่‘—ๅŠ ๅฟซ
    

    ่‹ฅๅ•Ÿ็”จ log,ๅฏ่ง€ๅฏŸ /var/log/messages ๆˆ– /var/log/dnsmasq.log ๅ…งๆ˜ฏๅฆๆœ‰ๅ‘ฝไธญ(cache hit)็ด€้Œ„。

    ๐Ÿ›ก ๅ…ญ、ๅฎ‰ๅ…จๅผทๅŒ–่ˆ‡ๅฐ้Ž–ๆƒกๆ„ๅŸŸๅ

    • ๅœจ Unbound ไธญๅ•Ÿ็”จ auto-trust-anchor-file ไปฅๆ”ฏๆด DNSSEC。
    • ๆญ้…้ป‘ๅๅ–ฎ(ไพ‹ๅฆ‚ /etc/unbound/adblock.conf)ๅฏ้Žๆฟพๅปฃๅ‘Š่ˆ‡ๆƒกๆ„็ซ™ๅฐ。
    • dnsmasq ๅฏ็ตๅˆ address=/example.com/0.0.0.0 ้˜ปๆ“‹ๆŒ‡ๅฎšๅŸŸๅ。

    ๐Ÿ“˜ ็ต่ชž

    ็„ก่ซ–ๆ˜ฏไผๆฅญ็ถฒ่ทฏๆˆ–ๅฎถๅบญไผบๆœๅ™จ,้ƒจ็ฝฒ DNS ๅฟซๅ–ๆœๅ‹™้ƒฝ่ƒฝ้กฏ่‘—ๆๅ‡็ถฒ้ ่งฃๆž้€Ÿๅบฆ่ˆ‡ๅฎ‰ๅ…จๆ€ง。Unbound ้ฉๅˆ้œ€่ฆ DNSSEC ้ฉ—่ญ‰็š„็’ฐๅขƒ;dnsmasq ๅ‰‡ไปฅ่ผ•้‡่ˆ‡ๅฝˆๆ€ง่ฆ‹้•ท。ๆ นๆ“š็ถฒ่ทฏ่ฆๆจก่ˆ‡็ถญ่ญท้œ€ๆฑ‚้ธๆ“‡ๅˆ้ฉๆ–นๆกˆ,ๅณๅฏๅœจๅ…ง็ถฒไธญๅปบ็ซ‹้ซ˜ๆ•ˆ、ๅฎ‰ๅ…จ็š„ DNS ๅŸบ็คŽๆžถๆง‹。


    ๐Ÿ”— ๅปถไผธ้–ฑ่ฎ€

    — WWFandy・็ณป็ตฑ่ˆ‡็ถฒ่ทฏ็ญ†่จ˜

    ๐Ÿ”— ๅˆ†ไบซ้€™็ฏ‡ LINE Facebook X

    ๆฒ’ๆœ‰็•™่จ€:

    ๅผต่ฒผ็•™่จ€

    ๅญ—็ดš