이것은 매우 오래된 질문이지만 인터넷이 어떻게 작동 하는지 알아내는 데 동일한 질문이 많이있었습니다 . 다른 답변과 마찬가지로 네트워킹 책은 BGP 및 DNS에 대한 개요를 제공하지만 여전히 혼란 스럽습니다. 예를 들어, a.root-servers.net에서 m.root-servers.net은 루트 서버로 제공되지만 DNS 서비스가 DNS를 직접 사용할 수없는 경우 해당 서버를 찾을 위치를 어떻게 알 수 있습니까?
이 답변에서는 IP, 서브넷, DNS 등의 기본 사항을 알고 있다고 가정합니다. 나는 "갭"을 다루고 있으며 아마도 질문자는 인터넷의 작동 방식에 대해 알고있을 것입니다. 결코 내가 전문가는 아니지만 이것이 격차에 대한 나의 이해입니다.
IP 주소
가장 먼저 알아야 할 것은 인터넷이 ARPANET으로 시작했을 때 모두가 IP 주소에 대한 모든 사람과 라우팅 테이블이 핸드 코딩되었다는 것을 알고 있다는 것입니다. IP 할당 프로세스가 전화를 통해 수행되었다고 가정합니다. 인터넷이 너무 커짐에 따라 BGP는 여러 네트워크 (AS)에서 공용 IP가 있음을 알리거나 AS를 통해 다른 AS로 퍼블릭 IP를 얻을 수 있다고 광고했습니다. AS는 가지고 있지 않은 IP를 광고하지 않을 것이라는 신뢰가있었습니다.
오늘날에는 많은 신뢰가 없습니다. 대신, ISP는 IANA와 지역 당국으로부터 각 AS에 대한 IP 할당을 다운로드하여 인증 할 수 있습니다. 이러한 다운로드는 이제 공개 키 암호화를 통해 인증됩니다. 따라서 IANA가 "IP 주소를 할당"하면 레코드가 변경됩니다 (또는 실제로 지역 당국이 레코드를 변경 함). 다른 모든 AS는 레코드를 다운로드하고 인증 할 수 있습니다.
ISP가 다른 ISP의 IP 주소를 가지고 있다는 단어를 취할 수 없기 때문에 이러한 레코드는 중요합니다. ISP는 BGP 알림을 인증 된 IP 레코드와 비교할 수 있습니다. BGP 알림이 IANA 및 RIR의 인증 된 레코드 이외의 다른 AS로 마지막 AS를 표시하는 경우 BGP 알림은 자체 라우팅을 변경하지 않습니다.
더 일반적으로, 불량 ISP 또는 AS는 자신이 갖고 있지 않은 AS를 통해 경로 를 가지고 있다고 광고 할 수 있습니다. AS1에는 IP가 등록되어 있으며 AS5는 현재 AS5-> AS4-> AS3-> AS1-> IP를 사용합니다. AS2는 AS5-> AS2-> AS1-> IP의 경로를 AS5에 알립니다. AS2를 제외하고 실제로 AS1과 연결되어 있지 않습니다. AS1의 호스팅 고객을 실망시킬 수 있습니다. 또는 AS2는 AS5 및 AS1과의 멀티 홈 배열을 갖춘 소규모 회사 네트워크 일 수 있습니다. 라우터가 잘못 구성되어 소규모 회사 네트워크를 통한 경로를 알립니다. 거의 모든 ISP가 BGP 고객의 광고를 버리고 BGP 광고를 종료하는 경우에만 전달합니다.
아마도 파키스탄은 그러한 IP 하이재킹을 통해 파키스탄에서 유튜브를 차단하려고 시도하고 파키스탄 외부의 AS가 BGP 광고가 올바르다 고 가정했기 때문에 파키스탄 외부에서도 유튜브를 차단하는 경우가 있습니다.
결국, 그러한 IP 하이재킹에 대한 완벽한 방어는 없습니다. 미국과 같은 대부분의 국가에서 그러한 BGP 남용은 계약 위반으로 처벌 될 수 있으며 다른 ISP는 해당 AS와의 피어링 연결을 차단해야합니다. ISP는 수 또한 전체 IANA와 RIR 장치를 무시하고 자신의 서버에 IP 주소를 리디렉션합니다. ISP에 CA의 개인 키가 없다고 가정하면 https 사이트에서는 작동하지 않습니다. 경제적으로 얻을 것이 거의 없습니다. 이집트와 같은 권위주의 정부에서만 최근에 ISP의 모든 BGP 광고를 국가 외부에서 차단했습니다.
DNS 서버
IP 테이블이 정확하면 DNS가 다소 단순 해집니다. 루트 서버는 모두 DNS 서버 코드에서 하드 코드 된 IP 주소입니다. a.root-servers.net은 198.41.0.4이며 IP 주소는 하나의 AS 내에서 애니 캐스트됩니다. a.root-servers.net의 경우 AS는 Verisign이며 5 개의 서로 다른 사이트가 있습니다. 미국의 경우 두 사이트는 뉴욕과 LA입니다. 애니 캐스팅은 주소가 123 Main Street 인 경우와 같으며 "현재 어느 도시에 있든 상관없이 123 Main Street로 이동하면 내 업체 중 하나를 찾을 수 있습니다"라고 말했습니다. NY와 LA의 123 Main Street는 모든 최상위 도메인에 대해 동일한 답변을 제공합니다. AS (이 경우 Verisign)는 OSPF, 내부 BGP 및 기타 라우팅 프로토콜을 통해 가장 적은 홉이있는 서버를 내부적으로 파악합니다. 따라서 시카고의 라우터는 뉴욕으로가는 동안 덴버의 라우터는 LA로 갈 수 있습니다.
루트 서버 중 하나가 com 최상위 도메인의 IP 주소를 제공합니다. 그런 다음 해당 도메인은 yoursite.com의 도메인을 제공합니다. 레지스트라는 실제로 최상위 도메인을 운영하는 사람과 계약을 맺고 있습니다. 따라서 최상위 도메인에 현재 yoursite.com에 대한 레코드가 없으면 who-is 서버에 레코드를 추가 할 수 있습니다. 그런 다음 등록 기관이 yoursite.com의 DNS 레코드에 제공 한 액세스 권한으로 DNS 서버의 레코드를 변경하여 IP 주소로 이동합니다.
DNS는 모두 올바른 위치로 이동하는 여러 IP 주소에 의존하기 때문에 AS가 IP 레지스트리를 인증 한 다음 BGP 할당을 수행 할 때와 동일한 문제가 있습니다. 이것이 http 웹 사이트의 핵심입니다. Https에는 인증서 보호 기능이 추가되었습니다. 따라서 ISP는 자신의 루트 서버 및 최상위 도메인 서버에 대한 요청을 citibank.com에 대한 자체 IP를 제공하도록 재 라우팅 할 수 없습니다. 만약 그렇다면, 사용자에게 부여 된 IP 주소는 다른 IP 주소가되지만 서버에는 Citibank의 개인 키가 없습니다.