/etc/hosts에 도메인 이름이 포함되어 있습니까?

/etc/hosts에 도메인 이름이 포함되어 있습니까?

CentOS 노드의 VMWare 클러스터를 설정 중입니다. 컴퓨터 뒤에 도메인 이름을 추가하는 것이 가장 좋은 방법입니까? 이를 무시함으로써 발생할 수 있는 잠재적인 문제는 무엇입니까? 도메인으로 인해 구성이 복잡해지거나 단순화됩니까?

예를 들어 내 노드가 에 있으면 다음에서 시작 192.168.1.93해야 합니다./etc/hosts

127.0.0.1 localhost.localdomain localhost

도착하다

127.0.0.1 localhost.cluster localhost
192.168.1.93 computernode1.cluster computenode1

또는

127.0.0.1 localhost
192.168.1.93 computenode1

또는

#127.0.0.1 localhost
192.168.1.93 computenode1

또는

192.168.1.93 localhost
192.168.1.93 computenode1

답변1

도메인 이름 입력은 /etc/hosts선택 사항이며 아무런 영향 없이 시스템을 실행할 수 있습니다.

이를 생략할 경우의 유일한 단점은 시스템의 정규화된 호스트 이름이 올바르게 표시되지 않는다는 것입니다. 예를 들어, hostname -f.

정규화된 호스트 이름 감지 작동 방식:

  1. 호스트 이름 또는 "짧은 이름"을 가져오는 것으로 시작됩니다. 이는 uname -n또는 의 출력 입니다 hostname.
  2. /etc/hosts그런 다음 문의(또는 에서 찾은 내용 또는 에서 찾을 수 없는 경우 뒤에 있는 소스로 대체)를 통해 /etc/resolv.conf해당 호스트 이름에 대한 IP 주소를 가져옵니다 /etc/hosts.
  3. IP를 획득한 후 다시 문의하여 역조회를 수행합니다 /etc/hosts.
  4. 에 레코드가 있으면 /etc/hosts첫 번째 항목이 정규화된 호스트 이름으로 사용됩니다.

즉, 정규화된 호스트 이름이 작동하도록 하려면 다음 중 하나를 수행해야 합니다.

127.0.0.1 fully.qualified.hostname hostname localhost.localdomain localhost

또는

127.0.0.1 localhost.localdomain localhost
1.2.3.4 fully.qualified.hostname hostname

답변2

호스트가 도메인 이름에 동의하는 한 /etc/hosts이를 지정하거나 지정하지 않아도 아무 것도 변경되지 않습니다. 또 다른 옵션은 domain에서 매개변수 로 지정하는 것입니다 /etc/resolv.conf. 네트워크 관리자가 어느 날 이를 변경하는 경우 이를 지정하지 않으면 생활이 단순해집니다. 내가 아는 한, 그것을 지정해도 아무 것도 바뀌지 않습니다.

반드시 나가 127.0.0.1 localhost거나 127.0.0.1 localhost localhost.localdomain들어가야 합니다 /etc/hosts. 일부 응용 프로그램은 루프백 주소 이외의 다른 항목에 바인딩하여 매우 이상하게 동작하기 시작할 수 있습니다. localhost이는 매우 예상치 못한 설정이기 때문입니다.

답변3

IP 주소 뒤의 첫 번째 위치에 정규화된 도메인 이름을 지정해야 합니다.

우리가 읽은 대로 man 5 hosts:

각 호스트에 대해 다음 정보가 한 줄에 포함되어야 합니다.

IP_address canonical_hostname [별칭...]

규칙을 따르지 않으면 일부 소프트웨어가 충돌할 수 있습니다. 예를 들어 Puppet 구성 관리 시스템은 도메인 부분을 지정하지 않았거나 FQDN 앞에 도메인 없이 별칭을 넣었기 때문에 실행할 때마다 호스트 이름을 앞뒤로 변경하기 시작할 수 있습니다.

답변4

이것이 실제로 "선택 사항"인지는 확실하지 않습니다(Patrick이 위에서 지적했듯이). 마침내 nfs 권한이 누구에게도 돌아가지 않는 문제를 발견했습니다. nfs 마운트(idmapd 사용)에서 권한이 올바르게 작동하려면 서버의 도메인 이름이 클라이언트의 도메인 이름과 정확히 일치해야 하는 것 같습니다. 내가 찾은 일부 문서에서 클라이언트와 서버 간의 실제 호스트 이름을 뺀 값은 동일해야 합니다. 그렇지 않으면 각 클라이언트를 의미하는 hostname -f에서 클라이언트의 도메인 이름을 지정해야 합니다 ./etc/idmapd.conf

도메인 이름을 어디에 지정해야 하는지에 대한 공식적인 규칙이 있나요? 명령 domainname이 /etc/hosts에서 가져오지 않는 것 같습니다. 따라서 /etc/hosts를 입력하면 파일 시스템의 여러 위치에 저장된다는 의미이므로 귀찮습니다.

관련 정보