Re: [dns-operations] Single label queries on Windows (11)

2023-07-10 Thread Petr Menšík
Even on *x nslookup and dig tools use own resolution code. That is 
because they are DNS specific utilities. Not something using 
getaddrinfo() calls, which common applications use.


Is there alternative to "getent ahosts " on Microsoft systems? 
Using ping for that helps in a limited way, but is not perfect.


On 7/9/23 06:30, Greg Choules via dns-operations wrote:

--
Petr Menšík
Software Engineer, RHEL
Red Hat, https://www.redhat.com/
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB

___
dns-operations mailing list
dns-operations@lists.dns-oarc.net
https://lists.dns-oarc.net/mailman/listinfo/dns-operations


Re: [dns-operations] Single label queries on Windows (11)

2023-07-07 Thread Petr Menšík

Ah, this is embarrassing. Yes, trailing dot have helped.

I am sorry for the confusion.

>nslookup -type=ns org.
Server: pihole
Address: 192.168.88.9

Non-authoritative answer:
org nameserver = b2.org.afilias-nst.org <http://b2.org.afilias-nst.org/>
org nameserver = a2.org.afilias-nst.info <http://a2.org.afilias-nst.info/>
org nameserver = c0.org.afilias-nst.info <http://c0.org.afilias-nst.info/>
org nameserver = b0.org.afilias-nst.org <http://b0.org.afilias-nst.org/>
org nameserver = a0.org.afilias-nst.info <http://a0.org.afilias-nst.info/>
org nameserver = d0.org.afilias-nst.org <http://d0.org.afilias-nst.org/>

a0.org.afilias-nst.info <http://a0.org.afilias-nst.info/> internet 
address = 199.19.56.1
a2.org.afilias-nst.info <http://a2.org.afilias-nst.info/> internet 
address = 199.249.112.1
b0.org.afilias-nst.org <http://b0.org.afilias-nst.org/> internet address 
= 199.19.54.1
b2.org.afilias-nst.org <http://b2.org.afilias-nst.org/> internet address 
= 199.249.120.1
c0.org.afilias-nst.info <http://c0.org.afilias-nst.info/> internet 
address = 199.19.53.1
d0.org.afilias-nst.org <http://d0.org.afilias-nst.org/> internet address 
= 199.19.57.1
a0.org.afilias-nst.info <http://a0.org.afilias-nst.info/>  IPv6 
address = 2001:500:e::1
a2.org.afilias-nst.info <http://a2.org.afilias-nst.info/>  IPv6 
address = 2001:500:40::1
b0.org.afilias-nst.org <http://b0.org.afilias-nst.org/>  IPv6 
address = 2001:500:c::1
b2.org.afilias-nst.org <http://b2.org.afilias-nst.org/>  IPv6 
address = 2001:500:48::1
c0.org.afilias-nst.info <http://c0.org.afilias-nst.info/>  IPv6 
address = 2001:500:b::1
d0.org.afilias-nst.org <http://d0.org.afilias-nst.org/>  IPv6 
address = 2001:500:f::1



On 7/7/23 20:32, Viktor Dukhovni wrote:

On Fri, Jul 07, 2023 at 08:09:39PM +0200, Petr Menšík wrote:


I have tested recently how Windows 11 behaves when resolving single
label queries.

I have expected it might try to use LLMNR. But I did not expect it would
do so also when trying nslookup, a tool which should be DNS only tool.

I have tried:

nslookup -type=ns com 9.9.9.9

It is not too surprising if this is also subject to the default suffix
list of the network "connection", which initialises the resolution
context, and then just overrides the server.  Have you tried:

 nslookup -type=ns com. 9.9.9.9

with an explicit trailing "."?


I thought I have tried that, but turns out I have tried that only when
testing behavior of systemd-resolved installation on Linux, where it was 
useless.
On Windows it helps. Parameter -debug showed it indeed
appends default domain suffix and does not try without it after negative
 response.

nslookup from ISC BIND9 behaves a bit better, but that is an acceptable 
difference.

$ nslookup -domain=home.arpa -debug -type=ns org

