You can join the RIPE Atlas project with your own probe based on Raspberry Pi now, because the RIPE NCC folks start providing their stuff as software.
Hardware used:
Software used:
- CentOS-7 (
CentOS-Userland-7-aarch64-RaspberryPI-Minimal-4-2009-sda.raw.xz
) - cloud-init
- RIPE Atlas Probe
- (optional) balenaEtcher
After obtaining and assembling the hardware it's just a 15 minutes project...
- Download
CentOS-Userland-7-aarch64-RaspberryPI-Minimal-4-2009-sda.raw.xz
from CentOS - Burn the image with Etcher to the SDX
- Boot your PI with the SDX and DHCP enabled plugged Ethernet
- Obtain your PI IP and configure the PI via
cloud-init
export PI=192.168.47.11
git clone https://github.com/iaean/rap/; cd rap
# install cloud-init
ssh -l root $PI -- yum -y install cloud-init # password: centos
# review, edit, adjust, apply cloud.cfg
scp cloud.cfg root@$PI:/etc/cloud/cloud.cfg.d/10_defaults.cfg # password: centos
# cloud-init reboot
ssh -l root $PI -- reboot # password: centos
# wait until: The system is finally up...
ssh -l pi $PI -- cat /var/atlas-probe/etc/probe_key.pub
# root access is disabled
ssh -l pi $PI -- sudo reboot
- Create your RIPE NCC account
- Register your probe with key
/var/atlas-probe/etc/probe_key.pub
- Start Configure your RIPE Atlas probe(s) and measurements
- Maybe you don't wanna publicly share your probe as enabled by default
# docker is already there
ssh -l pi $PI -- docker run hello-world
# run a speedtest
ssh -l pi $PI -- speedtest --accept-license --accept-gdpr --selection-details
- Atlas can provide a DNS for your probe. Disabled by default.
Maybe you wanna use the feature and also forward a port on your CPE to SSH to enable remote login.
-
RIPE NCC provides CentOS RPM packages for x86_64 only. The software is based on busybox. We had to (cross-)compile and package for our Raspberry Pi target architecture. RPM is provided.
-
Linux driver for Microchip 7800 USB Ethernet (lan78xx) on RasPi 3B+ has bugs with proper carrier handling in
/sys/class/net/eth0/carrier
when cable is connected (#2937, #3939). This impacts all proper userland network management. Touching the device withethtool
when kernel spuriously reportsNO_CARRIER
can probably solve the issue. That's why we go with NetworkManager. -
Wifi and bluetooth is disabled to potentially save some milliwatt. Ordinary USB ports on your CPE are unfortunately not sufficient to provide stable power.
-
Regarding docker...
- You are on Pi. You are on
linux/arm*
. Unfortunately Multi-arch images are not standard today:
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
.
Open an issue with the feature request to support Multi-arch builds to the maintainers of your favorite docker project. - We are running
dockerd
with--userland-proxy=false
to improve IPv6 security.
- You are on Pi. You are on
- join outbound inband tunneling services like inlets or WireGuard
- dockerize the Atlas stuff
- chrooted restricted shell for remote logins
- integrate BNetzA breitbandmessung.de
- integrate Ookla speedtest.net
- local webserver
- automate Atlas probe registration
- HTTP webhook based trap sink
All your contributions are welcome. So, don't hesitate to fork and send your pull requests.