[reSIProcate] building high reliability proxies with anycast
Rohan Mahy
rohan at ekabal.com
Tue Mar 29 14:34:44 CST 2005
Hi,
I am trying to capture some design discussions with Bill Woodcock about
how to build high reliability proxies and registrars using anycast + a
lazy registration state synchronization scheme based on the principles
of NNTP (netnews) distribution.
I would like our proxy design to work with this scheme and possibly
even implement it as one mechanism that we support. Clearly, we will
need to support other models, since not everyone will be able or
willing to configure anycast (even though it is not hard to do, it is
"new" to most SIP folks).
First a little background on anycast. Please skim this, noting
especially slides 17, 38, and 39
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Anycast-v10.pdf
Type: application/pdf
Size: 706635 bytes
Desc: not available
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20050329/05f3e6d3/attachment.pdf>
-------------- next part --------------
How does a UA connect to the closest proxy - it sends traffic to the
anycast of the all the proxies in an anycast cloud.
How does a UA connect to multiple (diverse) proxies - use two different
anycast clouds configured so that the closest server in anycast-cloud1
is never the same as in anycast-cloud2.
NAPTR for transport selection
SRV to select the port and the host name
A records point to anycast address
for example:
example.com. IN SOA etc...
IN NAPTR 50 50 "s" "SIPS+D2T" "" _sips._tcp.example.com.
IN NAPTR 80 50 "s" "SIP+D2T" "" _sip._tcp.example.com.
IN NAPTR 90 50 "s" "SIP+D2U" "" _sip._udp.example.com.
_sips._tcp IN SRV 0 0 5061 anycast1
_sips._tcp IN SRV 1 0 5061 anycast2
_sip._tcp IN SRV 0 0 5060 anycast1
_sip._tcp IN SRV 1 0 5060 anycast2
_sip._udp IN SRV 0 0 5060 anycast1
_sip._udp IN SRV 1 0 5060 anycast2
anycast1 IN A 123.45.67.1
anycast2 IN A 123.45.68.1
both 123.45.67.1 and 123.45.68.1 are anycast IPv4 addresses in
different anycast clouds
Then for registration contact state distribution, Bill suggests using a
loosely-coupled model like NNTP, where "articles" are delivered over a
distribution topology for propagation to all the registrars. Articles
expire, they can be cancelled, and they are replaced by newer articles.
This works today among major news relays at very high speed for
millions of articles every hour.
I'll take a look today at how NNTP works, and how modular the code is
from INN (a BSD licensed news server from ISC).
thx,
-r
More information about the resiprocate-devel
mailing list