이 주제에 대한 RFC의 의견을 아는 것이 좋으며, 우리는 이미 그에 대한 권위있는 답변을 가지고 있지만 실제적인 목적으로 DJBDNS의 저자 인 Daniel J. Bernstein 교수의 조언을 매우 즐겁게 찾을 수 있습니다.
http://cr.yp.to/djbdns/tcp.html#why (2003-01-16)
TCP 쿼리는 언제 전송됩니까?
다음 상황 중 하나 인 경우 TCP 쿼리에 응답하도록 DNS 서버를 구성해야합니다.
- 512 바이트보다 큰 레코드 세트를 공개하려고합니다. (거의 항상 실수입니다.)
- 발신 영역 전송 (예 : 타사 서버)을 허용하려고합니다.
- TCP 서비스를 설정할 때까지 상위 서버가 이름을 위임하지 않습니다.
이러한 상황이 아닌 경우 TCP 서비스를 제공 할 필요가 없으며 설정하지 않아야합니다. DNS-over-TCP는 DNS-over-UDP보다 훨씬 느리고 본질적으로 서비스 거부 공격에 훨씬 더 취약합니다. (이것은 BIND에도 적용됩니다.)
그는 DNSSEC에 대한 명시적인 언급을 생략했습니다. 그 이유는 DJB에 따르면 DNSSEC은 "항상 실수"범주에 속하기 때문입니다. 자세한 내용은 https://cr.yp.to/djbdns/forgery.html 을 참조하십시오. DJB에는 DNSCurve ( http://dnscurve.org/) 라는 대체 표준이 있는데,이 표준 은 OpenDNS와 같은 일부 공급자가 이미 독립적으로 채택했습니다. 관심있는 부분 : /security/45770/if-dnssec-is-so-questionable-why-is-it-ahead-of-dnscurve-in-adoption .
DJBDNS 설정에 관한 위의 문서가 그 기능을 나타내는 것이라면, AXFR for TCP만을 지원하는 것으로 보입니다. 많은 공급자들이 여전히 DJBDNS를 사용하고 있기 때문에 별도의 노력 없이도 DNS over TCP를 지원하지 않을 것입니다.
PS : DJB는 실제로 자신이 설교하는 것을 실천합니다. 자신의 서버 (1)은 DNSCurve를 실행하고 (2) TCP에 제대로 응답하지 않습니다. +notcp
성공 만 가능합니다 (기본값).
% dig +trace @ordns.he.net +notcp cr.yp.to | tail
yp.to. 86400 IN NS uz5dz39x8xk8wyq3dzn7vpt670qmvzx0zd9zg4ldwldkv6kx9ft090.ns.yp.to.
yp.to. 86400 IN NS uz5jmyqz3gz2bhnuzg0rr0cml9u8pntyhn2jhtqn04yt3sm5h235c1.yp.to.
;; Received 300 bytes from 216.74.32.100#53(tonic.to) in 151 ms
cr.yp.to. 600 IN A 131.155.70.11
cr.yp.to. 600 IN A 131.155.70.13
yp.to. 3600 IN NS uz5jmyqz3gz2bhnuzg0rr0cml9u8pntyhn2jhtqn04yt3sm5h235c1.yp.to.
yp.to. 3600 IN NS uz5dz39x8xk8wyq3dzn7vpt670qmvzx0zd9zg4ldwldkv6kx9ft090.yp.to.
;; Received 244 bytes from 131.155.70.13#53(uz5jmyqz3gz2bhnuzg0rr0cml9u8pntyhn2jhtqn04yt3sm5h235c1.yp.to) in 14 ms
반면에 a +tcp
는 실패합니다 (선택한 서버에 따라 다른 오류 메시지가 나타남).
% dig +trace @ordns.he.net +tcp cr.yp.to | tail
yp.to. 86400 IN NS uz5hjgptn63q5qlch6xlrw63tf6vhvvu6mjwn0s31buw1lhmlk14kd.ns.yp.to.
;; Received 300 bytes from 216.74.32.100#53(tonic.to) in 150 ms
;; Connection to 131.155.71.143#53(uz5dz39x8xk8wyq3dzn7vpt670qmvzx0zd9zg4ldwldkv6kx9ft090.ns.yp.to) for cr.yp.to failed: connection refused.
;; communications error to 131.155.70.13#53: end of file
;; Connection to 131.155.71.143#53(uz5dz39x8xk8wyq3dzn7vpt670qmvzx0zd9zg4ldwldkv6kx9ft090.ns.yp.to) for cr.yp.to failed: connection refused.
;; communications error to 131.155.70.13#53: end of file
;; Connection to 131.155.71.143#53(uz5dz39x8xk8wyq3dzn7vpt670qmvzx0zd9zg4ldwldkv6kx9ft090.ns.yp.to) for cr.yp.to failed: connection refused.
;; communications error to 131.193.32.147#53: end of file
;; connection timed out; no servers could be reached