1. Bibliothek
  2. 라우팅과 네트워크
  3. 인터넷 라우팅

Aktualisiert vor 1 Monat

해외여행 중에 집에서는 완벽하게 열리던 웹사이트가 접속되지 않는 경험을 해본 적 있으신가요? 아니면 다른 나라의 동료가 여러분은 접속할 수 없는 서비스를 이용하고 있다는 말을 들어본 적 있으신가요? 그렇다면 여러분은 인터넷의 본질적인 특성을 발견하신 겁니다. 인터넷은 하나의 네트워크가 아닙니다. 수천 개의 독립적인 네트워크가 느슨하게 이어진 구조로, 각 네트워크가 여러분의 트래픽을 어떻게 처리할지 독자적으로 결정합니다.

여러분의 패킷은 "인터넷"을 여행하는 게 아닙니다. 낯선 이들의 연결 고리를 따라 이동하며, 각 구간에서 목적지까지 도달하도록 도와줄지 말지를 독립적으로 결정합니다.

위치가 중요한 이유

인터넷에서 두 지점 사이에 단 하나의 "올바른" 경로란 존재하지 않습니다. 경로상의 각 네트워크는 다음을 기준으로 트래픽을 어디로 전달할지 독립적으로 결정합니다:

라우팅 정책: ISP마다 트래픽 교환에 관한 협약이 다릅니다. 유럽의 ISP는 패킷을 런던을 통해 라우팅할 수 있고, 아시아의 ISP는 싱가포르를 통해 라우팅할 수 있습니다.

네트워크 토폴로지: 네트워크를 연결하는 물리적 인프라는 지역마다 다릅니다. 일부 지역은 연결이 풍부하지만, 다른 지역은 몇 안 되는 핵심 연결에 의존합니다.

관리적 결정: 국가, 조직, 네트워크는 허용하는 트래픽에 영향을 미치는 필터와 정책을 시행합니다.

지리적 최적화: CDN과 클라우드 서비스 제공업체는 트래픽을 가까운 서버로 유도하므로, 다른 위치의 사용자들은 실제로 서로 다른 서버에 연결됩니다.

라우팅 경로 장애

목적지 서버가 정상적으로 작동하고 있어도, 한 위치에서는 웹사이트에 접근할 수 없는 반면 다른 위치에서는 완벽하게 접속되는 경우가 있습니다. 문제는 서버가 아니라 경로에 있습니다.

뉴욕의 ISP가 유럽 서버로의 트래픽을 손상된 해저 케이블을 통해 라우팅한다고 상상해 보세요. 한편 캘리포니아의 사용자들은 다른 케이블을 통해 연결되어 아무런 문제도 겪지 않습니다. 같은 목적지, 다른 경로, 다른 결과입니다.

이런 일이 발생하는 이유는 인터넷 라우팅이 중앙에서 조율되지 않기 때문입니다. 각 자율 시스템은 자체적인 결정을 내립니다. 한 경로가 끊겨도 모든 경로에 자동으로 영향을 미치지는 않습니다.

피어링과 트랜짓

ISP들은 일부 네트워크와는 피어링 관계—트래픽을 직접 교환하는 협약—를 맺고, 다른 네트워크와는 맺지 않습니다. 두 ISP가 직접 피어링하지 않을 경우, 그 사이의 트래픽은 중개자를 통해 이동해야 합니다.

이로 인해 다음과 같은 상황이 벌어집니다. ISP A의 사용자는 직접 피어링을 통해 서비스에 즉시 접근하고, ISP B의 사용자는 여러 트랜짓 제공업체를 거쳐 라우팅되어 지연과 장애 지점이 추가됩니다. 그리고 ISP C의 사용자는 트랜짓 경로가 전혀 없어 서비스에 아예 접근할 수 없습니다.

서비스 자체는 변하지 않았습니다. 여러분과 서비스 사이의 네트워크가 여러분의 경험을 결정합니다.

지리적 콘텐츠 제한

일부 접근성 차이는 의도적입니다. 서비스는 비즈니스 또는 법적 이유로 위치에 따라 접근을 제한합니다.

스트리밍 서비스는 특정 국가를 차단하여 라이선스 제한을 적용합니다. 금융 서비스는 특정 지역으로 접근을 제한하여 규정을 준수합니다. 클라우드 제공업체는 적절한 라이선스가 없는 지역에서 서비스를 비활성화합니다.

