Symbol bez kropki (* -foo.example.com) dla wiązania?

10

Wydaje się, że nie ma sposobu, aby powiedzieć, bindże *-foo.example.compowinno to rozwiązać np. 10.1.2.3, podczas gdy *-bar.example.comrozwiązuje do 10.2.3.4. Czy istnieje jakieś obejście? Czy niektóre nazwy mogą np. rozwiązać za pomocą programu zewnętrznego? Czy powinienem zmienić bindna np. PowerDNS ?

Próbuję uniknąć zakupu kolejnego certyfikatu wieloznacznego SSL. (W przypadku certyfikatów z symbolami wieloznacznymi, takich jak *.example.com, nie można dopuścić kropek w *części).

Podanie wszystkich *-foolub *-barnazw w pliku strefy nie jest opcją, ponieważ muszę mieć możliwość tworzenia obu typów adresów w locie.

tuomassalo
źródło
Czy nie ma możliwości dodania domen do strefy w locie? Nigdy nie widziałem częściowych symboli wieloznacznych używanych z bindem. Nie mogę jednak stwierdzić z całą pewnością, że nie jest to możliwe.
David Houde
@DavidHoude: Obawiam się, że dodawanie w locie nie jest opcją, ponieważ każde zapytanie poprzedzające dodanie spowoduje „zanieczyszczenie” serwerów nazw z niepoprawną odpowiedzią. To stwarza problemy, które są dość rzadkie, ale trochę nieprzyjemne do rozwiązania. (Oczywiście czas naprawi problem.)
tuomassalo
1
Czy $GENERATEci pomaga
Celada
1
@DavidHoude - możesz użyć aktualizacji dynamicznej, ale jak zaznaczono w oryginalnym plakacie, możesz natknąć się na sytuację, w której mechanizm rozpoznawania pamięci podręcznej mógł buforować negatywną odpowiedź przed dodaniem rekordu. Aby spróbować zminimalizować to, możesz obniżyć ujemne buforowanie ttl do bardzo niskiej wartości, ale nie każdy resolver skrupulatnie honoruje ttl, a niektóre nakładają praktyczne minimum, aby wyniki były frustrująco zmienne.
Michael McNally
@Celada: *część może być dowolnym [a-z]ciągiem (oczywiście z ograniczeniami długości). Tak więc w moim przypadku $GENERATEnie pomaga. Dzięki za wskazówkę - może się przydać komuś, kto znajdzie tę stronę.
tuomassalo

Odpowiedzi:

11

Powodem, dla którego nie działa, jest to, że nie jest zdefiniowane zachowanie w ramach RFC. Musi zostać zaimplementowany jako rozszerzenie używanego oprogramowania. RFC4592 dość mocno cementuje definicję rekordu wieloznacznego:

2.1.1 Symbol wieloznaczny nazwy domeny i gwiazdki

„Nazwę wieloznaczną domeny” definiuje się tak, aby jej początkowa (tj.
Najbardziej lewa lub najmniej znacząca) etykieta miała format binarny:

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

Zwróć uwagę na etykietę terminu tutaj. Etykieta to byt oddzielony kropkami. Jeśli masz coś innego niż gwiazdka w etykiecie, nie jest to symbol wieloznaczny.

Trochę tu utknąłeś. Pracując w systemie DNS, potrzebujesz kropki, której próbujesz uniknąć. Cała reszta to rozszerzenia oprogramowania serwera i implementacja.

Andrew B.
źródło
Ładnie odpowiedział.
Michael McNally
0

RFC 6125 zapobiega posiadaniu ogólnego certyfikatu dla zagnieżdżonych poddomen. RFC 4592 i RFC 1034 zapobiegają wpisywaniu * -xxx.domain.com jako wpisu DNS.

Masz więc tylko dwie alternatywy (co nie jest przyjemne podczas próby automatyzacji):

  • Utwórz certyfikat dla subdomeny (istnieją bezpłatne alternatywy, ale mogą być skomplikowane w zależności od platformy).
  • Utwórz pełny wpis DNS dla każdej usługi podrzędnej (która nie będzie poddomeną).
Dziesięć
źródło