Static IP assigned to network card, but DHCP process initiated

I’ve set-up a static IP address for my system. But upon boot my system gets assigned a DHCP IP address from the router. I get assigned 2 IP addresses:

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host  
       valid_lft forever preferred_lft forever
2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 1c:87:2c:74:63:7d brd ff:ff:ff:ff:ff:ff
    inet 201.7.5.121/24 brd 201.7.5.255 scope global dynamic noprefixroute enp4s0
       valid_lft 6922sec preferred_lft 6922sec
    inet 201.7.5.100/24 brd 201.7.5.255 scope global secondary enp4s0
       valid_lft forever preferred_lft forever
    inet6 fe80::d48d:a025:f189:555f/64 scope link noprefixroute  
       valid_lft forever preferred_lft forever

In my router the MAC address is bound to the corresponding IP address. This config / set-up worked correctly with 42.3. With my server (42.3) I have no issue with the static IP address as that works correct and that configuration is the same (except for the IP) as I use on my desktop.

I’m expecting only a single IP address and not 2. Where can I see what config is triggering the request for the DHCP (.121) provided IP address?

Are you using wicked or NetworkManager?

Also,
That’s really odd that “noprefixroute” is an attribute of your IPv4 DHCP address.
AFAIK that should only be associated with and make sense for IPv6 addressing.

Was this immediately after a manual configuration?
Besides the Wicked vs NM question, are you configuring your static address in YaST or NM, editing your interface files directly or implementing some other configuration alternative like /etc/sysctl?
And, did you restart your network service or reboot immediately after making your changes and only then run “ip addr”?

TSU

I make use of Yast2 to configure the network settings. I’m making use of Wicked.

I rebooted the system multiple times and the result is the same.

Do you have systemd-networkd.service active by any chance? “systemctl status systemd-networkd”?

That appears to be dead:

