Bug 2144521 - [RFE] The option to set no-aaaa in resolv.conf are not available in NetworkManager
Summary: [RFE] The option to set no-aaaa in resolv.conf are not available in NetworkMa...
Keywords:
Status: VERIFIED
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: NetworkManager
Version: 8.7
Hardware: x86_64
OS: Linux
medium
medium
Target Milestone: rc
: ---
Assignee: Fernando F. Mancera
QA Contact: Filip Pokryvka
Mayur Patil
URL:
Whiteboard:
Depends On:
Blocks: 2176137 2183216
TreeView+ depends on / blocked
 
Reported: 2022-11-21 14:55 UTC by Josep
Modified: 2023-07-19 07:32 UTC (History)
13 users (show)

Fixed In Version: NetworkManager-1.40.16-4.el8
Doc Type: Enhancement
Doc Text:
Feature: NetworkManager now supports the "no-aaaa" DNS option, enabling the suppression of AAAA queries made by the stub resolver. Reason: The update was necessary for seamless integration of the "no-aaaa" option with NetworkManager through the nmcli command. Result: This enhancement allows users to disable IPv6 resolution effectively using the nmcli command. After execution and a NetworkManager restart, the "no-aaaa" setting is reflected in the /etc/resolv.conf file, providing additional control over DNS lookups.
Clone Of:
: 2176137 (view as bug list)
Environment:
Last Closed:
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
nm-log-trace.txt (635.15 KB, text/plain)
2023-04-26 13:11 UTC, Marko Myllynen
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker NMT-99 0 None None None 2023-01-22 14:14:55 UTC
Red Hat Issue Tracker RHELPLAN-140035 0 None None None 2022-11-21 14:57:29 UTC
freedesktop.org Gitlab NetworkManager NetworkManager-ci merge_requests 1418 0 None merged dns: cover no-aaaa option 2023-05-30 07:24:04 UTC

Description Josep 2022-11-21 14:55:12 UTC
Description of problem:

The patch for RHEL8.7: 

https://access.redhat.com/errata/RHBA-2022:7684

Has been released. But the patch does not take into consideration the integration with NetworkManager, so is not possible to enter the option to disable ipv6 resolution "no-aaaa" in /etc/resolv.conf via NetworkManager with nmcli command 

So if in a RHEL 8.7 (latest updates applied) execute:

[root@localhost ~]# nmcli connection modify enp1s0 ipv4.dns-options "no-aaaa"
[root@localhost ~]# systemctl restart NetworkManager
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.122.1

The option is not set in /etc/resolv.conf, we need the option to be integrated in nmcli command

Version-Release number of selected component (if applicable):

RHEL 8.7
NetworkManager 1.40.0-2

How reproducible:

Always

Steps to Reproduce:

See description of the problem above:

[root@localhost ~]# nmcli connection modify enp1s0 ipv4.dns-options "no-aaaa"
[root@localhost ~]# systemctl restart NetworkManager
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.122.1


Actual results:

The option is not set with nmcli command to /etc/resolv.conf

Expected results:

The option "no-aaaa" will appear in /etc/resolv.conf

Additional info:

Comment 11 Marko Myllynen 2023-04-24 06:13:17 UTC
Thanks for working on this.

I tried this quickly (NetworkManager-1.40.16-4.el8.x86_64.rpm) in a dnsmasq based DNS caching setup on an IPv4-only host with dns=dnsmasq. The no-aaaa option was accepted in the NIC nmconnection ini file (no warnings or errors) but it did not appear in /etc/resolv.conf. Perhaps this is a scenario which has not been considered so far and is now more relevant?

Thanks.

Comment 12 Beniamino Galvani 2023-04-26 12:42:14 UTC
> The no-aaaa option was accepted in the NIC nmconnection ini file (no warnings or errors) but it did not appear in /etc/resolv.conf

The scenario you describe works fine in my test setup.

Please ensure that:

 - you have restarted the service after the package upgrade
 - if you modified the nmconnection file directly, you need to either call "nmcli connection reload" (preferred) or restart the service
 - in any case, you need to reactivate the profile with "nmcli connection up $name" to have the new setting take effect.

If it still doesn't work, please show the output of:

  cat /etc/resolv.conf
  NetworkManager --print-config

and possibly attach a log at trace level.

Comment 13 Marko Myllynen 2023-04-26 13:09:49 UTC
I even rebooted the system earlier to no avail, here's what I see now after booting up the test VM:

root@rhel-8-server:~# rpm -qa | grep NetworkManager | sort
NetworkManager-1.40.16-4.el8.x86_64
NetworkManager-libnm-1.40.16-4.el8.x86_64
root@rhel-8-server:~# cat /etc/NetworkManager/conf.d/*
[main]
dns=dnsmasq
root@rhel-8-server:~# cat /etc/NetworkManager/dnsmasq.d/*
addn-hosts=/etc/hosts
domain-needed
bogus-priv
local=/example.com/
local-ttl=10
min-cache-ttl=10
neg-ttl=10
root@rhel-8-server:~# cat /etc/resolv.conf 
# Generated by NetworkManager
search example.com
nameserver 127.0.0.1
options edns0 trust-ad
root@rhel-8-server:~# cat /etc/NetworkManager/system-connections/net0.nmconnection 
[connection]
id=net0
uuid=33e2dfe5-649b-21d9-4fc5-2feaad011ccc
type=ethernet
interface-name=net0

[ethernet]

[ipv4]
dns-options=no-aaaa;edns0;trust-ad
method=auto

[ipv6]
addr-gen-mode=eui64
method=disabled

[proxy]
root@rhel-8-server:~# ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: net0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:e7:11:6f brd ff:ff:ff:ff:ff:ff
root@rhel-8-server:~# 

I'll also attach the requested travel level log. Thanks.

Comment 14 Marko Myllynen 2023-04-26 13:11:01 UTC
Created attachment 1960127 [details]
nm-log-trace.txt

Comment 15 Beniamino Galvani 2023-04-26 14:00:30 UTC
Hi, the problem is:

  <warn>  [1682514298.2879] keyfile: load: "/etc/NetworkManager/system-connections/net0.nmconnection": failed to load connection: File permissions (100644) are insecure

The connection file must only be accessible by root because it can contain secrets. In general the best way to add or modify connections is via nmcli because it takes care of everything. If you create files manually, you need to set the correct permissions or umask. See also:

https://access.redhat.com/documentation/it-it/red_hat_enterprise_linux/8/html-single/configuring_and_managing_networking/index#assembly_manually-creating-networkmanager-profiles-in-keyfile-format_configuring-and-managing-networking

Comment 16 Marko Myllynen 2023-04-26 14:47:05 UTC
Good catch, thanks for pointing it out, now it works! Earlier on this VM I did manually a one-time migration from RHEL 8 default ifcfg files to connection files and that caused this hiccup.

Wrt the link, with connection files it looks like from RHEL 9 onwards using the network system role is a good choice when doing configurations with Ansible in scale.

Thanks.


Note You need to log in before you can comment on or make changes to this bug.