한국-나이지리아 아부자 간 라우팅 경로 및 AS-Path 분석

by gg582 · 2026-06-26 07:26:21 · 57 views

목차

한국-나이지리아 아부자 간 라우팅 경로 및 AS-Path 분석

실제 현재 블로그 서버를 계측한 결과는 아래와 같다.

목적지별 지연 시간 및 손실률 비교

yjlee@elegant:~$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=24.2 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=24.6 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=23.9 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=117 time=23.5 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=117 time=24.1 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=117 time=23.8 ms
64 bytes from 8.8.8.8: icmp_seq=7 ttl=117 time=24.1 ms
64 bytes from 8.8.8.8: icmp_seq=8 ttl=117 time=23.6 ms
64 bytes from 8.8.8.8: icmp_seq=9 ttl=117 time=24.2 ms
64 bytes from 8.8.8.8: icmp_seq=10 ttl=117 time=23.6 ms
64 bytes from 8.8.8.8: icmp_seq=11 ttl=117 time=23.8 ms
64 bytes from 8.8.8.8: icmp_seq=12 ttl=117 time=23.7 ms
64 bytes from 8.8.8.8: icmp_seq=13 ttl=117 time=24.4 ms
64 bytes from 8.8.8.8: icmp_seq=14 ttl=117 time=24.3 ms
64 bytes from 8.8.8.8: icmp_seq=15 ttl=117 time=23.5 ms
64 bytes from 8.8.8.8: icmp_seq=16 ttl=117 time=24.4 ms
64 bytes from 8.8.8.8: icmp_seq=17 ttl=117 time=24.3 ms
64 bytes from 8.8.8.8: icmp_seq=18 ttl=117 time=24.0 ms
64 bytes from 8.8.8.8: icmp_seq=19 ttl=117 time=24.0 ms
64 bytes from 8.8.8.8: icmp_seq=20 ttl=117 time=24.2 ms
64 bytes from 8.8.8.8: icmp_seq=21 ttl=117 time=23.8 ms
64 bytes from 8.8.8.8: icmp_seq=22 ttl=117 time=24.1 ms
64 bytes from 8.8.8.8: icmp_seq=23 ttl=117 time=24.0 ms
64 bytes from 8.8.8.8: icmp_seq=24 ttl=117 time=23.5 ms
64 bytes from 8.8.8.8: icmp_seq=25 ttl=117 time=24.1 ms
64 bytes from 8.8.8.8: icmp_seq=26 ttl=117 time=23.4 ms
64 bytes from 8.8.8.8: icmp_seq=27 ttl=117 time=24.2 ms
64 bytes from 8.8.8.8: icmp_seq=28 ttl=117 time=23.5 ms
64 bytes from 8.8.8.8: icmp_seq=29 ttl=117 time=24.0 ms
64 bytes from 8.8.8.8: icmp_seq=30 ttl=117 time=24.3 ms
64 bytes from 8.8.8.8: icmp_seq=31 ttl=117 time=24.2 ms
64 bytes from 8.8.8.8: icmp_seq=32 ttl=117 time=24.4 ms
64 bytes from 8.8.8.8: icmp_seq=33 ttl=117 time=24.2 ms
64 bytes from 8.8.8.8: icmp_seq=34 ttl=117 time=24.4 ms
64 bytes from 8.8.8.8: icmp_seq=35 ttl=117 time=24.1 ms
64 bytes from 8.8.8.8: icmp_seq=36 ttl=117 time=23.6 ms
64 bytes from 8.8.8.8: icmp_seq=37 ttl=117 time=24.1 ms
64 bytes from 8.8.8.8: icmp_seq=38 ttl=117 time=23.8 ms
64 bytes from 8.8.8.8: icmp_seq=39 ttl=117 time=24.0 ms
64 bytes from 8.8.8.8: icmp_seq=40 ttl=117 time=24.4 ms
64 bytes from 8.8.8.8: icmp_seq=41 ttl=117 time=24.5 ms
64 bytes from 8.8.8.8: icmp_seq=42 ttl=117 time=24.3 ms
64 bytes from 8.8.8.8: icmp_seq=43 ttl=117 time=24.5 ms
64 bytes from 8.8.8.8: icmp_seq=44 ttl=117 time=24.3 ms
64 bytes from 8.8.8.8: icmp_seq=45 ttl=117 time=23.9 ms
64 bytes from 8.8.8.8: icmp_seq=46 ttl=117 time=24.1 ms
64 bytes from 8.8.8.8: icmp_seq=47 ttl=117 time=24.3 ms
64 bytes from 8.8.8.8: icmp_seq=48 ttl=117 time=24.4 ms
64 bytes from 8.8.8.8: icmp_seq=49 ttl=117 time=24.2 ms
64 bytes from 8.8.8.8: icmp_seq=50 ttl=117 time=24.0 ms
64 bytes from 8.8.8.8: icmp_seq=51 ttl=117 time=24.2 ms
64 bytes from 8.8.8.8: icmp_seq=52 ttl=117 time=24.3 ms
64 bytes from 8.8.8.8: icmp_seq=53 ttl=117 time=24.2 ms
64 bytes from 8.8.8.8: icmp_seq=54 ttl=117 time=24.3 ms
64 bytes from 8.8.8.8: icmp_seq=55 ttl=117 time=24.1 ms
64 bytes from 8.8.8.8: icmp_seq=56 ttl=117 time=24.2 ms
64 bytes from 8.8.8.8: icmp_seq=57 ttl=117 time=24.5 ms
64 bytes from 8.8.8.8: icmp_seq=58 ttl=117 time=24.2 ms
64 bytes from 8.8.8.8: icmp_seq=59 ttl=117 time=24.0 ms
64 bytes from 8.8.8.8: icmp_seq=60 ttl=117 time=24.1 ms
64 bytes from 8.8.8.8: icmp_seq=61 ttl=117 time=24.3 ms
64 bytes from 8.8.8.8: icmp_seq=62 ttl=117 time=23.5 ms
64 bytes from 8.8.8.8: icmp_seq=63 ttl=117 time=24.3 ms
64 bytes from 8.8.8.8: icmp_seq=64 ttl=117 time=24.1 ms
64 bytes from 8.8.8.8: icmp_seq=65 ttl=117 time=23.5 ms
64 bytes from 8.8.8.8: icmp_seq=66 ttl=117 time=24.2 ms
64 bytes from 8.8.8.8: icmp_seq=67 ttl=117 time=24.2 ms
64 bytes from 8.8.8.8: icmp_seq=68 ttl=117 time=23.9 ms
64 bytes from 8.8.8.8: icmp_seq=69 ttl=117 time=24.1 ms
64 bytes from 8.8.8.8: icmp_seq=70 ttl=117 time=24.0 ms
64 bytes from 8.8.8.8: icmp_seq=71 ttl=117 time=24.0 ms
64 bytes from 8.8.8.8: icmp_seq=72 ttl=117 time=23.9 ms
64 bytes from 8.8.8.8: icmp_seq=73 ttl=117 time=24.3 ms
64 bytes from 8.8.8.8: icmp_seq=74 ttl=117 time=23.4 ms
64 bytes from 8.8.8.8: icmp_seq=75 ttl=117 time=24.2 ms
64 bytes from 8.8.8.8: icmp_seq=76 ttl=117 time=23.9 ms
64 bytes from 8.8.8.8: icmp_seq=77 ttl=117 time=24.1 ms
64 bytes from 8.8.8.8: icmp_seq=78 ttl=117 time=23.7 ms
64 bytes from 8.8.8.8: icmp_seq=79 ttl=117 time=24.3 ms
64 bytes from 8.8.8.8: icmp_seq=80 ttl=117 time=24.3 ms
64 bytes from 8.8.8.8: icmp_seq=81 ttl=117 time=23.7 ms
64 bytes from 8.8.8.8: icmp_seq=82 ttl=117 time=23.9 ms
64 bytes from 8.8.8.8: icmp_seq=83 ttl=117 time=24.5 ms
64 bytes from 8.8.8.8: icmp_seq=84 ttl=117 time=23.9 ms
64 bytes from 8.8.8.8: icmp_seq=85 ttl=117 time=24.4 ms
64 bytes from 8.8.8.8: icmp_seq=86 ttl=117 time=24.2 ms
64 bytes from 8.8.8.8: icmp_seq=87 ttl=117 time=24.3 ms
64 bytes from 8.8.8.8: icmp_seq=88 ttl=117 time=24.4 ms
64 bytes from 8.8.8.8: icmp_seq=89 ttl=117 time=24.1 ms
64 bytes from 8.8.8.8: icmp_seq=90 ttl=117 time=23.5 ms
64 bytes from 8.8.8.8: icmp_seq=91 ttl=117 time=24.2 ms
64 bytes from 8.8.8.8: icmp_seq=92 ttl=117 time=24.4 ms
64 bytes from 8.8.8.8: icmp_seq=93 ttl=117 time=24.1 ms
64 bytes from 8.8.8.8: icmp_seq=94 ttl=117 time=24.4 ms
64 bytes from 8.8.8.8: icmp_seq=95 ttl=117 time=24.4 ms
64 bytes from 8.8.8.8: icmp_seq=96 ttl=117 time=24.0 ms
64 bytes from 8.8.8.8: icmp_seq=97 ttl=117 time=24.2 ms
64 bytes from 8.8.8.8: icmp_seq=98 ttl=117 time=24.3 ms
64 bytes from 8.8.8.8: icmp_seq=99 ttl=117 time=24.5 ms
64 bytes from 8.8.8.8: icmp_seq=100 ttl=117 time=23.9 ms
64 bytes from 8.8.8.8: icmp_seq=101 ttl=117 time=24.0 ms
^C
--- 8.8.8.8 ping statistics ---
102 packets transmitted, 101 received, 0.980392% packet loss, time 101114ms
rtt min/avg/max/mdev = 23.403/24.082/24.590/0.287 ms
yjlee@elegant:~$ 
  • 구글 DNS (8.8.8.8): 평균 24.0ms, 패킷 손실률 0.98%, 평균 편차 0.287ms
