Может ли один ответ DNS содержать как записи A, так и записи cname? Если да, будет ли это считаться необычным или это типичное поведение?
решение1
Если A
запись(и), на которые вы ссылаетесь, относится к каноническому имени («целевому» имени записи CNAME
), а не к имени запроса, то это совершенно нормально.
Однако возвращение CNAME
и A
(или любая другая запись) длятакой жеимя.
Допустимый пример:
foo.example.com. 3600 IN CNAME bar.example.com.
bar.example.com. 3600 IN A 192.0.2.1
Неверныйпример (не обескуражен,неверный):
foo.example.com. 3600 IN CNAME bar.example.com.
foo.example.com. 3600 IN A 192.0.2.1
решение2
Это нетипично и фактически противоречит RFC. Когда CNAME
существует, не должно быть других типов записей для того же результата.
решение3
Я могу подтвердить, что это недействительный ответ DNS - и то, как это будет решено, зависит от случая. Если вы администратор DNS-сервера, который этим занимается, то, пожалуйста, используйте A или CNAME (и предпочтительнее A).
Примечание: Вы можете вернуть любую комбинацию других типов или записей,илиCNAME, но если вы возвращаете CNAME, вы не можете вернутьлюбойдругой тип записи, помимо RRSIG
подписи DNSSEC, и любой работающий DNS-резолвер устроит несколько истерик, если вы попытаетесь и откажетесь воспринимать ответ всерьёз.