루트 이름 서버가 모든 DNS 요청을 처리 할 수 ​​있습니까?


18

며칠 전에 DNS에 대해 읽었고 요청이 처리되는 방법을 배웠습니다. www.example.com으로 이동하면 요청이 루트 이름 서버로 이동하여 누가 .com 주소를 소유하는지 확인한 다음 다른 요청은 다른 로컬 DNS 서버로 이동하여 example.com을 누가 소유하는지 확인합니다. 주소 등.

13 개의 루트 네임 서버가 ddos ​​: ed에 속하지 않고 지구의 수십억 인터넷 사용자가 수행 한 모든 요청을 동시에 처리 할 수있는 기술적 인 방법은 무엇입니까?


11
그런데 DNS 작동 방식에 대한 요약이 잘못되었습니다. 루트 이름 서버에 묻는 질문은 ".com을 누가 소유하고 있습니까?" "www.example.com의 IP 주소는 무엇입니까?" 루트 이름 서버는 .com 소유자에 대한 참조로 응답합니다. 루트 이름 서버는 전체 쿼리를 봅니다 (통계, 데이터 마이닝 등에 유용합니다).
bortzmeyer

@bortzmeyer 전체 이름이 루트 서버로 전송되는 주된 이유는 이름의 모든 점이 반드시 권한의 경계가 아니기 때문입니다. 실제로 TLD 바로 아래에는 항상 권한의 경계가 있다고 생각하지만 원칙적으로는 보장되지 않습니다. 따라서 미래에 어느 시점에서 루트 서버에 의해 두 번째 계층이 처리되는 특별한 TLD를 도입하기로 결정될 수 있습니다. 그러면 루트 서버를 쿼리 할 때 a.b.c.example누가 책임을지는 c.example것이 아니라 누가 책임을 지는지 알 수 example있습니다.
kasperd

답변:


51

13 개의 서버가 아니라 13 개의 고 가용성 서버 클러스터 입니다.

무엇보다도 루트 네임 서버 운영자는 정상 트래픽로드 ( RFC 2870 )의 3 배를 처리 할 수있는 충분한 용량을 가지고 있어야합니다 . 이것은 다소 큰 클러스터로 이어집니다.

그러나 루트 네임 서버는 최상위 도메인에 대한 반응 자체, 즉 봉사 com., net., uk., ae., 등, 루트가이 정보를 캐시 할 수 쿼리 네임 서버 최대 48 시간이 극적으로 루트 네임 서버에 부하를 감소시킨다. 이것은 더 작은 클러스터로 이어집니다.

루트 네임 서버는 53 개국의 130 개가 넘는 물리적 위치에 있습니다. 13 개의 서버 이름 만 있으면 이는 IPv4 애니 캐스트의 마법을 통해 이루어집니다.

루트 네임 서버는 자체 웹 사이트를 가지고 있으며 ,이 사이트 는 흥미로운 자료를 찾을 수 있습니다.


48 시간은 루트에있는 NS 레코드의 TTL입니다. 그러나 TLD 자체의 네임 서버로 대체 할 수 있습니다. 예를 들어 .jp의 경우 24 시간입니다.
bortzmeyer

우리 여기서 루트 네임 서버에 대해 이야기하고 있습니다. :)
Michael Hampton

RFC 2870은 오늘날 매우 구식입니다. dDoS 공격으로 인해 루트 이름 서버는 일반 트래픽의 3 배 이상에 응답 할 수 있어야합니다.
bortzmeyer

8
53 개국? 우연의 일치입니까 아니면 DNS 쿼리 포트처럼 선택 했습니까? : D
amyassin

10

그들은하지 않습니다. 루트 네임 서버는 네임 서버가 무엇을 처리하는지 알려 주기만하면 com됩니다. 그때부터는 내부 도메인을 처리하기 위해 해당 사이트로 이동할 필요가 없습니다 com. 루트 네임 서버는 누가 누구를 소유하는지 모른다 example.com. 그들은 com 네임 서버가 아닌 루트 네임 서버입니다.

