Hello Viktor,
thanks again, please see my answers inline.

Am Sonntag, den 12.04.2020, 22:47 -0400 schrieb Viktor Dukhovni:
> On Mon, Apr 13, 2020 at 02:12:49AM +0200, Christian wrote:
>
>
> thanks for the response! Apparently the mail was too long (>4000) and
> got rejected, hence I put it to pastebin:
> https://pastebin.com/1e3sR0Hq
>
> The query in your PCAP file was not sent to 127.0.0.11, and had no
> EDNS
> OPT record (so no "DO" bit):
>
>     Internet Protocol Version 4, Src: 192.168.4.5, Dst: 192.168.4.254
>     User Datagram Protocol, Src Port: 34651, Dst Port: 53
>     Domain Name System (query)
>         Transaction ID: 0x55b7
>         Flags: 0x0100 Standard query
>             0... .... .... .... = Response: Message is a query
>             .000 0... .... .... = Opcode: Standard query (0)
>             .... ..0. .... .... = Truncated: Message is not truncated
>             .... ...1 .... .... = Recursion desired: Do query
> recursively
>             .... .... .0.. .... = Z: reserved (0)
>             .... .... ...0 .... = Non-authenticated data:
> Unacceptable
>         Questions: 1
>         Answer RRs: 0
>         Authority RRs: 0
>         Additional RRs: 0
>         Queries
>             do.havedane.net: type MX, class IN
>                 Name: do.havedane.net
>                 [Name Length: 15]
>                 [Label Count: 3]
>                 Type: MX (Mail eXchange) (15)
>                 Class: IN (0x0001)
>
> Is 127.0.0.11 inside the container == 192.168.4.254 outside?

Yes, sorry. Should have mentioned it. The 127.0.0.11 ist the docker way
of saying: This DNS is configured by docker. And indeed the docker
container IP of unbound is 192.168.4.254.

> What C-library and operating system is this?  Perhaps the C-library
> in
> Docker ignores RES_USE_EDNS0 and RES_USE_DNSSEC or more generally
> changes to _res.options?
>
>
> I think the tcpdumps are interesting, as they show that postfix is
> not
> requesting with the right flags (If I am not reading everything
> wrong).
>
> When Postfix is configured with "smtp_dns_support_level = dnssec",
> the
> RES_USE_DNSSEC and RES_USE_EDNS0 flags are set around calls to the
> resolver routines.  If your C-library (perhaps only inside docker)
> has
> an incopatible resolver API, then you'll need a more compatible
> resolver
> library and/or a different container technology.
>

The container is running on alpine, hence with muslc libc. After seeing
the tcpdump yesterday, I thought as well, if that could be an issue.

I am no programmer, however 2 things strike me:
Dig is able to construct a proper request and I thought it is using the
resolver routines for its tests?

resolv.h for musl-libc at lease mention RES_USE_DNSSEC and
RES_USE_EDNS0 (not sure if that means anything)
https://git.musl-libc.org/cgit/musl/tree/include/resolv.h#n102
https://git.musl-libc.org/cgit/musl/tree/include/resolv.h#n105

So I am not sure if this means anything for postfix, but how could we
find out that it is indeed an incompatibility? Is there a way to log
the construction of the request and hence the failure to properly send
it?

Will also contact musl-libc to see if they have ideas.



Reply via email to