Date: Mon, 9 Jul 2001 09:40:02 -0700 (PDT) From: "Mark Blackman" <mark.blackman@netscalibur.co.uk> To: freebsd-bugs@FreeBSD.org Subject: Re: bin/28833: ifconfig if0 netmask xxx.xxx.xxx.0 doesn't change the netmask Message-ID: <200107091640.f69Ge2S92309@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/28833; it has been noted by GNATS. From: "Mark Blackman" <mark.blackman@netscalibur.co.uk> To: Peter Pentchev <roam@orbitel.bg> Cc: freebsd-gnats-submit@FreeBSD.org Subject: Re: bin/28833: ifconfig if0 netmask xxx.xxx.xxx.0 doesn't change the netmask Date: Mon, 09 Jul 2001 17:32:26 +0100 all things considered, I'm quite convinced that the current behaviour is much closer to correct and consistent, but it still strikes me as non-intuitive that address changes that aren't lead to default route disappearance. I think, as Brian Somers suggested, that ifconfig could be a bit smarter and for the special case that 1) the new address is within the old netmask and the new netmask or the new address is identical to the old address and 2) the default route is still within the new netmask then only a SIOCSIFNETMASK ioctl is performed, although I'm happy to insist that an address be specified for netmask changes unless there is only one address bound to the interface. this does possibly make 'ifconfig' a bit too clever. In any case, I just wanted to know what the expected behaviour was currently, so I can educate people locally. - Mark > On Mon, Jul 09, 2001 at 09:00:05AM -0700, Mark Blackman wrote: > > you're right, the correct behaviour is that the netmask change must be all > ied > > to a specific address as aliases are very common. > > > > Although, generally most aliases are have netmask of 255.255.255.255 and > > so the new netmask is logically applied to the "first". > > Yep, but there's still the case of more than one non-alias IP address.. > > > The fundamental problem is that changing the netmask loses the default > > route if you use an address as well as .. using an address causes the defa > ult > > route to go away. > > > > I just think its a violation of POLA that changing the netmask only > > causes your default route to disappear > > > > I posted a related message on freebsd-net. > > Unfortunately, I am not on -net :( > > Causing the default route to disappear is a side effect of a change > that was very much needed indeed - namely, that all routes associated > with an interface should disappear once that interface is brought down. > (Strictly speaking, this is more of 'all routes associated with an IP > address of a non-alias interface' or some such, but you get the drift..) > This is really important in the case of dynamically-configurable and > oft-changing networks on, say, a laptop. If you bring down an interface > address, and then bring up a new one, many programs expect setting > a default route via the new net to 'just work', without having to replace > an existing default route; many programs even complain if there is > an existing default route, and leave it there, leaving the laptop > in a kind of unusable state - with a default gateway on the old network, > unreachable from the present one. > > > If you feel its semantically inappropriate to get away without > > using an address then fine, but this did work in the past and so > > there is some POLA violation. > > Yes, this is a POLA violation, but I prefer to think of it as a fix > for a problem that has annoyed quite a lot of people. Maybe there > could be a better solution, like adding an 'ifconfig change'.. > but then again, no - when you change an interface address's netmask, > you actually delete a route for the old network, and add a route > to the new one. Keeping all the routes which have addresses on > the old network as gateways, and whose gateway addresses are still > reachable via the new network, and removing all others, might require > a bit more work. > > G'luck, > Peter > > -- > If I were you, who would be reading this sentence? To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200107091640.f69Ge2S92309>