RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03...

28
RIPE Atlas measurements analysis Ondřej Caletka 3rd June 2018 Available under Creaঞve Commons Aribuঞon 3.0. Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 1 / 28

Transcript of RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03...

Page 1: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

RIPE Atlas measurements analysis

Ondřej Caletka

3rd June 2018

Available under Crea ve Commons A ribu on 3.0.

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 1 / 28

Page 2: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

About RIPE Atlas

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 2 / 28

Page 3: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

RIPE Atlas

ac ve Internet measurements systemdeveloped since 2010hardware probes hosted by volunteers10000 probes world-wide (250 in CZ)built-in and user defined measurementsmeasuring the lowest-level of IP network func ons

pingtracerouteDNS

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 3 / 28

Page 4: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

RIPE atlas probehardware used considering low power consump on and priceUSB powered, 10/100Mbps Ethernetno controls, no web interface, no open portcan be hosted behind NATcommunicates with C&C servers hosted by RIPE NCCconducts measurements and uploads reports

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 4 / 28

Page 5: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

Probes version 1 and 2

based on Lantronics Xport ProMMU-less CPU, uClinuxBusybox-based measuring so wareproduc on stopped in 2012

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 5 / 28

Page 6: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

Probes version 3based on TP-Link MR3020cheaper and powerfulfirmware based na OpenWRTUSB flash drive for OS a datano support for buil n Wi-Fi

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 6 / 28

Page 7: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

Atlas Anchor probespowerful probes for datacenters, bought by hosts for cca. 770 €act as a target for measurements by small probesbased on

1 Dell PowerEdge servers (pilot only)2 Soekris Net6501-70 (un l 2017)3 PC Engines APU2 (current)4 virtual appliances (pilo ng)

333 anchors world-wide, 7 in CZ

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 7 / 28

Page 8: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

Inside Atlas Anchor

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 8 / 28

Page 9: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

Atlas Anchor services

Authorita ve DNS server$ dig 512.4.dns.cz-prg-as2852.anchors.atlas.ripe.net txt"XXXXXXXXXXXXXXXXXXXXXXXXXXXX……XXXXXXXXXXXXXXXXXXXXXXXXXXXX"

HTTP(S) server$ curl http://cz-prg-as2852.anchors.atlas.ripe.net/3{

"anchor": "cz-prg-as2852.anchors.atlas.ripe.net","client": "2001:718:1:6::134:196","payload": "AAA"

}

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 9 / 28

Page 10: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

What do probes measurePing selected targetsTraceroute to selected targetsDNS queries to root serversHTTP requests to ripe.netSSL connec on to ripe.netUser-defined measurements

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 10 / 28

Page 11: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

User-defined measurements

you can run your measurements on the whole networkpayment by a virtual currencycredits awarded for hos ng a probeJSON REST APIoficial Python libraries

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 11 / 28

Page 12: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

How to measure

not necessary to host a probe (unless you live in a not yet covered area)create a RIPE NCC Access accunt https://access.ripe.netask someone for creditsuse the results that are already available

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 12 / 28

Page 13: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

Interes ng results

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 13 / 28

Page 14: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

Wikipedia CDN analysis

Amsterdam Ashburn San Franciscosource

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 14 / 28

Page 15: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

DNS hijack in Turkey ①21. 3. 2014 blocked Twi er on ISPs’ DNS servers25. 3. 2014 blocked Google Public DNS and similar28. 3. 2014 fake DNS server on hijacked 8.8.8.8

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 15 / 28

Page 16: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

DNS hijack in Turkey ②4. 4. 2014 unblocked Twi er and YouTube7. 4. 2014 DNS server hijack endednobody made any statement about the hijack

sourceOndřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 16 / 28

Page 17: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

IPv4 MTU problems

source

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 17 / 28

Page 18: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

IPv6 MTU problems

source

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 18 / 28

Page 19: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

Are all IP addresses equal?

classful rou ng legacyadresses ending .0 nebo .255 can be considered network/broadcastaddresses2 – 4 % probes is not able to ping address ending .0much bigger issue in former C-class block (192.* – 223.*)

source

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 19 / 28

Page 20: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

Working with results

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 20 / 28

Page 21: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

Official Python libraries

Sagan parsing of resultsCousteau control of RIPE AtlasMagellan CLI tools

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 21 / 28

Page 22: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

Workshop agenda

set-up Magellanlook into the rendererstry to improve them!

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 22 / 28

Page 23: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

Magellan installa on

we use GitHub versioninstall into Pythonu 3 virtual environment

python3 -m venv venvvirtualenv -p python3 venvmkvirtualenv atlaspipenv

install in the developer mode pip install -e

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 23 / 28

Page 24: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

Magellan installa on$ mkdir atlas$ cd atlas$ python3 -m venv venv$ source venv/bin/activate(venv) $ git clone https://github.com/RIPE-NCC/ripe-atlas-tools(venv) $ pip install -e ripe-atlas-tools(venv) $ ripe-atlas stream 1695916

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 24 / 28

Page 25: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

Home directory installa on$ mkdir -p ~/.config/ripe-atlas-tools/renderers$ touch ~/.config/ripe-atlas-tools/renderers/__init__.py$ cat > ~/.config/ripe-atlas-tools/renderers/my_renderer.py <<EOFfrom ripe.atlas.tools.renderers.base import Renderer as BaseRendererclass Renderer(BaseRenderer):

RENDERS = [BaseRenderer.TYPE_PING]def on_result(self, result):

return "Ping from {r.probe_id}\n".format(r=result)EOF(venv) $ ripe-atlas stream 1695916 --renderer my_renderer

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 25 / 28

Page 26: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

Edi ng inside the Magellan package$ cd ripe-atlas-tools/ripe/atlas/tools/renderers/$ cp ping.py my_ping.py(venv) $ ripe-atlas stream 1695916 --renderer my_ping

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 26 / 28

Page 27: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

What can we try to hack

add ping stats at the endadd colours to the output (they are already in DNS measurements)add network operators name to the traceroute

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 27 / 28

Page 28: RIPE Atlas measurements analysis - Caletkařej.caletka.cz/dl/slidy/20180603-PyCon-RIPE...2018/06/03  · (venv) $ ripe-atlas stream 1695916 --renderer my_renderer OndřejCaletka (CESNET,z.s.p.o.)

Thank you!

Ondřej [email protected] ps://Ondřej.Caletka.cz

Slides are already online.

Ondřej Caletka (CESNET, z. s. p. o.) RIPE Atlas measurements analysis 3rd June 2018 28 / 28