쿠버네티스든 뭐든, 뭐를 만들기만 하면 요즘 DNS Canonical한 이름을 원하는 경우가 많다. 도대체 DNS규칙에 따르는 이름이 뭔지, 여기서 한번 정리해 보자.

도메인은 작은 단위인 ‘라벨’이라 불리는 것들의 집합으로 이루어져 있다. 라벨은 .으로 분리되거나 조합될 수 있다.

  • 가장 오른쪽에 있는 라벨을 탑레벨 도메인이라 부른다. 예를 들어 example.com인 경우 탑레벨 도메인 com에 속한다.
  • 도메인은 오른쪽에서부터 왼쪽으로의 상속 관계를 가진다. 각 라벨들은 왼쪽 방향으로 세분화되거나, 오른쪽 방향의 도메인의 서브도메인이 된다. 예를 들어 example.com이 있다면 이는 com의 서브도메인이 된다. 여기에 www를 붙여 www.example.com을 만들면 이는 example.com의 서브도메인이 된다. 이런 라벨로 만드는 트리는 127레벨까지 세분화될 수 있다. 각 라벨은 1~63자의 octets으로 이루어지며, 빈 라벨은 루트 노드를 위해 예약된다. 전체 도메인 길이는 253 ASCII Characters를 초과할 수 없다. 어떤 도메인은 이보다 더 적은 길이 제한을 가질 수도 있다.
  • 호스트네임은 최소 한 개의 IP와 연결을 가지는 도메인을 말한다. 예를 들어 www.example.com과 example.com또한 호스트네임이라 볼 수 있으며, 그런 면에서 com은 호스트네임이라 부를 수 없다. 그러나, 국가코드 탑레벨 도메인 같은 경우 IP와 연결되어 있다면 이것 또한 호스트네임이라 부를 수 있다.
  • ‘호스트네임 문자 제한’으로 인해 올바른 호스트네임은 올바른 도메인 네임이라 볼 수 있으나, 반대로 올바른 도메인 네임은 올바른 호스트네임이라 볼 수 없다. 예를 들어 호스트네임에 사용이 불가능한 문자 _는 도메인 네임에서 SRV레코드 등에서 사용할 수 있다.

영문 위키피디아