Dnsmasq'ı yalnızca belirli etki alanı adları için bir akış yukarı dns sunucusu kullanmak üzere nasıl zorlayabilirim?


16

Şu anda tüm istekleri iyi işleyen ( /#/herhangi bir alanla eşleşiyor; bu gerekli) dnsmasq.conf içinde aşağıdaki satırı aldım :

address=/#/127.0.0.1

Ancak, IP adresleri dışında çözülmesi gereken bazı alanlar vardır 127.0.0.1.

Geçici çözüm olarak aşağıdakilere eklendi /etc/hosts:

209.85.148.95   ajax.googleapis.com
207.97.227.245  underscorejs.org
72.21.194.31    s3.amazonaws.com

Ne yazık ki bu çok geçici bir çözüm: herhangi bir hedef alanın IP adresi değiştiğinde çalışmayı durduracak.

Benim sorum: dnsmasq bazı (belirtilen) alan adlarının IP adreslerini çözmek için bir akış yukarı dns sunucusu kullanmak için nasıl zorlanır?

Yanıtlar:


29

Bunu, server=örn.

server=/ajax.googleapis.com/8.8.8.8

benzer şekilde ajax.googleapis.com alan adı için google genel DNS sunucusunu sorgular

server=/amazonaws.com/209.244.0.3

Level3'ün genel DNS sunucusunu amazonaws.com etki alanı için sorgulayacaktır.

Birden çok alanı birlikte gruplayabilirsiniz

server=/co.uk/com/8.8.4.4

.Co.uk ve .com alan adlarını 8.8.4.4'te DNS sunucusuna gönderir

Birden fazla server=direktifiniz de olabilir

,S, --server = [/ [<domain>] / [domain /]] [<ipaddr> [# <port>] [@ <source> [# <port>]]]

Yukarı akış sunucularının IP adresini doğrudan belirtin. Bu bayrağın ayarlanması /etc/resolv.conf dosyasının okunmasını engellemez, bunu yapmak için -R kullanın. Bir veya daha fazla isteğe bağlı etki alanı verilirse, bu sunucu yalnızca bu etki alanları için kullanılır ve yalnızca belirtilen sunucu kullanılarak sorgulanır. Bu, özel ad sunucuları için tasarlanmıştır: Ağınızda 192.168.1.1'de xxx.internal.thekelleys.org.uk biçiminin adlarıyla ilgilenen bir ad sunucunuz varsa -S /internal.thekelleys.org.uk/ 192.168.1.1 dahili makineler için tüm sorguları bu ad sunucusuna gönderir, diğer her şey /etc/resolv.conf içindeki sunuculara gider. Boş bir alan belirtimi //, "yalnızca nitelenmemiş adlar" özel anlamındadır, yani içinde nokta olmayan adlar. Standart olmayan bir bağlantı noktası, # karakteri kullanılarak IP adresinin bir parçası olarak belirtilebilir.

Ayrıca bir etki alanı veren ancak IP adresi olmayan bir -S bayrağı da kullanılabilir; bu, dnsmasq'a bir etki alanının yerel olduğunu ve / etc / hosts veya DHCP'den gelen sorguları yanıtlayabileceğini söyler, ancak bu etki alanındaki sorguları hiçbir şekilde yukarı akış sunucusuna iletmemelidir. local, bu durumda yapılandırma dosyalarını daha net hale getirmek için sunucunun eş anlamlısıdır.

@ Karakterinden sonraki isteğe bağlı ikinci IP adresi, dnsmasq'a sorguların kaynak adresinin bu ad sunucusuna nasıl ayarlanacağını bildirir. Bu, dnsmasq'ın çalıştığı makineye ait bir adres olmalıdır, aksi takdirde bu sunucu satırı günlüğe kaydedilir ve sonra göz ardı edilir. Kaynak adresi belirtilmiş tüm sunucular için sorgu bağlantı noktası bayrağı yoksayılır, ancak bağlantı noktası doğrudan kaynak adresinin bir parçası olarak belirtilebilir.


Birden fazla serversatıra ihtiyacı olduğunu düşünmüyorum : çözmek istediği adresler ne olursa olsun (127.0.0.1), bunları addresssatırlarla ekleyebilir ; başka bir şey, DNSMasq server. Madenin kurulumu böyle emin.
gravyface

1
@gravyace: Adresi değiştirmeleri durumunda DNS'yi kullanmak istediği bazı istisnalar dışında her şeyin 127.0.0.1'e çözümlenmesini istemek gibi bir soru okudum. Bunu görmenin yolu sunucu direktiflerini kullanmaktır.
user9517

Ah belki. Kim bilir. Her iki durumda da, bu onu harekete geçirmelidir.
gravyface

Tıkır tıkır çalışıyor!
nrph
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.