نحوه تنظیم DNS در Ubuntu 18.04

fav-venus
تنظیم نیم سرورهای DNS در سرور اوبونتو

هر زمان که بخواهید DNS را در لینوکس پیکربندی کنید، می‌توانید به این صورت عمل کنید که فایل /etc/resolv.conf را باز کرده، اطلاعات مورد نظر را ویرایش نمایید و فایل را ذخیره کنید؛ اما باید بدانید که این فایل یک symlink (معادل shortcut در ویندوز) است که توسط سرویس systemd-resolved کنترل می‌شود و نباید به صورت دستی ویرایش شود.
systemd-resolved سرویسی است که ترجمه نام DNS را برای سرویس‌ها و برنامه‌های محلی ارائه می‌دهد و می‌تواند با Netplan، ابزار پیش فرض مدیریت شبکه در اوبونتو 18.04، پیکربندی شود.
فایل‌های پیکربندی Netplan در دایرکتوری /etc/netplan ذخیره می‌شوند. احتمالاً یک یا دو فایل YAML در این دایرکتوری خواهید دید. نام فایل ممکن است از یک راه اندازی تا راه اندازی بعدی متفاوت باشد. معمولاً این فایل به نام 01-netcfg.yaml یا 50-cloud-init.yaml  است؛ اما در سیستم‌های مختلف ممکن است متفاوت باشد.
این فایل‌ها به شما امکان پیکربندی رابط شبکه از جمله آدرس IP، gateway، سرورهای نام DNS و … را می‌دهند.
برای پیکربندی سرورهای نامDNS ، فایل پیکربندی رابط را با ویرایشگر متن خود با استفاده از دستور زیر باز کنید:

sudo nano /etc/netplan/01-netcfg.yaml

اطلاعات فایل چیزی شبیه به محتوای زیر خواهد بود:


network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      dhcp4: no
      addresses:
        - 192.168.121.199/24
      gateway4: 192.168.121.1
      nameservers:
          addresses: [8.8.8.8, 8.8.4.4]

برای پیکربندی سرورهای نام DNS رابط، آدرس‌های IP کنونی در قسمت nameservers را به سرورهای DNS دلخواه خود تغییر دهید. به عنوان مثال، اگر می‌خواهید از سرورهای DNS مربوط به Cloudflare استفاده کنید، خط مربوط به آدرس را به صورت زیر تغییر دهید:

nameservers:
          addresses: [1.1.1.1, 1.0.0.1]

سرورهای DNS باید با استفاده از کاما جدا شوند. می‌توانید بیش از دوسرور نام نیز اضافه کنید.
اگر این اطلاعات وجود نداشته باشند، زیر بخش نام رابط اضافه می‌شوند. هنگام ویرایش فایل‌های Yaml مطمئن شوید که مطابق استانداردهای تورفتگی کد YAML عمل می‌کنید؛ چون اگر این فایل را بر اساس این ساختار ویرایش نکنید، Netplan قادر به تحلیل فایل نخواهد بود.
سپس با ذخیره فایل، تغییرات را اعمال نمایید:

sudo netplan apply

Netplan فایل‌های پیکربندی را برای سرویس systemd-resolved تولید می‌کند.
برای تأیید اینکه DNS جدید تنظیم شده است یا خیر، دستور زیر را اجرا کنید:

systemd-resolve --status | grep 'DNS Servers' -A2

systemd-resolve -status اطلاعات زیادی را چاپ می‌کند که ما می‌توانیم با استفاده از grep تنها قسمت “سرورهای DNS” را مشاهد نماییم. خروجی چیزی شبیه به خطوط زیر خواهد بود:

DNS Servers: 1.1.1.1
                      1.0.0.1