Subject: [v6ops] draft-lubashev-ipv6-addr-mask-01

From: "Lubashev, Igor" <[email-masked]>
Date: Fri, 27 Oct 2017 19:36:25 +0000

Hi group,

I have uploaded a new version of draft-lubashev-ipv6-addr-mask-01.  Many thanks to everyone who provided support and very valuable feedback for the -00 version of the draft.  I have tried to address all the feedback we received.

	Summary:
Since /48 IPv6 address prefixes are very large, the operators (and standards) sometimes find opportunities to devise addressing schemes with operational semantics assigned to less significant bit ranges.  There is a number of such systems and standards in existence (see draft's appendix).  Unfortunately, there is currently no standard or interoperable textual representation of addresses sharing bit patterns that are not prefixes. This RFC introduces IPv6 address/mask notation that allows one to represent address groupings beyond "all addresses that share a single prefix".

The proposed representation is similar to the IPv4 address/mask notation in its expressiveness, but it is derived from the familiar address/prefix-length notation for clarity and compatibility with existing parsers.  I.e. the traditional address/prefix-length notation is used for cases that can be represented by it.

The goal of this RFC is NOT to provide best practices guidance on assigning semantics to bit ranges in IPv6 addresses.  The goal is standardizing on a consistent textual representation to remove a hindrance to interoperability of systems that wish to express rules and policies that apply to such address groupings.

	Main changes since -00 version:
* Changed address/mask separator from '/' to '//' to avoid inadvertent mis-parsing by older parsers.
* Added an appendix listing multiple systems and standards that assign semantics to less significant bits.
* Added special sections for Parser Compatibility, Security Considerations, and Address Utilization Considerations.

	The Ask:
* I'd like to ask the working group for its feedback on the draft.
* I'd like to ask the chairs if we could find a few minutes on IETF-100 agenda to discuss this draft.

Best regards,

- Igor

---

From: Alexandre Petrescu <[email-masked]>
Date: Mon, 30 Oct 2017 16:24:04 +0100

I agree with this draft, I read it.  The idea of groups addresses 
(rather than prefixes) is very useful.

I suggest whenever it says "1234" to say "0x1234".

Other than groups of addresses,  I suggest to give an example of a '/56' 
prefix.

Is 2001:db8:://+56 a correct representation of a /56 prefix?

Alex

Le 27/10/2017 à 21:36, Lubashev, Igor a écrit :
> _______________________________________________
> v6ops mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/v6ops
>

---

From: "Lubashev, Igor" <[email-masked]>
Date: Mon, 30 Oct 2017 16:05:59 +0000

Thanks, Alex!

> Is 2001:db8:://+56 a correct representation of a /56 prefix?

Section 4.5 defines the traditional prefix-length notation for CIDRs as the canonical representation, and section 6 "Compatibility and Parser guidelines" prescribes the use of canonical representation for compatibility with existing parsers.

Hence, the canonical representation for 2001:db8::/56  is
	2001:db8::/56

One non-canonical representation would
	2001:db8:://56+:: 
Or you could also represent it as:
	2001:db8:://ffff:ffff:ffff:ff00::
Just like you could also represent it as:
	2001:db8:0000:000::/56

But section 4.5 defines the traditional prefix-length notation for CIDRs as the canonical representation, and section 6 "Compatibility and Parser guidelines" prescribes the use of canonical representation for compatibility with existing parsers.

https://tools.ietf.org/html/draft-lubashev-ipv6-addr-mask-01#section-4.5

- Igor

-----Original Message-----
From: Alexandre Petrescu [mailto:[email-masked]] 
Sent: Monday, October 30, 2017 11:24 AM
To: Lubashev, Igor <[email-masked]>; [email-masked]
Cc: [email-masked]
Subject: Re: [v6ops] draft-lubashev-ipv6-addr-mask-01

I agree with this draft, I read it.  The idea of groups addresses (rather than prefixes) is very useful.

Alex

---

From: Alexandre Petrescu <[email-masked]>
Date: Mon, 30 Oct 2017 17:38:38 +0100

Le 30/10/2017 à 17:05, Lubashev, Igor a écrit :
> Hence, the canonical representation for 2001:db8::/56

IMHO, 2001:db8::/56 is not a meaningful notation of a /56 prefix.

Because it is not unique.  In there there are two types of 0s: the 0s 
that must be 0s, and the 0s that could be 1s.

2001:db8:ffff:ff00::/56 is not a meaningful unique notation of that /56 
prefix either.   BEcause the 00s next to ff could also be ffs.

2001:db8:ffff:ff::/56 is not a good notation of a /56 prefix, because 
the rightmost ff falls outside the /56 boundary.

That's the need of a '*', a joker, which the current IPv6 notation lacks.

>  is

The problem is that I can not represent it as 2001:db8:0000:000::/56
because the 0s must be compressed into ::, I think.

Alex

---

From: "Lubashev, Igor" <[email-masked]>
Date: Mon, 30 Oct 2017 19:47:44 +0000

> Because it is not unique.  In there there are two types of 0s: the 0s that must be 0s, and the 0s that could be 1s.

Yes, it looks a bit strange that zeros can be wildcards due to /56.  This is not different from IPv4, by the way.  But at least the semantics are well-defined.

Notation "address/56" means "bits 0-55 bits are as in the address", and bits 56-127 can have any value.

Hence, 2001:db8::/56 means "all addresses between 2001:db8:: and 2001:db8:0000:00ff:ffff:ffff:ffff:ffff".

Likewise, 2001:db8:ffff:ff00::/56 means "all addresses between 2001:db8:ffff:ff00:: and 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff".

> 2001:db8:ffff:ff::/56 is not a good notation of a /56 prefix, because the rightmost ff falls outside the /56 boundary.

Yes, 2001:db8:ffff:ff::/56 is not a /56 prefix.  Because of the "set" bits outside of the prefix-length, 2001:db8:ffff:ff::/56 is "an address (2001:db8:ffff:ff::) belonging to a group of addresses (2001:db8:ffff::/56)".

While the above machinery works well for address grouping that are CIDRs.  The goal of this RFC to extend the machinery to also support groupings like "all addresses with :1234" in 16 least significant bits of the address", etc.

- Igor

-----Original Message-----
From: Alexandre Petrescu [mailto:[email-masked]] 
Sent: Monday, October 30, 2017 12:39 PM
To: Lubashev, Igor <[email-masked]>; [email-masked]
Cc: [email-masked]
Subject: Re: [v6ops] draft-lubashev-ipv6-addr-mask-01

Because it is not unique.  In there there are two types of 0s: the 0s that must be 0s, and the 0s that could be 1s.

2001:db8:ffff:ff::/56 is not a good notation of a /56 prefix, because the rightmost ff falls outside the /56 boundary.

> Just like you could also represent it as:

The problem is that I can not represent it as 2001:db8:0000:000::/56 because the 0s must be compressed into ::, I think.

Alex