Pro Tip : DNS Masquerade

Monday, 15 August, Year 3 d.Tr. | Author: Mircea Popescu

DNS, adica Domain Name System, e conventia care aloca o adresa-masina (cunoscuta drept IP, prescurtare de la IP number, Internet Protocol number) si numai una anumitor siruri de caractere. Spre exemplu, "polimedia.us" nu inseamna absolut nimic pentru nici un browser pina cind nu se adreseaza unui server de DNS care sa-i explice despre ce-i vorba. Daca gaseste unul, care-i explica ca-i 63.247.64.92 atunci browserul stie ce are de facut, se adreseaza catre 63.247.64.92 si "polimedia" se incarca normal. Daca nu gaseste, sau primeste raspunsuri balaristice, vedeti povestea aia cu "network problem".

Asa cum probabil v-ati dat seama, DNS asta e un serviciu crucial in buna functionare a Internetului. Daca aveti o minima experienta cu furnizorii romani, va asteptati deja la pasul urmator : vor furniza serviciile cruciale deosebit de prost. Intr-adevar, asa si este. Ce ne facem ?

Pai, daca avem instalat linux, ca de exemplu ubuntu, iata solutia (si daca n-avem instalat linux, ca de exemplu ubuntu, avem a raspunde la o intrebare) :

mircea@inigo-montoya:~$ sudo apt-get install dnsmasq

Chestia asta instaleaza un pachet numit dnsmasq (masq de la masquerade), care va ingaduie sa faceti caching de dns local, direct pe sistemul dumneavoastra (va va cere parola de root pentru instalare).

Odata instalat, aveti de modificat niste setari, si anume precum urmeaza :

I. In /etc/dnsmasq.conf

    modificati

    # Or which to listen on by address (remember to include 127.0.0.1 if
    # you use this.)
    # listen-address=

    in

    # Or which to listen on by address (remember to include 127.0.0.1 if
    # you use this.)
    listen-address=127.0.0.1

Chestia asta introduce masina dumneavoastra (prin conventie intotdeauna 127.0.0.1) in lista masinilor capabile sa raspunda la solicitari DNS.

II. In /etc/dhcp3/dhclient.conf

    modificati

    #supersede domain-name "fugue.com home.vix.com";
    #prepend domain-name-servers 127.0.0.1;

    in

    #supersede domain-name "fugue.com home.vix.com";
    prepend domain-name-servers 127.0.0.1;

Chestia asta modifica modul in care se genereaza fisierul de configurare la fiecare reinoire a lease-ului pe conexiune, asa incit sa introduca masina dumneavoastra pe primul loc in lista masinilor capabile sa raspunda la solicitari DNS.

III. In /etc/resolv.conf

    modificati

    # Generated by NetworkManager
    nameserver 78.96.7.88
    nameserver 95.77.94.88

    in

    # Generated by NetworkManager
    nameserver 127.0.0.1
    nameserver 78.96.7.88
    nameserver 95.77.94.88