Server:        127.0.0.1
Address:    127.0.0.1#53


    QUESTIONS:
    org.home.arpa, type = NS, class = IN
    ANSWERS:
    AUTHORITY RECORDS:
    ->  home.arpa
    origin = localhost
    mail addr = nobody.invalid
    serial = 1
    refresh = 3600
    retry = 1200
    expire = 604800
    minimum = 10800
    ttl = 10800
    ADDITIONAL RECORDS:

** server can't find org.home.arpa: NXDOMAIN
Server:        127.0.0.1
Address:    127.0.0.1#53


    QUESTIONS:
    org, type = NS, class = IN
    ANSWERS:
    ->  org
    nameserver = b0.org.afilias-nst.org.
    ttl = 1824
    ->  org
    nameserver = b2.org.afilias-nst.org.
    ttl = 1824
    ->  org
    nameserver = c0.org.afilias-nst.info.
    ttl = 1824
    ->  org
    nameserver = d0.org.afilias-nst.org.
    ttl = 1824
    ->  org
    nameserver = a0.org.afilias-nst.info.
    ttl = 1824
    ->  org
    nameserver = a2.org.afilias-nst.info.
    ttl = 1824
    AUTHORITY RECORDS:
    ADDITIONAL RECORDS:

Non-authoritative answer:
org    nameserver = b0.org.afilias-nst.org.
org    nameserver = b2.org.afilias-nst.org.
org    nameserver = c0.org.afilias-nst.info.
org    nameserver = d0.org.afilias-nst.org.
org    nameserver = a0.org.afilias-nst.info.
org    nameserver = a2.org.afilias-nst.info.

Authoritative answers can be found from:


Got NXDOMAIN. I were very suprised, learned that does not exist. Even
more suprising were fact, that it presented the result came from the
specified server.

But the result should have been for "com.."
What happens when you configure the network connection with a default
suffix of "."?

"nslookup -domain=. -type=ns com" works fine as well.

--
Petr Menšík
Software Engineer, RHEL
Red Hat,https://www.redhat.com/
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB
___
dns-operations mailing list
dns-operations@lists.dns-oarc.net
https://lists.dns-oarc.net/mailman/listinfo/dns-operations


[dns-operations] Single label queries on Windows (11)

2023-07-07 Thread Petr Menšík

Hello,

I have tested recently how Windows 11 behaves when resolving single 
label queries.


I have expected it might try to use LLMNR. But I did not expect it would 
do so also when trying nslookup, a tool which should be DNS only tool.


I have tried:

nslookup -type=ns com 9.9.9.9

Got NXDOMAIN. I were very suprised, learned that does not exist. Even 
more suprising were fact, that it presented the result came from the 
specified server. I am quite certain that server can resolve it 
successfully. When I run the same command on my Linux system, it works 
as it should.


nslookup -type=ns microsoft.com 9.9.9.9

Of course works as expected.

I would like to file some kind of bug. But have no idea how that could 
be done for Windows (desktop). Is there any bug tracker or at least 
documentation, why it does behave this way? Would you know a good 
contact to anyone from Microsoft, who may I contact? Is this behavior 
considered correct?


Thanks in advance!

Regards,
Petr

--
Petr Menšík
Software Engineer, RHEL
Red Hat, https://www.redhat.com/
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB

___
dns-operations mailing list
dns-operations@lists.dns-oarc.net
https://lists.dns-oarc.net/mailman/listinfo/dns-operations


Re: [dns-operations] How should work name resolution on a modern system?

2022-06-15 Thread Petr Menšík

On 11. 06. 22 5:56, Viktor Dukhovni wrote:

On Fri, Jun 10, 2022 at 09:16:11PM +0200, Petr Menšík wrote:


- first is libc interface getaddrinfo() provided by nss plugins. Names
can be resolved also by different protocols than just DNS. A good
examples might be MDNS (RFC 6762), LLMNR (RFC 4795) or Samba
(nmblookup). Standardized calls provide only blocking resolution interface.

The nsswitch (originall from SunOS IIRC) indeed has limitations, but is
unlikely to fade away quickly, especially because it also handles
non-DNS queries (passwd, group, services, ...).

That said, best practice for "hosts" has been essentially:

 hosts: files dns

with a very short /etc/hosts with just the local system address and
name, perhaps only a loopback address at that.  But this was before as
mention below the introduction of "mdns" et. al., and in some
"enterprise" environments "samba" or similar.


