Не включайте автоматично всі субдомени в адресу DNSMasq


10

Можна DNSMasq налаштувати таким чином, що він повертає фіксовану IP-адресу лише для запиту саме цього домену, а не для його субдоменів? Тобто я хочу, щоб він повертав фіксовану IP при вирішенні example.com, але ні a.example.com, b.example.comі т.д.

Відповіді:


9
host-record=example.com,1.2.3.4

Сторінка dnsmasq man говорить:

--host-record = <ім'я> [, <ім'я> ....] [<IPv4- адреса>], [<IPv6- адреса>]
Додайте записи A, AAAA та PTR до DNS. Це додає одне або більше імен до DNS з пов'язаними записами IPv4 (A) та IPv6 (AAAA). Ім'я може з'являтися в більш ніж одній хост-записі і тому може бути призначено більше однієї адреси. Лише перша адреса створює запис PTR, що пов'язує адресу з іменем. Це те саме правило, що і для читання файлів хостів. Опції хост-запису вважаються прочитаними перед хост-файлами, тому ім'я, що з’являється там, пригнічує створення PTR-запису, якщо воно також з'являється у файлі хостів. На відміну від файлів хостів, імена не розширюються, навіть коли розгортається хостів. Короткі та довгі імена можуть відображатися в одному записі хоста , наприклад. --host-record = ноутбук, ноутбук.thekelleys.org, 192.168.0.1,1234 :: 100


Питання містить тег "Internal-dns", де "host-record" поширюється на external-dns, відомий як авторитетний dns.
Pro резервне копіювання

зауважте, що якщо ви намагаєтеся взяти існуючий запис хосту в Інтернеті (наприклад, перезаписати його для вашої локальної мережі), то якщо ви опустите адресу v6 і хост має реальну адресу v6 в Інтернеті, dnsmasq поверне вам переоформлений v4 адресу як A, і реальний запис AAAA в Інтернеті v6. вкажіть обидва, якщо ви не хочете, щоб хости, що підтримують v6, не "проникали" до реального хоста через v6. Я переписував archive.ubuntu.com, щоб вказати на моє локальне дзеркало, і лише вказав адресу v4 в моїй локальній мережі - виявляється, вона також має v6 адресу, і мені потрібно було переконатися, що я налаштував це і в dnsmasq.
підкрадання

3

Який файл конфігурації? dnsmasq вирішить лише субдомени, якщо ваш запис починається з крапки.

Приклад: address=/.subdomain.pc01.domain.com/192.168.1.2

Якщо у вас це так:

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

це також вирішить asd.subdomain.pc01.domain.com:

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

Цікавий момент, але якщо ви уважно прочитали питання, це не те, що просили ОП.
jcharaoui

1

Просто додайте запис для цього конкретного домену у файл хостів на сервері, на якому працює DNSMasq


Це не працює; DNSMasq повертає той самий фіксований IP для всіх субдоменів введеного домену
Michael Mrozek

1

Із man-сторінки dnsmasq (для --server, але також стосується - адреси):

Більш конкретні домени мають перевагу над менш конкретними доменами, тому: --server = / google.com / 1.2.3.4 --server = / www.google.com / 2.3.4.5 надсилатиме запити для * .google.com до 1.2. 3.4, за винятком * www.google.com, який перейде до 2.3.4.5

Тож єдине рішення, яке я бачу, - це замість цього додати окремі записи для кожного з необхідних субдоменів. Очевидно, не ідеально, але це найкращий dnsmasq, який можна надати в цей час (що я можу знайти).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.