Прискорюємо веб-серфінг із 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!