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

Michał Mrożek
źródło

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

Kieszonkowy komputer osobisty
źródło
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
JorgeeFG
źródło
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

Mathias R. Jessen
źródło
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źć).

Tianon
źródło