Bug 1188736

Summary: Network manager doesn't set default route and ipv4 address on wired connection.
Product: [openSUSE] openSUSE Distribution Reporter: Matthias Meinke <matthias.meinke>
Component: NetworkAssignee: Jonathan Kang <songchuan.kang>
Status: RESOLVED DUPLICATE QA Contact: E-mail List <qa-bugs>
Severity: Major    
Priority: P5 - None CC: fvogt, matthias.meinke
Version: Leap 15.3   
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE Leap 15.3   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: output of jounralctl -b with NetworkManager logging enabled

Description Matthias Meinke 2021-07-27 09:15:33 UTC
I recently updated to LEAP 15.3. While the same system was working in LEAP 15.2, I now have the following problem in LEAP 15.3. When I use the network manager to configure a wired connection, no default route and no ipv4 address is set. WLAN connections work and the same hardware works with wicked.

Here is the output of ip [addr,link,route] for wicked and network manager:

configuration with wicked

ip link

4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0e:c6:8e:e2:27 brd ff:ff:ff:ff:ff:ff
    altname enp0s20f0u3

ip addr

4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0e:c6:8e:e2:27 brd ff:ff:ff:ff:ff:ff
altname enp0s20f0u3
inet 192.168.1.109/24 brd 192.168.1.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::20e:c6ff:fe8e:e227/64 scope link 
valid_lft forever preferred_lft forever

ip route

default via 192.168.1.254 dev eth1 proto dhcp 
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.109 

configuration with network manager

ip link

4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0e:c6:8e:e2:27 brd ff:ff:ff:ff:ff:ff
    altname enp0s20f0u3

ip addr

4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0e:c6:8e:e2:27 brd ff:ff:ff:ff:ff:ff
    altname enp0s20f0u3
    inet6 2a02:a46a:e2b:1:c8d8:d5fd:10b:38d6/64 scope global temporary dynamic 
       valid_lft 259107sec preferred_lft 85833sec
    inet6 2a02:a46a:e2b:1:2a63:3615:cf62:40c9/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 259107sec preferred_lft 172707sec
    inet6 fe80::589c:6c5a:78c4:59af/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
       
ip route

