Sunday, February 23, 2020

Networking tool which passively maps WAN network

I thought of a network tool which seems so useful I believe it must already exist in some form. Please read the description below and let me know if you are aware of something which meets the goal. Also let me know if you are aware of why this isn't a good idea.

I don't want to reinvent the wheel.

Purpose

Map traversed WAN network and track statistics in that intersection. Specifically quantify link health and perceived throughput. The output could be perceived in a few different levels. At a basic level it can give an indication of overall link quality. At a deeper level it can correlate information about peers and map relative quality. This quality metric could be useful beyond diagnosis and could play a role in peer selection if applications desired.

Initial Thoughts

Could there be a value to tracking data from a tool like mtr but for every connected peer thanks to the kernel BPF tooling. Tracing the routes would show some initial shared infrastructure like LAN and the ISP WAN. Can we map some of the ISP's WAN by taking different paths to a destination? What about the larger Internet? Can we identify a quality gradient for connected peers? If applications had a meaningful source of peer quality could that feed back into peer selection? Peers could be nodes on BitTorrent, IPFS, blockchain or A record addresses on a DNS record.

Implementation Ideas

Use BPF to efficiently capture peer ip addresses. Rebuild ping and traceroute functionality or interface with MTR. Research datatypes to efficiently store and query this data. Expose data in two ways. First quality projection by ip address. Second some API and/or GUI data mining tool to answer questions about the overall network it has been exposed to.

Possible Intersecting Technologies

  • BGP
  • TCP Multipath
  • Distributed databases like Casandra
  • cjdns
  • IPFS
  • BitTorrent
  • Blockchain

Tools Which Exist and Kinda Relate

  • MTR
  • traceroute
  • ping
  • iftop
  • dstat
  • Hping3
  • nslookup
  • nmap
  • tcpdump


No comments:

Post a Comment