I wrote:
> SRV lookup can return more than one record, and those records
> specify a TCP or UDP port. It basically means that SRV returns
> someothing similar to MX lookup except that it also returns a port
> to connect to.

And:
> This means that we'd have to extend the DNS_RR with at least a
> field for the port. [and do something for the SRV 'weight' field]

And:
> Also, the Postfix DNS client should handle a null SRV record as
> "service unavailable", similar to how the Postfix DNS client returns
> DNS_NULLMX for a null MX record.

And:
> Maybe it is better for the SMTP client to not look up MX records
> if the domain starts with _submission._tcp. Then the decision to
> look up SRV could be made higher-up, at the point where the SMTP
> client decides if it wants to do MX lookups or non-MX lookups.
> 
> Then we end up with a hierarchy like:
> 
> smtp_connect_remote
>       calls smtp_domain_addr if it really wants to do MX lookup
>               calls smtp_host_addr if MX record does not exist
> 
>       calls smtp_srv_ddr if it really wants to do SRV lookup
>               calls smtp_host_addr with the SRV lookup result
> 
>       calls smtp_host_addr if it wants [A or AAAA lookup]

Based on this, there is large delta between RFC 6186 and the patch
that currently exists.

- Don't do MX or A/AAAA lookups for _submission._tcp.* in the Postfix
  SMTP client.

- Do support multiple SRV records, null records, and the fields for
  priority, weight, and port.

Also, should there be a default sanity check for hostnames that SRV
lookup is allowed to return, such as "must be a name within the
domain after _submission._tcp"?  Just imagine people using this
feature over coffeeshop or hotel WIFI.

        Wietse

Reply via email to