powered by Jive Software

Muiltiple Domains

I cant belive that no one had an opinion on this… I thought that multiple domains was something people were wanting from Messenger?



Mutiple Domains on a Linux Box

Posted: Aug 5, 2005 9:26 PM

This may seem obvious but I’'m just trying to make sure…

I have a fellow jabber enthusiast that I’'m trying to convert to Jive Messenger.

Presently he hosts 2 Jabberd2 servers one for the canadian office and one for the american.

In order to convert we would need to host these 2 domains on a single linux box here at the canadian HQ.

Looking at the JM2 Admin Console the server seems to bind to the IP resolved by the DNS lookup of the JM server name.

If this is the case, can I run 2 instances of JM on a Linux box with 2 IPs DNS’'ed as jabber.corporatedomain.com and jabber.coporatedomain.ca and not have conflicts?

Thanks for any feedback.


PS. Seems the forum software wont “liven” a thread if replyed to by the author so Im posting this question again…


Sorry for the lack of response on your previous thread. It should be possible to do what you’‘re suggesting, although it’'s not well documented yet. To get this working, I believe you need to set the Jive property “xmpp.server.socket.interface” (using the admin console property editor). You can also set: “xmpp.component.socket.interface” to mange the interface used for component connections. The interface should either be a machine name, such as “example.com”, or a textual representation of its IP address.



I poked a little further at this tonight and I guess what I cant find is where to specify the IP to bind to.

If I edit the server settings I can change the port but not the IP. What would I do if I wanted to setup a messenger server on the 2nd IP on my server?

Am I right in thinking that I could host 2 jabber domains on a single box if i could just bind the servers to 2 different IPs?

Thanks for the followup Matt


Let say you set the port of one server to 5522 and the other to 5533. If you’'re using linux and have to distinct ip address with unique dns entries, you could use iptables to route the packets from :5222 to port 5533.

The requires some familiarity with iptables to get it to work, but since it’'s all based on ip, it should work without a problem.

Dual/Multiple domains per box are a feature that is on the horizon so I hope this will satisfy your requirements for the time being.


Thanks Noah, I never thought about doing it that way… that gets around the IP binding issue for now.


Glad I could help


You say that Dual/Multiple domains are on the horizon - is this something that you know for a fact (ie, the developers have indicated that it is an upcoming feature)?

Well…I’‘m a contributor and it has been something I’‘ve discussed with Matt and Gato. It’‘s also something that folks ask for quite a bit so it’'ll most likely be built.

The context of a mixed domain is typically brought up to address the needs of ASP (application service providers). We’'d like to be able to allow…say…java.net to have messenger set up to allow each subproject (like jdk.dev.java.net and mindim.dev.java.net) to all be hosted in one messenger instance (clustering is also discussed in these discussions as well).

Currently the focus is on 100% XMPP implementation which Gato, et. al are working on and doing a darn fine job. I’'ve research Pampero and addressing scalability. The next step is clustering and it might come out of necessity of Pampero project or follow closely afterwards.

This is my perspective of the project landscape, Matt and Gato should definitely field the question as well since they’'re working on this full time.


This is really excellent news for ASP - note that I work for an ASP ;^)


I think you’'ve got it right in terms of priorities. That means that multi-domain support is still fairly far down the list in terms of what we plan to work on… but we try to make rapid progress.



This would be excellent… I really need this, as my team now has ‘‘jabber.domain.com’’ DNS CNAME’'d to ‘‘jabber.subdomain.domain.com’’ in our company, but I want to allow folks to use either ‘‘jid@jabber.subdomain.domain.com’’, or ‘‘jid@jabber.domain.com’’…

My questions are twofold here:

  1. The Admin Console has a section in server settings where it shows which IP addresses/ports

are bound to which domain(s) - note the ‘’(s)’’. Is this nomenclature just there for future

multiple domain functionality?

  1. How would JID’'s be stored in the DB in my scenario above? (e.g. -

    ‘‘jid@jabber.subdomain.domain.com’’, or ‘‘jid@jabber.domain.com’’, or both?) This does have

some impact for me, as I build a nightly feed file of Jabber ID’'s to give to our LDAP team

(they insert them in a ‘‘JID’’ field in LDAP).

Thanks again Jive folks for all the hard work you put in on the server!


I think we envisioned that domains would be completely isolated. You’‘re essentially proposing JID’'s that are spread across many domains, but represent the same subject (to use java security terms…i.e. the actual user).


Yup, that’‘s right… essentially ‘‘aliasing’’ one domain to another… similiar to the way that DNS CNAME’'s work…

Is this completely out of the realm of possibility?


I just want to clarify…you’'re talking about having two domains like:



and in that domain, Joe Smith has the following JIDs,



but the software knows that Joe Smith is both JIDs.

Is that right?


Hey Noah,

Not exactly like that. More like this:

Two domains:



Joe Smith can have either (or both JIDS - well, he only has one JID, but users can add him to their buddy list as one or the other)





So an s2s between the two domains. Probably and optimization would be to bequeath the xml and pass the object around (cutting out the xml (de)serialization process).


Yup - hadn’'t thought of it as an internal s2s, but that makes sense - almost like a loopback interface (localhost) on a Unix box.

So, since I’'m a bit of a newbie here, does Matt or someone (you, me) file this as an RFE for JM?



If we play our cards right, Matt will do it

Actually, all RFE are logged here: http://www.jivesoftware.org/issues/

Matt might already know of an existing request for clustering or multiple domains on one instance so you can add your vote and any comments, otherwise he’'ll create a new one.


I’‘ve been reading through this thread, since it’‘s a subject I’‘m keen on seeing a resolution to. I run a server for a small hosting group, and I’‘d love for people to be able to use their own domain name as part of their JID. Right now, it’'s all just "user@receptacle.org".

The whole thing seems pretty simple to me, and I’‘m wondering if I’‘m missing something. I’'ve been looking at some typical login negotiations on my server.

Client sends :<stream:stream to=’‘receptacle.org’’ xmlns=’‘jabber:client’’ xmlns:stream=’‘http://etherx.jabber.org/streams’’>

This contains the name of the host we’‘re attempting to reach - in this case, it’'s receptacle.org.

Server replies: <?xml version=''1.0'' encoding=''UTF-8''?><stream:stream xmlns:stream=“http://etherx.jabber.org/streams” xmlns=“jabber:client” from=“receptacle.org” id=“d18e322c” xml:lang=“en”>

Again, asserting that it’‘s “receptacle.org” that’‘s answering. This response comes (I’'m assuming) from the configuration value xmpp.domain.

Would it be a feasible solution to maintain a list of domains instead of one? When the connection request comes in, the “to” hostname is checked against the list. If it’‘s on there, respond as if that’‘s the hostname of the server for that connection. If it’'s not, fall back to the default and carry on …

The concept of internal s2s seems a bit overly complicated for a simple virtual hosting implementation.