[14.5-stable] diag: make remote probe endpoints configurable #5269
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Previously, diagnostic network connectivity checks were hardcoded to use
www.google.comover HTTP/HTTPS. In some deployments this can be blocked by firewalls or trigger unwanted security alerts.This change introduces two new global config options:
diag.probe.remote.http.endpointdiag.probe.remote.https.endpointThese define the remote endpoints (URL, bare IP is also accepted for HTTP) that EVE will query over HTTP/HTTPS when the controller is unreachable. They are used only for diagnostics (no functional impact) and can be disabled by setting them to an empty string.
Backport of #5258, including also fix #5270
How to test and validate this PR
Onboard an edge-node and configure
diag.probe.remote.http.endpointanddiag.probe.remote.https.endpointto point to remote (e.g. from Internet) web servers other thanwww.google.com.Block connectivity between the edge-node and the controller (e.g., block the controller IP on the firewall).
Check the console output (or
/run/diag.out) to confirm that the configured endpoints are being queried instead ofwww.google.com. Example output:www.google.com.On the device, unpack a
/persist/netdump/nim-fail-*tarball created during controller connectivity failure:Check the directory names where each
nettrace.jsonis stored. Optionally, inspect the JSON files themselves to confirm the target endpoints.Re-enable connectivity between the edge-node and the controller.
Set both configuration properties to empty strings.
Block connectivity between the edge-node and the controller again.
Repeat the same checks (
diag.out+ nettrace output) and confirm that there are no connectivity tests beyond the controller/pingrequest.(Optional) Capture packets on the management ports to confirm that
www.google.com(or any previously configured remote endpoints) are no longer queried.With both properties empty, there should be no HTTP (port 80) traffic originating from EVE.
Changelog notes
Remote endpoints used to assess connectivity when the controller is unreachable are now configurable via properties
diag.probe.remote.http.endpointanddiag.probe.remote.https.endpoint. These probes are used only for diagnostics and can be disabled by setting the properties to an empty string.Checklist