Как да настроите локален DNS кешинг сървър на Linux?

Търсенията в DNS обикновено не са нещо, за което трябва да се притеснявате. Понякога трябва!


Ако интернет доставчикът на вашия дом или офис има бавни сървъри на имена или сървърът ви извършва много търсения, тогава имате нужда от локален кеширащ DNS сървър.

Как ще ми помогне кеширащият DNS сървър?

Кеширащият DNS сървър работи, като изпълнява всички DNS заявки, които вашата система прави и след това запазва или кешира резултатите в паметта. След като резултатите се кешират в паметта всеки път, когато направите дубликат на заявка за домейн, резултатът ще бъде обслужен почти мигновено от паметта.

Това може да не ви се струва твърде важно, но ако DNS сървърите на вашия интернет доставчик отделят време за отговор, това ще забави значително сърфирането ви в интернет. Например, началната страница за американския канал за новини MSNBC трябва да се свърже с над 100 уникални имена на домейни, за да се зареди правилно. Ако сървърите за имена на вашия доставчик на интернет отнемат дори 10-та секунда по-дълго, отколкото обикновено, това означава, че на страницата ще отнеме 10 секунди повече, за да завърши зареждането.

Локалният кеширащ DNS сървър не само ще помогне във вашия дом или офис, но ще помогне и на вашия сървър. Ако имате приложение, което прави много DNS търсене, например зает имейл сървър, работещ с анти-спам софтуер, той ще получи повишаване на скоростта от локален кеширащ DNS сървър.

И накрая, системно разрешените поддържат най-новите, сигурни DNS стандарти DNSSEC и DNSoverTLS или DoT. Те помагат да сте сигурни и да запазите поверителността си онлайн.

Кой локален DNS кеширане ще използваме?

Локалният кеширащ DNS сървър, който ще активираме и конфигурираме в това ръководство, е systemd-решен. Този инструмент е част от systemd набор от инструменти за управление на системата. Ако вашата система използва systemd и почти всички основни Linux дистрибуции са, тогава вече ще имате инсталирана системна резолюция, но не работи. Повечето дистрибуции не използват системно разрешени, въпреки че съществуват.

systemd-разрешено работи чрез стартиране на малък локален кеширащ DNS сървър, който ще конфигурираме да стартира при стартиране. След това ще конфигурираме останалата част от системата, за да насочим техните DNS заявки към локалния кешинг DNS, разрешен от DNS.

Как да проверите дали вече използвате системно разрешено?

Някои дистрибуции на Linux вече използват системно разрешени по подразбиране, като Ubuntu 19.04.

Ако вече стартирате системно разрешено, няма нужда да го активирате или да конфигурирате вашата система да го използва. Може да се наложи обаче да се уверите, че средствата за управление на мрежата като NetworkManager са конфигурирани правилно, тъй като могат да игнорират системната мрежова конфигурация.

Преди да преминете към следващия раздел, изпълнете следната команда, за да проверите дали вече стартирате системно разрешено:

$ resolctl статус

Ако получите съобщението:

$ resolctl статус
Неуспешно получаване на глобални данни: Unit dbus-org.freedesktop.resolve1.service не е намерен.

Ти си не работещ systemd-разрешен и трябва да премине към следващия раздел. Ако вместо това видите изход, който започва с нещо като следното:

в световен мащаб
Настройка на LLMNR: да
Настройка за многоадресни данни: да
DNSOverTLS настройка: опортюнистична
Настройка на DNSSEC: разрешение за понижаване
DNSSEC поддържа: не
Текущ DNS сървър: 1.1.1.1
DNS сървъри: 1.1.1.1
1.0.0.1

Тогава вече стартирате системно разрешено и няма нужда да го активирате.

Активиране и конфигуриране на системно решение

Не е необходимо да инсталираме systemd-разрешено като вече част от systemd. Всичко, което трябва да направим, е да го стартираме, за да стартира кеширащия сървър на DNS и след това да му дадем възможност да го стартира при зареждане.

Изпълнете следната команда от бърза обвивка, тъй като sudo активира потребител, който не е root, да започне системно разрешено:

$ sudo systemctl стартира systemd-разрешен.сервиз

След това стартирайте следната команда, за да стартирате systemd-разрешено при стартиране на системата:

$ sudo systemctl активира systemd-разрешено.сервиз

Последният елемент от конфигурацията, който е останал, е да зададе DNS сървърите, които системно разрешените ще задават заявки към разрешени домейни. Тук има много опции, но всяка от следните двойки е безплатна, бърза и двете поддържат DNSSEC и DoT:

Обществен DNS на Google

  • 8.8.8.8
  • 8.8.4.4

Обществен DNS на Cloudflare

  • 1.1.1.1
  • 1.0.0.1

Отворете основния конфигурационен файл, разрешен от системата, с любимия си текстов редактор, тук съм използвал нано:

$ sudo nano /etc/systemd/Weather.conf

Редактирането на реда започва

# DNS =

Така че са изброени чифт IP адреси. Тук са показани DNS сървърите на Cloudflare:

DNS = 1.1.1.1 1.0.0.1

Запазете и излезте от текстовия редактор. Сега трябва да рестартираме systemd-разрешено, така че да започне да използва сървърите на имена:

$ sudo systemctl рестартира systemd-разрешен.сервиз

systemd-разрешителното вече работи и е готово да започне ускоряване и обезпечаване на DNS заявки веднага щом конфигурираме системата да започне да я използва.

Конфигуриране на системата да използва системно разрешено

Вашата система може да бъде конфигурирана по няколко начина да използвате системно разрешено, но ще разгледаме две конфигурации, които обхващат повечето случаи на използване. Първата е препоръчителната конфигурация, а втората е конфигурацията за съвместимост. Разликата между двете е как се управлява файла /etc/resolv.conf.

Файлът /etc/resolv.conf съдържа IP адресите на сървърите на имена, които програмите в системата трябва да заявят. Програмите, които трябва да направят DNS заявки, ще се консултират с този файл, за да разберат на какви сървъри трябва да се свържат, за да направят тези заявки.

Двата режима на системно разрешен център около начина на управление на съдържанието на този файл. В препоръчания режим /etc/resolv.conf се прави символна връзка към /run/systemd/resolve/stub-resolv.conf. Този файл се управлява от системно разрешен и следователно системно-разрешен управлява информацията за конфигурация на DNS за всички останали програми в системата.

Това може да причини проблеми, когато други програми се опитват да управляват съдържанието на /etc/resolv.conf. Режимът на съвместимост оставя /etc/resolv.conf на място, позволяващ на други програми да го управляват, докато системно разрешените използват тази DNS информация. В този режим другите програми, управляващи /etc/resolv.conf, трябва да бъдат конфигурирани да задават 127.0.0.53 като сървър на имена на системи в /etc/resolv.conf.

Конфигуриране на препоръчания режим

Когато конфигурираме този режим, системно разрешеният ще управлява /etc/resolv.conf, като го прави символна връзка към /run/systemd/resolve/stub-resolv.conf. Ще трябва да направим това на ръка, тъй като не е конфигурирано автоматично.

Първо изтрийте или преименувайте съществуващия /etc/resolv.conf файл. Преименуването е по-добър вариант да го изтриете, тъй като ще има същия ефект, но винаги можете да се обърнете към оригинала, ако се нуждаете от информацията, която съдържа. Тук преименуваме /etc/resolv.conf с помощта на командата mv:

$ sudo mv /etc/resolv.conf /etc/resolv.conf.original

След това създайте символната връзка:

$ sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

И накрая, рестартирайте systemd-разрешено:

$ sudo systemctl рестартира systemd-разрешен.сервиз

Конфигуриране на режим на съвместимост

В този режим трябва да се уверите, че локалният сървър на имена, който е разрешен от системата, е стартирал от системните услуги. Отворете /etc/resolv.conf в текстов редактор, тук се използва нано редактора:

