Murder + virtal hosting with ipaliasing problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Hello everybody!

I am trying to build a cyrus murder with virtual hosting enabled. In the future we will probably have two or three frontends on round robin dns, so I have imapd:s running on an IP-aliased interface. This works fine, let's call it foo.abo.fi.

Now, on the same frontend I need another set of imapd:s which run on yet another IP-alised interface, which has a DNS-entry on another domain, say bar.baz.org. The reasons for doing this is:

 - they want "their" imap-server on their own domain
 - they want to log in as "username", not "username@domain"
 - they want to authenticate to their active directory (through
   saslauthd-krb5, all other virtual domains use mysql auxprop)

Now, if I create a mailbox "testuser@xxxxxxx" and log in as testuser@xxxxxxx everything works as it should:

 > telnet foo.abo.fi imap
 * OK foo.abo.fi Cyrus IMAP4 Murder v2.2.12-AAU-RPM-2.2.12-3.RHEL4.1.aau server ready
 1 LOGIN testuser@xxxxxxx ********
 1 OK User logged in
 2 LIST "" *
 * LIST (\Noinferiors) "." "INBOX"
 2 OK Completed
 3 SELECT INBOX
 * FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
 * OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)]
 * 3 EXISTS
 * 1 RECENT
 * OK [UNSEEN 3]
 * OK [UIDVALIDITY 1160720446]
 * OK [UIDNEXT 4]
 3 OK [READ-WRITE] Completed
 4 LOGOUT
 * BYE LOGOUT received
 4 OK Completed


But if I try to use the server on bar.baz.org, the LIST command fails to retrieve any mailboxes:

 > telnet bar.baz.org imap
 * OK foo.abo.fi Cyrus IMAP4 Murder v2.2.12-AAU-RPM-2.2.12-3.RHEL4.1.aau server ready
 1 LOGIN testuser@xxxxxxx ********
 1 OK User logged in
 2 LIST "" *
 2 OK Completed
 3 SELECT INBOX
 3 NO Mailbox does not exist
 4 LOGOUT
 * BYE LOGOUT received
 4 OK Completed

The same thing happens when I omit the @baz.org part:

 > telnet bar.baz.org imap
 * OK foo.abo.fi Cyrus IMAP4 Murder v2.2.12-AAU-RPM-2.2.12-3.RHEL4.1.aau server ready
 1 LOGIN testuser ********
 1 OK User logged in
 2 LIST "" *
 2 OK Completed
 3 SELECT INBOX
 3 NO Mailbox does not exist
 4 LOGOUT
 * BYE LOGOUT received
 4 OK Completed


If I dump the contents of mailboxes.db I get the correct results on all machines in the murder.


Ok, then some snippets from the config files:

bar.baz.org-imapd.conf:

 configdirectory: /var/imap
 sievedir: /var/sieve

 defaultpartition: virtual
 partition-virtual: /var/spool/virtual

 hashimapspool: false

 unixhierarchysep: no
 altnamespace: yes
 sharedprefix: shared

 singleinstancestore: yes
 duplicatesuppression: yes
 allowusermoves: yes

 servername: bar.baz.org

 virtdomains: on
 loginrealms: baz.org
 defaultdomain: baz.org

 sasl_pwcheck_method: saslauthd

 (... + other SASL, lmtp, tls and mupdate stuff)


The working server foo.abo.fi has the same config, except for:

 servername: foo.abo.fi
 loginrealms: xxx yyy zzz abo.fi
 defaultdomain: abo.fi
 sasl_pwcheck_method: auxprop

I get the same result when using "virtdomains userid". I tried to mix the forms but that didn't work at all (but there could have been other reasons as well.)

Any ideas? It seems like the fact that the virtual server is on another network (in DNS, not physically) somehow screws up the mailbox lookups from mailboxes.db. (I've run several instances of imapd:s on other servers with different configs, though not with virtual domains on, and I think other people use it as well.) This should be possible to do, right? There are no complaints in the logs.


cyrus.conf:

SERVICES {
 mupdate   cmd="/usr/lib64/cyrus-imapd/mupdate" listen=3905 prefork=1

 imap          cmd="/usr/lib64/cyrus-imapd/proxyd -C /etc/imapd-foo.conf" listen="foo.abo.fi:imap" prefork=0
 imaps         cmd="/usr/lib64/cyrus-imapd/proxyd -s -C /etc/imapd-foo.conf" listen="foo.abo.fi:imaps" prefork=0

 himap          cmd="/usr/lib64/cyrus-imapd/proxyd -C /etc/imapd-baz.org.conf" listen="bar.baz.org:imap" prefork=0
 himaps         cmd="/usr/lib64/cyrus-imapd/proxyd -s -C /etc/imapd-baz.org.conf" listen="bar.baz.org:imaps" prefork=0
}


I use the RHEL4-supplied x86_64 packages, though recompiled to disable the autocreate patches.

	/skitta

--
 Tomas 'Skitta' Lindroos.
 UNIX systemadministratör, Åbo Akademi, Datacentralen
 skitta@xxxxxx, 02-215-4469
----
Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

[Index of Archives]     [Cyrus SASL]     [Squirrel Mail]     [Asterisk PBX]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [KDE]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux