Host.conf와 resolv.conf의 관계는 무엇입니까?

Host.conf와 resolv.conf의 관계는 무엇입니까?

나는 우분투를 사용하고 있습니다. 맨페이지에서 다음 정보를 볼 수 있습니다.

  • 을 위한 /etc/host.conf( man host.conf)

    host.conf - 파서 구성 파일

    /etc/host.conf 파일에는 파서 라이브러리와 관련된 구성 정보가 포함되어 있습니다.

  • 을 위한 /etc/resolv.conf( man resolv.conf)

    resolv.conf - 해석기 구성 파일

    확인자는 인터넷의 DNS(Domain Name System)에 대한 액세스를 제공하는 C 라이브러리의 루틴 세트입니다.

파서는 두 파일을 어떤 순서로 사용하며 차이점은 무엇입니까?

답변1

최신 Linux 시스템에서는파서 라이브러리glibc이러한 매뉴얼 페이지에서 참조하는 내용은 라이브러리 에 통합되었습니다 . /etc/host.conf기본 라이브러리의 통합 섹션을 읽어보세요. glibc매뉴얼 페이지에는 현재 구현이 trim, multireorder키워드만 인식한다는 것을 보여줍니다. Historical해당 섹션 NOTES의 단락에서는 더 많은 키워드가 있음을 시사합니다.

실제 조회는 다양한 플러그인 라이브러리에 의해 수행되며 /etc/nsswitch.conf파일에 의해 결정됩니다. 각 검색 방법(예 files: nis, dns또는)은 라이브러리 파일(예: , 또는)과 일대일 대응됩니다 compat.libnss_files.so.2libnss_nis.so.2libnss_dns.so.2libnss_compat.so.2

플러그인은 libnss_files.so.2기본 libnss_dns.so.2라이브러리 패키지와 함께 제공되지만 libnss_compat.so.2별도 패키지, 패키지 등 다양한 소스의 다른 플러그인도 있으며 시스템을 LDAP 또는 Active와 통합하는 경우 작동하도록 설계되었습니다. 디렉토리, 이러한 통합 솔루션은 자체 라이브러리도 제공합니다.libnss_hesiod.so.2glibclibnss_nis.so.2libnss-nislibnss_mdns*.so.2libnss-mdnslibnss_resolve.so.2systemd-resolvedlibnss_*

포함된 경우 hosts:then의 행이 사용되어 읽혀집니다.nsswitch.confdnslibnss_dns.so/etc/resolv.conf

그러나 dns로 바꾸면 resolve대신 libnss_resolve.so.2가 사용됩니다. 이것은 클래식을 무시 하고 대신 파일, 내장 파일 또는 명령줄 도구로 구성된 /etc/resolv.conf데몬과 통신합니다 .systemd-resolved/etc/systemd/resolved.conf/etc/systemd/resolved.conf.d/*.conf[/usr]/lib/systemd/resolved.conf.d/*.conf/run/systemd/resolved.conf.d/*.confresolvectl

확인자 라이브러리(예: 특정 버전의 명령 ) 를 /etc/resolv.conf사용하는 대신 직접 읽는 프로그램을 재정의하기 위해 DNS 요청에 대한 수신기는 127.0.0.53(이 기능이 꺼지지 않는 한)에서 유지되고 가상 포인터는 그것에 제공됩니다.glibcnslookupsystemd-resolved/etc/resolv.conf


즉, 상담 없이는 사용 여부를 /etc/nsswitch.conf확신할 수 있습니다 /etc/host.conf. 그 후에 무슨 일이 일어날지는 /etc/nsswitch.conf말한 내용 에 따라 달라집니다 .

대부분의 프로그램은 라이브러리의 호스트 이름 확인 기능을 사용하므로 glibc다음을 사용합니다./etc/resolv.conf ~하지 않는 한hosts:개 행에 /etc/nsswitch.conf키워드가 포함되어 있습니다 dns.

hosts:행에 /etc/nsswitch.conf키워드가 포함 resolve된 경우/etc/resolv.conf유산으로 여겨야 한다 그리고 이 resolvectl명령을 사용하여 실제 DNS 서버 구성을 확인합니다. 이 경우 /etc/resolv.conf자체 DNS 확인 기능을 사용하는 프로그램이 로컬 서비스를 사용하도록 지시한 systemd-resolved다음 해당 요청을 실제 DNS 서버로 전달하거나 요청이 관련된 경우 MDNS 또는 LLMNR을 기반으로 응답을 제공하는 데만 존재합니다. 로컬 서비스) 및 MDNS/LLMNR 정보를 사용할 수 있습니다.

관련 정보