Enterprise samba uses DNS. I think legacy network lookup would be used 
by older Windows systems or NAS storages. Maybe it is not so important.


I am quite sure MDNS is used often on Apple systems.




* Asynchronous interface does not exist in useful form. It is easy to
handle multiple connections in single thread, but multiple resolutions
in single thread are not supported. nss plugins are simple to write, but
hard to use in responsibe program. Should that be changed?

Indeed asynchronous interfaces for some of these would be quite useful,
and some dedicated libraries (alternatives to good-*old* libresolv)
provide these for DNS specifically, but they are not ubiquitous, and
would introduce completely new APIs undreamed of in SvID and POSIX.


* MDNS usually uses names under .local domain. What should be preferred
order of single label names, like 'router.'? Should be LLMNR tried
first, samba first or DNS search applied first? Should it avoid reaching
DNS when search domain is not set?

I rather expect there is no one-size-fits-all answer, and so
nsswitch.conf or equivalent is here to stay.  Sometimes one wants no
"mdns" or similar at all.  The right answer for a laptop trying to
locate nearby printers is rather different than the answer for a server
racked in a datacentre.
Sure, mdns would have rare usage on server releases. dns-sd.org has link 
to DNS only implementation, I expect that would be a good way to have 
printers located from datacenters if required.

- primary interest for us is DNS protocol. On Unix systems it specifies
nameservers to use in /etc/resolv.conf also with some options. We would
like to offer DNS cache installed on local machine, which should
increase speed of repeatedly resolved names.

Definitely, with DNSSEC validation, and (on laptops) perhaps support for
probing of DNSSEC support when switching between WiFi networks, or
opting in to a captive portal, so that DNSSEC is used when available,
once the portal T etc have been dealt with, and real DNS servers
(ideally) become reachable.
Sure. I have made a bit research of how Network Manager does it. It 
tries resolution via systemd-resolved, if not possible, falls back to 
normal resolution in curl library. I have not found any trace of DNSSEC 
support during it. I think it should disable validation during 
connection test phase. If captive portal is detected, keep it disabled. 
Also set maximum TTL to 1s or flush cache at captive portal passed 
event. I think cache flush would be required only if any name validation 
failed and captive portal were detected.



* I would like to have support for multiple interfaces and redirection
of names subtree to local network interfaces servers. For example
'home.arpa' redirected to local router at home, but example.com
redirected to VPN connection.

This is largely a laptop problem, but indeed the local caching
nameserver could have appropriate stub zones defined, so that
queries for "special" zones are sent to non-default servers.
I think also servers can have some use-cases, when some service provides 
link to internal company network. Also network maintained by libvirt od 
podman might have its own dnsmasq, which maintains names for started 
containers. They might want to map pods.example.com to podman or 
vms.example.net to VM. If it runs different networks, host should 
connect them and make then reachable. But this is different, because 
those networks are not received from different devices. Orchestration 
should be able to configure it appropriately.



I think RFC 8801 and RFC 7556 specify standardized way to list
interface specific domains. Existing implementations misuse RFC 2937
for a source of such list now. Something like this is implemented by
systemd-resolved on Ubuntu and Fedora systems. But it introduced
couple of new issues. Is something similar implemented on end user
machines? I think laptop and phones are typical devices with multiple
interfaces, where it would make sense.

This is a complex question, that can't be an

[dns-operations] How should work name resolution on a modern system?

2022-06-10 Thread Petr Menšík

Hello DNS experts,

I were thinking about requirements for future name resolution primarily 
on Linux desktop and servers. But if anyone could comment other systems 
and their design, I would be glad too. I would like to formulate 
requirements first and find a good way to implement them later.


We have two ways used to resolve names to ip addresses on GNU/Linux.

- first is libc interface getaddrinfo() provided by nss plugins. Names 
can be resolved also by different protocols than just DNS. A good 
examples might be MDNS (RFC 6762), LLMNR (RFC 4795) or Samba 
(nmblookup). Standardized calls provide only blocking resolution interface.


* Asynchronous interface does not exist in useful form. It is easy to 
handle multiple connections in single thread, but multiple resolutions 
in single thread are not supported. nss plugins are simple to write, but 
hard to use in responsibe program. Should that be changed?


