A 레코드가 아닌 CNAME으로 확인

A 레코드가 아닌 CNAME으로 확인

제가 근무하는 대학의 데이터 센터에는 내부 전용 서버 이름과 서비스 주소를 등록하는 데 사용하는 DNS 시스템이 있습니다.

일반적으로 다음 패턴을 사용합니다.

server     A        xxx.xxx.xxx.xxx
service    CNAME    server

이제 HTTP를 통해 액세스할 때 A 레코드가 아닌 CNAME 레코드로만 확인하려는 서비스가 있습니다.

DNS 구성만 사용하면 가능합니까?

답변1

일부 프로토콜(예: http)의 경우 클라이언트가 올바른 이름을 지정한 경우에만 응답하도록 서비스를 구성할 수 있습니다. 이 시나리오에서는 CNAME이 포함된 http 요청에만 응답하도록 웹 서버를 구성합니다. 댓글을 보면 이미 이 작업을 수행하는 방법을 알고 계실 것입니다.

서버가 클라이언트가 사용하는 이름을 모르는 프로토콜도 있는데, 이 경우 사용자가 A 레코드의 이름을 사용하는 것을 막을 방법이 없습니다.

나는 당신이 DNS 계층에서 이것을 할 수 있다고 믿지 않습니다. 즉, 클라이언트에도 표시되는 해당 A 레코드가 없으면 클라이언트에 표시되고 원하는 IP 주소로 확인되는 CNAME을 만드는 안정적인 방법은 없습니다.

당신은 무엇을~할 수 있다(사용하는 DNS 소프트웨어에 따라 다르지만) 두 개의 A 레코드가 동일한 IP 주소를 가리키는 것입니다. 즉,

server     A        xxx.xxx.xxx.xxx
service    A        xxx.xxx.xxx.xxx

그런 다음 server해당 기록에 액세스해야 하는 관리 직원에게만 기록이 표시되도록 설정하세요. 당신은하지 않습니다가지다서비스 이름에 CNAME을 사용합니다. 유일한 문제는 두 이름의 IP 주소가 항상 일치하는지 확인하는 것이 귀하의 책임이라는 것입니다.

답변2

예, 가능합니다. 사실, 어쨌든 그것은 그것을 끝까지 해결하는 첫 번째 단계입니다.

하지만 실제로 이 작업을 수행하려면 일반적으로 운영 체제의 로컬 DNS 확인 방법을 우회해야 합니다. 왜냐하면 일반적으로 CNAME 레코드에서 중지하고 더 이상 확인하지 못하도록 할 수 없기 때문입니다. 이 작업을 수행할 수 있는 DNS 확인자 라이브러리는 모르지만 이를 수행하는 표준 도구는 알고 있습니다. 쿼리 유형(또는 쿼리 유형) dig을 명시적으로 요청하는 경우 BIND의 명령은 CNAME 레코드를 따르지 않습니다. 저것CNAMEANY5월DNS 서버에 따라 A 또는 AAAA 레코드도 반환합니다.

관련 정보