PING oborona.zip (160.119.197.71) 56(84) bytes of data.
64 bytes from 160.119.197.71: icmp_seq=1 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=2 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=3 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=4 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=5 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=6 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=7 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=8 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=9 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=10 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=11 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=12 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=13 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=14 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=15 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=16 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=17 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=18 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=19 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=20 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=21 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=22 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=23 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=24 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=25 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=26 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=27 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=28 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=29 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=30 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=31 ttl=40 time=369 ms
64 bytes from 160.119.197.71: icmp_seq=32 ttl=40 time=370 ms
64 bytes from 160.119.197.71: icmp_seq=33 ttl=40 time=372 ms
64 bytes from 160.119.197.71: icmp_seq=34 ttl=40 time=370 ms
64 bytes from 160.119.197.71: icmp_seq=35 ttl=40 time=371 ms
64 bytes from 160.119.197.71: icmp_seq=36 ttl=40 time=369 ms
64 bytes from 160.119.197.71: icmp_seq=37 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=38 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=39 ttl=40 time=370 ms
64 bytes from 160.119.197.71: icmp_seq=40 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=41 ttl=40 time=369 ms
64 bytes from 160.119.197.71: icmp_seq=42 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=43 ttl=40 time=371 ms
64 bytes from 160.119.197.71: icmp_seq=44 ttl=40 time=371 ms
64 bytes from 160.119.197.71: icmp_seq=45 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=46 ttl=40 time=370 ms
64 bytes from 160.119.197.71: icmp_seq=47 ttl=40 time=370 ms
64 bytes from 160.119.197.71: icmp_seq=48 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=49 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=50 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=51 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=52 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=53 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=54 ttl=40 time=371 ms
64 bytes from 160.119.197.71: icmp_seq=55 ttl=40 time=370 ms
64 bytes from 160.119.197.71: icmp_seq=56 ttl=40 time=370 ms
64 bytes from 160.119.197.71: icmp_seq=57 ttl=40 time=370 ms
64 bytes from 160.119.197.71: icmp_seq=58 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=59 ttl=40 time=370 ms
64 bytes from 160.119.197.71: icmp_seq=60 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=61 ttl=40 time=370 ms
64 bytes from 160.119.197.71: icmp_seq=62 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=63 ttl=40 time=370 ms
64 bytes from 160.119.197.71: icmp_seq=64 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=65 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=66 ttl=40 time=369 ms
64 bytes from 160.119.197.71: icmp_seq=67 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=68 ttl=40 time=371 ms
64 bytes from 160.119.197.71: icmp_seq=69 ttl=40 time=370 ms
64 bytes from 160.119.197.71: icmp_seq=70 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=71 ttl=40 time=369 ms
64 bytes from 160.119.197.71: icmp_seq=72 ttl=40 time=369 ms
64 bytes from 160.119.197.71: icmp_seq=73 ttl=40 time=369 ms
64 bytes from 160.119.197.71: icmp_seq=74 ttl=40 time=369 ms
64 bytes from 160.119.197.71: icmp_seq=75 ttl=40 time=371 ms
64 bytes from 160.119.197.71: icmp_seq=76 ttl=40 time=370 ms
64 bytes from 160.119.197.71: icmp_seq=77 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=78 ttl=40 time=369 ms
64 bytes from 160.119.197.71: icmp_seq=79 ttl=40 time=369 ms
64 bytes from 160.119.197.71: icmp_seq=80 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=81 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=82 ttl=40 time=369 ms
64 bytes from 160.119.197.71: icmp_seq=83 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=84 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=85 ttl=40 time=369 ms
64 bytes from 160.119.197.71: icmp_seq=86 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=87 ttl=40 time=369 ms
64 bytes from 160.119.197.71: icmp_seq=88 ttl=40 time=370 ms
64 bytes from 160.119.197.71: icmp_seq=89 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=90 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=91 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=92 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=93 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=94 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=95 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=96 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=97 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=98 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=99 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=100 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=101 ttl=40 time=368 ms
64 bytes from 160.119.197.71: icmp_seq=102 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=103 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=104 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=105 ttl=40 time=367 ms
64 bytes from 160.119.197.71: icmp_seq=106 ttl=40 time=367 ms
^C
--- oborona.zip ping statistics ---
107 packets transmitted, 106 received, 0.934579% packet loss, time 106108ms
rtt min/avg/max/mdev = 366.748/368.161/371.648/1.258 ms
  • 나이지리아 호스트 (160.119.197.71): 평균 367ms, 패킷 손실률 0.93%, 평균 편차 1.258ms