이러한 제한은 보통 IP 주소를 국가에 매핑하는 지리 위치 데이터베이스를 사용하여 해당 트래픽을 차단하거나 다른 곳으로 돌립니다. 사용자 입장에서는 서비스가 단순히 작동하지 않는 것처럼 보이지만, 의도한 대로 정확히 작동하는 것입니다.

검열과 필터링

정부와 조직은 위치에 따라 달라지는 필터링을 시행합니다.

국가 방화벽은 국가 수준에서 특정 도메인, IP 주소, 또는 프로토콜을 차단합니다. 기업 네트워크는 사무실마다 다른 정책을 적용합니다. ISP는 현지 규정에 따라 콘텐츠를 필터링합니다.

네트워크 수준에서 필터링이 발생하면, 해당 네트워크 안의 사용자에게는 목적지가 접근 불가능한 것으로 보입니다. 반면 필터링된 네트워크 바깥의 사용자는 동일한 리소스에 아무런 문제 없이 접근합니다. 목적지는 이동하지 않았습니다. 여러분과 목적지 사이의 네트워크가 여러분의 접근을 허용하지 않기로 결정한 것입니다.

BGP: 인터넷의 불안정한 우편 시스템

BGP(Border Gateway Protocol)는 네트워크들이 서로 어떤 목적지에 도달할 수 있는지 알려주는 방식입니다. 그러나 BGP 공지는 인터넷 전체에 균일하게 전파되지 않습니다.

목적지 네트워크는 IP 접두사를 일부 피어에게만 공지하고 다른 피어에게는 하지 않을 수 있습니다. BGP 커뮤니티를 통해 경로에 특별 처리 태그를 붙일 수 있어, 서로 다른 ISP가 동일한 목적지를 다르게 처리하게 됩니다. ISP에 의한 경로 필터링으로 인해 유효한 BGP 공지가 인터넷 일부에서 무시될 수도 있습니다.

결과적으로, 일부 네트워크는 목적지에 도달하는 방법을 알고 있는 반면 다른 네트워크는 그 목적지가 존재하는지조차 알지 못하는 상황이 발생합니다.

DNS: 첫 번째 장애 지점

접근성 문제는 패킷이 목적지에 도달하려 하기 전에 이미 시작되는 경우가 많습니다. DNS 확인—도메인 이름을 IP 주소로 변환하는 과정—은 위치에 따라 달라집니다.

Geo-DNS는 쿼리하는 위치에 따라 다른 IP 주소를 반환합니다. 북미 사용자는 북미 서버의 IP를 받고, 유럽 사용자는 유럽 서버의 IP를 받습니다. 특정 지역의 서버에 문제가 생기면, 해당 지역으로 안내된 사용자만 영향을 받습니다.

DNS 필터링은 특정 도메인에 대한 접근을 차단합니다. ISP 수준 필터링은 차단된 도메인을 오류 페이지로 돌립니다. 기업 필터링은 특정 카테고리의 콘텐츠를 차단합니다. 국가 필터링은 정부 검열을 실행합니다. 이런 경우 이름 확인 자체가 실패하지만, 이는 해당 네트워크를 사용하는 사람들에게만 일어나는 일입니다.

DNS 전파 지연은 레코드가 변경될 때 모든 DNS 서버에 동시에 업데이트가 도달하지 않는다는 것을 의미합니다. 일부 사용자는 즉시 새 IP 주소를 확인하고, 다른 사용자는 더 이상 작동하지 않을 수 있는 이전 주소를 계속 받게 됩니다.

위치 기반 문제 진단

어떤 것이 한 위치에서는 작동하고 다른 위치에서는 작동하지 않을 때, 양쪽에서 경험을 비교해 보세요.

경로 비교: 두 위치에서 traceroute를 실행하세요. 경로가 다르거나 특정 홉에서 실패한다면 라우팅 문제를 가리킵니다.

DNS 응답 확인: 두 위치에서 쿼리하세요. IP 주소가 다르다면 Geo-DNS이거나 서로 다른 인프라를 사용하는 것입니다.

특정 IP 테스트: 도메인 이름 대신 IP 주소로 직접 연결해 보세요. 도메인으로는 안 되는데 IP로는 된다면, DNS 필터링이나 잘못된 설정이 원인입니다.

BGP 가시성 확인: looking glass 서비스를 사용하세요. 한 위치에서는 BGP 경로가 보이고 다른 곳에서는 보이지 않는다면, 해당 목적지가 인터넷 일부에 경로를 공지하지 않는 것입니다.

