On Sun, 18 Mar 2018, Harald Dunkel wrote:

> problem using opensmtpd 6.0.3 on Debian: I have set
>
>       xname=mailhost.example.com
>       :
>       limit mta inet4
>       listen on lo tls pki $xname
>       listen on eth0 tls pki $xname
>       listen on eth1 tls pki $xname
>       :
>
> in smtpd.conf, but apparently this "limit" line ignored. At boot
> time it tries to bind to a link-local IPv6 address. And this fails,
> as strace shows:
>
> :
> 695   setsockopt(11, SOL_SOCKET, SO_REUSEADDR, [1], 4 <unfinished ...>
> 695   <... setsockopt resumed> )        = 0
> 695   bind(11, {sa_family=AF_INET, sin_port=htons(25), 
> sin_addr=inet_addr("10.0.0.2")}, 16 <unfinished ...>
> 695   <... bind resumed> )              = 0
> 695   socket(PF_INET6, SOCK_STREAM, IPPROTO_IP <unfinished ...>
> 695   <... socket resumed> )            = 12
> 695   setsockopt(12, SOL_SOCKET, SO_REUSEADDR, [1], 4 <unfinished ...>
> 695   <... setsockopt resumed> )        = 0
> 695   setsockopt(12, SOL_IPV6, IPV6_V6ONLY, [1], 4 <unfinished ...>
> 695   <... setsockopt resumed> )        = 0
> 695   bind(12, {sa_family=AF_INET6, sin6_port=htons(25), inet_pton(AF_INET6, 
> "fe80::216:3aff:feca:38bb", &sin6_addr), sin6_flowinfo=0, 
> sin6_scope_id=if_nametoindex("eth0")}, 28 <unfinished ...>
> 695   <... bind resumed> )              = -1 EADDRNOTAVAIL (Cannot assign 
> requested address)
> 695   write(2, "pony express: smtpd: bind: Canno"..., 59 <unfinished ...>
> 695   <... write resumed> )             = 59
> 695   exit_group(1)                     = ?
> 695   +++ exited with 1 +++
>
>
> "ip address show" (run immediately before smtpd) shows, that
> the link-local address is still "tentative":
>
> :
> 194: eth0@if195: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue 
> state UP group default qlen 1000
>     link/ether 00:16:3a:ca:38:bb brd ff:ff:ff:ff:ff:ff
>     inet 10.0.0.2/24 brd 10.0.0.255 scope global eth0
>        valid_lft forever preferred_lft forever
>     inet6 fe80::216:3aff:feca:38bb/64 scope link tentative
>        valid_lft forever preferred_lft forever
> :
>
> If I try to run smtpd later, then it works.

It appears that "limit mta inet4" statement limits outgoing ipv6
connections but not incoming ipv6 connections...

Instead of the limit statement one might use a notation like this
which limits incoming and outgoing connections to ipv4 by interface:

       listen on lo inet4 tls pki $xname
       listen on eth0 inet4 tls pki $xname
       listen on eth1 inet4 tls pki $xname

Richard Narron

-- 
You received this mail because you are subscribed to [email protected]
To unsubscribe, send a mail to: [email protected]

Reply via email to