… I’m probably missing something obvious, and maybe it’s a question with a simple answer ![]()
TL;DR
As per the subject… basically, I’m trying to achieve what in Momentum could be done like this:
Binding_Group "123456" {
Domain "example.com" {
Max_Outbound_Connections = "1"
Max_Deliveries_Per_Connection = "1"
Outbound_Throttle_Messages = "1/20"
}
Binding "ip.10.120.4.5" {
bind_address = "10.120.4.5"
}
Binding "ip.10.120.4.6" {
bind_address = "10.120.4.6"
}
Binding "ip.10.120.4.7" {
bind_address = "10.120.4.7"
}
}
Is there a “simple”, no-code way to do this in Kumo?
Let me explain:
With traffic-shaping, I can set, for example, the following limits for the domain example.com:
connection_limit = 10
max_connection_rate = "100/min"
max_deliveries_per_connection = 100
However, for customers with “special” traffic patterns, I’d like to specify custom limits for the same domain, such as:
connection_limit = 1
max_connection_rate = "20/min"
max_deliveries_per_connection = 1
So, for X-Tenant 123456, I’d like traffic from their IPs (see below, e.g., 3 IPs) going to example.com to use these specific parameters only for them.
[tenant.'123456']
egress_pool = 'pool-123456'
[pool."pool-123456"]
[pool."pool-123456"."ip-10.120.4.5"]
[pool."pool-123456"."ip-10.120.4.6"]
[pool."pool-123456"."ip-10.120.4.7"]
[source."ip-10.120.4.5"]
source_address = 10.120.4.5
[source."ip-10.120.4.6"]
source_address = 10.120.4.6
[source."ip-10.120.4.7"]
source_address = 10.120.4.7
I’m experimenting with get_egress_path_config and make_egress_path, but so far without success ![]()
In any case, with “hundreds” of such cases, scripting everything in Lua would turn init.lua into a monster or I have to build my toml and load it dynamically, BTW I already have:
kumo.on('get_egress_path_config',
shaping:setup{
'/opt/kumomta/etc/policy/shaping_custom.toml',
}
)