If you get some error with some service that is start / stopped via systemctl you might be pondering how to debug further why the service is not up then then you'll be in the situation I was today.
While on one configured server with 8 eth0 configured ethernet network interfaces the network service was reporting errors, when atempted to restart the RedHat way via:
service network restart
to further debug what the issue was as it was necessery I had to find a way how to debug systemctl so here is how:
How to do a verbose messages status for sysctlct?
linux:~# systemctl status network
linux:~# systemctl status network
Another useful hint is to print out only log messages for the current boot, you can that with:
# journalctl -u service-name.service -b
if you don't want to have the less command like page separation ( paging ) use the –no-pager argument.
# journalctl -u network –no-pager
Jan 08 17:09:14 lppsq002a network[8515]: Bringing up interface eth5: [ OK ]
Jan 08 17:09:15 lppsq002a network[8515]: Bringing up interface eth6: [ OK ]
Jan 08 17:09:15 lppsq002a network[8515]: Bringing up interface eth7: [ OK ]
Jan 08 17:09:15 lppsq002a systemd[1]: network.service: control process exited, code=exited status=1
Jan 08 17:09:15 lppsq002a systemd[1]: Failed to start LSB: Bring up/down networking.
Jan 08 17:09:15 lppsq002a systemd[1]: Unit network.service entered failed state.
Jan 08 17:09:15 lppsq002a systemd[1]: network.service failed.
Jan 15 11:04:45 lppsq002a systemd[1]: Starting LSB: Bring up/down networking…
Jan 15 11:04:45 lppsq002a network[55905]: Bringing up loopback interface: [ OK ]
Jan 15 11:04:45 lppsq002a network[55905]: Bringing up interface eth0: RTNETLINK answers: File exists
Jan 15 11:04:45 lppsq002a network[55905]: [ OK ]
Jan 15 11:04:45 lppsq002a network[55905]: Bringing up interface eth1: RTNETLINK answers: File exists
Jan 15 11:04:45 lppsq002a network[55905]: [ OK ]
Jan 15 11:04:46 lppsq002a network[55905]: Bringing up interface eth2: ERROR : [/etc/sysconfig/network-scripts/ifup-eth] Device eth2 has different MAC address than expected, ignoring.
Jan 15 11:04:46 lppsq002a network[55905]: [FAILED]
Jan 15 11:04:46 lppsq002a network[55905]: Bringing up interface eth3: RTNETLINK answers: File exists
Jan 15 11:04:46 lppsq002a network[55905]: [ OK ]
Jan 15 11:04:46 lppsq002a network[55905]: Bringing up interface eth4: ERROR : [/etc/sysconfig/network-scripts/ifup-eth] Device eth4 does not seem to be present, delaying initialization.
Jan 15 11:04:46 lppsq002a network[55905]: [FAILED]
Jan 15 11:04:46 lppsq002a network[55905]: Bringing up interface eth5: RTNETLINK answers: File exists
Jan 15 11:04:46 lppsq002a network[55905]: [ OK ]
Jan 15 11:04:46 lppsq002a network[55905]: Bringing up interface eth6: RTNETLINK answers: File exists
Jan 15 11:04:47 lppsq002a network[55905]: [ OK ]
Jan 15 11:04:47 lppsq002a network[55905]: Bringing up interface eth7: RTNETLINK answers: File exists
Jan 15 11:04:47 lppsq002a network[55905]: [ OK ]
Jan 15 11:04:47 lppsq002a network[55905]: RTNETLINK answers: File exists
Jan 15 11:04:47 lppsq002a network[55905]: RTNETLINK answers: File exists
Jan 15 11:04:47 lppsq002a network[55905]: RTNETLINK answers: File exists
Jan 15 11:04:47 lppsq002a network[55905]: RTNETLINK answers: File exists
Jan 15 11:04:47 lppsq002a network[55905]: RTNETLINK answers: File exists
Jan 15 11:04:47 lppsq002a network[55905]: RTNETLINK answers: File exists
Jan 15 11:04:47 lppsq002a network[55905]: RTNETLINK answers: File exists
Jan 15 11:04:47 lppsq002a network[55905]: RTNETLINK answers: File exists
Jan 15 11:04:47 lppsq002a network[55905]: RTNETLINK answers: File exists
Jan 15 11:04:47 lppsq002a systemd[1]: network.service: control process exited, code=exited status=1
Jan 15 11:04:47 lppsq002a systemd[1]: Failed to start LSB: Bring up/down networking.
Jan 15 11:04:47 lppsq002a systemd[1]: Unit network.service entered failed state.
Jan 15 11:04:47 lppsq002a systemd[1]: network.service failed.
Jan 15 11:08:22 lppsq002a systemd[1]: Starting LSB: Bring up/down networking…
Jan 15 11:08:22 lppsq002a network[56841]: Bringing up loopback interface: [ OK ]
Jan 15 11:08:22 lppsq002a network[56841]: Bringing up interface eth0: RTNETLINK answers: File exists
Jan 15 11:08:22 lppsq002a network[56841]: [ OK ]
Jan 15 11:08:26 lppsq002a network[56841]: Bringing up interface eth1: RTNETLINK answers: File exists
Jan 15 11:08:26 lppsq002a network[56841]: [ OK ]
Jan 15 11:08:26 lppsq002a network[56841]: Bringing up interface eth2: ERROR : [/etc/sysconfig/network-scripts/ifup-eth] Device eth2 has different MAC address than expected, ignoring.
Jan 15 11:08:26 lppsq002a network[56841]: [FAILED]
Jan 15 11:08:26 lppsq002a network[56841]: Bringing up interface eth3: RTNETLINK answers: File exists
Jan 15 11:08:27 lppsq002a network[56841]: [ OK ]
Another useful thing debug arguments is the -xe to do:
# journalctl -xe –no-pager
- -x (– catalog)
Augment log lines with explanation texts from the message catalog.
This will add explanatory help texts to log messages in the output
where this is available. - -e ( –pager-end ) Immediately jump to the end of the journal inside the implied pager
tool.
Finally after fixing the /etc/sysconfig/networking-scripts/* IP configuration issues I had all the 8 Ethernet interfaces to work as expected
# systemctl status network
2. Adding a new IP alias to eth0 interface
Further on I had to add an IP Alias on the CenOS via its networking configuration, this is done by editing /etc/sysconfig/network-scripts/ifcfg* files.
To create an IP alias for first lan interface eth0, I've had to created a new file named ifcfg-eth0:0
linux:~# cd /etc/sysconfig/network-scripts/
linux:~# vim ifcfg-eth0:0
with below content
NAME="eth0:0"
ONBOOT="yes"
BOOTPROTO="none"
IPADDR="10.50.10.5"
NETMASK="255.255.255.0"
Adding this IP address network alias works across all RPM based distributions and should work also on Fedora and Open SuSE as well as Suse Enterprise Linux.
If you however prefer to use a text GUI and do it the CentOS server administration way you can use nmtui (Text User Interface for controlling NetworkManager). tool.
linux:~# nmtui