oborona.png

가입자망 구간 (KT 내부 라우팅)

  • Hop 1 (192.168.0.1): 사설 공유기 게이트웨이
  • Hop 2 (121.150.97.254): KT 공중망 진입 첫 번째 라우터(BRAS). 이 노드에서 관찰되는 패킷 손실(15%)은 후속 노드의 손실률이 0%인 점으로 보아 장비 자체의 부하가 아닌 ICMP Rate Limiting 결과이다.
  • Hop 3, 4 (112.191.x.x / 112.190.x.x): WHOIS 상 모바일 대역으로 분류되나, 유선 초고속 인터넷 인프라 구간과 IP 풀을 공유하는 내부 백본/코어 라우터 구간이다. RTT가 1.3ms - 1.9ms로 유지되는 점이 유선 선로 구조임을 암시한다.

AS 경계면 분석

AS 경계를 넘어설 때마다 eBGP 프로토콜을 구동하는 보더 라우터가 작동한다. 본 경로는 최종 목적지까지 총 6번의 AS 경계를 통과한다.

보통 국내와 통신이 잦은 회선, 특히 북중미권 등은 거리가 멀어도 AS 경계를 과하게 통과하지 않는다.

그러나 현재 블로그 서버의 경우 나이지리아 아부자의 호스팅 업체를 통해 관리되기 때문에, AS 경계도 자주 통과하며, 벨기에 경로에서

