pfSense English Support > Post a bounty

dpinger multiple targets - aka gwmond $2,500

(1/2) > >>

luckman212:
To make things interesting I will commit to donate $2,500 US to this cause.
I know it's a lot of work, but I am hoping others will commit some $ to make this appealing.

Details of my idea below, copy 'n' paste from https://redmine.pfsense.org/issues/4354 :


--- Quote ---I agree that the "right" way to handle this would be to have dpinger remain dumb (for lack of a better term) and simply report its latency stats dutifully. A new "gateway supervisor daemon" needs to be coded, that aggregates these stats and makes informed decisions based on some settings that don't currently exist in pfSense. This would be incredibly powerful.

One way I could envision this working is:

A new "Gateway Monitoring" page is created under Routing. The layout of this page would look something like the DynDNS page where you could add hosts line by line, and set Gateways, IPs and Descriptions for each.

We would define 0 or more hosts per gateway: If none are defined, monitoring for that gateway is effectively disabled. Defining just 1 host would be equivalent to the system we have currently. Defining 2 or more would enable the new advanced functionality. Each host added there would start a new instance of dpinger, adding monitoring + graphing for that host via the chosen gateway. These monitors in and of themselves would do NOTHING except log data.

The Routing > Gateway Groups page could then be changed so that some new popup choices are available for Trigger Level:
"ANY monitored host exhibits packet loss"
"ALL monitored hosts exhibit packet loss"
"ANY monitored host has high latency"
"ALL monitored hosts have high latency"
"ANY monitored host is completely down"
"ALL monitored hosts are completely down"
The "Gateway supervisor daemon" is the process that triggers pfSense scripts that mark gateways up/down based on the triggers set above and the aggregate stats for the individual dpinger instances.

These are back of napkin ideas but overall this seems like it would work.
--- End quote ---

luckman212:
No takers at $2500 ?

JSX:
I agree this would be nice, I think I've done this in a way but it's not really designed to do it.

I also wanted a way to compare not only the local ISP gateway but other internet locations as well, I did this by adding another gateway using the word "dynamic" in the IP address field.  I then specified the monitoring IP I wanted and saved it.  So in a sense I have it monitoring ISP_GW, DNS1, DNS2, etc..

The problem I've noticed is that once you have this configured if you ever need to change anything on the gateway settings such as the monitored IP address, it won't let you because it see's multiple gateways with the same gateway address - the only solution is to remove all the extra gateways make the change and then re-add them again.   This is not ideal but it does work.

My advice if you do choose to use this method, create a standard naming scheme for the gateways so it's clean and easy to read..especially if you have multiple WANS.

 It would be nice if pfSense could use this technique to be a little smarter about whether the internet connection is really down or if it's just the monitored IP address having issues.

chrcoluk:
I will look into it.

I will post back if I am successful, basically you want the dpinger function to support multiple targets, and it to be fully configurable in the GUI for the new features?

I would need to submit my work as a patch to the pfsense developers for it to be adopted officially.

luckman212:

--- Quote from: chrcoluk on January 26, 2017, 11:26:24 am ---basically you want the dpinger function to support multiple targets, and it to be fully configurable in the GUI for the new features?

--- End quote ---

Well that's definitely a part of the request but the other arguably more critical piece is creating a new "gateway monitor daemon" (which I dubbed gwmond) to take informed actions based on the additional data that dpinger will be collecting.  Pinging additional targets alone without adding a layer of control/response would be interesting, but ultimately not solve the real world problem.

Navigation

[0] Message Index

[#] Next page

Go to full version