Date: Tue, 8 Jan 2013 16:18:37 +0100 From: Ulrich =?utf-8?B?U3DDtnJsZWlu?= <uqs@FreeBSD.org> To: stable@FreeBSD.org Cc: Gregory Neil Shapiro <gshapiro@freebsd.org> Subject: sendmail vs ipv6 broken after upgrade to 9.1 Message-ID: <20130108151837.GF35868@acme.spoerlein.net>
next in thread | raw e-mail | index | archive | help
Hey, I upgraded a server running 8.x to 9.1 over the weekend and sendmail no longer wants to bind the AF_INET6 sockets. So while this still works: DAEMON_OPTIONS(`Port=smtp, Addr=127.0.0.1, Name=MSA, M=Eu, InputMailFilters=dkim') DAEMON_OPTIONS(`Port=smtp, Addr=::1, Name=MSA, Family=inet6, M=Eu, InputMailFilters=dkim') this is broken: DAEMON_OPTIONS(`Port=submission, Addr=acme.spoerlein.net, Name=MSA, M=E, InputMailFilters=dkim') DAEMON_OPTIONS(`Port=submission, Addr=acme.spoerlein.net, Name=MSA, Family=inet6, M=E, InputMailFilters=dkim') which makes me believe this has to do with name resolution... The actual reported errors are: Jan 8 16:05:03 acme sm-msp-queue[98057]: starting daemon (8.14.6): queueing@00:30:00 Jan 8 16:05:03 acme sm-mta[98054]: NOQUEUE: SYSERR(root): opendaemonsocket: daemon MSA: cannot bind: Can't assign requested address Jan 8 16:05:03 acme sm-mta[98054]: daemon MSA: problem creating SMTP socket Jan 8 16:05:08 acme sm-mta[98054]: NOQUEUE: SYSERR(root): opendaemonsocket: daemon MSA: cannot bind: Can't assign requested address Jan 8 16:05:08 acme sm-mta[98054]: daemon MSA: problem creating SMTP socket Jan 8 16:05:13 acme sm-mta[98054]: NOQUEUE: SYSERR(root): opendaemonsocket: daemon MSA: cannot bind: Can't assign requested address Jan 8 16:05:13 acme sm-mta[98054]: daemon MSA: problem creating SMTP socket This will loop a couple of times, but not make any progress. ktrace will show what's up: 98054 sendmail CALL bind(0x6,0x708c14,0x10) 98054 sendmail STRU struct sockaddr { AF_INET, 88.198.49.12:587 } 98054 sendmail RET bind 0 98054 sendmail CALL socket(PF_INET6,SOCK_STREAM,IPPROTO_IP) 98054 sendmail RET socket 7 98054 sendmail CALL setsockopt(0x7,SOL_SOCKET,SO_REUSEADDR,0x7fffffffafa4,0x4) 98054 sendmail RET setsockopt 0 98054 sendmail CALL setsockopt(0x7,SOL_SOCKET,SO_KEEPALIVE,0x7fffffffafa4,0x4) 98054 sendmail RET setsockopt 0 98054 sendmail CALL fcntl(0x7,F_GETFD,0) 98054 sendmail RET fcntl 0 98054 sendmail CALL fcntl(0x7,F_SETFD,FD_CLOEXEC) 98054 sendmail RET fcntl 0 98054 sendmail CALL bind(0x7,0x708dbc,0x1c) 98054 sendmail STRU struct sockaddr { AF_INET6, [::ffff:88.198.49.12]:587 } 98054 sendmail RET bind -1 errno 49 Can't assign requested address Yeah right ... I don't want an IPv6-mapped-IPv4 address, I want it to bind to the real thing. /etc/nsswitch.conf has hosts: files dns and /etc/hosts has root@acme: /etc/mail# grep acme /etc/hosts 88.198.49.12 acme.spoerlein.net acme 2a01:4f8:131:23c2::1 acme.spoerlein.net acme Which shouldn't make a difference anyway, because of: root@acme: /etc/mail# dig acme.spoerlein.net a +short; dig acme.spoerlein.net aaaa +short 88.198.49.12 2a01:4f8:131:23c2::1 How can I unstupid sendmail here? Uli
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130108151837.GF35868>