Re: git: 20d59403961d - main - kernel: deprecate Internet Class A/B/C

From: Mike Karels <mike_at_karels.net>
Date: Fri, 12 Nov 2021 12:55:18 UTC
The review for this is now https://reviews.freebsd.org/D32951.

On 11 Nov 2021, at 19:12, Rodney W. Grimes wrote:

> [ Charset UTF-8 unsupported, converting... ]
>> I?m going to top-post my reply to highlight this question:
>> It is proposed to revert the change to the default mask when setting
>> an Internet interface address without a mask, returning to the use of
>> the Class A/B/C mask as the default.  We would still warn if there
>> was no mask supplied, except on loopback and point-to-point interfaces.
>
> I would not have the exception on loopback or P2P.

I still don’t know of any use or significance of the mask on loopback
or P2P interfaces, so I don’t know of any reason to require a mask.

>> Does anyone object, or otherwise have comments?
>
> Mostly.

I’m not sure how to interpret this.

		Mike
>>
>> On 10 Nov 2021, at 10:38, Gleb Smirnoff wrote:
>>
>>> On Wed, Nov 10, 2021 at 09:36:03AM -0600, Mike Karels wrote:
>>> M> > The new /24 default is no better than classes. The only difference
>>> M> > that classes maintained POLA and new default doesn't. For example,
>>> M> > in my home network I have default router 10.0.0.1 and since it is
>>> M> > class A network on my VMs and test boxes I can type
>>> M>
>>> M> > # ifconfig vtnet0 10.6.6.6
>>> M>
>>> M> > and that is going to work. With this change no longer.
>>> M>
>>> M> I suspect that /8 is by far the minority these days, even with a
>>> M> "Class A" net.  I also use net 10 at home, and at the last several jobs,
>>> M> but it is subnetted in each case.  I would peridically add an address,
>>> M> forgetting a mask, only to find that a route for 10/8 isolated the machine.
>>>
>>> The 10/8 can be used at home as a huge personal address space, just like
>>> a /64 IPv6 prefix. All addresses added without masks and everything works.
>>>
>>> M> That said, my main objective was to deprecate usage without a mask, and
>>> M> to warn in that case.  Both the kernel and ifconfig now warn when a default
>>> M> mask is used.  In the discussion on freebsd-net and in the review, the
>>> M> main thought was that masks should be required.  But it isn't practical to
>>> M> fail and return an error with no mask, at least not without a significant
>>> M> period with warnings, or some systems would stop coming up on the network.
>>> M>
>>> M> One reviewer was going to comment on the /24 default, but thought it was
>>> M> better than the previous.  I'm open to hearing more opinions.
>>>
>>> Although I don't internally agree that we really need to police people to
>>> always specify masks, I would make step forward and agree with that. So,
>>> let's do print loud warning on every attempt to set IP address without a
>>> mask. But I can not agree that change from class based guess to /24 is a
>>> right thing to do. A proper deprecation process goes like this:
>>>
>>> Step 1: Print warning, don't change legacy behavior.
>>> <... people adopt ...>
>>> Step 2: Return error. Remove deprecated behavior.
>>>
>>> What we did is that we changed behavior together with warning. The new
>>> behavior is neither the legacy one nor the desired one, where mask is
>>> a must. Look from a user perspective: for class C nothing changed, but
>>> changed for A and B.
>>>
>>> -- 
>>> Gleb Smirnoff
>>
>>
>
> -- 
> Rod Grimes                                                 rgrimes@freebsd.org