Trace Route from Uganda to San Jose with and without VPN (2024-04-22)

Here we document the ping latency and traceroute from Jinja, Uganda to San Jose, CA! It will be fun!!

Ping

Here is ping to https://www.delyan.org/ - hosted on Vultr in San Jose, CA from Roke Telekom as we have it here in Jinja, Uganda.

With VPN

We are using https://ovpn.sonic.net/ while traveling in East Africa.

$ ping -c10 lmk.10print.co

PING 10print.co (144.202.111.195) 56(84) bytes of data.
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=1 ttl=42 time=315 ms
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=2 ttl=42 time=322 ms
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=3 ttl=42 time=323 ms
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=4 ttl=42 time=316 ms
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=5 ttl=42 time=334 ms
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=6 ttl=42 time=358 ms
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=7 ttl=42 time=336 ms
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=8 ttl=42 time=321 ms
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=9 ttl=42 time=305 ms
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=10 ttl=42 time=314 ms

--- 10print.co ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9005ms
rtt min/avg/max/mdev = 305.489/324.441/358.410/14.243 ms

Overall: average latency from Jinja to San Jose is 306ms

Without VPN

Our Internet provider is Roke. ROKESPOT WiFi is a service for which one pays daily, weekly, or monthly. 6400 Ugandan Shillings buys you a week of this:

$ ping -c10 lmk.10print.co

PING 10print.co (144.202.111.195) 56(84) bytes of data.
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=1 ttl=41 time=300 ms
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=2 ttl=41 time=322 ms
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=3 ttl=41 time=291 ms
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=4 ttl=41 time=292 ms
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=5 ttl=41 time=292 ms
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=6 ttl=41 time=358 ms
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=7 ttl=41 time=340 ms
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=8 ttl=41 time=292 ms
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=9 ttl=41 time=293 ms
64 bytes from 144.202.111.195.vultrusercontent.com (144.202.111.195): icmp_seq=10 ttl=41 time=295 ms

--- 10print.co ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 10270ms
rtt min/avg/max/mdev = 291.230/307.481/358.328/22.888 ms

Unsurprisingly - VPN adds about 15ms.

Let’s use Trace Route to understand why.


Trace Route

With VPN (Sonic)

$ traceroute lmk.10print.co

traceroute to lmk.10print.co (144.202.111.195), 30 hops max, 60 byte packets
 1  yantra (172.22.32.1)  0.972 ms  0.825 ms  0.762 ms
 2  192-184-190-1.static.sonic.net (192.184.190.1)  303.329 ms  303.603 ms  303.856 ms
 3  0.irb.378.access6-8.snrtcamn.sonic.net (157.131.224.195)  322.218 ms 0.irb.378.access6-7.snrtcamn.sonic.net (157.131.224.194)  335.184 ms 0.irb.378.access6-8.snrtcamn.sonic.net (157.131.224.195)  322.130 ms
 4  0.et.0-0-7.int-dist6-1.snrtcamn.sonic.net (50.0.79.173)  320.945 ms 0.et.0-0-6.int-dist6-1.snrtcamn.sonic.net (50.0.79.161)  320.477 ms 0.et.0-0-7.int-dist6-1.snrtcamn.sonic.net (50.0.79.173)  320.290 ms
 5  0.et-0-0-52.cr1.snrtcamn.sonic.net (75.101.33.197)  321.581 ms  321.086 ms  321.083 ms
 6  0.ae1.cr2.snrtcamn.sonic.net (142.254.59.170)  334.927 ms 0.ae1.cr3.snrtcamn.sonic.net (192.184.185.185)  317.180 ms  316.522 ms
 7  0.ae1.cr4.snrtcamn.sonic.net (192.184.185.189)  316.492 ms 0.ae2.cr3.snrtcamn.sonic.net (192.184.185.202)  426.118 ms 0.ae1.cr4.snrtcamn.sonic.net (192.184.185.189)  426.323 ms
 8  ae2.cr2.ptlmca01.sonic.net (192.184.185.177)  405.762 ms  405.446 ms  405.682 ms
 9  ae1.cr3.snrfca01.sonic.net (23.93.52.254)  405.267 ms  405.024 ms  404.993 ms
10  ae2.cr4.snrfca01.sonic.net (157.131.242.229)  405.850 ms  535.317 ms  405.795 ms
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  100.ae1.nrd1.equinix-sj.sonic.net (75.101.33.185)  306.463 ms  304.148 ms  305.194 ms
17  102.ae1.nrd1.pao1.sonic.net (70.36.205.6)  311.316 ms  304.782 ms  305.206 ms
18  * * *
19  be2431.ccr41.sjc03.atlas.cogentco.com (154.54.88.189)  304.718 ms  303.889 ms  305.665 ms
20  be3142.ccr21.sjc01.atlas.cogentco.com (154.54.1.193)  306.048 ms  305.137 ms  311.059 ms
21  be2298.rcr51.b034314-0.sjc01.atlas.cogentco.com (154.54.90.186)  311.901 ms  311.953 ms be2297.rcr51.b034314-0.sjc01.atlas.cogentco.com (154.54.90.182)  309.970 ms
22  38.88.38.154 (38.88.38.154)  309.412 ms  308.928 ms  303.213 ms
...

