Hello,
On Thu, 13 Jan 2005, Erik Versaevel wrote:
I'm currently trying to create a loadbalacing SIP (voip protocol) cluster,
however for this to work I need SIP messages from the same call (identifiable
by the sip callid field) to get to the same realserver over and over again.
(so, I need persistence based on the contents of the SIP Call-ID field). This
would call for ktcpvs as we need to process packets at layer 7, however that
poses 2 new problems, the first is that SIP uses clear text UDP messages,
not tcp and the second is that there are no SIP modules for ktcpvs.
We cannot use ktcpvs, because ktcpvs supports TCP only, and there is no
SIP modules for TCP transport.
Another option would be to mark SIP packets with iptables/netfilter
based on
the callid, however i run into the same problem, there are no modules to
accomplish this.
The firewall marking doesn't solve the problem. However, we can write a
special SIP UDP scheduling module for IPVS. It can detect the Call-Id from
UDP packet and send it to the SIP server according to the recorded Call-Id
table. We assume that there is no UDP fragments. Some NAT boxes (such as
early IOS version of Cisco router) may drop UDP fragements except the
first one.
Regards,
Wensong
|