실제 사례

클라우드 리전이 중단되면, 해당 리전으로 라우팅된 사용자만 영향을 받습니다. AWS US-East-1이 다운되면 Geo-DNS는 미국 사용자를 계속 장애 리전으로 안내하지만, EU-West-1로 라우팅된 유럽 사용자는 아무런 이상을 느끼지 않습니다.

BGP 하이재킹이 발생할 때—악의적이거나 우발적으로 타인의 경로를 공지할 때—목적지는 인터넷의 특정 부분에서 접근 불가능해집니다. 하이재커와 더 가까운 ISP는 잘못된 경로를 수용하고, 먼 ISP는 계속 정상 경로를 사용합니다.

CDN 노드가 과부하 상태가 되면, 그 노드 인근의 사용자는 장애를 경험하고 더 여유 있는 노드로 라우팅된 사용자는 계속 정상적으로 이용합니다.

접근성 향상

멀티호밍: 여러 업스트림 ISP를 통해 네트워크를 공지하면 다양한 라우팅 경로가 생성되어 단일 제공업체에 대한 의존도가 줄어듭니다.

애니캐스트: 여러 위치에서 동일한 IP 주소를 공지하는 방식입니다. 한 위치에 접근할 수 없게 되면 트래픽이 자동으로 가장 가까운 다음 위치로 라우팅됩니다.

지리적 모니터링: 다양한 위치에서 접근성을 확인하세요. 모니터링 위치에서는 서비스가 정상으로 보일 수 있지만, 다른 곳에서는 접근이 불가능할 수 있습니다.

지능형 DNS: 장애를 감지하면 비정상 위치로의 트래픽 유도를 중단하고, 자동으로 사용자를 정상 인프라로 라우팅합니다.

인터넷에는 중심도, 권한도, 어떤 두 지점이 서로 연결될 수 있다는 보장도 없습니다. 현재 위치에서 무언가에 접근할 수 없다면, 그것이 반드시 고장났다는 뜻이 아닙니다—여러분과 목적지 사이의 특정 네트워크 연결 고리에 공백이 있는 것입니다. 다른 누군가의 연결 고리는 멀쩡할 수 있습니다.

이를 이해하면 문제를 진단하고, 인터넷의 일부가 실패해도 접근 가능한 상태를 유지하는 서비스를 설계하는 데 큰 도움이 됩니다.

위치에 따른 접근성에 관한 자주 묻는 질문

친구는 접속되는데 나는 안 되는 웹사이트가 있는 이유가 뭔가요?

여러분과 친구는 서로 다른 ISP를 사용하며, 이 ISP들은 다른 네트워크를 통해 트래픽을 라우팅합니다. 웹사이트로 가는 여러분의 경로는 문제가 있거나, 콘텐츠를 필터링하거나, 목적지에 도달하는 방법을 모르는 네트워크를 지날 수 있습니다. 반면 친구의 경로는 그런 문제를 모두 피해 갑니다.

웹사이트는 내가 어디 있는지 어떻게 알 수 있나요?

대부분의 위치 파악은 IP 범위를 지리적 지역에 매핑하는 IP 주소 데이터베이스를 통해 이루어집니다. 여러분의 ISP IP 주소는 특정 위치에 등록되어 있으며, 서비스는 이 정보를 사용해 여러분이 대략 어디에 있는지 파악합니다. VPN은 다른 위치의 IP 주소를 제공함으로써 작동합니다.

우리나라에서 차단된 웹사이트는 실제로 접근 불가능한가요?

보통 웹사이트 자체는 완벽하게 작동합니다—차단은 여러분과 사이트 사이의 네트워크 경로에서 발생합니다. VPN이나 프록시를 사용하면 차단을 우회하는 다른 경로로 트래픽을 라우팅합니다. 목적지는 변하지 않았습니다. 여러분이 그곳에 도달하기 위한 다른 네트워크 연결 고리를 찾은 것뿐입니다.

같은 웹사이트가 어떤 위치에서는 더 빠르게 로드되는 이유는 무엇인가요?

CDN은 여러 위치에 콘텐츠 사본을 배치합니다. CDN 노드 근처의 사용자는 빠른 응답을 받고, 노드에서 먼 사용자는 더 높은 지연을 경험합니다. 또한 라우팅 경로가 속도에 영향을 미칩니다—네트워크 홉이 많을수록 일반적으로 지연도 늘어납니다.

War diese Seite hilfreich?

😔
🤨
😃