* MDNS usually uses names under .local domain. What should be preferred 
order of single label names, like 'router.'? Should be LLMNR tried 
first, samba first or DNS search applied first? Should it avoid reaching 
DNS when search domain is not set?


- primary interest for us is DNS protocol. On Unix systems it specifies 
nameservers to use in /etc/resolv.conf also with some options. We would 
like to offer DNS cache installed on local machine, which should 
increase speed of repeatedly resolved names.


* I would like to have support for multiple interfaces and redirection 
of names subtree to local network interfaces servers. For example 
'home.arpa' redirected to local router at home, but example.com 
redirected to VPN connection. I think RFC 8801 and RFC 7556 specify 
standardized way to list interface specific domains. Existing 
implementations misuse RFC 2937 for a source of such list now. Something 
like this is implemented by systemd-resolved on Ubuntu and Fedora 
systems. But it introduced couple of new issues. Is something similar 
implemented on end user machines? I think laptop and phones are typical 
devices with multiple interfaces, where it would make sense.


My questions:

- how should single label names be handled?
-- is domain (opt. 15) and search (opt. 117) from DHCP already dead? 
Should they be completely avoided even in trusted networks?
-- in which order should be resolution tried? Should machine cache block 
queries to single label hostnames not expanded to FQDN on DNS protocol?
-- I have seen usage of search domains on cloud technologies. Is there 
common example what they are used for? Do we need ndots option with 
value different from 1?


- should we expect DNSSEC capabilities on every machine?
-- should we even enable DNSSEC validation on every machine by default? 
When it would be good idea and when it wouldn't?


- should asynchronous API be prepared for common name to addresses and 
vice versa? One which would support both local network resolution and 
unicast DNS in easy to use way? Usable even in GUI applications without 
common hassle with worker threads?


If there is documentation for name subtree mapping to interface servers 
on different systems, I would be glad if you could share links to it. If 
we should improve current situation, I would like to first gather 
expected requirements for such system. Is there some summary already?


Thank you for any feedback!

Best Regards,
Petr

--
Petr Menšík
Software Engineer, RHEL
Red Hat, http://www.redhat.com/
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB

___
dns-operations mailing list
dns-operations@lists.dns-oarc.net
https://lists.dns-oarc.net/mailman/listinfo/dns-operations


Re: [dns-operations] Input from dns-operations on NCAP proposal

2022-06-07 Thread Petr Menšík
That might not be true on some Linux distributions. Those with 
systemd-resolved preinstalled (Ubuntu and Fedora) send single label 
queries to LLMNR multicast resolution. I think it uses the search 
directive for list of domains for local networks, but otherwise ignores 
them. It is debatable whether this approach is more secure or better.


On 04. 06. 22 2:18, Randy Bush wrote:

Do we have any idea how many systems still use search lists?

linux and freebsd installs encourage them


--
Petr Menšík
Software Engineer, RHEL
Red Hat, http://www.redhat.com/
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB

___
dns-operations mailing list
dns-operations@lists.dns-oarc.net
https://lists.dns-oarc.net/mailman/listinfo/dns-operations


[dns-operations] DNSSEC queries to Amazon EC2 without signatures

2022-06-07 Thread Petr Menšík

Is anyone from Amazon EC2 DNS team present?

We have Testing Farm for Fedora project on AWS instances. Because our 
internal network restricts outgoing DNS packets, we always rely on 
resolvers provided by the network. However, our unbound test containing 
DNSSEC validation fails. The server does not answer to dnssec enabled 
query with signatures, which are required for working resolution.


Another issue is bad handling of empty non-terminals. Name dig soa 
us-east-2.compute.internal answers without error, but dig soa 
compute.internal ends with NXDOMAIN status. Because Amazon is member of 
DNS-OARC, do you know, when such reports should be directed?


Thanks!

--
Petr Menšík
Software Engineer, RHEL
Red Hat, http://www.redhat.com/
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB

___
dns-operations mailing list
dns-operations@lists.dns-oarc.net
https://lists.dns-oarc.net/mailman/listinfo/dns-operations


Re: [dns-operations] SHA-1 DNSSEC verification broken in RHEL 9 and CentOS 9 Stream

