Bardzo lokalne proxy DNS

Łukasz Maśko masko w ipipan.waw.pl
Czw, 15 Cze 2006, 14:07:44 CEST


Dnia środa, 14 czerwca 2006 18:43, Łukasz Maśko napisał:
[...]
> Dzięki. Z budową nie ma problemu, zaraz zobaczę. Tymczasem wydaje mi się,
> że pdnsd jednak działa, a przynajmniej sprawia takie wrażenie. Tym razem
> już wydajność tej dziwnej sieci jest wolnym gardłem.

Dla potomnych i innych potrzebujących - opiszę jak sobie to wszystko 
pokonfigurowałem, może komuś się kiedyś przyda.

1. Potrzebny jest poprawiony dhcpcd (poprawka od dzisiaj w CVS-ie, dotyczy 
ona obsługi parametru -e). Innych klientów dhcp nie testowałem, ale powinny 
mieć podobną funkcjonalność. Następnie zrobiłem sobie katalog /etc/dhcpc, w 
którym będą lądowały otrzymane przez dhcpcd ustawienia.

2. Konfiguracja interfejsu: do pliku /etc/sysconfig/interfaces/ifcfg-* 
używającego dhcp do ustalenia adresu, należy dopisać linijkę zawierającą 
coś takiego: DHCP_OPTIONS="-e /etc/dhcpc" (katalog zgodny z tym powyżej). 
Oczywiście musi być tam też BOOTPROTO=dhcp.

Po dwóch powyższych przy podnoszeniu interfejsu zamiast /etc/resolv.conf 
tworzony jest plik /etc/dhcpc/resolv.conf

3. Instalujemy i konfigurujemy pdnsd. Moja konfiguracja w /etc/pdnsd.conf 
wygląda tak (więcej przykłądów jest w standardowym pliku konfiguracyjnym z 
pakietu):

global {
        perm_cache=1024;
        cache_dir="/var/cache/pdnsd";
        run_as="pdnsd";
        server_ip = 127.0.0.1;
        status_ctl = on;
        min_ttl=15m;       # Retain cached entries at least 15 minutes.
        max_ttl=1w;        # One week.
        timeout=10;        # Global timeout option (10 seconds).
}
server {
        label= "wireless";
        file = "/etc/dhcpc/resolv.conf";
        proxy_only = on;
        timeout = 4;
        uptest = if;
        interface = eth1;
        interval = 10;       # Check if the interface every 10 seconds.
        purge_cache = off;
        preset = off;
}
source {
        owner=localhost;
        file="/etc/hosts";
}
rr {
        name=localhost;
        reverse=on;
        a=127.0.0.1;
        owner=localhost;
        soa=localhost,root.localhost,42,86400,900,86400,86400;
}

Następnie należy usunąć plik /etc/resolv.conf (w tym momencie przestanie 
działać rozwiązywanie nazw), a następnie wystartować pdnsd (rozwiązywanie 
nazw znów zacznie działać, tym razem za pośrednictwem pdnsd).

Po analizie ruchu sieciowego wydaje się, że spadła liczba zapytań DNS 
wykonywanych do zdalnych serwerów. Być może ten opis przyda się komuś 
korzystającemu z niezbyt szybkiego łącza i nieposiadającego lokalnego 
DNS-u, który szybko odpowiada na zapytania.

Prosiłbym o ewentualne uwagi. Pozdrawiam.
-- 
Łukasz Maśko                                           GG:   2441498    _o)
Lukasz.Masko(at)ipipan.waw.pl                         ICQ: 146553537    /\\
Registered Linux User #61028           JID: paranoid w jabber.aster.pl   _\_V


Więcej informacji o liście dyskusyjnej pld-users-pl