Netmetr is not working

Everytime I try to test my internet netmetr gives me “Testing… FAILED”.

Turris OS: 5.0.0

When I try to login via ssh, this is what I get:

# netmetr
 Checking uuid on the control server...
 Requesting test config from the control server...
 Starting ping test...
 ping_1_msec = 9.64
  ping_2_msec = 9.21
 ping_3_msec = 9.44
 ping_4_msec = 9.32
 ping_5_msec = 9.17
 ping_6_msec = 9.38
 ping_7_msec = 9.06
 ping_8_msec = 9.67
 ping_9_msec = 8.98
 ping_10_msec = 9.68
 Starting speed test...
 ==== rmbt 09170aeef ====
 connecting...
 timeout
 could not read from server
 timeout
 could not read from server
 timeout
 could not read from server
 dl_throughput_mbps = 0.000000
 ul_throughput_mbps = 0.000000
 Exiting.
 Traceback (most recent call last):
   File "/usr/bin/netmetr", line 11, in <module>
     load_entry_point('netmetr==1.5.4', 'console_scripts', 'netmetr')()
   File "/usr/lib/python3.7/site-packages/netmetr/__main__.py", line 621, in main
   File "/usr/lib/python3.7/site-packages/netmetr/__main__.py", line 254, in import_speed_flows
 KeyError: 'dl'

Configuration:

config settings 'settings'
    option control_server 'control.netmetr.cz'
    option max_history_logs '10'
    option autostart_enabled '1'
    list hours_to_run '4'
    option client 'HW-PROBE'
    option uuid '95d030a0-94a1-48a2-b012-04d9727e7081'
    option sync_code 'a95cf7434565'

Dig:

# dig control.netmetr.cz

; <<>> DiG 9.14.12 <<>> control.netmetr.cz
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59222
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;control.netmetr.cz.            IN      A

;; ANSWER SECTION:
control.netmetr.cz.     360     IN      A       217.31.202.96

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jun 06 14:11:13 CEST 2020
;; MSG SIZE  rcvd: 63

Ping:

# ping -c1 -w1 control.netmetr.cz
PING control.netmetr.cz (217.31.202.96) 56(84) bytes of data.
64 bytes from control.netmetr.cz (217.31.202.96): icmp_req=1 ttl=58 time=10.6 ms

the app has an option for verbose debug output --debug, might help to see what happens (or not)

N.B. you might want to reconsider sharing this

option uuid ''
option sync_code ''

publicly and obfuscate instead, unless you do not mind.

Hi,

true story… forget to paste it here :slightly_smiling_face:

https://pastebin.com/7137Gvz1

Looks like an issue with the TCP connectivity between your node and the remote end. From my node the remote is reachable and and responsive.

You would probably have to run a TCP packet dump to figure out the sinkhole.

Strange is, that if I run it on computer behind a Turris directly on the page, everything is working well. I will try to check it tomorrow, but dont know if I will be able to see something in tcpdump output :slight_smile:

have a look at the mtr package, is a bit of advanced route trace

Hi, thank you for your report. This is a known bug - the fix is completed and is going to be merged in a few days & released soon.

2 Likes

Hey,

so I see the update is here. But netmetr is still not working for me :-/

Here is the log: https://pastebin.com/bD1L6jr5

  • What sort of ISP subscriber line you got?
  • What is the output of check_connection?

I have optical line (selfnet), but I am actually behind ISP -> Microtic -> Switch -> Turris… but interesting part is that on computer behind Turris, all is working well…

Here is the output:

# check_connection
Pinging 192.168.0.1 ... OK
IPv4 Gateway: OK
Pinging 217.31.205.50 ... OK
Pinging 198.41.0.4 ... OK
Pinging 199.7.83.42 ... OK
Pinging 8.8.8.8 ... OK
IPv4: OK
IPv6 Gateway: UNKNOWN
Pinging 2001:1488:0:3::2 ... FAILED
Pinging 2001:500:3::42 ... FAILED
Pinging 2001:500:2d::d ... FAILED
Pinging 2606:2800:220:6d:26bf:1447:1097:aa7 ... FAILED
IPv6: FAILED
Resolving api.turris.cz ... OK
Resolving www.nic.cz ... OK
Resolving c.root-servers.net ... OK
DNS: OK
Resolving www.rhybar.cz ... OK
DNSSEC: OK

Meaning that you can access ipv4.speed.netmetr.cz from web browser?

Can you try with mtr (needs to be installed first) - mtr -Tzrbwe ipv4.speed.netmetr.cz (important is the -T, --tcp use TCP instead of ICMP echo)

Yep, I get following answer:

RMBTv0.3
ACCEPT TOKEN QUIT