2022-04-14 Thread Petr Menšík
No, SHA-1 is not going to be disabled the same way MD5 were disabled in
RHEL 7. Normal message digests using SHA-1 will still work. I know NSEC3
has no other alternative and therefore we cannot afford breaking it
altogether. It would break almost all resolution in the most common top
level domains. Any attempt to do that would be clear blocker for a
release and no, nothing such is planned or implemented.

What will start failing are attempts to verify digests made using SHA-1
and RSA keys used in the same openssl API call. I have included examples
of openssl calls which would now return error. sha1sum and similar tools
should still work unmodified. That means also NSEC3 would still work. I
haven't seen complete API call list affected by this change. I cannot
share it therefore.

Power DNS developer said their implementation still works. It seems
using lower-level API calls can avoid this change of policy. That is
discouraged by our internal guidelines, but could be used as a
workaround. I haven't tested those ways.

On 4/14/22 07:02, Shreyas Zare wrote:
>
> Hi,
>
> Apart from DNSSEC validation, have you also tested DNS servers hosting
> DNSSEC signed zones with NSEC3? This is since NSEC3 only has SHA1
> specified
> <https://www.iana.org/assignments/dnssec-nsec3-parameters/dnssec-nsec3-parameters.xhtml>
> and this may cause the DNS server unable to update the zone to create
> new NSEC3 records. This will mean that even if the zone is signed with
> ECDSA algorithms but use NSEC3 then they are going to fail.
>
Yes, I am aware there is no other hash algorithm standardized. I have
tested NSEC3 stays working and validates in DEFAULT policy. If you can
find a case where it stopped working on centos stream9 container, please
share steps to reproduce with me. I don't think that can happen, but you
can prove me wrong.
>
> Regards,
> *Shreyas Zare*
> Technitium <https://technitium.com/>
>
>
Regards,
Petr

-- 
Petr Menšík
Software Engineer
Red Hat, http://www.redhat.com/
email: pemen...@redhat.com
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB
___
dns-operations mailing list
dns-operations@lists.dns-oarc.net
https://lists.dns-oarc.net/mailman/listinfo/dns-operations


Re: [dns-operations] SHA-1 DNSSEC verification broken in RHEL 9 and CentOS 9 Stream

2022-04-14 Thread Petr Menšík
No, I wanted just the first message to reach both, because I am
subscribed to both lists. Interested people can search archives of the
other list. I expected those lists have very likely disjoint members not
able to write to both.

Feel free to remove epel-devel from further responses here to avoid
receiving errors (and vice versa).

On 4/14/22 00:49, Mark Andrews wrote:
> If you wanted epel-devel list members to see the discussion you have failed.
>
> Your message to the epel-devel mailing-list was rejected for the following
> reasons:
>
> The message is not from a list member
>
> The original message as received by Mailman is attached.
>
> From: Mark Andrews 
> Subject: Re: [dns-operations] SHA-1 DNSSEC verification broken in RHEL 9 and 
> CentOS 9 Stream
> Date: 14 April 2022 at 08:44:55 AEST
> To: Petr Menšík 
> Cc: DNS-Operations , 
> epel-de...@lists.fedoraproject.org
>
>
> The only way to detect if the server is running in this mode is to actually 
> attempt a verification and to see if it fails.  That requires precomputed 
> signatures as you can’t sign using RSASHA1 in FIPS mode but you can verify 
> RSASHA1 in FIPS mode.
I am not sure what is the platform you are describing. RHEL 9 won't be
able to verify RSASHA1 signature even in default policy, let alone in
FIPS mode.
>
> In FIPS mode one can check if the server is running in FIPS mode or not by 
> calling FIPS_mode() or EVP_default_properties_is_fips_enabled() and you can 
> adjust the list of algorithms supported by libcrypto at runtime before 
> attempting to validate anything.  You don’t end up doing a lot of work just 
> to have EVP_VerifyFinal() fail because of an unsignalled policy switch.
>
> Mark
Yes, I find it also disturbing that there is no good public API to check
SHA-1 availability except attempting a real crypto operation. I hope
that will improve later, but I don't know well working candidate API at
the moment.

-- 
Petr Menšík
Software Engineer
Red Hat, http://www.redhat.com/
email: pemen...@redhat.com
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB

___
dns-operations mailing list
dns-operations@lists.dns-oarc.net
https://lists.dns-oarc.net/mailman/listinfo/dns-operations


