[컴] host name 과 domain name 의 차이

host name vs domain name / 호스트 / 도메인 정의 / underbar / underscore / host name 만들기 전에 주의할 점

host name 과 domain name 의 차이

결론을 이야기 하면, domain name 이 좀 더 넓은 범위라거 보면 될 것 같다.

domain name > host name

host name 은 말그대로 host 에 붙이는 name 이라고 할 수 있는데, host 라는 것은 특정 ip address 를 소유한 객체로 보면 될 것 같다.( “RFC 1035 - Domain names - implementation and specification, section-2.3.1 Preferred name syntax” 에서도 host name 을 ip address 와 mapping 되는 객체로 보고 이야기 한다.)

그래서 host name 은 이 특정 ip address 와 mapping 된 이름(name) 이라 할 수 있겠다.

dns 의 table 을 생각하면 쉽다. A record 와 AAAA record 에 쓰이는 것이 host name 이라고 생각하면 된다.

그 외에 CNAME, MX record 들에 쓰이는 domain 들은 host name 이 아니라고 보면 될 것 같다. 이 들은 더 넓은 범주인 domain name 이긴 하다

host name 을 만들때 주의할 점

RFC 1035, 2.3.1 Preferred name syntax” 를 보면, domian name 을 지을 때 다른 조건도 만족할만한 이름을 짓는게 낫다고 이야기 하면서 예시로 main domain 과 host name 이름을 지을때 어떤 조건을 만족하는게 좋은 지 이야기 해주고 있다.

mail domain같은 경우는 domain name 의 조건도 만족해야 하지만 "RFC 822 - STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES" 의 조건도 만족해야 한다.

host name 을 정할 때는 옛날 hosts.txt 에서 사용했던 규칙을 따르라고 한다. 이유는 옛날에 host 의 이름에 대해 사용했던 규칙으로 옛날 프로그램들이 만들어져 있어서 이 규칙에 맞지 않는 host name 은 host name 이 틀렸다고, 규칙에 맞지 않다고 error 를 던질 수 있기 때문이다.

그 규칙이 아래와 같다.

<domain> ::= <subdomain> | " "

<subdomain> ::= <label> | <subdomain> "." <label>

<label> ::= <letter> [ [ <ldh-str> ] <let-dig> ]

<ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>

<let-dig-hyp> ::= <let-dig> | "-"

<let-dig> ::= <letter> | <digit>

<letter> ::= any one of the 52 alphabetic characters A through Z in
upper case and a through z in lower case

<digit> ::= any one of the ten digits 0 through 9

domain name에 대,소문자 사용은 가능하지만, 같은 철자로 된 domain name 이면, 대문자로 된 domain name 이나 소문자로 된 domain name 이나 같은 것으로 취급한다.

label 들은 ARPANET host name rules 을 따라야만 한다. - letter 로 시작해야만 하고 - letter 나 digit 으로 끝나야만 한다. - 그 사이의 문자는 letter, digit, hyphen 만 가능하다. - 길이는 63 자 이하여야 한다.

RFC1123 를 보면, 이전의 label 의 제약 사항중에 letter로 시작해야만 했던것은 digit으로 시작해도 된다고 바뀌었다.

From RFC-1039
     <label> ::= <letter> [ [ <ldh-str> ] <let-dig> ]
To RFC-1123
      <name>  ::= <let-digit>[*[<let-or-digit-or-hyphen>]<let-or-digit>]

underscore(_) 문제

몇몇 library 들에서 host name 에 _ underscore 가 들어간 경우 문제가 된다. 특히 오래된 library 일수록 그런 경향이 있는 듯 보인다. 그러니 위의 오래된 hostname 규칙을 따르는 것이 낫다.

See Also

  1. HostNamingRules < CF < TWiki : host naming rule 과 관련한 RFC 문서 내용을 모아놓았다.

Refrences

  1. dns - Can (domain name) subdomains have an underscore "_" in it? - Stack Overflow

댓글 없음:

댓글 쓰기