Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added clarity around the use and need of max-way-points #776

Merged
merged 2 commits into from
Oct 11, 2024

Conversation

MichaelBaj
Copy link
Contributor

No description provided.

avinashbhat80
avinashbhat80 previously approved these changes Oct 10, 2024
Limiting this range will make your firewall team happy without putting too much of a crimp in your ability to SVR sessions. In fact, we have some customers that have limited their waypoint port allocation to only 10 ports on their head end routers! At face value this seems like it would severely restrict the number of unique, concurrent sessions that could be established by a peer, but in practice it doesn't. If a branch keeps its range to the default value of ports (49,148 ports), which can be sent to each of ten ports, you still wind up with a theoretical maximum of over 120,000 concurrent sessions *in each direction* to that branch over that adjacency.

It is important to note that despite the configured [port-range](config_reference_guide.md#port-range), the SSR will at most use 50K of those ports by default. The configuration [max-way-points](config_reference_guide.md#max-way-points) allows the SSR software to scale respective to the platform and the administrator's needs. A `max-way-points` setting that is smaller than the number of sessions traversing a peer path will result in port exhaustion. A `max-way-points` setting that is too large will result in wasted system resources. Best practice is to tune both the `port-range` and `max-way-points` to a factor of 1.5x of the max number of sessions traversing a peer path.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
It is important to note that despite the configured [port-range](config_reference_guide.md#port-range), the SSR will at most use 50K of those ports by default. The configuration [max-way-points](config_reference_guide.md#max-way-points) allows the SSR software to scale respective to the platform and the administrator's needs. A `max-way-points` setting that is smaller than the number of sessions traversing a peer path will result in port exhaustion. A `max-way-points` setting that is too large will result in wasted system resources. Best practice is to tune both the `port-range` and `max-way-points` to a factor of 1.5x of the max number of sessions traversing a peer path.
It is important to note that despite the configured [port-range](config_reference_guide.md#port-range), the SSR will at most use 50,000 of those ports by default. The configuration [max-way-points](config_reference_guide.md#max-way-points) allows the SSR software to scale respective to the platform and the administrator's needs. A `max-way-points` setting that is smaller than the number of sessions traversing a peer path will result in port exhaustion. A `max-way-points` setting that is too large will result in wasted system resources. Best practice is to tune both the `port-range` and `max-way-points` to a factor of 1.5x of the max number of sessions traversing a peer path.

Limiting this range will make your firewall team happy without putting too much of a crimp in your ability to SVR sessions. In fact, we have some customers that have limited their waypoint port allocation to only 10 ports on their head end routers! At face value this seems like it would severely restrict the number of unique, concurrent sessions that could be established by a peer, but in practice it doesn't. If a branch keeps its range to the default value of ports (49,148 ports), which can be sent to each of ten ports, you still wind up with a theoretical maximum of over 120,000 concurrent sessions *in each direction* to that branch over that adjacency.

Choose a reason for hiding this comment

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

  • The default local port range is 16384 ~ 65534, 49151 ports in total, not 49148.

the default value of ports (49,148 ports)

  • The default remote port range is 16385 ~ 65533, 49149 ports in total.

  • When (remote) port-range is not configured, local ports are even, remote ports are odd, the total combination is 24576 (even local ports) * 24575 (odd remote ports) = 603,955,200

  • When (remote) port-range is configured, local ports are continuous within that 16384 ~ 65534 range, remote ports are also continuous within the configured range, so the total combination is 49151 * num of ports within the range. In the doc's example, the total combination is 49151 * 10 = 491,510.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

What do you mean by "local" vs "remote" port ranges? Are the settings per neighborhood, and therefore shared by both nodes? Or is that not the case and for any given neighborhood, there is both a local and remote, because the setting applies to that device specifically?

Choose a reason for hiding this comment

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

For a given SVR session, waypoint ports are allocated by the ingress router. So, the notion of local vs. remote is from the ingress router's perspective. The local port does not have a configurable range only the remote port does. It tells the ingress router what ports are opened on the egress router for SVR sessions.

The port range is per neighborhood per network-interface and only shared across an HA pair if the interface is redundant.

The neighborhood->port-range on the hub is propagated to adjacency->port-range on the branch through adjacency generation by the conductor.

@MichaelBaj MichaelBaj merged commit 7493fae into master Oct 11, 2024
1 check passed
@MichaelBaj MichaelBaj deleted the max-waypoint-clarification branch October 11, 2024 17:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants