Не подстановочный знак (* -foo.example.com) для привязки?

10

Кажется, нет никакого способа сказать, bindчто *-foo.example.comдолжно разрешиться, например. 10.1.2.3пока *-bar.example.comрешает 10.2.3.4. Есть ли обходной путь? Могут ли некоторые имена, например. разрешить с помощью внешней программы? Или я должен изменить, bindнапример. PowerDNS ?

Я пытаюсь избежать покупки другого сертификата подстановочного знака SSL. (С сертификатами с подстановочными знаками, такими как *.example.com, невозможно разрешить точки в *детали.)

Указывать все *-fooили *-barимена в файле зоны не вариант, так как мне нужно иметь возможность создавать адреса обоих типов на лету.

tuomassalo
источник
Нет ли способа добавить домены в зону на лету? Я никогда не видел частичных подстановочных знаков, используемых с привязкой. Я не могу точно сказать, что это невозможно.
Дэвид Хоуд
@DavidHoude: Я боюсь, что добавление на лету не вариант, так как любой запрос, предшествующий добавлению, будет «загрязнять» серверы имен с неправильным ответом. Это создает проблемы, которые довольно редки, но немного неприятны для решения. (Конечно, время решит проблему.)
tuomassalo
1
Кто $GENERATEпоможет?
Селада
1
@DavidHoude - вы можете использовать динамическое обновление, но, как указывает оригинальный автор, вы попадаете в ситуацию, когда решатель кэширования мог кэшировать отрицательный ответ перед добавлением записи. Чтобы попытаться смягчить то, что вы можете снизить отрицательное значение ttl кэширования до очень низкого значения, но не каждый распознаватель тщательно соблюдает ttls, а некоторые налагают практический минимум, чтобы результаты могли быть разочаровывающими.
Майкл МакНелли
@Celada: *часть может быть любой [a-z]строкой (с ограничениями по длине, конечно). Так что в моем случае $GENERATEэто не помогает. Спасибо за совет, хотя - может стать удобным для кого-то, кто находит эту страницу.
Туомассало

Ответы:

11

Причина, по которой это не работает, заключается в том, что это не определенное поведение в RFC. Он должен быть реализован как расширение используемого вами программного обеспечения. RFC4592 довольно точно цементирует определение записи с подстановочными знаками:

2.1.1. Доменное имя и звездочка

«Доменное имя с подстановочными знаками» определяется наличием его начальной (т.
Е. Самой левой или наименее значимой) метки в двоичном формате:

  0000 0001 0010 1010 (binary) = 0x01 0x2a (hexadecimal)

Обратите внимание на термин ярлык здесь. Метка - это точка, разделенная точкой. Если у вас есть что-то кроме звездочки на этикетке, это не подстановочный знак.

Вы вроде застряли здесь. Работая в DNS, вам нужна та точка, которую вы пытаетесь избежать. Все остальное является расширением серверного программного обеспечения и конкретной реализации.

Андрей Б
источник
Красиво ответил.
Майкл МакНелли
0

RFC 6125 предотвращает использование общего сертификата для вложенных поддоменов. RFC 4592 и RFC 1034 не позволяют иметь * -xxx.domain.com в качестве записи DNS.

Таким образом, у вас есть только две альтернативы (что не очень хорошо при попытке автоматизировать):

  • Создайте сертификат для каждого субдомена (есть бесплатные альтернативы, но они могут быть сложными в зависимости от вашей платформы).
  • Создайте полную запись DNS для каждого субсервиса (который не будет субдоменом).
Десять
источник