Skip to content

Gatekeeper should support /31 (IPv4) and /127 (IPv6) subnet masks #444

@andrenth

Description

@andrenth

Hello

One of the companies providing our uplink connections requires the use of /31 (IPv4) and /127 (IPv6) subnets for BGP peering, which is not currently supported by Gatekeeper.

Support for /31 networks is described in RFC 3021, and is an effort to improve IP address allocation efficiency in point-to-point links, traditionally done with /30 subnets, which results in a reduction from 4 to 2 IP addresses required per link.

In particular, the RFC states that the addresses in the forms {<Network-number>, 0} and {<Network-number>, -1}, traditionally associated with network and broadcast addresses "MUST be interpreted as host addresses" with a 31-bit netmask.

With regards to broadcast addressing, the RFC states that "the 255.255.255.255 IP broadcast address MUST be used for broadcast Address Mask Replies in point-to-point links with 31-bit subnet masks" and "the limited broadcast MUST be used for all broadcast traffic on a point-to-point link with a 31-bit subnet mask assigned to it.", where limited broadcast refers to addresses of the forms {-1, -1} or {0, 0}, as opposed to directed broadcast, in the form {<Network-number>, -1} or {<Network-number>, 0}.

Similarly, for IPv6, support for /127 subnet masks is described in RFC 6164, where the motivation, given in section 5, is more related to security than, for obvious reasons, address conservation, as described in the article The Case for /127 Subnets. Although the RFC is light on references to Neighbor Discovery, a draft version states that "there is no need to support Neighbor Discovery for address resolution, and other general scenarios like the use of stateless address autoconfiguration are not relevant". This quote, however, is absent from the RFC.

As /31 and /127 subnetting schemes become more common, Gatekeeper should support both of them.

Metadata

Metadata

Assignees

Labels

Production requirementEither the issue is solved, or Gatekeeper doesn't work in production

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions