Skip to content

Egress Block List for Gorouter Route Services#537

Merged
geofffranks merged 1 commit intocloudfoundry:developfrom
sap-contributions:gorouter-route-srv-blocklist
Mar 9, 2026
Merged

Egress Block List for Gorouter Route Services#537
geofffranks merged 1 commit intocloudfoundry:developfrom
sap-contributions:gorouter-route-srv-blocklist

Conversation

@Dariquest
Copy link
Copy Markdown
Contributor

@Dariquest Dariquest commented Mar 9, 2026

Summary

Egress Blocklist for Route Services

Operators will be enabled to provide a list of IP addresses, which can't be accessed via route services.
The list of blocked CIDRs for route services is configured in the Gorouter configuration property router.route_services.block_CIDRs. Route Service Requests to these CIDRs will be blocked with HTTP status code 502.

Custom Route Service Dialer enables callback to make decisions after DNS resolution and before the connection is established by providing a Control function. This function is used to abort the Dialer's connection to a particular target before it is opened based on the defined block list.

Backward Compatibility

Breaking Change? No

Co-authored-by: <alexander.nicke@sap.com>
Copy link
Copy Markdown
Contributor

@plowin plowin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, @ameowlia / @geofffranks to cross-check/cut a release

@github-project-automation github-project-automation Bot moved this from Inbox to Pending Merge | Prioritized in Application Runtime Platform Working Group Mar 9, 2026
@geofffranks geofffranks merged commit 7708f93 into cloudfoundry:develop Mar 9, 2026
1 check passed
@github-project-automation github-project-automation Bot moved this from Pending Merge | Prioritized to Done in Application Runtime Platform Working Group Mar 9, 2026
@Dariquest Dariquest deleted the gorouter-route-srv-blocklist branch March 9, 2026 14:59
@ameowlia
Copy link
Copy Markdown
Member

ameowlia commented Mar 9, 2026

HI @Dariquest - I was belatedly looking over this PR.

❓ Can you please make a new PR and add template tests?

@Dariquest
Copy link
Copy Markdown
Contributor Author

HI @Dariquest - I was belatedly looking over this PR.

❓ Can you please make a new PR and add template tests?

Hi @ameowlia, sorry, I am on it.

rsDialer := &net.Dialer{
Timeout: cfg.EndpointDialTimeout,
KeepAlive: cfg.EndpointKeepAliveProbeInterval,
Control: RouteServiceDialControl(routeServiceConfig),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FTR: this control hooks in before TCP connect

Layer Timing relative to Control
Socket creation Before Control
Control callback ← here
TCP connect (SYN) After Control
TLS handshake After Control
HTTP request After Control

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

4 participants