And here is the output from mtr:

mtr -Tzrbwe ipv4.speed.netmetr.cz
Start: 2020-07-07T20:40:53+0200
HOST: turris                                          Loss%   Snt   Last   Avg  Best  Wrst StDev
@Not a TXT record
1. AS???    192.168.0.1 (192.168.0.1)                0.0%    10    0.7   1.1   0.7   1.4   0.3
2. AS12570  109.105.51.1 (109.105.51.1)              0.0%    10    2.2   2.3   1.4   2.8   0.4
3. AS12570  vl66-d994-brq.itself.cz (212.96.178.6)   0.0%    10    2.7   2.9   2.3   3.4   0.3
4. AS12570  nic.cz.cust.itself.cz (212.4.152.57)     0.0%    10    4.1   3.1   2.1   4.1   0.5
5. AS25192  speed.netmetr.cz (217.31.202.97)         0.0%    10   10.1  10.7   9.8  11.7   0.6

IPv4 appears peachy and neither netmtr seems to be taking a wrong turn either, pings the remote host OK but then TCP fails mysteriously:

“res_status”:“fail_init”,
“res_status_msg”:“timeout; could not read from server”,

but that is not really verbose enough to identify the cause, fail_init could mean anything.


it should show whether the remote node responds at all (and if it does the sort of response) to the TCP packets generated by the netmetr routine.

So… when I do tcpdump -vv dst ipv4.speed.netmetr.cz and try netmetr from Turris… I do not see any output at all. But when I do test from browser, I see lot of packets going there.

Would seem that netmetr is not emitting any TCP packet then, coming full circle to

, perhaps @mprudek can provide insight on that?

Hi all,

I really think that the problem is not inside netmetr - it seems there’s rather an issue with connectivity to ipv4.speed.netmetr.cz.

@FrantisekFlinta, you posted the result of opening ipv4.speed.netmetr.cz in a web browser. You should get the same result by opening http://ipv4.speed.netmetr.cz:8081/(with measurement port) and a similar result when connecting to ipv4.speed.netmetr.cz directly from Turris & also using measurement port 8081.

To connect to ipv4.speed.netmetr.cz from Turris you can use either telnet client or netcat. If I use e.g.:
nc ipv4.speed.netmetr.cz 8081

The result is following:

RMBTv0.3
ACCEPT TOKEN QUIT

(and it takes less than one second to get the result)

1 Like

Hi,

true. Not working from Turris and also not from desktop… I will ask house owner if he can check it from Mikrotik. I will report back what is the problem.

But how the web test can work? It has some failback to some different port? From browser I see that its connecting to 8444 and telnet there is working well (from Desktop).

From browser:

1. client_remote_ip: "<hidden>"
2. error: []
3. result_qos_url: "https://www.netmetr.cz/en/resultQoS"
4. result_url: "https://www.netmetr.cz/en/result"
5. test_duration: "5"
6. test_id: 8053881
7. test_numpings: "10"
8. test_numthreads: "3"
9. test_server_address: "ipv4.speed.netmetr.cz"
10. test_server_encryption: true
11. test_server_name: "CZ.NIC (Prague)"
12. test_server_port: 8444
13. test_server_type: "RMBTws"
14. test_token: "<hidden>"
15. test_uuid: "<hidden>"
16. test_wait: 0
17. user_server_selection: false

Desktop:

user@desktop:~$ nc -vz ipv4.speed.netmetr.cz 8444
Connection to ipv4.speed.netmetr.cz 8444 port [tcp/*] succeeded!
user@desktop:~$ nc -vz ipv4.speed.netmetr.cz 8081
nc: connect to ipv4.speed.netmetr.cz port 8081 (tcp) failed: Connection refused

Turris:

root@turris:~# nc ipv4.speed.netmetr.cz 8081
nc: can't connect to remote host (217.31.202.97): Operation timed out
root@turris:~# nc ipv4.speed.netmetr.cz 8444
root@turris:~#
1 Like

for extended debug trace mtr -TzrbweP 8081 ipv4.speed.netmetr.cz

# mtr -TzrbweP 8081 ipv4.speed.netmetr.cz
Start: 2020-07-08T10:18:12+0200
HOST: turris                                    Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS25192  speed.netmetr.cz (217.31.202.97)   0.0%    10    1.0   1.4   0.8   1.9   0.4

This smacks a bit of a firewall block somewhere along the route. Could you turn on logging for the WAN zone on the O and check the logs for potential drops | rejects from netmetr | nc connectivity?
Also if available install ncat-full package as it has better verbosity output than the busybox applet and then try with ncat -vvv ipv4.speed.netmetr.cz 8081