Without VPN (directly from Roke)

$ traceroute lmk.10print.co

traceroute to lmk.10print.co (144.202.111.195), 30 hops max, 60 byte packets
 1  yantra (172.22.32.1)  0.495 ms  0.298 ms  0.590 ms
 2  10.220.160.1 (10.220.160.1)  12.787 ms  12.747 ms  12.718 ms
 3  10.255.254.253 (10.255.254.253)  12.549 ms  12.344 ms  12.315 ms
 4  10.255.255.224 (10.255.255.224)  13.314 ms * *
 5  * * *
 6  * 129.205.3.97 (129.205.3.97)  18.386 ms  18.698 ms
 7  129.205.30.70 (129.205.30.70)  18.739 ms  13.172 ms  13.080 ms
 8  129.205.30.77 (129.205.30.77)  12.169 ms  12.832 ms  12.749 ms
 9  * * *
10  41.181.247.38 (41.181.247.38)  180.839 ms  181.187 ms  180.743 ms
11  * * *
12  41.181.105.104 (41.181.105.104)  180.561 ms 41.181.190.150 (41.181.190.150)  180.450 ms  171.869 ms
13  41.181.189.64 (41.181.189.64)  177.311 ms  177.274 ms  177.243 ms
14  be5363.rcr21.b015591-1.lon13.atlas.cogentco.com (204.68.252.77)  164.776 ms  164.574 ms  169.438 ms
15  be2054.ccr42.lon13.atlas.cogentco.com (130.117.48.205)  166.912 ms  167.680 ms  167.635 ms
16  be2099.ccr31.bos01.atlas.cogentco.com (154.54.82.34)  232.579 ms  225.476 ms be3488.ccr52.lhr01.atlas.cogentco.com (154.54.60.14)  225.993 ms
17  be3600.ccr22.alb02.atlas.cogentco.com (154.54.0.221)  231.001 ms  228.529 ms be3599.ccr21.alb02.atlas.cogentco.com (66.28.4.237)  229.549 ms
18  be2878.ccr21.cle04.atlas.cogentco.com (154.54.26.129)  293.194 ms be2879.ccr22.cle04.atlas.cogentco.com (154.54.29.173)  243.276 ms be2878.ccr21.cle04.atlas.cogentco.com (154.54.26.129)  241.524 ms
19  be2718.ccr42.ord01.atlas.cogentco.com (154.54.7.129)  253.523 ms  253.462 ms  251.380 ms
20  be2717.ccr41.ord01.atlas.cogentco.com (154.54.6.221)  264.385 ms be2718.ccr42.ord01.atlas.cogentco.com (154.54.7.129)  274.713 ms be2717.ccr41.ord01.atlas.cogentco.com (154.54.6.221)  256.849 ms
21  be3036.ccr22.den01.atlas.cogentco.com (154.54.31.89)  290.085 ms be3035.ccr21.den01.atlas.cogentco.com (154.54.5.89)  336.838 ms be2718.ccr42.ord01.atlas.cogentco.com (154.54.7.129)  254.927 ms
22  be3035.ccr21.den01.atlas.cogentco.com (154.54.5.89)  286.969 ms be3037.ccr21.slc01.atlas.cogentco.com (154.54.41.145)  305.393 ms be3036.ccr22.den01.atlas.cogentco.com (154.54.31.89)  297.689 ms
23  be3109.ccr21.sfo01.atlas.cogentco.com (154.54.44.137)  309.544 ms be3110.ccr22.sfo01.atlas.cogentco.com (154.54.44.141)  302.698 ms  301.012 ms
24  be3178.ccr21.sjc01.atlas.cogentco.com (154.54.43.70)  302.533 ms be3179.ccr22.sjc01.atlas.cogentco.com (154.54.43.150)  308.707 ms be3178.ccr21.sjc01.atlas.cogentco.com (154.54.43.70)  300.571 ms
25  be2297.rcr51.b034314-0.sjc01.atlas.cogentco.com (154.54.90.182)  299.173 ms  297.892 ms be2298.rcr51.b034314-0.sjc01.atlas.cogentco.com (154.54.90.186)  297.708 ms
26  38.88.38.154 (38.88.38.154)  365.168 ms * be2297.rcr51.b034314-0.sjc01.atlas.cogentco.com (154.54.90.182)  307.779 ms
...

And here is the path to the VPN

$ traceroute -m45 ovpn.sonic.net

