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

10

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

Майкл Мрозек
источник

Ответы:

9
host-record=example.com,1.2.3.4

Страница руководства dnsmasq гласит:

--host-record = <name> [, <name> ....] [<IPv4-адрес>], [<IPv6-адрес>]
Добавить записи A, AAAA и PTR в DNS. Это добавляет одно или несколько имен в DNS со связанными записями IPv4 (A) и IPv6 (AAAA). Имя может появляться в нескольких записях хоста, и поэтому ему может быть назначено несколько адресов. Только первый адрес создает запись PTR, связывающую адрес с именем. Это то же правило, которое используется для чтения hosts-файлов. Опции записи хоста считаются прочитанными перед файлами хоста, поэтому появляющееся там имя запрещает создание PTR-записи, если оно также появляется в файле hosts. В отличие от hosts-файлов, имена не раскрываются, даже когда действует команданки-hosts. Короткие и длинные имена могут появляться в одной записи хоста , например. --host рекорд = ноутбук, laptop.thekelleys.org, 192.168.0.1,1234 :: 100

Карманные ПК
источник
Вопрос несет тэг «internal-dns», где «host-record» относится к external-dns, то есть авторитетным dns.
Pro Backup
обратите внимание, что если вы пытаетесь перенять существующую запись хоста в Интернете (например, переписать ее для своей локальной сети), то если вы пропустите адрес v6, а хост имеет реальный адрес v6 в Интернете, dnsmasq вернет переопределенную версию v4. адрес как А, и реальная запись интернета v6 AAAA. укажите оба, если вы не хотите, чтобы хосты с поддержкой 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
JorgeeFG
источник
Интересный момент, но если вы внимательно прочитали вопрос, это не то, о чем просил ФП.
Джарауи
1

Просто добавьте запись для этого конкретного домена в файл hosts на сервере с DNSMasq.

Матиас Р. Ессен
источник
Это не работает; DNSMasq возвращает одинаковый фиксированный IP-адрес для всех поддоменов введенного домена
Майкл Мрозек
1

Со страницы руководства dnsmasq справки (для --server, но также применяется к --address):

Более конкретные домены имеют преимущество перед менее конкретными доменами, поэтому: --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 в настоящее время (что я могу найти).

tianon
источник