systemd-networkd.service - Network Service
   Loaded: loaded (/usr/lib/systemd/system/systemd-networkd.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:systemd-networkd.service(8)

“enabled” is confusing here but I checked - it is the same on my TW and it is not started. Could you show your /etc/sysconfig/network/ifcfg-enp4s0?

That file seems to be correct:

BOOTPROTO='static'
STARTMODE='auto'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR='201.7.5.100/24'
MTU=''
NAME=''
NETWORK=''
REMOTE_IPADDR=''
ZONE=public

A speculative try,

Recycle your networking using the classic “ifup/ifdown” commands, ie.

ifdown enp4s0

Then

ifup enp4s0

Followed by the following to see if there is any diff

ip addr

TSU

Executed the commands, and the output is the same.

# ifdown enp4s0
enp4s0          device-ready
# ifup enp4s0   
enp4s0          up
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host  
       valid_lft forever preferred_lft forever
2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 1c:87:2c:74:63:7d brd ff:ff:ff:ff:ff:ff
    inet 201.7.5.121/24 brd 201.7.5.255 scope global dynamic noprefixroute enp4s0
       valid_lft 7187sec preferred_lft 7187sec
    inet 201.7.5.100/24 brd 201.7.5.255 scope global secondary enp4s0
       valid_lft forever preferred_lft forever
    inet6 fe80::d48d:a025:f189:555f/64 scope link noprefixroute  
       valid_lft forever preferred_lft forever

Output immediately after ifdown would probably be more interesting.

Could you check if you have NetworkManager.service enabled and active by any chance?


# ifdown enp4s0
enp4s0          device-ready

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host  
       valid_lft forever preferred_lft forever
2: enp4s0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 1c:87:2c:74:63:7d brd ff:ff:ff:ff:ff:ff

# ifup enp4s0             
enp4s0          up

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host  
       valid_lft forever preferred_lft forever
2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 1c:87:2c:74:63:7d brd ff:ff:ff:ff:ff:ff
    inet 201.7.5.121/24 brd 201.7.5.255 scope global dynamic noprefixroute enp4s0
       valid_lft 7196sec preferred_lft 7196sec
    inet 201.7.5.100/24 brd 201.7.5.255 scope global secondary enp4s0
       valid_lft forever preferred_lft forever
    inet6 fe80::d48d:a025:f189:555f/64 scope link noprefixroute  
       valid_lft forever preferred_lft forever

Could you check if you have NetworkManager.service enabled and active by any chance?

Sure. That appears to be disabled:


systemctl status NetworkManager.service
**●** NetworkManager.service - Network Manager
   Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/NetworkManager.service.d
           └─NetworkManager-ovs.conf
   Active: **active (running)** since Sun 2018-03-11 15:38:18 CST; 3h 33min ago
     Docs: man:NetworkManager(8)
 Main PID: 1236 (NetworkManager)
    Tasks: 4 (limit: 4915)
   CGroup: /system.slice/NetworkManager.service                                          
           ├─ 1236 /usr/sbin/NetworkManager --no-daemon                                  
           └─18866 /sbin/dhclient -d -q -sf /usr/lib/nm-dhcp-helper -pf /var/run/dhclient-enp4s0.pid -lf /var/lib/NetworkManager/dhclient-1db478ea-e42d-313d-85a7-b6c423bb8a73-enp4s0.lease -cf /var/lib/NetworkManager/dhclient-enp4s0.conf enp4s0

Make sure your networking is done by wicked, not by Networkmanager.
Or, configure a static connections in Networkmanager.

Network is using Wicked already and that is configured to be static, though I don’t have a single static IP, but 2.

Today I figured out this weird config is due to some update in TW. As I have transmission on my server whitelisted my desktop pc, but I could not access it as my IP had changed. And I did not have that problem before.

It may be disabled, but it is active.
Please show “systemctl cat NetworkManager.service” and additionally “systemctl show -p WantedBy -p RequiredBy NetworkManager”.

May be, but your own output confirms that NetworkManager is running which is likely responsible for the second IP. The question is why it is started.

Sure I can.

sudo systemctl cat NetworkManager.service:


**# /usr/lib/systemd/system/NetworkManager.service**
[Unit]
Description=Network Manager
Documentation=man:NetworkManager(8) 
Wants=remote-fs.target network.target 
After=network-pre.target dbus.service 
Before=network.target 

[Service] 
Type=dbus 
BusName=org.freedesktop.NetworkManager 
ExecReload=/usr/bin/dbus-send --print-reply --system --type=method_call --dest=org.freedesktop.NetworkManager /org/freedesktop/Networ
#ExecReload=/bin/kill -HUP $MAINPID 
ExecStart=/usr/sbin/NetworkManager --no-daemon 
Restart=on-failure 
# NM doesn't want systemd to kill its children for it
KillMode=process 
CapabilityBoundingSet=CAP_NET_ADMIN CAP_DAC_OVERRIDE CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID CAP_SYS_MODULE CAP_AUDIT_
                                              
# ibft settings plugin calls iscsiadm which needs CAP_SYS_ADMIN 
#CapabilityBoundingSet=CAP_SYS_ADMIN                                                                                                                                      
ProtectSystem=true 
ProtectHome=read-only                                                                                                                                      
[Install] 
WantedBy=multi-user.target 
Alias=network.service 
Also=NetworkManager-dispatcher.service                                                         
**# /usr/lib/systemd/system/NetworkManager.service.d/NetworkManager-ovs.conf**
[Unit] 
After=openvswitch.service

sudo systemctl show -p WantedBy -p RequiredBy NetworkManager:


RequiredBy=NetworkManager-wait-online.service          
WantedBy=

And to be sure - same output for NetworkManager-wait-online.service?

sudo systemctl show -p WantedBy -p RequiredBy NetworkManager-wait-online.service

RequiredBy=
WantedBy=teamviewerd.service

Do you have TeamViewer? Is it running (systemctl status teamviewerd.service)?

Yes I have Teamviewer, as I need that for remote access with clients. I have not before experienced this change in network though.

sudo systemctl status teamviewerd.service


**●** teamviewerd.service - TeamViewer remote control daemon
   Loaded: loaded (/etc/systemd/system/teamviewerd.service; enabled; vendor preset: disabled)
   Active: **active (running)** since Sun 2018-03-11 15:38:25 CST; 15h ago
 Main PID: 2147 (teamviewerd)
    Tasks: 16 (limit: 4915)
   CGroup: /system.slice/teamviewerd.service
           └─2147 /opt/teamviewer/tv_bin/teamviewerd -d