[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: smtpserver bind() query and logfile problems
Matti Aarnio wrote:
>On Tue, Jan 25, 2005 at 06:01:14PM +0000, Darryl L. Miles wrote:
>>I'm using the current CVS version of zmailer.
>>During startup of the SMTP server it always seems to try and bind to the
>>same addresses twice, the 2nd attempt always fails:
>>00000000000# 000-setting up: bind(s=4, v4, addr='192.168.0.1' port=25)
>>00000000000# 000-setting up: bind(s=6, v4, addr='192.168.0.1' port=25)
>>00000000000# 000-bind(s=6, v4, port=25) failed; errno=Address already
>>00000000000# 000-setting up: bind(s=6, v4, addr='192.168.0.1' port=465)
>>00000000000# 000-setting up: bind(s=7, v4, addr='192.168.0.1' port=465)
>>00000000000# 000-bind(s=7, v4, port=465) failed; errno=Address
>>already in use
>>00000000000# 000-started server pid 11196 at Sat, 22 Jan 2005
>>Is this correct ?
>I am not entirely sure of why you see v4 address duplicates.
>Aaahh... I think you have:
>PARAM BindSmtp any
>PARAM BindSmtpS any
>or perhaps that older configuration style of:
>PARAM BindPort 25
>PARAM BindAddress iface:eth0
My configuration (running on linux 2.6.x) is like:
PARAM BindSmtp [192.168.0.1] 25
PARAM BindSmtpS [192.168.0.1] 465
I have no IPV6 SMTP bound ports, mailq and sshd on the same host do bind
to IPV6 any6 addresses ok.
If I put in an explicit IPV4 address I woudn't not expect it to be tried
for IPV6, and vice-versa. The sample IPV6 address syntax is [IPv6.0::0]
with fullstop not the same as your email example [IPv6:::1] with colon.
The 'any' or 'any6' syntax is not demonstrated in the stock smtpserver.conf.
Is there anyway the smtpserver config parsing could be improved it took
me a while to figure out the IPs for the BindSmtp/BindSmtpS needed to be
inside [ and ] there are no warning or error just unwanted behaviour by
I'm not sure iface: syntax is really that useful in the real world.
SMTP servers are specific named addresses due to relying on generally
slow changing DNS entries, anyone wanting to use the interface address
by interface name must be doing so because it changes and they don't
know it to be able to configure it manually. If the IP of the SMTP
server changes it become difficult to use SMTP efficiently for mail (as
without authentication, which all inbound uses your email maybe
delivered to the wrong host, the one now using your old IP) and besides
I don't think the zmailer smtpserver can be sent a signal to re-bind to
our new interface address (in the sutation where it changes). So I
really don't understand the practical uses for it. Sounds like good
voodoo for the sake of voodoo.
I have added SPF support into this rebuild of zmailer, there is a
duplicate section in the stock smtpserver.conf file, that maybe
confusing to first timers. On a technical note (I should start a new
thread on this) I would also like to ability to promote ~all into -all
for a white-list of domains I can set, or work it the other way and have
another "spf-threshold" param for my local whitelist that I can set to
>(as you get non "0.0.0.0" address for binding) and the system
>is at first called to create IPv6 socket (which your runtime
>supports, but you don't tell to be ok with explicite 'any6'
>bound address) but the registered IP address is IPv4 one, and
>in such a case, the server socket creation does automagically
>translate the call to IPv4 binding..
>The 'iface:' magic is problematic in IPv6 case.
>My code doesn't know how to extract correct IPv6 address in
>every case from system. I think presently it doesn't even
>try... Nor is it easy; I do have code that can find addresses,
>but see an example from zmailer.org machine:
>IPv4: lo [127.0.0.1]
>IPv4: eth0 [18.104.22.168]
>IPv6: lo [IPv6:::1]
>IPv6: dummy0 [IPv6:2001:14b8:10:1::1]
>IPv6: dummy0 [IPv6:fe80::f843:29ff:fed2:ee82]
>IPv6: eth0 [IPv6:fe80::250:8dff:fef1:9fa]
>IPv6: sit1 [IPv6:fe80::3e4e:6043]
>IPv6: sit2 [IPv6:fe80::3e4e:6043]
>IPv6: sit3 [IPv6:2001:14b8:100:65::2]
>IPv6: sit3 [IPv6:fe80::3e4e:6043]
>It really isn't all that trivial to know which address in given
>interface to use. Especially as in my case the real answer is
>global scope address of 'dummy0', not those link scope things
>on eth* or sit* interfaces. Using 'any6' and 'any' are way
Darryl L. Miles
M: 07968 320 114
To unsubscribe from this list: send the line "unsubscribe zmailer" in
the body of a message to email@example.com