Soru Nic arabirimi başına bir DNS sunucusu yapılandırın (eth0 / eth1)?


RHEL / Centos 6'da NIC (eth0 vs eth1) arabirimi başına bir DNS Ad Sunucusu nasıl yapılandırırsınız?

Örneğin.

eth0, 10.0.0.1/24 alt ağında

eth1, 192.168.0.1/24 alt ağında

Eth0 üzerinden gönderilen herhangi bir istek, DNS sunucusu 10.0.0.2 kullanmalıdır.

Eth1 üzerinden gönderilen istekler, 192.168.0.2 DNS sunucusunu kullanmalıdır.

Ekledim:

DNS1: 10.0.0.2> / etc / sysconfig / ağ komut dosyaları / ifcfg-eth0

DNS1: 19.168.0.2> / etc / sysconfig / ağ komut dosyaları / ifcfg-eth1

Ancak, bu değerler göz ardı edilir ve her zaman resolv.conf'daki ayarlara döner "nameserver 10.0.0.2" Eth0 aşağıdayken, bağlantılar eth1 üzerinden gönderilir ... ancak DNS 10.0.0.2 değerine ulaşmaya çalışırken çözülemez.

  • Nasıl resolv.conf için bir varsayılan yerine ifcfg'deki DNS ayarlarına uymayı nasıl sağlayabilirim?

  • Veya eth0 vs eth1 için farklı bir DNS Ad Sunucusu nasıl yapılandırabilirim?

  • Bunu işlemenin daha iyi bir yolu var mı?

Güncellenmiş

İki VLANS'ımız var, her birinin kendi alt ağında kendi DNS sunucusu var. Bunlar, yerel DNS (örnek.loc, guest.app vb.) İçin aramaları ve gerektiğinde yönlendirmeyi de ele alır.

Bunlar iki ayrı fiziksel konumdaki iki ayrı sunucudır. Mümkünse, iki alt ağda bir sunucu çalıştırmamayı tercih ederim (hassas verilerden biri).

Eth0 aşağı inmek gerekirse, DNS isteklerini yapabilmek için eth1'e ihtiyacım var.

Ben, resolv.conf'a iki IP eklemeyi düşündüm ve sonra sunucuya ilk alt ağda ulaşamazsa fallover verseydim, ama bu hiç de doğru değil gibi görünüyor (ilk sunucu için eth0 olduğunda her DNS sorgusuyla zaman aşımını beklemek zorunda kalıyorum) aşağı).


7
2017-09-03 14:03


Menşei


Ayar hakkında ne nameserver 10.0.0.2 ve nameserver 192.168.0.2 içinde resolv.conf? - InternetSeriousBusiness
Bir alt ağ dediğiniz gibi hassas verileri işliyorsa, bu belirli makine her iki alt ağa hangi işi bağlıyor? - Ansgar Wiechers


Cevaplar:


İstediğin şeyi kolayca yapamazsın.

Veya eth0 vs eth1 için farklı bir DNS Ad Sunucusu nasıl yapılandırabilirim?

Bir ana bilgisayar adı için isim araması, standart sistem kitaplıkları aracılığıyla gerçekleşir ve belirli bir "bağlantı" ile herhangi bir şekilde ilişkilendirilmez. Aslında, DNS sorgusu gerçekleştiği sırada, orada olduğu Bağlantınız yok, çünkü uygulamanız bağlanacağı adresi bile çözemedi (bu yüzden ilk etapta DNS kullanıyor).

Nasıl resolv.conf için bir varsayılan yerine ifcfg'deki DNS ayarlarına uymayı nasıl sağlayabilirim?

Linux çözümleyicinin yalnızca tek bir global yapılandırması vardır (/etc/resolv.conf). Herhangi bir türde arabirim, etki alanı veya bağlantı başına ayarı yoktur. İçindeki ayarlar /etc/sysconfig/network-scripts/... sadece doldurmak için kullanılır /etc/resolv.confve genellikle belirtirseniz DNS1 ve DNS2 Bu dosyalarda, ortaya çıkan son arayüzde gördüğünüz şey olacaktır. /etc/resolv.conf.

Bunu işlemenin daha iyi bir yolu var mı?

Gerçekte neyi başarmaya çalıştığınızı söyleyebilir misiniz? Bize özel durumunuz hakkında daha fazla bilgi verirseniz daha iyi çözümler önerebiliriz.


7
2017-09-03 15:54