Re: [dns-operations] [Ext] SHA-1 DNSSEC verification broken in RHEL 9 and CentOS 9 Stream

2022-04-13 Thread Petr Menšík
I admit feedback from the DNS community were mostly negative or
indifferent. Because the cause of this breakage is already merged and
prepared for release, it would have to be reverted.

We have no feedback from our customers on this topic yet, because
already released RHEL 9 Beta did not contain the responsible change.
Final RHEL 9.0 haven't been released yet. I am trying to receive
feedback how critical this change can be. What types of deployments can
it affect or even break?

I think SMTP services using DANE might be hit by this change. I don't
have any numbers how many our customers need SHA-1 domains secure. I
would like to receive any opinions here. Ideally backed by some numbers.

On 4/13/22 20:35, Paul Hoffman wrote:
> To date, have any of your customers or anyone in the DNS community, supported 
> your choice of how to implement this? If not, or if only a trivial number 
> have, does that affect your decision on how to implement this?
This decision were not made by me and I had no vote for it before it was
done. I try to reduce negative impact of it. But probability of
reverting that change just because DNSSEC validators not prepared for it
is low. Unless it has dramatic negative impact which I haven't found so far.
>
> --Paul Hoffman

-- 
Petr Menšík
Software Engineer
Red Hat, http://www.redhat.com/
email: pemen...@redhat.com
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB

___
dns-operations mailing list
dns-operations@lists.dns-oarc.net
https://lists.dns-oarc.net/mailman/listinfo/dns-operations


[dns-operations] SHA-1 DNSSEC verification broken in RHEL 9 and CentOS 9 Stream

2022-04-13 Thread Petr Menšík
Hello DNS users,

I have already created some bugs to inform some affected software
packages. But I would like to notify also here with prepared plan to
obsolete SHA-1 in upcoming RHEL 9.0. Final documentation is not yet
created for it, but it could be tested already on centos container:

docker pull quay.io/centos/centos:stream9

delv command from bind-utils or unbound-host -D from unbound can test
it. delv would still fail, because it does not follow crypto-policy
configuration which named consumes.

I have filled tracker bug for EPEL9 components I know on bug #2073066
[1]. If your software validates DNSSEC signatures, it might start
failing on domain names signed with RSASHA1 or NSEC3RSASHA1 algorithms.
If you have package validating DNSSEC on EPEL9 which I have not
mentioned and it is affected, please create a bug blocking this tracker
bug. If  have created the bug but is not affected, please close it with
NOTABUG.

Crypto-policy DEFAULT makes some openssl or gnutls methods to fail, when
RSASHA-1 key is used. That includes openssl function EVP_VerifyFinal
(used in bind) and EVP_DigestVerifyInit (used in unbound). Because used
crypto policy DEFAULT prevents such signature verification, DNSSEC
validators may start to return failures on those names.

A simple workaround would be switching to crypto policy DEFAULT:SHA1:

update-crypto-policies --set DEFAULT:SHA1

I have created list to TLD affected and attached them to the bug [2].
But it includes many more names, such as icann.org, ietf.org or paypal.com.

I know it violates still active RFC 8624 [3], but because it is enforced
by lower-level API, it is possible just to follow or fail. I think so
far every crypto call failure results in bogus result and returns status
SERVFAIL on the reply. Would it make sense to create some common cases,
where the result would be fallback to insecure reply without AD bit, but
no failure?

Supported bind and unbound packages will start considering those names
as insecure to prevent validation failures. There has been interesting
conversation on mattermost Town Square [4] on this topic. Worth noting
might be also threads on unbound [5] and Fedora discussion about
implementing the same way [6].

Best Regards,

Petr

1. https://bugzilla.redhat.com/show_bug.cgi?id=2073066
2. https://bugzilla.redhat.com/show_bug.cgi?id=2073066#c7
3. https://datatracker.ietf.org/doc/html/rfc8624#section-3.1
4. https://chat.dns-oarc.net/community/channels/town-square
5. https://lists.nlnetlabs.nl/pipermail/unbound-users/2022-April/007709.html
6.
https://lists.fedoraproject.org/archives/list/de...@lists.fedoraproject.org/thread/VVLHQAWI3IQ7NRLKMUHJ27JV3V2JAFDP/#W73IMPJVK3DNCRXS5OZXELVWJRDRT6KN

