0

I am working in an environment consisting of 4 OpenWrt routers, each serving multiple clients via Wi-Fi and containing. Each one of them provides the clients with Internet access.

I have 3 questions regarding this scenario and I would appreciate if any of you could answer any of these questions (you can answer just 1 and I will still be very thankful):

1) When I'm inside a router (via ssh or other mechanism), what command or package could I use to discover the IP address and hostname of the other routers? Would avahi help me with this or would I need to know, beforehand, the IP of the other routers? What if I add a new router to this environment, would I have to manually configure each router to recognize the new one?

2) Considering I'm collecting measurements of latency and packet drops in each router, when clients stop being able to access Internet services, how would I know if each router/network is congested or if I just don't have internet access? Because in both cases, the ping command would most likely not work and the packets would also be dropped.

3) Taking into account that the routers will be connected through a high speed wireless link, what protocol or software should be used so they can communicate between them, like pinging each other (considering that they already know each other - question 1)?

Note: These questions are not specific to OpenWrt routers.

[EDIT] Each router is in a separate room and so, in each room, a network is created, like 10.0.1.0/24, and in the next room 10.0.2.0/24 and so on.

Each router contains a SIM card which allows it to connect to the cellular network and thus, provide clients of the room with Internet. So, routers don't have a common subnet, each one is associated with a different network.

Also, I have to measure latency and packet drops from the router, because I will set a threshold that, once surpassed, the router must transfer a part of its traffic to another less loaded router. I'm not sure if these two metrics are adequate to measure the link load in a router, though.

So, the information the OpenWrt routers would be sharing between them (every 1 second) is the throughput, latency, packet drops and CPU load. This is so that they are aware of the load of each other. And for this to be possible, each router would have to know which routers are in the environment (hence, discovery), manually or automatically, so that it is impossible for someone to try to act as one of the routers (MiTM).

imll
  • 123
  • 3

1 Answers1

0

You didn't describe your topology, but I'm assuming the routers all have a common subnet that connects them to your ISP router.

1) When I'm inside a router (via ssh or other mechanism), what command or package could I use to discover the IP address and hostname of the other routers?

OpenWrt routers don't run routing protocols like OSPF, so there is no discovery mechanism. You'll just have to know what you have. Other routers that do run routing protocols build tables of their peers, which you can examine.

2) Considering I'm collecting measurements of latency and packet drops in each router, when clients stop being able to access Internet services, how would I know if each router/network is congested or if I just don't have internet access (ISP?

The routers can run SNMP, so you can use that from a separate monitoring system (server) to collect basic statistics. With that, you can determine drops. Latency has to be measured from the end hosts, not the router.

3) Taking into account that the routers will be connected through a high speed wireless link, what protocol or software should be used so they can communicate between them, like pinging each other?

Routers use routing protocols (OSPF, BGP, EIGRP) to advertise routes to networks they know about. But for OpenWrt, I'm not sure what kind of information you think they would be sharing between them.

EDIT

Based on your edit, you seem to want the routers to share load and tranfser clients between them as load changes.

Unfortunately, this is hard to do. First, the Wi-fi client decides when to roam from one access point (router) to another, not the access point. So you're at the mercy of every Wi-fi device. Second, OpenWrt does not have features to share operating parameters and change behavior based on them. Even commercial, controller-based Wi-fi systems are only partially successful at this. In that case, there is a central controller that monitors all the access points and controls their operation.

Ron Trunk
  • 2,159
  • 1
  • 11
  • 19
  • Thank you. I've edited my question, please take a look at it – imll Jul 31 '19 at 13:26
  • I'm sorry, but I'm confused with 2 things: 1) You said OpenWrt does not run OSPF, but I found this package: [https://openwrt.org/packages/pkgdata/quagga-ospfd] ? 2) You're saying they cannot share operating parameters, but I could open a socket through python and between them and transfer information of CPU load, for instance. However, I don't understand what you mean by "does not have features to (...) change behaviour based on them". So, they cannot exchange traffic? What if I add an SDN controller to the environment, would they be capable of exchanging load (according to certain rules)? – imll Aug 02 '19 at 19:34
  • You can install 3rd party software or write your own to do whatever you want, but the the problem still is the same: You can't make clients roam from one AP to another. – Ron Trunk Aug 02 '19 at 19:41