Windows는 이름을 확인할 때 사용할 DNS 서버를 어떻게 결정합니까? 일부는 dns 서버가 지정되지 않았고

이름을 확인하기 위해 Windows가 어떤 DNS 서버를 쿼리할지 결정하기 위해 Windows는 어떤 알고리즘을 사용합니까?

몇 가지 인터페이스가 모두 활성화되어 있고 일부는 dns 서버가 지정되지 않았고 일부는 자동으로 결정하도록 지시했으며 일부는 수동으로 지정했습니다 (인터페이스 ipv4 및 인터페이스 ipv6).

Windows Vista에서 더 구체적인 문제를 해결하는 방법을 알고 있기를 희망 하면서이 일반적인 질문에 대한 답변을 요청합니다. 두 가지 인터페이스가 있습니다. 하나는 하위 메트릭과 DNS 서버가 수동으로 지정되어 있습니다. nslookup 은이 DNS 서버를 사용 하고 이름을 올바르게 확인합니다. 그러나 다른 인터페이스에 대해 DNS 서버를 수동으로 지정하지 않으면 응용 프로그램에서 사용하는 다른 모든 응용 프로그램에서 이름을 확인하지 못합니다. nslookup은 지정된 다른 인터페이스에 지정된 DNS 서버도 사용합니다.

감사



답변

내가 실수하지 않으면 네트워크 연결 폴더의 고급 설정에서 NIC 바인딩 순서에 따라 결정됩니다. 다양한 NIC의 바인딩 순서를 변경하고 테스트로 nslookup을 실행하여이를 확인할 수 있습니다.

Evan이 링크 한 기사를 인용 하여 내 대답을 넓히려면 다음 기사 에서 발췌 한 내용입니다.

DNS 클라이언트 서비스는 다음 순서로 DNS 서버를 쿼리합니다.

  1. DNS 클라이언트 서비스는 기본 어댑터의 DNS 서버 목록에서 첫 번째 DNS 서버로 이름 쿼리를 전송하고 1 초 동안 응답을 기다립니다.

  2. DNS 클라이언트 서비스가 1 초 내에 첫 번째 DNS 서버로부터 응답을받지 못하면 여전히 고려중인 모든 어댑터의 첫 번째 DNS 서버로 이름 쿼리를 보내고 응답을 2 초 동안 기다립니다.

  3. DNS 클라이언트 서비스가 2 초 내에 DNS 서버로부터 응답을받지 못하면 DNS 클라이언트 서비스는 여전히 고려중인 모든 어댑터의 모든 DNS 서버로 쿼리를 보내고 응답을 위해 2 초 더 기다립니다.

  4. DNS 클라이언트 서비스가 여전히 DNS 서버로부터 응답을받지 못하면 여전히 고려중인 모든 어댑터의 모든 DNS 서버로 이름 쿼리를 보내고 응답을 4 초 동안 기다립니다.

  5. DNS 클라이언트 서비스가 DNS 서버로부터 응답을받지 못하면 DNS 클라이언트는 여전히 고려중인 모든 어댑터의 모든 DNS 서버로 쿼리를 보내고 8 초 동안 응답을 기다립니다.

1 단계에서 선호되는 어댑터는 바인딩 순서에서 첫 번째로 나열된 어댑터입니다.


답변

Windows 10 (및 Windows Server 2016)에서는 각 인터페이스의 메트릭을 원하는 순서대로 업데이트해야합니다.

  1. 제어판으로 이동> 네트워크 및 인터넷> 네트워크 연결
  2. 원하는 연결을 마우스 오른쪽 버튼으로 클릭하십시오 (높은 우선 순위 연결)
  3. 특성> 인터넷 프로토콜 버전 4를 클릭하십시오.
  4. 특성> 고급을 클릭하십시오.
  5. ‘자동 측정 항목’을 선택 취소하십시오.
  6. ‘인터페이스 메트릭’에 10을 입력하십시오.
  7. 확인을 클릭하십시오

참고 문헌 :

