Recently on Reddit, someone wrote:
[…]There are minor differences in command syntax when comparing CentOS and RHEL. For example, nmcli and the lvm management both functioned incorrectly I found when I was using the utilities extensively on CentOS (this is compared to what was advised in the RHEL course, and alongside my past knowledge of LVM, the errors being presented shouldn’t of occurred – and indeed didn’t when I tried repeated them on RHEL the following day).
[…]Perfect example is the following: You’ve got an existing connection named “System eth0”, and you plan to adjust the “ipv4.addresses” field to set an IP address and a gateway. In RHEL, you’d type the following:
nmcli connection modify “System eth0” ipv4.addresses “10.0.0.1/24 10.0.0.254”
This would set the first field as the IP, and the second as the gateway.
In CentOS however, you’ll get an error like the following:
“ERROR: 24 10.0.0.254 isn’t a valid prefix.”
Because many candidates intensively use CentOS for preparing their exams, I thought this question would deserve a clear answer. I asked Karanbir Singh, the lead developer for CentOS, via Twitter.
Here, what he answered:
that’s an incorrect assertion, NetworkManager / nmcli has been verified to have similar functionality.
Fabian Arrotin, a member of the CentOS team, also wrote:
difference between NetworkManager 0.9.9 from el 7.0 and then bumped to 1.0.0 in el7.1 ? (and RHCE course for 7.0) ?
I found Fabian‘s answer very interesting.
I launched two VMs, one in RHEL 7.0 and one in RHEL 7.1. I then checked the behaviour of the nmcli command. Here what I got:
On the RHEL 7.0 VM:
# nmcli con mod "System eth0" ipv4.addresses "192.168.122.80/24 192.168.122.254" #
On the RHEL 7.1 VM:
# nmcli con mod "System eth0" ipv4.addresses "192.168.122.80/24 192.168.122.254" Error: failed to modify ipv4.addresses: invalid prefix '24 192.168.122.254'; <1-32> allowed.
How could you say that CentOS doesn’t behave like RHEL when two versions of RHEL give different results? This is the version of NetworkManager that matters!
In the RHEL 7.0 case, you’ve got NetworkManager-0.9.9.1.
In the RHEL 7.1 case, it is NetworkManager-1.0.0.
I found one bug fix affecting the gateway syntax (rh #1170199: Unable to add static IP address with gateway) in the changelog between the two versions but there are perhaps more of them.
Conclusion1: Don’t use this kind of syntax any more:
# nmcli con mod "System eth0" ipv4.addresses "10.0.0.1/24 10.0.0.254"
Do it in two steps:
# nmcli con mod "System eth0" ipv4.addresses 10.0.0.1/24 # nmcli con mod "System eth0" ipv4.gateway 10.0.0.254
Conclusion2: It is rather easy to spread a wrong rumor, but this is no good for anyone!