Nie dołączaj automatycznie wszystkich subdomen do adresu DNSMasq


10

Możliwe jest takie skonfigurowanie DNSMasq, aby zwracał stały adres IP tylko dla żądania dla tej konkretnej domeny, a nie dla jej poddomen? Oznacza to, że chcę wrócić stałe IP podczas rozwiązywania example.com, ale nie a.example.com, b.example.comitd

Odpowiedzi:


9
host-record=example.com,1.2.3.4

Strona podręcznika dnsmasq mówi:

--host-record = <nazwa> [, <nazwa> ....] [<adres IPv4>], [<adres IPv6>]
Dodaj rekordy A, AAAA i PTR do DNS. To dodaje jedną lub więcej nazw do DNS z powiązanymi rekordami IPv4 (A) i IPv6 (AAAA). Nazwa może pojawić się w więcej niż jednym rekordzie hosta i dlatego może mieć przypisany więcej niż jeden adres. Tylko pierwszy adres tworzy rekord PTR łączący adres z nazwą. Jest to ta sama zasada, jak przy odczytywaniu plików hostów. opcje rekordu hosta uważa się za przeczytane przed plikami hosta, więc pojawiająca się tam nazwa hamuje tworzenie rekordu PTR, jeśli pojawia się również w pliku hosta. W przeciwieństwie do plików hosts, nazwy nie są rozwijane, nawet gdy działa funkcja expand-hosts. Krótkie i długie nazwy mogą występować w tym samym rekordzie hosta , np. --host-record = laptop, laptop.thekelleys.org, 192.168.0.1,1234 :: 100


Pytanie nosi znacznik „wewnętrzny-dns”, gdzie „host-record” dotyczy zewnętrznego-dns, czyli autorytatywnego dns.
Pro Backup

pamiętaj, że jeśli próbujesz przejąć istniejący rekord hosta w Internecie (np. przepisz go dla swojej sieci LAN), to jeśli pominiesz adres v6, a host ma prawdziwy adres v6 w Internecie, dnsmasq zwróci twoje zastąpione v4 adres jako A i prawdziwy internetowy rekord AAAA v6. określ oba, jeśli nie chcesz, aby hosty obsługujące v6 nie „wpadały” do prawdziwego hosta internetowego przez v6. Przepisałem plik archive.ubuntu.com, aby wskazywał na moje lokalne dublowanie, i podałem tylko adres v4 w mojej sieci LAN - okazuje się, że ma także adres v6 i musiałem się upewnić, że skonfigurowałem go również w dnsmasq.
podkradają się

3

Jak tam plik konfiguracyjny? dnsmasq rozpozna tylko subdomeny, jeśli twój wpis zaczyna się od kropki.

Przykład: address=/.subdomain.pc01.domain.com/192.168.1.2

Jeśli masz to w ten sposób:

address=/subdomain.pc01.domain.com/192.168.1.2

rozwiąże również asd.subdomain.pc01.domain.com:

$ host asd.subdomain.pc01.domain.com
asd.subdomain.pc01.domain.com has address 192.168.1.2

Interesujący punkt, ale jeśli dokładnie przeczytałeś pytanie, nie o to prosił OP.
jcharaoui

1

Wystarczy dodać wpis dla tej konkretnej domeny w pliku hosts na serwerze z uruchomionym DNSMasq


To nie działa; DNSMasq zwraca ten sam stały adres IP dla wszystkich poddomen we wprowadzonej domenie
Michael Mrozek

1

Ze strony podręcznika dnsmasq (dla --server, ale dotyczy także --address):

Bardziej szczegółowe domeny mają pierwszeństwo przed mniej konkretnymi domenami, więc: --server = / google.com / 1.2.3.4 --server = / www.google.com / 2.3.4.5 wyśle ​​zapytania dotyczące * .google.com do 1.2. 3.4, z wyjątkiem * www.google.com, który przejdzie do 2.3.4.5

Więc jedynym rozwiązaniem, jakie widzę, jest dodanie osobnych rekordów dla każdej niezbędnej subdomeny. Oczywiście nie jest idealny, ale jest to najlepszy dnsmasq, jaki mogę obecnie zapewnić (jaki mogę znaleźć).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.