Daha fazla bilgi ile güncellendi. Teşekkür ederim. - DevGav
Şimdilik sadece /etc/resolv.conf dosyasını düzenleyip zaman aşımını kısaltmaya karar verdiniz. Yardımın için teşekkürler. - DevGav
Benim için kafa karıştırıcı olan şey, DNS'in belirli bir arayüzle ilişkilendirilmemesine rağmen, henüz bir bağlantı olmadığı için, yine de DNS sunucularının arayüz seviyesinde belirtilmesi gerektiğidir. keyfi görünüyor: / - RubyTuesdayDONO


Bir DNS isteği temelde ya

  1. "host1.domain1.com sitesinin IP adresi nedir" veya
  2. "192.168.0.5 sunucu adı nedir."

Yani, Ethernet kartının dahil olacağı "istek" süresinde bilerek bir şey yok. Sen ne could makul olarak sormak "domain1.com'da biten tüm istekler 192.168.0.2'ye gitmeli ve diğer tüm istekler 10.0.0.2'ye gitmelidir."

Ve aynı şekilde, "192.168.0.0/24 ile eşleşen tüm ters DNS talepleri 192.168.0.2'ye gitmeli ve geri kalanı 10.0.0.2'ye gitmelidir."

Larskların dediği gibi, Linux böyle bir yapılandırmayı desteklemiyor. Ancak, yukarıdaki mantığı uygulayan kendi minimum DNS sunucunuzu çalıştırabilir ve istekleri uygun "gerçek" DNS sunucusuna iletebilirsiniz.

Ben dnsmasq'ın bunu yapabileceğine inanıyorum (bkz. Birden çok DNS sunucusunu iletmek için dnsmasq nasıl yapılandırılır?). Ama bunu fark etmeden önce, Twisted'de kendi başıma yuvarladım:

from twisted.internet import reactor
from twisted.names import dns
from twisted.names import client, server

class Resolver(client.Resolver):
  def queryUDP(self, queries, timeout=None):
    if len(queries) > 0 and (str(queries[0].name).endswith('.domain1.com'):
      self.servers = [('192.168.0.2', 53)]
    else:
      self.servers = [('10.0.0.2', 53)]
    return client.Resolver.queryUDP(self, queries, timeout)

resolver = Resolver(servers=[('10.0', 53)])
factory = server.DNSServerFactory(clients=[resolver])
protocol = dns.DNSDatagramProtocol(factory)

reactor.listenUDP(53, protocol, interface='127.0.0.1')
reactor.listenTCP(53, factory, interface='127.0.0.1')
reactor.run()

4
2018-04-14 23:03





Üç sorununun cevabı şimdi -Systemd çözüldü (vurgu benim):

Arama istekleri mevcut DNS sunucularına ve LLMNR'ye yönlendirilir   Aşağıdaki kurallara göre arayüzler:

Özel ana bilgisayar adı "localhost" için yapılan aramalar hiçbir zaman yönlendirilmez.   ağ. (Diğer birkaç özel alan aynı şekilde ele alınır.)

Tek etiketli isimler IP yeteneğine sahip tüm yerel arayüzlere yönlendirilir   LLMNR protokolünü kullanarak çoklu yayın. IPv4 adresleri için aramalar   sadece IPv4'te LLMNR aracılığıyla gönderilir ve IPv6 adresleri için aramalar sadece   IPv6'da LLMNR aracılığıyla gönderildi. Yerel olarak yapılandırılmış ana bilgisayar adı için aramalar   ve "ağ geçidi" ana bilgisayar adı asla LLMNR'ye yönlendirilmez.

Çok etiketli adlar, DNS içeren tüm yerel arabirimlere yönlendirilir   Şiddet yapılandırılmış, ayrıca varsa global olarak yapılandırılmış DNS sunucusu   bir. Bağlantı yerel adres aralığındaki adres aramaları asla   DNS'ye yönlendirildi.

Aramalar çoklu arayüzlere yönlendirilirse, ilk başarılı   yanıt döndürülür (böylece arama bölgelerini etkin bir şekilde birleştirebilirsiniz)   eşleşen arayüzler). Arama tüm arayüzlerde başarısız olduysa, son   başarısız yanıt verilir.

Arabirimlerin yönlendirmesi, arabirim başına yapılandırılarak etkilenebilir   alan isimleri. Detaylar için systemd.network (5) 'e bakınız. İçin aramalar   Arabirim alanlarından birinde biten ana bilgisayar adı yalnızca   eşleşen arayüzlere yönlendirildi.


0
2018-03-01 09:17