Hi Ryan,
dex07:~# journalctl -b -u opensmtpd
Jan 02 11:30:43 dex07.example.com systemd[1]: Starting opensmtpd.service - OpenSMTPD SMTP server...
Jan 02 11:30:43 dex07.example.com smtpd[105]: info: OpenSMTPD 7.4.0-portable starting
Jan 02 11:30:44 dex07.example.com smtpd[144]: dispatcher: smtpd: bind: Cannot assign requested address
Jan 02 11:30:44 dex07.example.com smtpd[137]: smtpd: process dispatcher socket closed
Jan 02 11:30:44 dex07.example.com systemd[1]: opensmtpd.service: Deactivated successfully.
Jan 02 11:30:44 dex07.example.com systemd[1]: Started opensmtpd.service - OpenSMTPD SMTP server.
strace shows
:
144 socket(AF_INET, SOCK_STREAM, IPPROTO_IP <unfinished ...>
137 rt_sigaction(SIGTERM, {sa_handler=0x7fa9bd612180, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fa9bd42ffd0}, <unfinished ...>
144 <... socket resumed>) = 13
137 <... rt_sigaction resumed>{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
144 setsockopt(13, SOL_SOCKET, SO_REUSEADDR, [1], 4 <unfinished ...>
137 rt_sigaction(SIGCHLD, {sa_handler=0x7fa9bd612180, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fa9bd42ffd0}, <unfinished ...>
144 <... setsockopt resumed>) = 0
137 <... rt_sigaction resumed>{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
144 bind(13, {sa_family=AF_INET, sin_port=htons(25), sin_addr=inet_addr("10.150.1.33")}, 16 <unfinished ...>
137 rt_sigaction(SIGHUP, {sa_handler=0x7fa9bd612180, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fa9bd42ffd0}, <unfinished ...>
144 <... bind resumed>) = 0
137 <... rt_sigaction resumed>{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
144 socket(AF_INET6, SOCK_STREAM, IPPROTO_IP <unfinished ...>
137 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fa9bd42ffd0}, <unfinished ...>
144 <... socket resumed>) = 14
137 <... rt_sigaction resumed>{sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 8) = 0
144 setsockopt(14, SOL_SOCKET, SO_REUSEADDR, [1], 4 <unfinished ...>
137 epoll_ctl(6, EPOLL_CTL_ADD, 8, {events=EPOLLIN, data={u32=8, u64=8}} <unfinished ...>
144 <... setsockopt resumed>) = 0
137 <... epoll_ctl resumed>) = 0
144 setsockopt(14, SOL_IPV6, IPV6_V6ONLY, [1], 4 <unfinished ...>
137 epoll_ctl(6, EPOLL_CTL_ADD, 9, {events=EPOLLIN, data={u32=9, u64=9}} <unfinished ...>
144 <... setsockopt resumed>) = 0
137 <... epoll_ctl resumed>) = 0
144 bind(14, {sa_family=AF_INET6, sin6_port=htons(25), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "2001:db8:36e:1::21", &sin6_addr), sin6_scope_id=0}, 28 <unfinished ...>
137 epoll_ctl(6, EPOLL_CTL_ADD, 11, {events=EPOLLIN, data={u32=11, u64=11}} <unfinished ...>
144 <... bind resumed>) = -1 EADDRNOTAVAIL (Cannot assign requested address)
137 <... epoll_ctl resumed>) = 0
:
ie it could bind to the IPv4 address, but not IPv6.
BTW, smtpd.conf is
table lan { 10.150.0.0/16, 2001:db8:36e::/48 }
table example { "example.de", "example.com" }
listen on lo
listen on eth0
listen on eth1
action "relay" relay host smtp://mailhost.ac.example.de
match from local for any action "relay"
match from src <lan> for domain <example> action "relay"
Regards
Harri