KT (AS4766) -> Hurricane Electric (AS6939)

  • 구간: 112.174.87.10 -> 64.71.165.21
  • 특징: KT 해외 관문 노드를 지나며 RTT가 3.3ms에서 123.1ms로 증가한다. 태평양 해저 광케이블을 거쳐 GeoIP에 따르면 미국 서부 IX에 위치한 Hurricane Electric망으로 진입하는 지점이다. GeoIP 데이터베이스상에서는 112.174.87.10이 성남으로 확인되나, 120ms의 RTT 증가폭이 물리적 국외 이탈을 암시한다.

그러나, GeoIP의 정확성이 항상 보장되는 것이 아니며, Hurricane Electric은 사업 구간이 넓기 때문에 정확하지 않을 수 있다.

Hurricane Electric (US) -> Arelion (AS1299)

  • 구간: 64.71.165.21 -> 62.115.36.90 (벨기에 브뤼셀 노드)

  • 특징: 티어 1 ISP 간의 피어링 구간이다. 대서양을 통과해 유럽 브뤼셀 노드로 진입하며 RTT는 242.3ms까지 상승한 다. 이 경로에서 Loss가 35%에 육박한다.

해당 노드가 ICMP 응답을 제한하는 것으로 보이며, 최종 도착지에서 Loss가 발생하지 않는 것으로 보아 브뤼셀 노드의 정책 문제이다.

