Load balancing: Sharing the same public IP across multiple TURN servers.

357 views
Skip to first unread message

Cody Herzog

unread,
Mar 26, 2020, 6:29:17 PM3/26/20
to TURN Server (Open-Source project)
Hello.

I've read the following threads...


I'm still not clear on whether or not the same public IP can be shared across multiple TURN servers in my load balancing use case.

Here's my understanding:

TURN requires at least one of the following:

1.) Two different clients can meet at the same server.

2.) Two different clients can get to two different servers, and those servers can route between one another.

It's pretty clear to me that #1 won't work when sharing a public IP across multiple TURN servers behind a load balancer. Correct?

I'm also not currently seeing how #2 will work. How will the TURN servers behind the load balancer be able to reach one another when they are advertising their public IP addresses.

Won't all the TURN servers behind the load balancer have to use the 'external-ip' config option so that only their public IPs will appear in the TURN messages?

If that's true, then how will the servers be able to route between one another correctly? Won't the load balancer be routing those server-to-server messages between random TURN servers?

Is the private IP present in some of the TURN messages such that it could work?

Maybe I'm just missing something.

Thanks very much.

Navraj Chohan

unread,
Mar 27, 2020, 11:20:23 AM3/27/20
to TURN Server (Open-Source project)
If anyone can answer this question please do. We are looking to scale our the TURN servers in order to help COVID19 patients. Any and all help is appreciated and time is of the essence.
Thanks
Raj

Cody Herzog

unread,
Mar 27, 2020, 12:49:40 PM3/27/20
to TURN Server (Open-Source project)
A bit more context:

In our use case, SIP clients and WebRTC clients are trying to establish end-to-end media paths between one another using the ICE protocol. These clients will be on different networks around the world. These clients will be using a signaling protocol to exchange ICE candidates, including TURN relay candidates.

From this page...


"1. Set a networking load-balancing equipment that redirects the requests to a member of the TURN servers group. In general case, it must take care about redirecting the requests to the same server from the same client IP - because some TURN sessions from the same client must share the information. There are two cases when different TURN sessions must interact: RTP/RTCP connection pairs (from RFC 5766) and TCP relay (from RFC 6062). If you are not using those features then a simple network load balancing is enough. If you do use those features, then you have to map the whole client IP (with all its network ports) o the same TURN server. Also, if you are using the mobile TURN (from the new MICE draft) then you cannot use the network load balancer option because client sessions from different IP addresses must interact - so you have to use the next option (see below)."

I'm not sure what is meant by "mobile TURN" or "MICE", but I'm guessing that might be our case, because I think that client TURN sessions from different IP addresses must interact.

Does that sound correct?

Thanks.
Reply all
Reply to author
Forward
0 new messages