Re: Routing solution on mail servers with all domain pointing at the same externel IP

Stephen Liu <[email protected]>
Newsgroups gmane.mail.perdition.user
Message-ID <[email protected]>
--- Gustavo Luiz Duarte <[email protected]> wrote:

> On Wed, Dec 3, 2008 at 12:05, Stephen Liu <[email protected]> wrote:
> > Hi Gustavo,
> >
> >
> > I'll make 2 tests;
> >
> >
> > 1)
> > test1 - USING TEXT FILE
> >
> >
> > 2)
> > test2 - USING MYSQL
> >
> >
> > I have cloned an image of the routing mail server for test2.  Now
> > proceed test1 first.
> >
> >
> > --- Gustavo Luiz Duarte <[email protected]> wrote:
> >
> >> Hi Stephen,
> >>
> >> You could use the transport table if the string "smtp:" wasn't
> there.
> >> Do you really want to use mysql for the lookup? If you have only 3
> >> domain you could use a text file.
> >>
> >> USING TEXT FILE:
> >> $ cat << END > /etc/perdition_lookup.txt
> >> satimis.dnsalias.com:192.168.0.209
> >> satimis.changeip.net:192.168.0.208
> >> satimis.com:192.168.0.210
> >> END
> >>
> >> $ makegdbm /etc/perdition_lookup.gdbm.db <
> /etc/perdition_lookup.txt
> >>
> >> $ perdition -m /etc/perdition_lookup.gdbm.db --query_key "\d"
> >
> >
> > Package installed - perdition-mysql
> >
> >
> > # apt-cache policy perdition-mysql
> > perdition-mysql:
> >  Installed: 1.17-7etch1
> >  Candidate: 1.17-7etch1
> >  Version table:
> >  *** 1.17-7etch1 0
> >        500 http://ftp.au.debian.org etch/main Packages
> >        500 http://security.debian.org stable/updates/main Packages
> >        100 /var/lib/dpkg/status
> >
> >
> > # cat << END > /etc/perdition_lookup.txt
> >> satimis.dnsalias.com:192.168.0.209
> >> satimis.changeip.net:192.168.0.208
> >> satimis.com:192.168.0.210
> >> END
> >
> >
> > # which makegdbm
> > /usr/bin/makegdbm
> >
> >
> > # which perdition
> > /usr/sbin/perdition
> >
> >
> > # makegdbm /etc/perdition_lookup.gdbm.db <
> /etc/perdition_lookup.txt
> >
> > # perdition -m /etc/perdition_lookup.gdbm.db --query_key "\d"
> > both without complaint
> >
> >
> > Now I haven't figured out how to test perdition.  There are 2
> databases
> > running on this routing mail server, MySQL maildb and
> > perdition_lookup.gdbm.db.  Do I need to stop MySQL maildb to test
> > perdition?  How can the remote mail clients connect their mail
> servers?
> >  What server settings shall I use?  Please shed me some light.  TIA
> 
> No need for stopping you MySQL.
> 
> If everything is wright (I haven't tested, I can have skipped
> something), you can point your mail clients to the hostname where
> perdition is installed and use it normally.


Sorry I can't resolve how can the mail client (Evolution) find its
server over Internet with following settings;

Server Type: IMAP