IP-urile de-acolo vor fi probabil diferite, si poate comentariul (prima linie, cea care incepe cu #, notatia traditionala a comentariilor) poate fi diferit. Ce conteaza e ca primul nameserver sa fie 127.0.0.1, chestie care ne scuteste de-a re-face lease-ul pe conexiune.

Cu asta suntem gata, mai aveti nevoie de un

mircea@inigo-montoya:~$ sudo /etc/init.d/dnsmasq restart

pentru a reporni serviciul, si sunteti gata sa gustati din minunile rezolvarii de DNS in 10-15 milisecunde.

Daca RDS-ul dumneavoastra raspunde la DNS cam in 4-500 de ms, si incarcati cam o mie de pagini pe zi, economia este de vreo 500 de secunde, sau aproape zece minute. In fiecare zi, timp pe care altfel l-ati fi petrecut privind in gol, da' in care acuma puteti de exemplu face un copil. Sau citi un articol.

Fiecare cum prefera.

Category: 3 ani experienta
Comments feed : RSS 2.0. Leave your own comment below, or send a trackback.

32 Responses

  1. Cei inveti pe uameni prosti. Daca DNS-ul rds iti raspunde in 500ms, tot in 500ms o sa-ti raspunda si cu dnsmasq pentru un domeniu nou + lantenta introdusa de dnsmasq in sine, dar e neglijabila.

    O solutie mai buna ar fi sa nu mai folositi servere DNS de cacat, si cum poti folosi orice server dns din lume, atata timp cat are o latenta buna si ai incredere in el, ar fi cel putin 2 alternative, in functie de cine vrei sa faca bani de pe urma vietii tale de pe interneti:

    8.8.8.8 - google, nuff said
    208.67.222.222, 208.67.220.220 - opendns, care va putea vedea pe ce site-uri intri si va vinde datele unor terti

  2. Mircea Popescu`s avatar
    2
    Mircea Popescu 
    Monday, 15 August 2011

    Pe de-o parte ca zisa dinsus se poate aplica si in coroborare cu ce-ai zis tu, si pe de cealalta ca ce zici tu se aplica strict la domenii noi. Da' noi. Care's poate 1% din totalul de cereri, daca. Probabil mai spre 0.1%.

  3. Mey, dar mai e un aspect. Iti dai seama ca dnsmasq ala saracu nu ti-l tine pentru totdeauna in cache, il dejecteaza si el dupa vreo zi. Sau daca mai sunt saraci de-aia care incearca sa foloseasca DNS pentru load balancing si pun ttl minim, o sa faca query de fiecare data, sau cel putin asa ar trebui.

    Si in orice caz, sistemele de operare decente in general au cache DNS incorporat, precum au si browserele decente, deci chestia asta nu e neaparat necesara.

    Iar ghidul tau are micul dezavantaj ca necesita un sistem linux, adica cam 0.1% din vizitatorii tai.

  4. eu ce duc lipsa pe linuxul asta e un fisier hosts ca la windows, unde sa bag toate ip-urile si url-urile de pe care nu vreau sa primesc conexiune si etc.

  5. /etc/hosts ...

  6. Mircea Popescu`s avatar
    6
    Mircea Popescu 
    Monday, 15 August 2011

    Pai 2 contrazice 3, unde spui ca "sistemele de operare decente" respectiv "un sistem linux, adica ~0.1% din populatia internauta". Vizitatorii mei sunt ia sa ne uitam.

    Windows 1,330,423 91.5 %
    Linux 68,878 4.7 %
    Unknown 31,826 2.1 %
    Macintosh 18,659 1.2 %
    Symbian OS 2,032 0.1 %
    Java Mobile 1,066 0 %
    BlackBerry 418 0 %
    Sony PlayStation 213 0 %
    Java 146 0 %
    Unknown Unix system 95 0 %
    Others 29 0 %

    Si asta-i in crestere vizibila cu vreo 50% pentru linux, de cind am scris io despre, ca era in jur de 3, istoric. Asta ca sa stii cine-i influenceru' aici in .ro.

  7. clar, de maine zoso ie open sors

  8. Si asta-i in crestere vizibila cu vreo 50% pentru linux, de cind am scris io despre, ca era in jur de 3, istoric. Asta ca sa stii cine-i influenceru’ aici in .ro.

    Deci copii, lui i-o crescut procentul de linuxişti pe blogul lui, unde o scris articolul, şi de aici deduce că el îi cel mai mare influencer din ro. Asta ca şi fapt divers.
     
      
     
    Şi acum urmează fetişul copilăresc al lui Mircea Popescu. Să-l înţelegem...

    Eu sunt un prost. Luati aiurelile pe care le-am scris mai sus ca atare.

  9. pai chiar ca esti prost crezand ca daca schimbi numele schimbi ceva, mail sau ce o fi facut tu pe acolo.

    eu am mai explicat asta si o voi explica, un gigel protesteaza ca nu este acceptat pe propietatea privata a cuiva avand impresia ca e publica si ii este violat un drept.

    si am sa rad in continuare.

  10. Mircea Popescu`s avatar
    10
    Mircea Popescu 
    Monday, 15 August 2011

    N-are nici o traba cu proprietatea privata.

    Problema-i ca un gigel face o prostie, i se atrage atentia. Gigelul se face ca ploua, dupa care face aceeasi prostie. I se atrage atentia, si i se pune in vedere. Gigelul se face in continuare ca ploua.

    Dupa un numar de astfel de repetitii, alegerile-s doua : sau il lasi in legea lui, sau il fortezi sa-si confrunte mizeria. In general lumea alege varianta I, ca-i mai simplu si mai ieftin, si pina la urma ce-ti pasa tie ? Dezavantajul este ca diversii incepatori pot ajunge prinsi in capcana asta, ei nu vad decit otv si lotusi dindu-se in stamba si ajung sa creada sincer ca "asa este". De-aia eu prefer varianta a doua.

    Si bineinteles, ce rau is eu ca nu ingadui unui prostalau sa fie prostalau in voia lui, si sa treaca asta neobservata, cum "se face peste tot". Mbine.

  11. in linux hosts functioneaza ca pe linux ?

    adica tastez
    127.0.0.1 reclame.ro.tv

    sau doar

    reclame.ro.tv

    ?

  12. Mircea Popescu`s avatar
    12
    Mircea Popescu 
    Monday, 15 August 2011

    IP /t domeniu

  13. hmm, cam mult de corectat la winhelp2002.mvps.org/hosts.txt

  14. Mircea Popescu`s avatar
    14
    Mircea Popescu 
    Monday, 15 August 2011

    E ineficient sa rulezi un hosts imens.

  15. anonimosu`s avatar
    15
    anonimosuinsigna de prim sositinsigna de tehnolog 
    Monday, 15 August 2011

    Da ce cauta lonelyplanet.com acolo?

  16. Mircea Popescu`s avatar
    16
    Mircea Popescu 
    Monday, 15 August 2011

    Mda, riscu' cu droplisturile tinute de altii.

  17. aia e o lista cu toate site-urile de tip pop-up, reclama, advertising si etc.

    @mp : sa stii ca pe windows a functionat perfect. hmm 600 kb mult? lol

  18. Mircea Popescu`s avatar
    18
    Mircea Popescu 
    Monday, 15 August 2011

    Cam mult.

  19. poate cam putine, ca-s doar din sua.

    mai adaugasem si eu vreo cateva zeci de site-uri din .ro acum ceva timp, da' am uitat sa fac un back-up.

    oricum ulterior dupa un timp parca devenise cam plictisitor paginile asa fara reclame.

  20. @Freud

    Da' îi uşor să schimb adresa de mail de ex. 1-ul ăla de la sfârşitul nick-ului a fost din greşeală.

    @Mircea Popescu

    Buei om, tu eşti fenomenal. Şi nu în sensul bun. Văd că la link îmi pui comentariul ăla că vorbesc pe nas. Păi tu ţi-ai pierdut memoria de durată? Nu mai ştii nici o chestie pe care ai auzit-o să zicem acum 10 ani? Şi ai documentaţie la toate?!?

    Asta prima, a doua, de când şi până când trebuie să aduci documente când comentezi pe blog? Ai dormit sucit? Te-a lovit cineva în cap? Eu nu-s Mircea Popescu. Eu am zis o chestie pentru că o ştiu şi e reală. Ţi-am zis odată că tu eşti un mincinos, asta nu se aplică obligatoriu şi la restul. Crede-mă că nu m-a interesat să salvez documentaţia şi nici nu aveam net pe vremea aia. Dar dacă am scris ceva îmi asum. Nu-s obligat să-ţi aduc nici o documentaţie, pune mâna şi caută dacă vrei. După cum nici tu nu eşti obligat să mă crezi. N-ai decât să crezi că te mint, eşti liber să faci asta, liber în sens metaforic, că după cum gândeşti, oricum numai liber nu eşti.

    Iar legat de editarea comentariilor, nu ştiu ce rezolvi cu moderarea asta. Ţi-am zis, nu eşti cu nimic mai inteligent decât copii de clasele 1-4 sau pe-acolo.

    Eu sunt un prost. Luati aiurelile pe care le-am scris mai sus ca atare.

  21. Mircea Popescu`s avatar
    21
    Mircea Popescu 
    Monday, 15 August 2011

    @Freud Pai si tu simti nevoia sa tii o baza de date cu internetu' la tine pe calculator ?

  22. @lotus : a adaugat si omul o functie in baza de date.

    @mp : ma cred ca nu intelegi. adevarul e ca e enervant sa vad toate balariile de ads cu par pentru cheliosi, ultima geanta, revista pizdelor si etc.

    decat sa ma obosesc cu adblock din browser asta e chiar mai folositor.

    in fine

  23. apropo, a probat mirshea yandex.com ?

    jewz russian engine versus jews russian american engine googol.

  24. anonimosu`s avatar
    24
    anonimosuinsigna de prim sositinsigna de tehnolog 
    Monday, 15 August 2011

    Lol cica Lotus1 e o gresala. Da, pentru ca 1 e chiar foarte aproape de s.

  25. Mircea Popescu`s avatar
    25
    Mircea Popescu 
    Monday, 15 August 2011

    @Freud Bine noa, daca te gasesti multumit sa-ti traiasca, ce sa mai ?

    Vrei sa zici yandex.ru ? Io ma tem de rusi si cind aduc raspunsuri.

    @anonimosu Bine si tu acuma, ce sa-ti povestesc, factchecking pe aiurelile lu' Flocus. Daca tot hranesti trolu', macar hraneste-l cu pula.

  26. @anon : corect. chiar vroiam sa ma leg si eu de asta, da' uite ca uitasem in comentariul de mai sus cu @lotus

    @mp : nu, com. au varianta englezeasca.

    deci ce-am mai ras cu ce citeam acuma, sa citez

    Opera Unite is a service where Opera[...]

    The content is not stored by Opera, and Opera excercises no control over user generated content passing through its network or equipment available on or though the network

    However, by submitting user generated content to opera, user grants opera the right and limited license to use, copy, display, perform, distribute and adapt this user-generated content for the services

    trll

  27. Mircea Popescu`s avatar
    27
    Mircea Popescu 
    Tuesday, 16 August 2011

    Io nu folosesc unite ala. Da' ce legatura are ?

  28. instalam opera de curiozitate. ultima versiune de o folosisem cred ca a fost 8, daca nu mai joasa.

    defapt potrivit opera.com/privacy ei colecteaza date cam din orice, da-n fine.

  29. @Freud:

    E o greşeală, deoarece iniţial am vrut să schimb mail-ul şi site-ul şi nick-ul, apoi m-am răzgândit. Iar nick-ul am omis să-l corectez. Vouă vă trebe explicaţii mură-n gură.

    @Mircea Popescu:

    Mai frumos cu modul de adresare, ok?

    Eu sunt un prost. Luati aiurelile pe care le-am scris mai sus ca atare.

  30. @lotus1: meh whatsoeve

    @lotus : defapt mirshea e self-owned gheu.

  31. Cristian`s avatar
    31
    Cristianinsigna de trolinsigna de tehnologinsigna pentru 1000 de comentarii 
    Tuesday, 16 August 2011

    @Freud, @Mircea Popescu: teoretic fișierul hosts ar putea fi convertit într-o mini bază de date. Practic n-am nici cea mai vagă idee, cum ar fi posibil așa ceva. La bază stă faptul că nsswitch.conf permite selectarea surselor pentru „bazele de date” hosts, passwd, group șcl. Setarea pentru hosts arată de obicei cam așa: hosts: files nisplus nis dns, eventual fără nis.

    nsswitch.conf(5)

  32. Mircea Popescu`s avatar
    32
    Mircea Popescu 
    Tuesday, 16 August 2011

    Mi se pare c-o converteste intr-o mini baza de date oricum, la citire.

Add your cents! »
    If this is your first comment, it will wait to be approved. This usually takes a few hours. Subsequent comments are not delayed.