[Gelistirici] Geçici DNS modeli

Emre Erenoglu erenoglu at gmail.com
22 Ara 2008 Pzt 12:59:48 EET


Merhaba,

2008/12/22 Furkan Duman <coderlord at gmail.com>

> 19 Aralık 2008 Cuma 10:34 tarihinde Gürer Özen <gurer at pardus.org.tr>
> yazdı:
> > Aslında en güzeli yerel bir dns proxy yazmak, yada uygun bi tane bulup
> entegre
> > etmek. Bir global listesi olacak, bir de dhcp'den vb gelen geçici
> listesi.
> > İsim çözme ricası geldiğinde listedeki herkese paralel sorgulama yapacak,
> > daha sonra içlerinden en hızlı cevap vereni kullanmaya devam edecek. O da
> > yavaş cevap verir hale gelirse tekrar listeden tarayacak. Sistemdeki
> > resolv.conf ise bunu kullanacak şekilde ayarlanıp öyle bırakılacak.
>
> Gürer'in tanımladığı bu işi karşılayacak ve sorunumuzu çözecek bir
> uygulama buldum.
>
> dnsmasq - http://www.thekelleys.org.uk/dnsmasq/doc.html


Dnsmasq bir cok router'in icinde gelen nezih bir daemon'dur.


> Uygulamanın artıları:
>
> Uygulamayı seçme nedenlerimden ilki dbus desteğinin olması. Yani
> resolv.conf elleşmeden veya başka dosyaları yaz boz yapmadan dbus
> yoluyla dns sunucu ekleyebiliyorsunuz. resolv.conf ve hosts
> dosyasındaki değişiklikleri izliyor, değişiklik varsa otomatik
> listesini güncelliyor. ppp dns dosyası oluştuğunda otomatik dns
> listesine ekliyor. Gürer'in tanımladığı gibi, paralel sorgu yapabilip
> içinden en hızlıyı seçiyor. Daha da güzeli dns caching yapıyor. Bu
> sayede normalde 120 ms olan dns sorgu sürem cache'lenen sorgularda 1
> ms 'ye indi. Sayfaların bariz biçimde daha hızlı yanıt verdiğine şahit
> oldum. Modem kullanıcıları için performans bariz biçimde artacak
> bence. Test etmek lazım.


Burada anlayamadigim bir sey var. Bildigim kadari ile pratikte Pardus
internete 2 yolla baglanabilir.
1) Evdeki veya ofisteki bir router araciligi ile
2) ADSL PPPoE ile dogrudan
bunlarin ustune 3. ve 4. baglanti sekilleri olabilir:
3) VPN ile PPTP veya L2TP veya IPSEC
4) PPP Dial-Up

Bunlardan, sirayla:
1) Pardus DHCP sunucu'dan DNS adreslerini alir, bu DNS'ler evdeki router'in
icinde calisan dns proxy (dnsmasq gibi) ya da sirket agindaki DNS sunucu
veya router olabilir. Her durumda bir DNS sunucu agda mevcuttur ve gerekli
cashing'i bu yapar. Pardus'un bir daha cashing dns calistirmasi icin bir
sebep gormuyorum.
2) Mesajlardan okuduguma gore PPP turleri (ADSL, Dial-Up) baglanti
yapildiginda PPP resolv.conf'u baska bir yere linkliyormus. Bu da PPP
gocerse sorun cikartiyormus. OK, buna bir cozum bulunmali.

Bunun yaninda, ozel isler disinda hicbir dagitimda yerel dnsmasq
kullanildigini gormedim. Ozel isler derken, ornegin libvirt sanal makinelere
NAT yapan virbr0 koprusu uzerinde dnsmasq calistirir IP adresi vs. dagitmak
icin. Bu sebepten dnsmasq kullanilacaksa, dikkatli olmak lazim cunku diger
islerde kullanilacak dnsmasq'larin islevini etkileyebilir.


Global olarak kullandığımız DNS tanımlarının çok bir anlamı olmadığını
> düşünüyorum. Çıkarabiliriz veya kalabilir. Çok önemli değil. Priority
> de sona atarız bu dns sunucuları.


Kesinlikle katiliyorum, global DNS neden var anlayamiyorum. Her baglanti
yapildiginda DHCP'den DNS adresleri geliyor zaten , bu bilgi ile resolv.conf
bir sekilde update edilmeli. Bununla ilgili 2007 surumunde bir hata raporu
da girmistim bu yuzden bir otelde nete baglanamayinca. Gerekiyorsa
resolv.conf durur, baska bir yere dosya eklenip kaldirilarak konfig update
edilir baglantiya ozel yeni dns'leri de alacak sekilde.

Her profil kendi dns tanımlarını taşımalı. Bu Auto (dhcp'den) veya
> manual (elle istenildiği kadar) olabilir. (NM arabirim değişikliği
> lazım!)


Bu OK.


> Aynı anda iki profil up durumda ise her ikisinin de dns tanımları dns
> listesine eklenir. Profillerden birisi down olduğunda o profile ait
> dns tanımı dns listesinden çıkar, diğer profile ait olan kalır. (dns
> listesinden kastım dnsmasq'a gönderdiğimiz dns adres listesi) Bütün
> profiller down olduğunda dns listesi boşalır. (Veya koddan tamamen
> çıkartmazsak sadece global dns tanımları kalır.)


Bu da guzel. Ubuntu'da ise resolvconf isimli bir paket var, herhalde
Debian'dan gelmistir. Tanimi soyle:
       Overwrite  (-a)  or  delete  (-d) the nameserver information record
for network
       interface INTERFACE and run the update scripts in
/etc/resolvconf/update.d/  if
       the nameserver information has changed.

Bilmiyorum bu bizim isimizi gorur mu? Ya da dnsmasq metodu daha mi iyi
karsilastirmak lazim. Ancak dnsmasq ile ilgili soyle bir sey demisler gene
tanimda:

       Nameserver  information provided to resolvconf is stored for use by
subscribers
       to resolvconf's notification service.   Subscribers  that  need  to
know  when
       nameserver    information    has   changed   should   install   a
script   in
       /etc/resolvconf/update.d/  (...  or  in
/etc/resolvconf/update-libc.d/:   see
       below).   For  example, *DNS caches such as dnsmasq(8) and pdnsd(8)
subscribe to
       the notification service so that they know whither to forward queries
*.


Emre
-------------- sonraki bölüm --------------
Bir HTML eklentisi temizlendi...
URL: <http://liste.pardus.org.tr/gelistirici/attachments/20081222/3dce49ec/attachment-0002.htm>


Gelistirici mesaj listesiyle ilgili daha fazla bilgi