호스트 이름에 점을 둘 수 있습니까?


23

내 리눅스 상자의 호스트 이름으로 a.alpha와 같은 이름을 사용하고 있지만이 이름을 완전히 사용할 수는 없습니다. 호스트 이름 쉘 명령의 응답이 정확합니다 (알파). 그러나 내 사용자 계정 뒤에 인쇄 된 이름은 "user@a.alpha"대신 "user @ a"입니다. avahi를 사용하면 (호스트 이름으로) a.alpha에 도달 할 수 있지만 b.alpha에는 도달 할 수 없습니다. 그게 정상인가요?

답변:


23

헬기가 맞습니다. DNS 작동 방식으로 인해 "a.alpha"의 "alpha"구성 요소는 DNS에서 개별 레이블로 간주됩니다. 점이있는 호스트 이름을 사용하면 DNS를 사용하는 모든 시스템에서 결과가 일치하지 않습니다.

Avahi는 DNS 이름과 상호 작용하며 특히 <host-name>지시문에는 서비스의 DNS FQDN이 있어야하므로 점으로 구분 된 이름과의 DNS 불일치가 발생할 수 있습니다.

점으로 구분 된 이름을 사용하지 마십시오.


이것은 정확하지만 신뢰할만한 답변으로 간주 되려면 참조가 필요합니다. 스택 오버플로에서 'DNS 작동 방식으로 인해'라고 말하는 사람은 아무것도 입증하지 못합니다.
mikemaccana

호스트 이름에 '.'을 포함 할 수없는 것이 엄격한 규칙입니까? ?
Dinesh Kumar P

1
@DineshKumarP 예. DNS RFC는 마침표 문자를 DNS 레이블 사이의 구분자로 설명합니다. Avahi 또는 SLP와 같은 비 DNS 서비스가 허용 할 수 있지만 DNS 자체는 허용하지 않습니다.
sysadmin1138

이것은 옳지 않습니다. DNS는 레이블에 점을 허용하는 것이 기쁘지만 제한된 구문 ( "LDH 규칙"을 준수 함을 나타 냅니다 (tools.ietf.org/html/rfc1035#section-2.3.1 참조 )). DNS에 호스트 이름을 저장하는 것과 같은 DNS 응용 프로그램 은 DNS 레이블 구문에 대한 제한이 적용됩니다.
Tony Garnock-Jones

17

DNS로 인해 해당 이름 지정 체계에 문제가있는 경우 대신 알파를 고려하십시오.


나는 askubuntu에 대해 같은 질문을하지만 아무도 나에게 대답 할 수 없습니다. 그래서 저는이 방법을 사용할 것입니다
benzen

1

다른 사람들이 언급했듯이 DNS로 인해 호스트 이름에서 점을 피하고 싶을 때 와일드 카드 인증서를 사용하여 SSL을 수행하는 경우 와일드 카드 인증서가 한 수준의 와일드 카드 만 사용하므로 문제가 될 수 있음을 알았습니다. 하위 도메인. 따라서 와일드 카드 인증서가 * .mycompany.com 용이지만 호스트 이름이 a.alpha 인 경우 "알파"를 하위 도메인으로 취급하면 와일드 카드 인증서가 작동하지 않을 수 있습니다.


1

호스트의 전체 호스트 이름은 일반적으로 도메인이 장착 된 FQDN (정규화 된 도메인 이름)이며 Linux host --fqdn에서는 첫 번째 점 앞의 부분이 호스트의 별명으로 간주되는 결과가이어야합니다 . 그러나 다른 시스템 (Linux, SunOS 등)은 다양한 방법으로 "hostnick"개념을 구현했습니다. 같은 :

  • / etc / hostname에는 hostnick 만 있고 나머지는 / etc / domainname에 있습니다.
  • 의 / etc / 호스트 이름은 전체 FQDN을 포함하고, 도메인은 또한 에 / 등 / 도메인 이름
  • 도메인 이름은 YP / NIS 구성에만 존재합니다
  • 도메인 이름은 시스템 전역이 아닌 특정 서브 시스템에만 존재합니다.
  • (다른, 일반적으로 더 이상한 접근법)

또한 hostnick의 아이디어는 약간의 변수입니다.

  • 첫 번째 점 이전의 FQDN 부분
  • 후행 점없이 독점적으로 표현되는 FQDN의 일부 왼쪽 부분
  • 실제 도메인 이름 앞의 FQDN 부분 (어딘가에 설정 됨)

더 복잡하게하기 위해 hostbind9-host 의 명령은 -N <int>검색 도메인의 사용 여부를 제어 하는 옵션을 통해 DNS 표준을 위반합니다 . 이렇게하면 시나리오에 따라 다양한 방식으로 DNS 조회가 중단됩니다. DNS는 말 그대로 찾아야 할 으로 후행 점이 있는 이름 을 찾고 다른 이름 /etc/resolv.conf은 일치하는 것이 발견되거나 모두 실패 할 때까지 추가 된 도메인을 찾아야합니다 (도메인은 암시 적으로 후행 점). [이것은 메모리에서 비롯된 것으로, 놓친 RFC에서 일반 프로세스가 변경된 경우 의견을 보내 주십시오. ]

따라서 hostnick에서 점을 사용하면 host명령에 문제가 생겨 조회에 사용되는 스크립트가 손상 될 수 있습니다 . 필자는 개인적으로 그것이 host깨지지 않는 것을 발견했으며 , 오늘날에도 집에 IPv4와 -v6이 있고 이름이 .v4이기 때문에 홈 네트워크의 시스템에서 조회를 깨뜨리는 것처럼 보입니다. 여분의 버전 별 짧은 형식으로, host제대로 검색하더라도 조회에 실패 ping합니다.

어쨌든 hostnicks에 점을 넣으려고 시도하는 것은 극히 드물기 때문에 host뇌 손상이 없어도 간단한 의미 관점에서도 점이없는 hostnicks를 고수하는 것이 좋습니다.


0

정답은 위에서 언급 한대로 "그렇게하지 마십시오".

유용하고 확실하게 접할 수있는 읽기를 계속하려면 다음을 수행하십시오.

DNS 해상도 또는 명령 줄 프롬프트에 대해 이야기하고 있습니까? 명령 행 프롬프트를 수정하려면 $ PS1 (또는 해당되는 경우 bash / sh와 비슷한)로 바이올린을 피우십시오.

a.alpha를 인터 웹의 IP 주소로 해석되는 호스트 이름으로 만들고 싶다면 그렇게 할 수 있지만 각 호스트 이름 접미사 (EG alpha, beta 등)의 하위 도메인이 포함될 수 있습니다.

하위 도메인을 만들지 않고도 DNS 서버가 작동하도록 구성 할 수도 있습니다. 부모 도메인의 영역 파일에서 하위 도메인 이름 서버의 IP 주소를 제공 할 수 있으므로 "작동"할 수 있습니다. 누군가가 DNS 서버에 a.alpha.examaple.com의 IP 주소를 요청하면 DNS 서버에 example.com을 요청하고 해당 DNS 서버에 이미 주소가 걸려있는 경우 응답으로 응답하기 때문입니다. 하위 도메인의 권한있는 서버로 사용자를 넘겨 주려고하지 않습니다. 누락 된 SOA를 중심으로 발생할 수 있습니다. 따라서 각 호스트 접두사에 대한 A 레코드와 각 호스트 접미사에 대한 SOA를 추가 할 수 있습니다. 그래, 그게 티켓이야 ..

인터넷상의 모든 것은 여전히 ​​호스트 이름이 'a'이고 도메인은 alpha.example.com이라고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.