<nothing>
Comment 1 Fabian Vogt 2021-07-27 09:21:30 UTC
What's the output of "nmcli con show" for that specific connection?
Comment 2 Matthias Meinke 2021-07-27 09:27:13 UTC
nmcli con show | grep wired
wired 3ee940f6-0ace-4422-8099-7f0e976f370b  ethernet  eth1
Comment 3 Matthias Meinke 2021-07-27 11:30:09 UTC
I do not know whether this information is relevant. I am using a USB-RJ45 adapter for the wired connection:
lsusb
Bus 002 Device 007: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Comment 4 Jonathan Kang 2021-08-09 03:16:37 UTC
(In reply to Matthias Meinke from comment #2)
> nmcli con show | grep wired
> wired 3ee940f6-0ace-4422-8099-7f0e976f370b  ethernet  eth1

Use "nmcli connection show $wired-connection-name" instead.
Comment 5 Matthias Meinke 2021-08-11 22:15:44 UTC
the connection name is wired here is the output

# nmcli connection show wired
connection.id:                          wired
connection.uuid:                        3ee940f6-0ace-4422-8099-7f0e976f370b
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              --
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1628719915
connection.read-only:                   no
connection.permissions:                 user:matthias
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     unknown
connection.lldp:                        default
connection.mdns:                        -1 (default)
connection.llmnr:                       -1 (default)
connection.wait-device-timeout:         -1
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          yes
802-3-ethernet.mac-address:             00:0E:C6:8E:E2:27
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist:   --
802-3-ethernet.mtu:                     auto
802-3-ethernet.s390-subchannels:        --
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:            --
802-3-ethernet.wake-on-lan:             default
802-3-ethernet.wake-on-lan-password:    --
ipv4.method:                            auto
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.addresses:                         --
ipv4.gateway:                           --
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.routing-rules:                     --
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-iaid:                         --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.dhcp-hostname-flags:               0x0 (none)
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv4.dad-timeout:                       -1 (default)
ipv6.method:                            auto
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       --
ipv6.dns-priority:                      0
ipv6.addresses:                         --
ipv6.gateway:                           --
ipv6.routes:                            --
ipv6.route-metric:                      -1
ipv6.route-table:                       0 (unspec)
ipv6.routing-rules:                     --
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.addr-gen-mode:                     stable-privacy
ipv6.ra-timeout:                        0 (default)
ipv6.dhcp-duid:                         --
ipv6.dhcp-iaid:                         --
ipv6.dhcp-timeout:                      0 (default)
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --
ipv6.dhcp-hostname-flags:               0x0 (none)
ipv6.token:                             --
proxy.method:                           none
proxy.browser-only:                     no
proxy.pac-url:                          --
proxy.pac-script:                       --
GENERAL.NAME:                           wired
GENERAL.UUID:                           3ee940f6-0ace-4422-8099-7f0e976f370b
GENERAL.DEVICES:                        eth2
GENERAL.IP-IFACE:                       eth2
GENERAL.STATE:                          activated
GENERAL.DEFAULT:                        no
GENERAL.DEFAULT6:                       no
GENERAL.SPEC-OBJECT:                    --
GENERAL.VPN:                            no
GENERAL.DBUS-PATH:                      /org/freedesktop/NetworkManager/ActiveConnection/124
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/Settings/280
GENERAL.ZONE:                           --
GENERAL.MASTER-PATH:                    --
IP4.GATEWAY:                            --
IP6.ADDRESS[1]:                         2a02:a46a:e2b:1:ff25:423c:9af1:4c1b/64
IP6.ADDRESS[2]:                         2a02:a46a:e2b:1:1072:85d8:70e3:463/64
IP6.ADDRESS[3]:                         fe80::c2ab:f19e:4c80:c794/64
IP6.GATEWAY:                            fe80::4e1b:86ff:fe70:28c5
IP6.ROUTE[1]:                           dst = 2a02:a46a:e2b::/48, nh = fe80::4e1b:86ff:fe70:28c5, mt = 100
IP6.ROUTE[2]:                           dst = 2a02:a46a:e2b:1::/64, nh = ::, mt = 100
IP6.ROUTE[3]:                           dst = ::/0, nh = fe80::4e1b:86ff:fe70:28c5, mt = 20100
IP6.ROUTE[4]:                           dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[5]:                           dst = ff00::/8, nh = ::, mt = 256, table=255
IP6.DNS[1]:                             2a02:a47f:e000::53
IP6.DNS[2]:                             2a02:a47f:e000::54
DHCP6.OPTION[1]:                        dad_wait_time = 0
DHCP6.OPTION[2]:                        dhcp6_client_id = 0:4:4:51:55:eb:69:cf:d2:ea:23:f6:f0:c2:8:72:bd:5b
DHCP6.OPTION[3]:                        dhcp6_name_servers = 2a02:a47f:e000::53 2a02:a47f:e000::54
DHCP6.OPTION[4]:                        dhcp6_preference = 255
DHCP6.OPTION[5]:                        dhcp6_server_id = 0:3:0:1:4c:1b:86:70:28:c5
DHCP6.OPTION[6]:                        requested_dhcp6_client_id = 1
DHCP6.OPTION[7]:                        requested_dhcp6_domain_search = 1
DHCP6.OPTION[8]:                        requested_dhcp6_name_servers = 1
DHCP6.OPTION[9]:                        requested_dhcp6_sntp_servers = 1
Comment 6 Matthias Meinke 2021-08-11 22:21:12 UTC
The above output is generated with Method Automatic in the Network manager IPV4/6 tab. If I choose Method Manual with the manual definition of all necessary addresses, the wired connection is configured correctly.
Comment 7 Jonathan Kang 2021-08-12 05:56:56 UTC
Please add the following to /etc/NetworkManager/NetworkManager.conf

> [logging]
> level=trace

restart NetworkManager and reproduce this again. This turns of more verbose
logging in NetworkManager. Attach the output of "journalctl -b" here.

Thanks.
Comment 8 Matthias Meinke 2021-08-12 17:46:37 UTC
With the NetworkManager logging enabled 'nmcli connection show wired' shows the same output. The output of journalctl -b I have attached as a file, since it produces a lot of lines. Note that I deleted everything before restarting the NetworkManager.
Comment 9 Matthias Meinke 2021-08-12 17:48:34 UTC
Created attachment 851735 [details]
output of jounralctl -b with NetworkManager logging enabled
Comment 10 Jonathan Kang 2021-08-17 03:37:44 UTC
(In reply to Matthias Meinke from comment #9)
> Created attachment 851735 [details]
> output of jounralctl -b with NetworkManager logging enabled

Can you try disabling ipv6 and see if that works around it? The logs indicate
that in the process of waiting for DHCP reply, the ethernet link id down for
some reason.

> Aug 12 19:31:32 lenovomw kernel: ax88179_178a 1-4:1.0 eth2: ax88179 - Link status is: 0

A few seconds later the link is back up, but dhcp4 didn't got any reply from
server either.
Comment 11 Matthias Meinke 2021-08-19 23:03:31 UTC
I tried any other setting in the IPv4 and IPv6 tab of the NetworkManager. The results is always the same. Only when I configure IPv4 as manual, the wired connection gets the manually configured IPv4 address and works. In all other cases, including when I disable IPv6, no IPv4 address is obtained.
Comment 12 Jonathan Kang 2021-08-20 06:01:39 UTC
(In reply to Matthias Meinke from comment #11)
> I tried any other setting in the IPv4 and IPv6 tab of the NetworkManager.
> The results is always the same. Only when I configure IPv4 as manual, the
> wired connection gets the manually configured IPv4 address and works. In all
> other cases, including when I disable IPv6, no IPv4 address is obtained.

Okay, one last thing to try. In /etc/NetworkManager/NetworkManager.conf, change
"dhcp=dhclient" to "dhcp=dhcpcd"(you need install dhcpcd in this case) or
"dhcp=internal".
Comment 13 Matthias Meinke 2021-08-20 07:30:41 UTC
https://software.opensuse.org/package/dhcpcd says there is no dhcpcd package for 15.3
Comment 14 Matthias Meinke 2021-08-20 07:33:23 UTC
when I set dhcp=internal the wired connection gets an IPv4 address!!
Comment 15 Jonathan Kang 2021-09-27 00:58:49 UTC
(In reply to Matthias Meinke from comment #14)
> when I set dhcp=internal the wired connection gets an IPv4 address!!

This seems to be an similar issue with bug#1188949. dhclient never successfully
got an DHCPACK, thus the whole dhcp process fails. This is still under
investigation and not clear what causes this atm.
Comment 16 Jonathan Kang 2022-09-08 07:03:09 UTC
duplicate of bug#1188949.

*** This bug has been marked as a duplicate of bug 1188949 ***