슬림 슈퍼 히어로가 말한 것도 사실입니다. 많은 대용량 네임 서버는 애니 캐스트 를 사용 하여 전세계 여러 서버에서 단일 IP 주소를 제공합니다.


그러나 10 억 명의 사용자가 같은 시간에 다른 .com 주소로 서핑하는 경우 루트 이름 서버가 모든 요청을 처리합니까?
Rox

3
우선, 사용자는 재귀 이름 서버 (다른 이름 서버에 연결하여 답을 얻음) 와만 대화하고 루트 이름 서버는 재귀 적이 지 않습니다 (이미 알고있는 로컬 정보 만 제공함). 사용자는 루트 네임 서버를 요청해야 (보통 ISP가 제공하는) 자신의 네임 서버 이야기 한 번 핸들 그 서버 com.
David Schwartz

1
@DavidSchwartz는 정확합니다. 따라서 10 억 명의 사용자로부터 10 억 건의 요청이 아닌 1 백만 건의 ISP에서 약 100 만 건의 요청 만받을 것입니다.
Shadur

@Shadur : com다른 한편으로 , 네임 서버 는 훨씬 더 큰 타격을 받아야합니다.
David Schwartz

1
그리고 나는 그것들이 적절하게 확장되고 클러스터되어 있다고 확신합니다.
Shadur

6

각 루트 서버는 실제로 서버가 아니며 거대한 서버 클러스터입니다. 이 외에도 DNS 응답이 캐시되므로 모든 요청이 루트 서버에 도달하지는 않습니다.


3

참고 사용자가 루트 서버를 사용하지 않습니다. 일반적으로 인터넷 서비스 제공 업체가 제공 한 DNS 서버를 사용합니다.이 서버는 필요한 정보가 로컬 캐시에있는 경우 즉시 응답 할 수 있습니다. 캐시되지 않은 경우에만 업스트림 DNS 서버가 요청되고 결국 루트 서버 만 요청됩니다 (그리고 응답이 캐시 됨).


0

실제로 전세계의 많은 서버로 확인되는 13 개의 애니 캐스트 IP 주소입니다. 필요한 경우 링크 를보고 해당 서버를 찾을 수 있습니다 . 이러한 모든 서버는 관련 기관에서 관리합니다.

우리가 여전히 13 개의 IP 주소 (및 동일한 IP 주소를 가진 서버 클러스터) 만 사용한다는 사실은 패킷 크기가 512 바이트를 초과하지 않도록하는 것입니다. 그럼 왜? 우리는 왜이 패킷 크기를 넘어 설 수있는 TCP를 가지고 있습니까? 문제는 TCP에 TCP 연결을 설정하기위한 여러 단계와 절차가 포함되어있어 오버 헤드가 매우 높다는 것입니다. 이 때문에 DNS 쿼리의 전체 프로세스가 느려집니다.

DNS와 같은 것은 결코 느리지 않을 수 있으므로 우리는 여전히 같은 오래된 시스템을 사용합니다.


쿼리에 대한 답변은 .더 이상 512 바이트에 맞지 않습니다. 이제 IPv6이 필요하기 때문에 답이 811 바이트로 늘어났습니다. 단일 응답으로 리턴 될 수있는 EDNS 사용. 그러나 .몇 번의 왕복이 쇼 토퍼 일 수 있도록 자주 조회 할 필요는 없습니다. 재귀가 루트의 IP 주소에 대한 최신 변경 사항을 배우는 것이 기본적으로 필요하지만 거의 변경되지 않습니다.
kasperd

@kasperd 확실하지 않습니다. 일반 A 레코드 또는 AAAA 레코드에 대해 dig + trace를 확인했으며 모든 응답 (루트 레벨 서버, 최상위 서버 또는 네임 서버)이 508 바이트에서 509 바이트 미만입니다. 그것에 대해 조금 더 설명해 주시겠습니까?
Jaison

전체 응답을 얻으려면 EDNS 또는 TCP를 사용해야합니다. EDNS가없는 UDP 요청은 512 바이트를 초과하는 응답을받을 수 없습니다.
kasperd
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.