HowTos/AddingAScalixServer

From Scalix Wiki
Jump to: navigation, search

Scalix Wiki -> How-Tos -> Adding A Scalix Server

This will only work if you have a license with Multi-Server capabilities

If you are adding another Scalix server to your environment, you need to ensure that you have several things in place:

  1. You can route between both machines.
  2. Your SYSTEM directory is synced using dirsync.
  3. You understand how you want to route internet-bound mail.

Say you have serverA.domain.com and serverB.domain.com:

Add the routes between the servers

On ServerA

omaddrt -m mailnodeB -q SMINTFC -i scalix@serverB.domain.com

On ServerB

omaddrt -m mailnodeA -q SMINTFC -i scalix@serverA.domain.com

On both machines

omoff -w -d 0 router ; omon router

This sets up the Scalix-to-Scalix transport gateway for sending messages between Scalix servers.

If you are using CNAME DNS records as your hostname, i.e. serverA.domain.com is really called something else, you will need to make some changes to sendmail and the Scalix SMTP relay configuration before this will work successfully. This is because one of the first thing that sendmail does is to rewrite outbound addresses to be the A DNS record rather than any CNAME.

Edit /var/opt/scalix/sys/smtpd.cfg and set the following:

  • Note that in Scalix 11 this path was changed to: /var/opt/scalix/XX/s/sys/smtpd.cfg where XX is the mailnode's first and last initials.
DOMAIN_NAME=real.host.name
LOCAL_NAMES=cname1.domain.com,cname2.domain.com

where DOMAIN_NAME is the A record name and LOCAL_NAMES is a comma-separated list of CNAME record names for the server.

You will need to stop and restart the SMTP Relay for this to take effect:

omoff -w -d0 smtpd; omon smtpd

If you are using a smart host configuration (see Configuring outbound internet messages below), you should also configure sendmail to send directly to the other Scalix servers rather than going through the smart host. This is done by using the mailertable feature of sendmail.

In /etc/mail, edit the file mailertable and add the following line:

real.host.name<TAB>esmtp:[real.host.name]

where <TAB> is a tab character.

This tells sendmail that if any message is sent to @real.host.name, it should use the esmtp mailer to send it to real.host.name. The [] characters surrounding the host name tell sendmail NOT to use DNS to determine MX records.

You will need to run the command:

make

in /etc/mail for the mailertable lookup to be rebuilt and you should also restart the sendmail service.

IMPORTANT: You *must* run the command:

omsendin

to ensure that the Scalix rules are added back into the sendmail.cf file.

Create the dirsync agreements

For this to work, you need an import agreement on one side and an export agreement on the other.

On ServerA

omaddds -i -m +DIRSYNC/mailnodeB -t "010101 00:00"

On ServerB

omaddds -e -m +DIRSYNC/mailnodeA

This sets up the import agreement on serverA and an export agreement on serverB. The -t option specifies when this agreement should come into effect. The format is yymmdd hh:mm.

To do this the other way around:

On ServerA

omaddds -e -m +DIRSYNC/mailnodeB

On ServerB

omaddds -i -m +DIRSYNC/mailnodeA -t "010101 00:00"

You can check that the agreements have been created successfully by running the omlistds command:

omlistds -i
omlistds -e

On both machines add the following to /var/opt/scalix/sys/general.cfg:

  • Note that in Scalix 11 this path was changed to: /var/opt/scalix/XX/s/sys/general.cfg where XX is the mailnode's first and last initials.
DS_CUST_SEND_REQ_NOW=TRUE
DS_CUST_MSGQ_TIMEOUT=2

This tells dirsync that it needs to make the update requests as soon as the service is started rather than waiting for a timeout. You will need to restart the dirsync service but you should also enable auditing so that you can see the messages being transferred between machines:

omconfaud dirsync 15
omoff -w -d 0 dirsync; omon dirsync

You can then review the messages in /var/opt/scalix/logs/audit to check that the mail is flowing correctly.

  • Note that in Scalix 11 this path was changed to: /var/opt/scalix/XX/s/logs/audit where XX is the mailnode's first and last initials.

In case you have trouble with setting up dirsync, you may want to take a look at HowTos/DiagnosingDirsync

Manual re-synchronisation

It is recommended to manually trigger a re-synchronisation if there occurred many changes in a short time period. For example, if you moved a lot of users from one to another mailnode or if significant PDL administration was performed. To force a re-synchronisation run omresyncds.

Use omlist to determine what parameter to pass to omresyncds:

omlistds -i
1         **                  **                  +DIRSYNC /demo               

In the above case can trigger a re-synchronisation by running:

omresyncds -i 1

Configuring outbound internet messages

If you want to use serverA as a bridgehead to the internet, you will need to configure Scalix on serverB to be able to route all internet mail to serverA.

omoff -d 0 router
omdelrt -m internet
omdelrt -m internet,tnef
omaddrt -m internet -q SMINTFC -i scalix@serverA.domain.com
omaddrt -m internet,* -q SMINTFC -i scalix@serverA.domain.com
omon router

You need both the omaddrt commands because you have the standard MIME route and also the TNEF route.

If you don't want outbound mail to go through another Scalix server, you can leave your sendmail.cf configuration as it is. If you have another edge (non-Scalix) server responsible for outbound routing, you should edit sendmail.cf as follows:

Replace:

DS

with

DSother.host.name

and restart the sendmail service. This will route all non-local mail through to the named server.

If you are using sendmail.mc for your configuration, you should ensure that you replace:

dnl define(`SMART_HOST',`smtp.your.provider')

with

define(`SMART_HOST',`other.host.name')

and run the command:

make

in the /etc/mail directory. Again, you need to restart the sendmail service.

IMPORTANT: If you make any changes to the sendmail.mc file and run 'make', you *must* run the command:

omsendin

to ensure that the Scalix rules are added back into the sendmail.cf file.

Configuring the server to be managed by the Scalix Admin Console

When installing the Scalix software, you only need to install the Scalix Admin Console on one server but the Remote Execution Service needs to be installed on all other machines.

Use the scalix-installer binary to install the appropriate RPM and you will be prompted for the name of the Admin Server and the name and port of the server you are installing the Remote Execution Service on.