Прискорюємо веб-серфінг із Dnsmasq, Linuxoid

OpenSource forever

Де Linux зберігає параметри?

При цьому порядок роботи з ними описаний /etc/host.conf. Наприклад, запис

order host bind

Існує 13 кореневих DNS-серверів, що позначаються літерами від А до М, на яких зберігається вміст усіх зареєстрованих у зон, і до яких можна звертатися безпосередньо. Їхній список можна отримати, зайшовши http://www.root-servers.org/. Далі кожну зону (ru, ua та ін) обслуговують свої сервери, і так далі. DNS-отримавши запит клієнта шукає інформацію у своїх таблицях, і якщо не знаходить її звертається далі вгору, і отримавши відповідь відсилає його клієнту, що запитує. Ніхто не заважає самому створити такий сервер для своїх потреб у самому низу ієрархії.

Ну що ж. Шукатимемо йому заміну. Запит до репозитарія Ubuntu "sudo apt - cache search dns", серед запропонованих рішень показав і Dnsmasq, про налаштування якого і поговоримо далі.

Можливості Dnsmasq

Завантажити Dnsmasq можна звідси http://packages. ubuntu. com / dnsmasq або використовуючи утиліту apt, вводимо наступну команду.

$ sudo apt - get install dnsmasq

Обновіть список пакетів sudo apt - get update і повторіть інсталяцію.

Тепер відкриваємо /etc/resolv.conf і додаємо наступний рядок ставлячи його першим за списком, ніж вказуємо, що сервером імен за замовчуванням є локальна система.

prepend domain-name-servers 127.0.0.1;

request subnet-mask, broadcast-address, time-offset, routers,

domain-name, domain-name-servers, host-name,

У цьому випадку при отриманні оновлення першим рядком буде вставлено запис nameserver 127.0.0.1

Хоча якщо хочете, щоб записи про деякі сервери DNS збереглися, можна цей рядок записати і так(У моєму природно випадку).

prepend domain-name-servers 127.0.0.1, 194.44.245.244, 207.46.225.60;

Тепер все готове. Щоб оцінити час відповіді сервера DNS буде використовувати утиліту dig (domain information groper), яка використовується для збору інформації від серверів імен. Параметрів у dig багато, але в даному випадку зробимо просто.

; > DiG 9.3.2 > google.com

;;; Global options: printcmd

;;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 4, ADDITIONAL: 4

google.com. 170 IN A 64.233.187.99

google.com. 170 IN A 72.14.207.99

google.com. 170 IN A 64.233.167.99

google.com. 158531 IN NS ns4.google.com.

google.com. 158531 IN NS ns1.google.com.

google.com. 158531 IN NS ns2.google.com.

google.com. 158531 IN NS ns3.google.com.

ns1.google.com. 161053 IN A 216.239.32.10

ns2.google.com. 161129 IN A 216.239.34.10

ns3.google.com. 334439 IN A 216.239.36.10

ns4.google.com. 161802 IN A 216.239.38.10

;;; Query time: 71 msec

;;; WHEN: Tue Nov 14 15:18:58 2006

;;; MSG SIZE rcvd: 212

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

$ sudo /etc/init.d/dnsmasq restart

Restarting DNS forwarder та DHCP server: dnsmasq.

Перший запит – 20 мс, але зараз інформація знаходиться у локальному кеші. Повторюємо.

google.com. 156 IN A 64.233.187.99

google.com. 156 IN A 72.14.207.99

google.com. 156 IN A 64.233.167.99

;;; Query time: 9 msec

;;; WHEN: Tue Nov 14 15:27:35 2006

;;; MSG SIZE rcvd : 76

Тепер вітаємо себе з успіхом:). Як бачите, у позиції SERVER стоїть локальний комп'ютер 127.0.0.1 та час відповідіскладає вже 9 мс, тобто результату ми досягли. Також зверніть увагу на відмінність у роботі. У відповідь на запит dnsmasq показав лише записи A, але в нашому випадку цього достатньо. Крім цього, dnsmasq може кешувати PTR записи зворотного перетворення.

Відмінності налаштувань для ADSL

Для з'єднання з Інтернетом я використовую PPPoE , для коректної роботи dnsmasq у цьому випадку потрібно зробити ще кілька кроків інакше при оновленні файлів, вся інформація затреться. Для початку створимо для dnsmasq, використовуючи /etc/resolv. conf окремий файл із DNS налаштуваннями.

$ sudo cp /etc/resolv.conf /etc/resolv.dnsmasq.conf

Тепер в / etc / dnsmasq. conf у параметрі resolv - file пропишемо цей файл.

resolv - file = / etc / resolv. dnsmasq. conf В / etc / resolv. conf залишаємо тільки: nameserver 127.0.0.1

Оскільки ADSL використовує свій resolv. conf , замінюємо його також.

$ sudo cp /etc/resolv.conf /etc/ppp/resolv.conf

Перезапускаємо dnsmasq, з'єднуємося з Інтернет "pon dsl - provider" і насолоджуємося швидкою роботою.

Ось у принципі і все. Налаштування DHCP сервера також просте, тому при необхідності її розберете самі. Якщо все ж таки dnsmasq здався вам досить складним, спробуйте nscd (Name Service Cache Daemon), який ще простіше в налаштуваннях. Dnsmasq має один некритичний, але недолік, після перезавантаження він втратить всю інформацію та процес наповнення локального кешу розпочнеться спочатку. Якщо вас це не влаштовує і необхідно збереження кешу спробуйте pdnsd, який має таку функціональність. Linux forever!