LAN에 10, WLAN에 20, VPN 인터페이스에 100을 사용했습니다 (직장에서 로컬 DNS를 선호합니다. 낮은 메트릭 = 높은 우선 순위를 기억하십시오 .

IPv4 라우트의 자동 메트릭 기능에 대한 설명은 Microsoft 지원에서이 기사를 참조하십시오 .


답변

이 페이지 에서는 Windows에서 DNS 쿼리를 수행하는 데 사용하는 알고리즘에 대해 설명합니다. 당신이 찾고있는 모든 답변을 줄만큼 깊이가 없지만 스니퍼가있는 시간 과이 기사는 특정 상황에서 일어나는 일을 결정하는 데 필요한 모든 것입니다.


답변

나는 정확히 같은 문제가 있었다. 나는 그것을 알아 내려고 하루를 보냈다. 이제는 알고 매력처럼 작동합니다.

네트워크 카드가 여러 개인 경우 각각에 DNS 서버를 지정하십시오. 마지막에 어떤 DNS 서버가 사용 될지 알고 있습니까?

연습을 통해 확인할 수 있습니다.

nslookup 192.168.3.6

PC가 실제로 사용하는 서버를 볼 수 있습니다

문제는-DNS 서버 창에서 사용하기로 선택한 것과 변경하는 방법에 있습니다.

VPN 클라이언트를 사용할 때 특히 필요합니다.

qwerty2010답변옳고 정확합니다. 그러나 제어판-네트워크 및 공유 센터-어댑터 설정 변경-nic 목록에 NIC가있는 경우에만 사용할 수 있습니다

VPN 클라이언트에 책임이있는 nic을 보는 경우에만 그래픽 방식을 사용하여 dns 서버 (특정 nic에 지정됨)가 사용하려는 창을 가리킬 수 있습니다.

네트워크 및 공유 센터-> 어댑터 설정 변경-> 고급-> 고급 설정->으로 이동하여 사용하려는 DNS로 nic을 위로 이동하십시오. (UP을 들어야합니다).

그러나 예를 들어 Shrew vpn 클라이언트를 사용하는 경우 nic이 없습니다.

너 뭐하니.

레지스트리를 엽니 다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}

하위 폴더 0000, 0001 등에서

DriverDesc = Shrew Soft Virtual Adapter

좋아. 그런 다음 클립 보드에 복사합니다

NetCfgInstanceId = {B498E7DE-7257-48F6-AD32-60E470030F05}

이제 간다

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Linkage]

그리고 당신은 열립니다 key = Bind. 다음과 같은 목록이 나타납니다

\Device\{1DF89CE3-CAAD-4EB7-A53F-AD16BC1D5EFD}
\Device\{70126DBE-B44D-4392-9417-0CABD6E384B1}
\Device\{D5127F8E-E7BB-4661-AE5A-A922614173D0}
\Device\{C44039AB-6801-4A9B-A736-3B12782FF411}
\Device\{85231D0F-CD05-4774-A983-632C5D83AC62}
\Device\{7E87BC81-8C58-4E05-9FA0-7897A6AA5CCE}
\Device\{3A1A3EFC-A9DE-4BCA-BAF6-81C7074487E0}
\Device\{8D41EDFC-04AC-4537-B5D5-0D54EB51A023}

당신이해야 할 모든 상단에 넣어

\Device\{B498E7DE-7257-48F6-AD32-60E470030F05}
\Device\{1DF89CE3-CAAD-4EB7-A53F-AD16BC1D5EFD}
\Device\{70126DBE-B44D-4392-9417-0CABD6E384B1}
\Device\{D5127F8E-E7BB-4661-AE5A-A922614173D0}
\Device\{C44039AB-6801-4A9B-A736-3B12782FF411}
\Device\{85231D0F-CD05-4774-A983-632C5D83AC62}
\Device\{7E87BC81-8C58-4E05-9FA0-7897A6AA5CCE}
\Device\{3A1A3EFC-A9DE-4BCA-BAF6-81C7074487E0}
\Device\{8D41EDFC-04AC-4537-B5D5-0D54EB51A023}

그게 다야. 다시 부팅 할 필요가 없습니다.

이제 Windows는 VPN 연결을 사용할 때 shrew vpn nic에 지정된 DNS를 사용합니다.


답변

이것은 당신이나 다른 사람들에게 도움이 될 수 있으므로, 나열된 dns의 Windows 라운드 로빈 사용을 비활성화하여 dns 사용을보다 예측 가능하게 만들 수 있습니다. 를 설정해보십시오 RoundRobin=0HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DNS\Parameters( 참조 하는 DNS 라운드 robing을 비활성화).

서버 회전을위한 “시간 초과”도 있습니다. 서버를 0 으로 설정해보십시오 .

 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
 ServerPriorityTimeLimit=0


답변

무작위로 결정하지 않습니다. DNS 서버가있는 회사에서 IP를 가져 오는 라우터에 연결되어 있습니다. IP를 다른 DNS (예 : OpenDns)로 수동 변경하지 않는 한 요청을 받습니다 . 또는 자신의 DNS 서버를 사용하기로 결정했을 수도 있습니다. 그것도 작동합니다. 네트워크 센터에서 IP 주소를 입력하기 만하면됩니다. 그렇습니다. 수동으로 설정해야합니다.

C:\Windows\System32확장명없이 “호스트”라는 파일을 조정할 수도 있습니다 . 표준 DNS로 보내지 않고 URL 요청을 리디렉션 할 수 있습니다. 로컬 서버로 (포트 80을 실행하고 청취해야 함)


답변