Required programs: curl, nslookup, grpcurl, traceroute, ping, mtr
Note: On some Linux distributions, you need to manually install iputils-ping, instead of inetutils-ping.
sudo apt-get install -y iputils-ping
(1). What is the public IPv4 address? Does it have a DNS PTR record?
curl -4 ipconfig.io
nslookup $(curl -s -4 ipconfig.io)The expected output of the DNS PTR record has the following format:
customer.*.pop.starlinkisp.net.
while * indicates the associated Starlink Point-of-Presence (PoP), e.g., customer.sttlwax1.pop.starlinkisp.net., where sttlwax1 represents the Starlink PoP in Seattle.
(2). Does it support IPv6? What is the public IPv6 address and its DNS PTR records?
curl -6 ipconfig.io
nslookup $(curl -s -6 ipconfig.io)(3). Can you run traceroute to 1.1.1.1?
traceroute 1.1.1.1and
sudo mtr 1.1.1.1 -b -c 10 -i 0.5 -r -w(4). What is the assigned LAN IP address?
(5). Can you reach 192.168.100.1 with ping?
If not, can you find the gateway of your LAN and try to add routing rules to 192.168.100.1 via the gateway as the next hop? On Linux, it's similar to
sudo ip r a 192.168.100.1 dev <iface>or
sudo ip r a 192.168.100.1 via <gateway>On macOS, you can try something like: https://superuser.com/questions/756134/how-to-direct-ip-route-through-specific-interface-in-os-x
sudo route -t -n add -net 192.168.100.1/32 <gateway>(6). Can you reach 100.64.0.1 with ping?
Note: if you are already running
Tailscalelocally on your machine, on Linux, you can set up withsudo tailscale up --netfilter-mode=off. On macOS or Windows, you can temporarily disable/quit Tailscale.
If not, can you follow similar steps as in (5) to add routing rules for 100.64.0.1?
(7). If you can reach 100.64.0.1 with ping, can you run:
ping -D -i 0.01 -c 60000 100.64.0.1 > ping-100.64.0.1-`date "+%y%m%d-%H%M%S"`.txtIf you cannot reach 100.64.0.1, can you ping 1.1.1.1?
ping -D -i 0.01 -c 60000 1.1.1.1 > ping-1.1.1.1-`date "+%y%m%d-%H%M%S"`.txtNote: You may need to add sudo in order to run ping with -i 0.01.
On macOS, you have to replace -D with --apple-time, e.g.:
ping --apple-time -i 0.01 -c 60000 100.64.0.1 > ping-100.64.0.1-`date "+%y%m%d-%H%M%S"`.txtping --apple-time -i 0.01 -c 60000 1.1.1.1 > ping-1.1.1.1-`date "+%y%m%d-%H%M%S"`.txt(8) If you can reach 192.168.100.1, can you run grpcurl with the following:
grpcurl -plaintext -d {\"get_status\":{}} 192.168.100.1:9200 SpaceX.API.Device.Device/Handlegrpcurl -plaintext -d {\"get_diagnostics\":{}} 192.168.100.1:9200 SpaceX.API.Device.Device/Handle(9) Can you run the following traceroute script?
Note: This script will spawn many
tracerouteprocesses and create ~30 text files in the current directory, it would take a while (around 20-30 minutes) to finish.
#!/bin/bash
for i in $(seq 108 109)
do
for j in $(seq 0 255)
do
traceroute -enm 18 -w 1 149.19.$i.$j >> tr-sl-bb-ip-$i.txt 2>&1
done &
done &
for i in $(seq 64 95)
do
for j in $(seq 0 255)
do
traceroute -enm 18 -w 1 206.224.$i.$j >> tr-sl-bb-ip-$i.txt 2>&1
done &
done &or with mtr
#!/bin/bash
for i in $(seq 108 109)
do
for j in $(seq 0 255)
do
echo 149.19.$i.$j >> mtr-sl-bb.ip-$i.txt
sudo mtr 149.19.$i.$j -m 18 --mpls -r -w -b -c 3 >> mtr-sl-bb.ip-$i.txt 2>&1
done &
done &
for i in $(seq 64 95)
do
for j in $(seq 0 255)
do
echo 206.224.$i.$j >> mtr-sl-bb-ip-$i.txt
sudo mtr 206.224.$i.$j -m 18 --mpls -r -w -b -c 3 >> mtr-sl-bb-ip-$i.txt 2>&1
done &
done &The expected output looks like:
head tr-sl-bb-ip-109.txt
traceroute to 149.19.109.0 (149.19.109.0), 18 hops max, 60 byte packets
1 * * *
2 100.64.0.1 24.071 ms 24.106 ms 24.054 ms
3 172.16.252.40 23.958 ms 23.993 ms 23.905 ms
4 * * *
5 206.224.64.19 39.331 ms 39.485 ms 206.224.64.45 39.279 ms
6 149.19.108.109 92.913 ms 88.453 ms 88.930 ms
7 149.19.108.66 99.491 ms 99.282 ms 99.580 ms
8 149.19.108.185 168.231 ms 170.564 ms 159.923 ms
9 149.19.109.77 181.158 ms 174.520 ms 189.733 ms
while it's normal some targets cannot be reached:
head tr-sl-bb-ip-108.txt
traceroute to 149.19.108.0 (149.19.108.0), 18 hops max, 60 byte packets
1 * * *
2 100.64.0.1 42.131 ms 42.098 ms 42.069 ms
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *(10). Can you repeat steps (1), (2) and (7) multiple times at different times of the day and record the date and time of the measurement?
Thanks!