Прискорюємо серфінг в інтернеті

Будь-які затримки в перетворенні позначаються на швидкості мережевих з'єднань і серфінг в Інтернеті не виняток. Хочете прискорити роботу Ubuntu в Інтернеті? Вперед.

НОВАЧКАМ краще НЕ ЗАСТОСОВУВАТИ поради викладені в даній статті!

Спочатку опишу зміни в роботі DNS. які відбулися в Ubuntu 12.04.

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

Тепер Resolvconf зберігає в /etc/resolvconf/resolv.conf.d/ каталозі файли base, head, original і tail файли. Все зберігається в resolv.conf форматі:

  • base: використовується, коли немає взагалі ніяких даних
  • head: використовується для заголовка в /etc/resolv.conf
  • original: просто резервна копія оригінального resolv.conf під час установки resolvconf
  • tail: будь-яка інформація з цього файлу додається в кінець /etc/resolv.conf

Можна піти іншим шляхом і вказати ваші DNS сервера через параметр dns-nameservers в / etc / network / interfaces у кожного з'єднання.

Друга зміна в роботі DNS - Dnsmasq тепер Резолвер DNS за умовчанням.

Для чого це придумано? А справа в тому, що стандартний дозвіл імен DNS здійснювалося бібліотекою і вона не могла визначати стан ваших DNS серверів і якщо з ним були проблеми, то виникали не потрібні таймаут при вирішенні імен DNS.

Вже за це не варто лаяти Dnsmasq службу, а подякувати її за вміння визначати "мертві" сервера DNS і виключати тимчасово їх з обслуговування.

І друге, Dnsmasq вміє відправляти DNS трафік через відносно повільний VPN тільки для пов'язаних з ним подсетями і доменами. Решта DNS трафік може йти через інші, можливо, швидкі локальні з'єднання.

Вихід в Інтернет провайдер здійснює через додаткове з'єднання, яке ви повинні були налаштувати за інструкцією. Найчастіше це PPTP сервер провайдера, який "виведе" вас в Інтернет.

Така схема, улюблена російськими провайдерами, з якогось дива прижилася, хоча в усьому світі це вважається моветоном. Ну це ліричний відступ.

І так у вас вже два з'єднання. Одне - локальне з'єднання з мережею провайдера, де ви слухаєте музику, граєте, качаєте файли з локальних серверів провайдера. Друге з'єднання - для доступу до Інтернет.

Так ось це друге з'єднання теж може аннонсіровалі свої DNS сервера і в результаті у вас є список DNS серверів провайдера, які обслуговують вас.

Dnsmasq вміє НЕ посилати все DNS запити в ваше VPN (PPTP, PPPoE і т.д.) з'єднання і забивати досить латентний канал VPN, а посилати в VPN канал тільки потрібний трафік. Всі інші запити, наприклад до локальних сайтів, підуть через локальне швидке з'єднання.

Тільки в цій бочці щастя, одна ложка дьогтю! Dnsmasq - виявляється все таки кешируєтся разрешатель імен DNS, але не рівня Bind. Dnsmasq помітно програє Bind, особливо при наявності декількох мереж і безлічі DNS серверів в системі.

Проблема може посилиться тим, що якщо ви любитель ручних налаштувань мережі та вас коробить від NetworkManager, ви можете вказати в / etc / network / interfaces для кожного з'єднання потрібний DNS сервер за допомогою dns-nameservers.

АЛЕ забути уточнити (за допомогою dns-search і dns-domain) для будь доменів звертатися, тоді ми отримуємо ситуацію, коли Dnsmasq довбати з запитами до конкретного DNS сервера, той не може або не хоче обслуговувати нас і виникають затримки. Dnsmasq змушений дочекатися закінчення часу очікування і перейти до опитування наступного DNS сервера. І так на кожен запит.

Вихід?
Поставити кешируєтся DNS Резолвер BIND, який є офіційним стандартом від ISC. Він буде запам'ятовувати наші запити / відповіді та перетворення імен прискориться. Істотно.

Вказати в системі що у вас єдиний DNS перетворювач імен та це ви самі.

Як це зробити?