$ sudo nano /etc/resolv.conf

Изтрийте всички срещи, които започвате с „nameserver“, и добавете този ред:

nameserver 127.0.0.53

Тази редакция може да бъде променена от всяка друга програма, която управлява /etc/resolv.conf. В такъв случай ще трябва да конфигурирате тези програми, за да използват този сървър на имена, за да направят редактирането постоянно.

Отстраняване на грешки в системно решение

Да откриете как точно вашата система прави DNS заявки, след като сте направили тези промени, може да бъде трудно. Най-ефективният начин за наблюдение на случващото се е да поставите системно разрешена в режим на отстраняване на грешки и да гледате лог файла.

systemd-разрешена е системна услуга, което означава, че тя може лесно да се въведе в режим на отстраняване на грешки чрез създаване на падащ сервизен файл, който съдържа настройката за отстраняване на грешки. Следващата команда ще създаде правилния файл на правилното място:

$ sudo systemctl редактиране на systemd-resolution.service

Поставете следните реда в редактора, след което запазете и излезте:

[Обслужване]
Околна среда = SYSTEMD_LOG_LEVEL = отстраняване на грешки

Услугата, разрешена от системата, ще бъде автоматично презаредена при успешно записване и излизане.

Отворете втори терминал на същия сървър и следвайте дневника журнал за услугата, разрешена от системата:

$ sudo journalctl -f -u systemd-разрешен

Линия, която започва с „Използване на DNS сървър“, напр .:

Използване на DNS сървър 1.1.1.1 за транзакция 19995.

Казва ви точно кой DNS сървър се използва за DNS заявки. В този случай, Cloudflare DNS сървър в 1.1.1.1 беше заявен.

Редовете, които са „пропуснат кеш“, показват, че името на домейна не е кеширано. Напр .:

Кеш пропускайте например.com IN SOA

Редове, които започват „Положителен хит на кеша“, напр .:

Положителен хит на кеша например.com В A

Укажете, че системно разрешената система е поставила заявка за този домейн преди и отговорът е бил подаден от кеша в локалната памет.

Трябва да деактивирате режима на отстраняване на грешки, когато приключите да работите с systemd-разрешение, тъй като той ще създаде много голям лог файл в натоварена система. Можете да деактивирате регистрирането на грешки чрез стартиране:

$ sudo systemctl редактиране на systemd-resolution.service

и изтривайки двата реда, добавихте след това запазване и излизане от редактора.

Използване на защитени DNS заявки

systemd-разрешен е един от малкото, налични в момента DNS сървъри, които поддържат и DNSSEC и DNSoverTLS. И двете помагат да се гарантира, че получавате истинска DNS информация (DNSSEC) и че никой не може да прослушва вашия DNS трафик, докато преминава през интернет. (Точка).

Тези опции се активират лесно чрез отваряне на основния конфигурационен файл, разрешен от системни проблеми с текстов редактор:

$ sudo nano /etc/systemd/Weather.conf

И редактиране на файла, така че да бъдат зададени следните два реда:

DNSSEC = позволи-понижаване
DNSOverTLS = благоприятна

Запазете и излезте от редактора, след което презаредете системно разрешеното:

$ sudo systemctl рестартира systemd-разрешен.сервиз

Докато DNS сървърът сте задали поддръжка DNSSEC и DoT, вашите DNS заявки ще бъдат защитени. И двата DNS сървъра на Google и Cloudflare поддържат тези протоколи.

заключение

Вашата система вече е конфигурирана да прави бързи и ефикасни DNS заявки, дори когато DNS сървърът на вашия доставчик не отговаря толкова бързо, колкото трябва. Освен това, вашият цифров живот е по-сигурен, тъй като използвате най-новите, сигурни DNS протоколи, за да защитите вашите DNS заявки.

Ако сте ентусиаст на Linux и искате да научите повече, проверете това фантастично онлайн курс.

ЕТИКЕТИ:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map