Bug 1383370

Summary: [RFE] Validate the IPv4 address of a host
Product: Red Hat Enterprise Linux 7 Reporter: Pavlin Georgiev <pgeorgie>
Component: network-manager-appletAssignee: Thomas Haller <thaller>
Status: CLOSED NOTABUG QA Contact: Desktop QE <desktop-qa-list>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.4CC: aloughla, pgeorgie, thaller, vbenes
Target Milestone: rcKeywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-10-21 07:58:04 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Pavlin Georgiev 2016-10-10 13:21:16 UTC
Description of the problem:
In IPv4 addressing a host should not have an address which is:
  A) subnet ID
  B) broadcast address
The default gateway should be in the same subnet as the host. Otherwise it's unreachable from the host.

Example
IPv4 class A
Subnet ID: 10.0.0.0
Subnet Mask: 255.240.0.0
Mask Bits: 12
Host Address Range: 10.0.0.1 - 10.15.255.254
Broadcast Address: 10.15.255.255

(Note: In this context, IP: 10.10.0.0 is a valid host address. The same is true for 10.10.10.0.)


IPv4 class B
Subnet ID: 172.16.64.0
Subnet Mask: 255.255.192.0
Mask Bits: 18
Host Address Range: 172.16.64.1 - 172.16.127.254
Broadcast Address: 172.16.127.255

(Note: In this context, IP: 172.16.65.0 is a valid host address. The same is true for 172.16.127.0.)


IPv4 class C
Subnet ID: 192.168.0.96
Subnet Mask: 255.255.255.240
Mask Bits: 28
Host Address Range: 192.168.0.97 - 192.168.0.110
Broadcast Address: 192.168.0.111


The unreachable gateway
Subnet ID: 192.168.0.0
Subnet Mask: 255.255.255.192
Mask Bits: 26
Host Address Range: 192.168.0.1 - 192.168.0.62
Broadcast Address: 192.168.0.63

The default gateway should be in the host address range.
The address 192.168.0.254 is outside of the subnet.


OS: RHEL Workstation release 7.3 (Maipo)
Kernel: kernel-3.10.0-512.el7.x86_64
Version-Release number of selected component (if applicable):
network-manager-applet-1.4.0-2.el7.x86_64
nm-connection-editor-1.4.0-2.el7.x86_64


How reproducible:
Always


Steps to Reproduce:
1. Start nm-connection editor
2. Add a new connection
3. Chose type Ethernet
4. Open tab "IPv4 Settings"
5. Add an IP address which coincides with
    A) subnet ID
        IP: 192.168.0.64, netmask: 255.255.255.192, gateway: 192.168.0.126
    B) broadcast address
        IP: 192.168.0.127, netmask: 255.255.255.192, gateway: 192.168.0.126
6. Set a gateway that is outside of the current subnet
IP: 172.16.0.1, netmask: 255.255.240.0, gateway: 172.16.16.254


Actual results:
The nm-connection-editor accepts the IPv4 address of a host to be a subnet ID or a broadcast address.


Expected results:
The nm-connection-editor does not allow the IPv4 address of a host to be a subnet ID or a broadcast address.


Additional info:
An on-line subnet calculator is used for better overview of subnetting:
http://www.subnet-calculator.com/

Comment 1 Thomas Haller 2016-10-12 14:05:52 UTC
kernel allows both to configure the network address and the broadcast address (for example using `ip addr add`).

Why do you think NetworkManager should disallow it?

Comment 2 Pavlin Georgiev 2016-10-21 07:58:04 UTC
(In reply to Thomas Haller from comment #1)
> kernel allows both to configure the network address and the broadcast
> address (for example using `ip addr add`).
> 
> Why do you think NetworkManager should disallow it?

Hi Thomas,

My job is to test the current functionality of Linux.
It is true that I cannot disallow something that is allowed by the kernel.
To change the functionality of NetworkManager is for someone who is architect or software developer.
I cannot take such a decision from the position of software tester.
Hence, I close this request.