-- 
Petr Menšík
Software Engineer
Red Hat, http://www.redhat.com/
email: pemen...@redhat.com
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB
___
dns-operations mailing list
dns-operations@lists.dns-oarc.net
https://lists.dns-oarc.net/mailman/listinfo/dns-operations


Re: [dns-operations] Split view autoconfiguration

2020-11-12 Thread Petr Menšík


On 11/12/20 9:00 PM, Florian Weimer wrote:
> * Petr Menšík:
> 
>> I'll try to rephrase. Connection provides list of domains, it considers
>> internal. All names in that domains should be resolved using DNS servers
>> provided by that connection. Because common network connection managed
>> by NM or systemd-networkd does not have "internal domains" property,
>> systemd-resolved and dnssec-trigger uses DHCP search (119) option.
> 
> Is it really a list, though?
> 
> I expect corporate networks to use RPZ to manage things like
> typo-squatting, so it's going to be very long, and perhaps not even
> readily disclosable for contractual reasons.
I don't think they should share the whole RPZ zone via that list. I
should be able to send all queries to VPN for safety checking and only
selected to my local/home network, reversing the functionality. I expect
that domain list per connection would be usually limited to 5 names, not
hundred of names. Just bare minimum for basic functionality, not RPZ
protection for any bad site on the internet. Something like
"corp.example.net, labs.example.org".

Since I have installed my own system not managed or supported by our IT
and have also own internet connection, I don't think the VPN (nor the
company) has to monitor all my internet usage. Therefore I would like
send there only traffic directed to VPN, avoiding personal queries to go
there as well.

I am refering to Split DNS change proposed to Fedora [1]. I have been
using dnssec-trigger for years. Think there should be some standard way
to define configuration in more standard way.

It is also question, how should VPN connection be configured to send all
queries to the VPN or not. An employer might require it in the contract.
When I need multiple VPN connections, it would have to choose somehow. How?

1. https://fedoraproject.org/wiki/Changes/systemd-resolved#Split_DNS
> 
> Thanks,
> Florian
> 

-- 
Petr Menšík
Software Engineer
Red Hat, http://www.redhat.com/
email: pemen...@redhat.com
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB


OpenPGP_0x4931CA5B6C9FC5CB_and_old_rev.asc
Description: application/pgp-keys


OpenPGP_signature
Description: OpenPGP digital signature
___
dns-operations mailing list
dns-operations@lists.dns-oarc.net
https://lists.dns-oarc.net/mailman/listinfo/dns-operations


Re: [dns-operations] Split view autoconfiguration

2020-11-12 Thread Petr Menšík


On 11/12/20 3:01 PM, Paul Wouters wrote:
> On Nov 12, 2020, at 07:59, Petr Menšík  wrote:
>>
>> Hello DNS experts, Hi Paul,
>>
>> I am looking for correct way to autoconfigure split DNS. By that, I mean
>> something that dnssec-trigger prepares, when I connect to our enterprise
>> VPN. It keeps most of queries to original connection servers provided.
> 
> That is exactly what RFC 8598 does for IKEv2/IPsec. This is supported by 
> libreswan and supports a local unbound. For the next version of libreswan we 
> will add support for NM. systemd-resolved, knot, resolvconf (Debian)
Could you provide issue or merge request on NM if available?
> 
> I submitted build for openvpn with unbound support but those changes got lost 
> over time.
> 
>> But for special internal domains, it redirects queries on local running
>> unbound server to addresses provided by VPN connection. Similar way
>> behaves systemd-resolved and dnsmasq configured by Network Manager.
> 
> I don’t quite understand what you are saying here?

I'll try to rephrase. Connection provides list of domains, it considers
internal. All names in that domains should be resolved using DNS servers
provided by that connection. Because common network connection managed
by NM or systemd-networkd does not have "internal domains" property,
systemd-resolved and dnssec-trigger uses DHCP search (119) option.
> 
>> I think they use DHCP option 119 [1], which was originally used for
>> different thing. It is already used and can be used as a hint. But its
>> purpose is to search relative names. I found only explicit configuration
>> for IKEv2 [2], which provides required information.
> 
> DHCP options are only useful for non-VPN connections. There has been talk 
> about putting the RFC 8598 options into a dhcp option but people connecting 
> to enterprise  wired/wireless don’t have a split dns normally. Either you 
> (have to) trust the network or you fully distrust it (and want dot/doh to an 
> external party)