Server : xen11.satimis.com (hostname of the routing mail server where
perdition is running

User: satimis


satimis is user of satimis.com, satimis.changeip.net and
satimis.dnsalias.com as well as user of the routing mail server,
xen11.satimis.com


I tried it without success.


> Note that perdition's default protocol is pop3. To use imap suply the
> option -P IMAP4


xen11:~# /etc/init.d/perdition start
/usr/sbin/perdition.pop3 already running.
Starting /usr/sbin/perdition.pop3s...
Starting /usr/sbin/perdition.imap4...
Starting /usr/sbin/perdition.imaps...


xen11:~# hostname
xen11.satimis.com


pop3 is already running.  I have to manually run /etc/init.d/perdition
to start pop3s, imap4 and imaps


> You can use nc to test it:
> $ echo "tag login username password" | nc perdition_host 143
> In username and password you use valid username and password for your
> real imap server.


I suppose running above command on the routing mail server where
perdition is installed.


# echo "tag login satimis mypassword" | nc xen11.satimis.com 143
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE
THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5
AUTH=CRAM-SHA1 IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready.
Copyright 1998-2005 Double Precision, Inc.  See COPYING fordistribution
information.
tag NO Login failed.


> For pop3:
> $ echo -e "user username\npass password | nc perdition_host 110

xen11:~# echo -e "user satimis\npass x11satimis | nc xen11.satimis.com
110
>
waiting for input


> No special configuration is need for your pop/imap servers. Just
> assure that they are listening on standard ports.


I have only ONE external IP.  All ports are forwarded to the routing
mail server except port 53.


B.R.
Stephen L



> []'s
> Gustavo Duarte
> 
> >
> >
> > B.R.
> > Stephen
> >
> >
> >
> >
> >
> >
> >
> >>
> >> USING MYSQL:
> >> You have some alternatives:
> >> 1. Continue with your tblPerdition and populate it, so that user
> >> column has the domain, hostname column has the localIP and port
> >> column
> >> you leave empty (supposing your real pop/imap servers listen to
> >> standard ports).
> >>
> >> Then you would do (supposing you have mysql perdition library in
> >> /usr/lib):
> >>
> >> perdition -M /usr/lib/libperditiondb_mysql.so.0 --query_key "\d"
> -m
> >> "<dbhost>:<dbport>:dbPerdition:tblPerdition:perdition:perdition"
> >>
> >> (substituting <dbhost> and <dbport> by you db hostname and port)
> >>
> >>
> >> 2. Modify your transport table so that the string smtp and localIP
> >> are
> >> in diferent columns. Then you create a view concatenating them for
> >> the
> >> postfix query. A bit more complicated but easier to maintain when
> you
> >> have lots of domains and servers.
> >>
> >> []'s
> >> Gustavo Duarte
> >>
> >> On Wed, Dec 3, 2008 at 02:28, Stephen Liu <[email protected]>
> wrote:
> >> > Hi Gustavo,
> >> >
> >> >
> >> >> The URL I sent you has information about using mysql as lookup
> >> >> library:
> >> >> http://www.vergenet.net/linux/perdition/perditiondb.5.shtml
> >> >
> >> >
> >> > I suppose you're referring to following section;
> >> >
> >> >
> >> > MYSQL
> >> > This map library can be used by specifying the full path to the
> >> library
> >> > using the -M|--map_library command line option or configuration
> >> file
> >> > option.
> >> >
> >> > E.g.
> >> > perdition -M /usr/lib/libperditiondb_mysql.so.0
> >> > ......
> >> >
> >> >
> >> > I'll start from there.
> >> >
> >> >
> >> > I suppose the name of this database is "dbPerdition" to be
> created
> >> on
> >> > MySQL
> >> >
> >> >
> >> > mysql> create database dbPerdition;
> >> >
> >> >
> >> > mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
> >> >    -> ON dbPerdition.* TO 'perdition' IDENTIFIED by 'perdition';
> >> >
> >> > the 1st "perdition" on above second line is "database user". 
> The
> >> 2nd
> >> > "perdition" is "database password".
> >> >
> >> >
> >> > mysql> CREATE TABLE `tblPerdition` (
> >> >    -> `user` varchar(128), null '' default '',
> >> >    -> `servername` varchar(255) null '' default '',
> >> >    -> `port` varchar(8) YES NULL,
> >> >    -> PRIMARY KEY (`user`),
> >> >    -> ) ;
> >> >
> >> >
> >> > Afterwards I'll edit data on 'tblPerdition" table.
> >> >
> >> >
> >> >> The table you've shown doesn't have information about the
> >> >> hostnames/localIPs. Where is it? In the transport table?
> >> >
> >> >
> >> > Yes.
> >> >
> >> > mysql> SELECT * from transport;
> >> >
> >>
> >
>
+------+----------------------+--------------------+-----------+---------+
> >> > | pkid | domain               | hostname           | transport |
> >> > enabled |
> >> >
> >>
> >
>
+------+----------------------+--------------------+-----------+---------+
> >> > |    1 | satimis.dnsalias.com | smtp:192.168.0.209 | :[]       |
> >> > 1 |
> >> > |    2 | satimis.changeip.net | smtp:192.168.0.208 | :[]       |
> >> > 1 |
> >> > |    3 | satimis.com          | smtp:192.168.0.210 | :[]       |
> >> > 1 |
> >> >
> >>
> >
>
+------+----------------------+--------------------+-----------+---------+
> >> > 3 rows in set (0.00 sec)
> >> >
> >> >
> >> > # cat /etc/postfix/mysql_transport_maps.cf
> >> > user=mail
> >> > password=mypassword
> >> > dbname=maildb
> >> > table=transport
> >> > select_field=hostname
> >> > where_field=domain
> >> > hosts=127.0.0.1
> >> > additional_conditions = and enabled = 1
> >> > * end *
> >> >
> >> >
> >> >> I've never used mysql to do it, so I don't know  the details
> and
> >> how
> >> >> flexible it is. Maybe you'll need to create a view in your
> >> database
> >> >> for the perdition lookup with the domain as key and the localIP
> as
> >> >> value.
> >> >>
> >> >> Unfortunately I don't have any example. But the two URLs I sent
> >> you
> >> >> have all information you need. In particular, look at
> --query_key
> >> >> option and mysql database access library.
> >> >
> >> >
> >> > Whether you meant "--query_key FORMAT[,FORMAT...]:" on;
> >> >
> >> > http://www.vergenet.net/linux/perdition/perdition.8.shtml
> >> >
> >> >
> >> > Thanks
> >> >
> >> >
> >> > B.R.
> >> > Stephen L
> >> >
> >> > Send instant messages to your online friends
> >> http://uk.messenger.yahoo.com
> >> > ______________________________________________
> >> > Perdition-users mailing list
> >> > [email protected]
> >> > http://lists.vergenet.net/listinfo/perdition-users
> >> >
> >>
> >
> >
> > Send instant messages to your online friends
> http://uk.messenger.yahoo.com
> > ______________________________________________
> > Perdition-users mailing list
> > [email protected]
> > http://lists.vergenet.net/listinfo/perdition-users
> >
> 


Send instant messages to your online friends http://uk.messenger.yahoo.com 
______________________________________________
Perdition-users mailing list
[email protected]
http://lists.vergenet.net/listinfo/perdition-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.