Re: Distributed XMPP servers behind firewalls

Liam Friel <[email protected]> Mon, 10 Jun 2013 23:59:18 +0100
Newsgroups gmane.network.jabber.admin
Message-ID <CA+vRuD1DxGRrBNsU3JeZ83yxTdCAzWKE54qZbqesH22jxj5+aQ@mail.gmail.com>
--===============1001344102==
Content-Type: multipart/alternative; boundary=bcaec54866e20248aa04ded4bb0e

--bcaec54866e20248aa04ded4bb0e
Content-Type: text/plain; charset=ISO-8859-1

Hi,

Thanks for the feedback.

I know that I could just have clients just register against the single
central server, but what we want is a little more complicated.

We want to have a physical server in each club, a raspberry pi actually,
and have the clients in each club connect to that. There are several
reasons for that, not all technical ...

But we also want this distributed set of raspberry pi machines form a lose
federation of chat severs, such that clients connected to each pi can see
and chat with clients on other PiS.

Am I looking at a custom development?

Which I would be fine with, but if I could do it with judicious xmpp server
configuration, all the better.

Liam
On 10 Jun 2013 23:38, "herbert langhans" <[email protected]> wrote:

>     From: Liam Friel <[email protected]> [130610 23:42]
>     Hi
>
>     I have a requirement to make a distributed chat and presence system,
> with
>     some restrictions to be described below, and I *think* that XMPP would
> be
>     an extremely good fit. I have spent quite some time reading up on XMPP,
>     however I am looking for some configuration advice: hopefully this is
> the
>     correct list.
>
>     This is to support a distributed loose association of computer clubs.
>
>     These computer clubs generally run in networks over which they have no
>     control (think school networks, or hotel networks: they run in those
>     premises, and have internet access, but no control over routers or
>     firewalls etc). They may be behind several layers of NAT.
>
>     What I want is:
>     - to create a central cloud hosted server
>     - to run a chat server locally inside each of the computer clubs
>       - clients on the local LAN can connect to their local chat server,
> and
>     chat to each other
>       - that is vanilla XMPP/Jabber behaviour. I favour prosody as the
> server,
>     for various reasons.
>     - each computer club chat server makes an encypted link to the central
>     server and announces it's presence
>       - this puts the local chat server "online" in our loose federation of
>     nodes
>       - central server remembers some data about each "local" server which
>     connects
>     - clients on each local LAN can how ask their "online" local server to
> tell
>     them what other servers are online
>     - clients can get a roster of clients either connected locally, or
>     connected to other servers
>     - clients can initiate a chat session with local clients, or clients
>     connected to other servers
>
>     I would rather not write this s/w myself from scratch: this is rather
> close
>     to a distributed XMPP network of servers (isn't it?) except that I
> cannot
>     really rely on DNS to find the local server in each computer club, and
>     servers in each local club cannot directly contact each other. All
> contact
>     will have to go via the central server.
>
>     Any necessary level of ssl certs, unique identifiers for the "local"
> chat
>     servers etc is possible. It's just that local server A cannot see local
>     server B: they will have to communicate via the central cloud-hosted
> server.
>
>     Is XMPP the right answer to this problem? Or am I barking up the wrong
> tree
>     there?
>
>     TIA for your expert advice.
>
>     Regards
>     Liam
>
>     _______________________________________________
>     JAdmin mailing list
>     Info: http://mail.jabber.org/mailman/listinfo/jadmin
>     Unsubscribe: [email protected]
>     _______________________________________________
>
> Hi Liam,
> on my server I run the jabberd-1.4.2 XMPP-server. I use it always as a
> private chat network, just client-server-client. Its relieable. The
> public jabber servers behave sometimes strange so I installed my own.
>
> It should do for your network, for what I understand you can connect
> various servers to each other and then use clients to chat across the
> network.
>
> Maybe you want to take a look to its configuration file jabber.xml - all
> the settings have remarks and help you to understand what you can do
> with it. I suggest to download it, get an idea and start with a single
> server and a client (pidgin has plenty of settings) where you can
> register two users. Then try to send messages between two open chat
> windows.
>
> Cheers
> herb langhans
>
>
> --
> sprachtraining langhans
> herbert langhans, warschau
> herbert[at]langhans.com.pl
> office [at]langhans.com.pl
> http://www.langhans.com.pl
> +0048 603 341 441
>
> | jabber:herbert.raimund
> | yahoo_im:herbert.raimund
> | icq:414500866
> _______________________________________________
> JAdmin mailing list
> Info: http://mail.jabber.org/mailman/listinfo/jadmin
> Unsubscribe: [email protected]
> _______________________________________________
>

--bcaec54866e20248aa04ded4bb0e
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<p dir=3D"ltr">Hi,</p>
<p dir=3D"ltr">Thanks for the feedback.</p>
<p dir=3D"ltr">I know that I could just have clients just register against =
the single central server, but what we want is a little more complicated.</=
p>
<p dir=3D"ltr">We want to have a physical server in each club, a raspberry =
pi actually, and have the clients in each club connect to that. There are s=
everal reasons for that, not all technical ... </p>
<p dir=3D"ltr">But we also want this distributed set of raspberry pi machin=
es form a lose federation of chat severs, such that clients connected to ea=
ch pi can see and chat with clients on other PiS.</p>
<p dir=3D"ltr">Am I looking at a custom development?</p>
<p dir=3D"ltr">Which I would be fine with, but if I could do it with judici=
ous xmpp server configuration, all the better.</p>
<p dir=3D"ltr">Liam</p>
<div class=3D"gmail_quote">On 10 Jun 2013 23:38, &quot;herbert langhans&quo=
t; &lt;<a href=3D"mailto:[email protected]">[email protected]</a>&gt; wro=
te:<br type=3D"attribution"><blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
=A0 =A0 From: Liam Friel &lt;<a href=3D"mailto:[email protected]">liam.f=
[email protected]</a>&gt; [130610 23:42]<br>
=A0 =A0 Hi<br>
<br>
=A0 =A0 I have a requirement to make a distributed chat and presence system=
, with<br>
=A0 =A0 some restrictions to be described below, and I *think* that XMPP wo=
uld be<br>
=A0 =A0 an extremely good fit. I have spent quite some time reading up on X=
MPP,<br>
=A0 =A0 however I am looking for some configuration advice: hopefully this =
is the<br>
=A0 =A0 correct list.<br>
<br>
=A0 =A0 This is to support a distributed loose association of computer club=
s.<br>
<br>
=A0 =A0 These computer clubs generally run in networks over which they have=
 no<br>
=A0 =A0 control (think school networks, or hotel networks: they run in thos=
e<br>
=A0 =A0 premises, and have internet access, but no control over routers or<=
br>
=A0 =A0 firewalls etc). They may be behind several layers of NAT.<br>
<br>
=A0 =A0 What I want is:<br>
=A0 =A0 - to create a central cloud hosted server<br>
=A0 =A0 - to run a chat server locally inside each of the computer clubs<br=
>
=A0 =A0 =A0 - clients on the local LAN can connect to their local chat serv=
er, and<br>
=A0 =A0 chat to each other<br>
=A0 =A0 =A0 - that is vanilla XMPP/Jabber behaviour. I favour prosody as th=
e server,<br>
=A0 =A0 for various reasons.<br>
=A0 =A0 - each computer club chat server makes an encypted link to the cent=
ral<br>
=A0 =A0 server and announces it&#39;s presence<br>
=A0 =A0 =A0 - this puts the local chat server &quot;online&quot; in our loo=
se federation of<br>
=A0 =A0 nodes<br>
=A0 =A0 =A0 - central server remembers some data about each &quot;local&quo=
t; server which<br>
=A0 =A0 connects<br>
=A0 =A0 - clients on each local LAN can how ask their &quot;online&quot; lo=
cal server to tell<br>
=A0 =A0 them what other servers are online<br>
=A0 =A0 - clients can get a roster of clients either connected locally, or<=
br>
=A0 =A0 connected to other servers<br>
=A0 =A0 - clients can initiate a chat session with local clients, or client=
s<br>
=A0 =A0 connected to other servers<br>
<br>
=A0 =A0 I would rather not write this s/w myself from scratch: this is rath=
er close<br>
=A0 =A0 to a distributed XMPP network of servers (isn&#39;t it?) except tha=
t I cannot<br>
=A0 =A0 really rely on DNS to find the local server in each computer club, =
and<br>
=A0 =A0 servers in each local club cannot directly contact each other. All =
contact<br>
=A0 =A0 will have to go via the central server.<br>
<br>
=A0 =A0 Any necessary level of ssl certs, unique identifiers for the &quot;=
local&quot; chat<br>
=A0 =A0 servers etc is possible. It&#39;s just that local server A cannot s=
ee local<br>
=A0 =A0 server B: they will have to communicate via the central cloud-hoste=
d server.<br>
<br>
=A0 =A0 Is XMPP the right answer to this problem? Or am I barking up the wr=
ong tree<br>
=A0 =A0 there?<br>
<br>
=A0 =A0 TIA for your expert advice.<br>
<br>
=A0 =A0 Regards<br>
=A0 =A0 Liam<br>
<br>
=A0 =A0 _______________________________________________<br>
=A0 =A0 JAdmin mailing list<br>
=A0 =A0 Info: <a href=3D"http://mail.jabber.org/mailman/listinfo/jadmin" ta=
rget=3D"_blank">http://mail.jabber.org/mailman/listinfo/jadmin</a><br>
=A0 =A0 Unsubscribe: <a href=3D"mailto:[email protected]">JAdmi=
[email protected]</a><br>
=A0 =A0 _______________________________________________<br>
<br>
Hi Liam,<br>
on my server I run the jabberd-1.4.2 XMPP-server. I use it always as a<br>
private chat network, just client-server-client. Its relieable. The<br>
public jabber servers behave sometimes strange so I installed my own.<br>
<br>
It should do for your network, for what I understand you can connect<br>
various servers to each other and then use clients to chat across the<br>
network.<br>
<br>
Maybe you want to take a look to its configuration file jabber.xml - all<br=
>
the settings have remarks and help you to understand what you can do<br>
with it. I suggest to download it, get an idea and start with a single<br>
server and a client (pidgin has plenty of settings) where you can<br>
register two users. Then try to send messages between two open chat<br>
windows.<br>
<br>
Cheers<br>
herb langhans<br>
<br>
<br>
--<br>
sprachtraining langhans<br>
herbert langhans, warschau<br>
herbert[at]<a href=3D"http://langhans.com.pl" target=3D"_blank">langhans.co=
m.pl</a><br>
office [at]<a href=3D"http://langhans.com.pl" target=3D"_blank">langhans.co=
m.pl</a><br>
<a href=3D"http://www.langhans.com.pl" target=3D"_blank">http://www.langhan=
s.com.pl</a><br>
<a href=3D"tel:%2B0048%20603%20341%20441" value=3D"+48603341441">+0048 603 =
341 441</a><br>
<br>
| jabber:herbert.raimund<br>
| yahoo_im:herbert.raimund<br>
| icq:414500866<br>
_______________________________________________<br>
JAdmin mailing list<br>
Info: <a href=3D"http://mail.jabber.org/mailman/listinfo/jadmin" target=3D"=
_blank">http://mail.jabber.org/mailman/listinfo/jadmin</a><br>
Unsubscribe: <a href=3D"mailto:[email protected]">JAdmin-unsubs=
[email protected]</a><br>
_______________________________________________<br>
</blockquote></div>

--bcaec54866e20248aa04ded4bb0e--

--===============1001344102==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
JAdmin mailing list
Info: http://mail.jabber.org/mailman/listinfo/jadmin
Unsubscribe: [email protected]
_______________________________________________

--===============1001344102==--