They still can be connected to different network by wired and wireless
connection. They may want to send some name queries over "untrusted"
wireless and different over "trusted" wired connection. List of internal
domains provided for each connection may help with autoconfiguration.

Anyway, it might want to propagate lan domain instead, when I send all
default queries to VPN server. I would like then lan. domain still sent
to my home router and not to the VPN. DHCP option would work for that case.
> 
> 
>> Am I missing standard way to pass internal domains on VPN connections
>> for different types? Is there any best practice or recommendation how to
>> configure it in general?
> 
> openvpn surely has something but as I said, patches were lost. WireGuard will 
> invent something homegrown once they have their userland daemon (WG-dynamic). 

I personally think VPN should not usually push it directly to specific
nameserver. Instead, some standard tool should be used, whatever
supported local resolver is running. Most often it woult be Network
Manager on linux machine. Not sure if resolvconf would be correct tool
for that.

> We can’t really standardize openvpn/WireGuard. 
We could prepare standard handler and let VPN plugin to extract
variables from specific connection protocol.

>> Is it so uncommon to have split horizon setup with internal connection?
>> I hope I don't know just correct terminology, could you help with that?
>> Is there DHCP option 119 alternative, which means list of internal
>> domains without additional search hints? Is there other way to configure it?
> 
> For IETF standard VPN protocol, we have the solution, and it is implemented. 
> I can give you a certificate for VPN.nohats.ca to test.
Would be useful for testing.
> 
> Note it does do fallback to re-using the list of dns domains as search 
> domains in resolv.conf if it doesn’t find a locally running dns server. 
> 
> Paul
> 
This means IPSEC VPN has configured "internal" domains. When local
endpoint is not able to configure split-dns on the machine, they are
converted to search domains, correct?

I think there should be also other ways to manually configure internal
domains for a connection. Just like Domains= in systemd-networkd, but
not only for consumption of systemd-resolved.

Is there any way to configure something similar in different systems?
What about Windows 10 or Apple OSX?

-- 
Petr Menšík
Software Engineer
Red Hat, http://www.redhat.com/
email: pemen...@redhat.com
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB


OpenPGP_0x4931CA5B6C9FC5CB_and_old_rev.asc
Description: application/pgp-keys


OpenPGP_signature
Description: OpenPGP digital signature
___
dns-operations mailing list
dns-operations@lists.dns-oarc.net
https://lists.dns-oarc.net/mailman/listinfo/dns-operations


[dns-operations] Split view autoconfiguration

2020-11-12 Thread Petr Menšík
Hello DNS experts, Hi Paul,

I am looking for correct way to autoconfigure split DNS. By that, I mean
something that dnssec-trigger prepares, when I connect to our enterprise
VPN. It keeps most of queries to original connection servers provided.

But for special internal domains, it redirects queries on local running
unbound server to addresses provided by VPN connection. Similar way
behaves systemd-resolved and dnsmasq configured by Network Manager.

I think they use DHCP option 119 [1], which was originally used for
different thing. It is already used and can be used as a hint. But its
purpose is to search relative names. I found only explicit configuration
for IKEv2 [2], which provides required information.

Am I missing standard way to pass internal domains on VPN connections
for different types? Is there any best practice or recommendation how to
configure it in general?

Is it so uncommon to have split horizon setup with internal connection?
I hope I don't know just correct terminology, could you help with that?
Is there DHCP option 119 alternative, which means list of internal
domains without additional search hints? Is there other way to configure it?

Thank you in advance.
Best regards,
Petr

1. https://tools.ietf.org/html/rfc3397
2. https://tools.ietf.org/html/rfc8598
-- 
Petr Menšík
Software Engineer
Red Hat, http://www.redhat.com/
email: pemen...@redhat.com
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB


OpenPGP_0x4931CA5B6C9FC5CB_and_old_rev.asc
Description: application/pgp-keys


OpenPGP_signature
Description: OpenPGP digital signature
___
dns-operations mailing list
dns-operations@lists.dns-oarc.net
https://lists.dns-oarc.net/mailman/listinfo/dns-operations