Arelion -> Hurricane Electric (Portugal)

  • 구간: 62.115.36.90 -> 포르투갈 리스본 거점 IP(184.104.204.94)

  • 특징: 유럽 내부망 통과 후 아프리카행 해저 광케이블 분기점인 포르투갈 리스본에서 다시 Hurricane Electric 망의 보더 라우터 경계를 지나간다.

  • 포르투갈은 역사적으로 아프리카와의 교역 거점으로 자주 활용되었으며, 지리적으로 유럽과 아프리카의 가교이다. 그러나 다음 진입점은 300km 남짓한 거리의 모로코가 아닌, 케냐이다. 그 모로코와 케냐 간의 대륙 내 거리조차 수도권 간의 거리가 5900km에 육박한다.

Hurricane Electric -> WIOCC (AS37662)

  • 구간: 포르투갈 관문 -> 154.66.247.xx (케냐 나이로비)

  • 특징: 아프리카 대륙 진입 관문이다. 아프리카 광케이블 공급업체인 WIOCC의 동아프리카 게이트웨이 보더 라우터로 트래픽이 이관되며, RTT는 274ms -> 370ms 대역에 진입한다.

이 경우, 모든 RTT가 광섬유 전파 지연이라고 가정하고 거리, 속도, 시간 간의 공식을 대입해 보자.

굴절률을 고려하여 빛의 속도는 200000 km/s로 잡는다.

96 ms / 2 = 48 ms = 0.048 s
200,000 km/s × 0.048 s = 9,600 km

따라서, 해저 케이블은 지형 등을 고려하였기 때문에 직선 거리인 포르투갈과 케냐 간의 직선 거리인 약 6,650 km가 아닌 9,600 km임을 역산할 수 있다.

WIOCC (케냐) -> Choice2Mobile (AS328362)

  • 구간: 102.134.17.230 (나이지리아 라고스) -> 102.212.155.18 (나이지리아 아부자)
  • 특징: WIOCC의 아프리카 대륙 횡단 백본을 거쳐 서아프리카에 도달한 뒤, 현지 ISP인 Choice2Mobile의 아부자 거점 보더 라우터로 패킷이 인계된다.

Choice2Mobile -> NG Trefoil Networks (AS327911)

  • 구간: 102.212.155.18 -> 160.119.197.71 [DEST]
  • 특징: 최종 목적지인 나이지리아 아부자 호스팅 공급업체 Trefoil Networks의 보더 라우터를 통과하여 가입자망 내부 종단 처리가 완료된다. 실측 RTT는 367ms로 고정된다.

판단

특이하게도, 그 광활한 아프리카 대륙에서, 대륙 진입 후부터의 RTT는 크게 증가하지 않고, Loss도 한 자리수 퍼센트로 유지된다.

이것은 해저 백본망을 구축할 때 지하 백본망보다 상대적으로 덜 직관적인 경로로 케이블이 배선 및 체결된다는 것을 유추할 수 있다.

해저의 경우 해저 산맥이나 해구 등의 장애물부터 법적, 기술적 난관이 더 크기 때문에, 단순한 지하 케이블 배선보다 애로사항이 많은 것으로 추측된다.

한국-나이지리아 간 케이블 거리 역산

Ping 결과를 보면, 대략적으로 370 ms 언저리의 RTT가 나온다.

370 ms / 2 = 185 ms = 0.185 s
거리 = 속도 × 시간
     = 200,000 km/s × 0.185 s
     = 37,000 km

이는 지구 둘레(약 40,075 km)의 약 92.3%이다.

즉 우리가 체감하기에는 아무렇지 않지만, 실제로는 이 블로그를 보기 위해서 지구 0.92바퀴를 돌아서 포스트가 도달하는 것이다.

고민할 점

많은 경우, 기업들은 이러한 문제를 회피하기 위해 현지 서버를 운영한다. 그러나, 아주 거대한 기업이 아닌 이상, 현지에 서버를 설치하기 위해서 국가 별로 발생하는 현지법 상의 처리를 감당하기 힘들다.

그렇다면, 경제적으로 타협을 본 선택인 '고지연 튜닝'이 옳은가, 법적 자문을 통한 현지 서버 운영이 옳은가?

이러한 개인 블로그 운영을 위해서는 단순한 고지연 튜닝이면 Chromium 엔진 기반의 브라우저에서 대개 잘 작동하며, Firefox의 경우에도 HTTP/1.1로 다운그레이드해 접속하면 대체로 문제가 없다.

그러나, 기업의 입장에서 어떤 고객을 상대할지 모른다면, 어디까지, 어떻게 튜닝해야 하는가?

Back

Comments

No comments yet.