Closed xplaa closed 1 year ago
Hi @xplaa, Can you let me know about your testing tools?
Hi @nik-netlox, As client and server I use examples (tcp_sctp_server_demo, tcp_sctp_client_demo) with minor modifications from seastar source codes. I should note, that without using loxilb, the server holds 40k connections from 2 clients.
In full nat mode, due to sourceIP rewrite, traffic from two clients can clash unless l4 source port are spread out between the clients(We will have 64k choices at max) . So, you can try:
What is the reason for this limitation? Is it possible to fix? I need a scheme when all clients connect to the one port of loxilb server.
This is a fundamental problem with fullnat/snat. Linux and other OS's do well to select random ephemeral source ports. Another workaround is to use default NAT mode of loxilb (not fullNAT) where source IP is preserved. But in default mode with SCTP, the server and client apps need to make sure they are strictly binding to a single system IP address to work properly.
@TrekkieCoder, thank you for your responses.
I tried using Normal NAT (in cfg file mode = 0). All SCTP connections in init status. Is there anything else I need to add to the config file?
Although this mode One-ARM works fine.
Finally I have 2 questions:
Hi @xplaa
I would like to chip in. If all nodes are in same subnet only fullnat/one-arm mode will work. If default NAT mode 0 (also known as two-arm mode) is required, then a routed network will be needed. Each arm(in/out) being in a different subnet. IMO, if you lay out the topology like the following and configure appropriate LB rule, it should work fine
graph LR
Client1_10.50.0.10--- |10.50.0.x/16|10.50.0.12_loxilb_10.49.0.166
Client2_10.50.0.11--- |10.50.0.x/16|10.50.0.12_loxilb_10.49.0.166
10.50.0.12_loxilb_10.49.0.166 ---- |10.49.0.x/16| echoserver
You also need to make sure echoserver has a route to reach the client subnet (10.50.0.0/16) in the above.
H1 @PacketCrunch
Thanks for the description and diagram. Looks like a networking error on my side. I'll try to set it up and post the results.
You also need to make sure echoserver has a route to reach the client subnet (10.50.0.0/16) in the above.
Yes, it really was my fault NormalNAT actually works as I need. Thanks everyone for the replies!
I am trying to test the following SCTP connection scheme:
The loxilb configuration is the following:
The goal of my circuit is to test as many connections as possible through over loxilb. Each client creates 20k SCTP connections. Problems start when on the server side, there are about 25k connections:
At this time, from the client side, I am getting errors - "Connection reset by peer" (errno 104). Clients cannot create more connections. In the server logs, messages of the following format:
Perhaps I need to adjust the size of the eBPF map or perform another system tuning? I did not find a recommendation about this in the documentation.