Monitor your local network with Raspberry Pi
rigaspapas.com
rigaspapas.com
1) You need a router that supports DHCP relay, which most home routers do not natively support.
2) It won't show you clients that are connected to the Wifi which is probably the majority of clients in most home networks.
3) It doesn't give you the ability to monitor anything beyond the DHCP lease table which all routers show.
So besides wasting 50$, losing a port on your router and having another thing that might break your network down you aren't getting anything.
There is a need for tools that people can use for monitoring the activity on their home networks. All of these IoT devices are going to create problems that need troubleshooting. Yes, the ideas outlined are simple, but this can evolve over time to solve a problem that is going to be increasingly important
i used to do something like this with a freebsd box and had all the wireless clients dhcp to the freebsd box and route through them while turning off dhcp on the wireless router.
ultimately it was a PITA and i run merlin on my wireless router now and it gives me everything i really used the freebsd box for.
and if you have an IOT thing which is misbehaving and you really need to dig into it more than you can with merlin you can always setup ip forwarding on a linux desktop/server/whatever and force the IOT to use that as a router and MITM your own traffic for that box temporarily.
So how about using RPI as a network bridge between the router and the client hosts and then using Ntop, arpwatch etc. Then you can actually monitor the traffic in detail.
However, maybe at least setting up DNS server on Pi would get some "live" stats without sacrificing performance ?
Over years I started with a freebsd box with a front wired network to a DSL link that had no other clients physically connected to it, with wireless and wired backend cards in it to serve the client networks... To a system where the freebsd router had a single drop and two interfaces and did routing between them and DHCP'd for the client network (and the physical network was bridged between wireless and wired by the wireless router I had bought)... To a system where I just have a wireless router and don't worry about it that much any more. I get traffic stats, connected clients, etc which is mostly what I need to know about. Its nice being able to sniff all your wireless traffic at the AP, its also nice being able to tcpdump all your transit, but ultimately the complexity wasn't worth the flexibility for me.
"We chose to use the range 192.168.1.0/8 as our local network"
Minor typo, although it doesn't really matter in the big picture.
I like how it was written. In line commentary, like a tourist guide or a very informal runbook.
As a meta comment about the project goals it seems almost like a parody of taking something like logging into the CLI and running "arp" and turning it into the largest and most complicated system imaginable, I'm trying to figure out how to make it more complicated, maybe running it on https instead with a valid cert, or perhaps doing it all in Intercal or cobol instead of node.js.
We did this at my university to monitor who's in our social activity facilities at any given time (opt-in).
I love Pi, and I have my own raspberry pi router project with 3d printed box and everything. But why spend money and an extra ethernet port for information that you can scrape off of your router's http page with something simple like a web testing tool?
Pulling the DHCP functionality out into something more accessible is a great idea!
I use to have my own DNS on my server for these purposes and could get a text or email whenever my kids started pulling data on wifi (Teenagers who "can't sleep" than I pulled this trick and they were sleeping)
Fios TV must have the DNS going through their crappy router.
And there are hacker distros for the PI designed for use as an ICE device - ideally you need to have a ethernet tap other wise you need two ports to monitor ethernet.
umm, what? I haven't seen a router for a long time that doesn't have that feature.
And you swap a real router for a bandwidth constrained raspberry to get that list.