traceroute to ovpn.sonic.net (157.131.224.198), 45 hops max, 60 byte packets
 1  yantra.mshome.net (172.22.32.1)  0.626 ms  0.577 ms  0.551 ms
 2  10.220.160.1 (10.220.160.1)  14.057 ms  14.033 ms  14.008 ms
 3  10.255.254.253 (10.255.254.253)  21.625 ms  20.878 ms  21.890 ms
 4  10.255.255.224 (10.255.255.224)  17.857 ms  19.289 ms *
 5  * 10.255.255.225 (10.255.255.225)  19.171 ms  18.873 ms
 6  129.205.3.97 (129.205.3.97)  19.032 ms  16.428 ms  16.386 ms
 7  129.205.30.70 (129.205.30.70)  17.884 ms  15.381 ms  15.339 ms
 8  129.205.30.77 (129.205.30.77)  15.318 ms  73.597 ms  73.525 ms
 9  * * *
10  41.181.247.38 (41.181.247.38)  178.411 ms  178.379 ms  178.196 ms
11  * 41.181.244.177 (41.181.244.177)  176.102 ms *
12  * * *
13  41.181.189.64 (41.181.189.64)  238.108 ms  238.085 ms  237.914 ms
14  be5363.rcr21.b015591-1.lon13.atlas.cogentco.com (204.68.252.77)  235.552 ms  235.518 ms  235.465 ms
15  be2054.ccr42.lon13.atlas.cogentco.com (130.117.48.205)  235.376 ms  235.344 ms be2053.ccr41.lon13.atlas.cogentco.com (130.117.2.65)  160.774 ms
16  be2101.ccr32.bos01.atlas.cogentco.com (154.54.82.38)  224.684 ms be2099.ccr31.bos01.atlas.cogentco.com (154.54.82.34)  224.653 ms be2101.ccr32.bos01.atlas.cogentco.com (154.54.82.38)  227.124 ms
17  be4283.ccr32.bos01.atlas.cogentco.com (154.54.47.145)  229.056 ms be2099.ccr31.bos01.atlas.cogentco.com (154.54.82.34)  224.910 ms be3600.ccr22.alb02.atlas.cogentco.com (154.54.0.221)  225.069 ms
18  be2879.ccr22.cle04.atlas.cogentco.com (154.54.29.173)  240.599 ms be3599.ccr21.alb02.atlas.cogentco.com (66.28.4.237)  231.119 ms be2879.ccr22.cle04.atlas.cogentco.com (154.54.29.173)  242.873 ms
19  be2717.ccr41.ord01.atlas.cogentco.com (154.54.6.221)  249.213 ms be2718.ccr42.ord01.atlas.cogentco.com (154.54.7.129)  251.330 ms  252.018 ms
20  be2718.ccr42.ord01.atlas.cogentco.com (154.54.7.129)  259.186 ms  252.291 ms be2879.ccr22.cle04.atlas.cogentco.com (154.54.29.173)  243.487 ms
21  be3035.ccr21.den01.atlas.cogentco.com (154.54.5.89)  275.390 ms be2718.ccr42.ord01.atlas.cogentco.com (154.54.7.129)  294.874 ms be3035.ccr21.den01.atlas.cogentco.com (154.54.5.89)  275.299 ms
22  be3038.ccr32.slc01.atlas.cogentco.com (154.54.42.97)  278.563 ms be3036.ccr22.den01.atlas.cogentco.com (154.54.31.89)  277.858 ms  275.496 ms
23  be3109.ccr21.sfo01.atlas.cogentco.com (154.54.44.137)  295.358 ms be3110.ccr22.sfo01.atlas.cogentco.com (154.54.44.141)  291.797 ms  349.838 ms
24  be2379.ccr31.sjc04.atlas.cogentco.com (154.54.42.158)  349.774 ms  349.723 ms be3038.ccr32.slc01.atlas.cogentco.com (154.54.42.97)  349.658 ms
25  38.104.141.82 (38.104.141.82)  349.626 ms  296.037 ms  295.806 ms
26  102.ae1.cr1.pao1.sonic.net (70.36.205.5)  308.067 ms  307.736 ms  307.703 ms
27  ae0.cr1.colaca01.sonic.net (70.36.205.62)  490.048 ms  490.023 ms  490.002 ms
28  * * *
29  ae0.cr3.snrfca01.sonic.net (157.131.242.230)  303.915 ms *  303.867 ms
30  ae1.cr2.ptlmca01.sonic.net (23.93.52.253)  312.977 ms  310.700 ms  357.511 ms

Overall: whether we connect to VPN or directly to our target in San Jose - the traffic seems to follow a common path up to sjc01.atlas.cogentco.com. From there - if we choose to connect via VPN, the traffic will be diverted to Sonic, before it goes to its final destination of Vultr.


Now For Something Completely Different: Observations on the Internet in Uganda

Using the (American) Internet in Uganda presents us with a few challenges.
Some banking sites alerted me for fraud. Other sites refused to load. Here is an example:

To explain what this is a screenshot of: As it turns out - VW Credit sent me a secret message, invited me to log-in to my account to read it, then forbid me from accessing the site from Uganda. (It worked fine through Sonic’s VPN.)

And there is yet another category of websites - blocked by the Uganda Communications Commission. An example is… facebook.com including URLs such as https://ai.meta.com/blog/meta-llama-3/ :cry: