tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Dealing with ICMPv6 network unreachable.



On Fri, 03 Apr 2015, Roy Marples wrote:
On Fri, 2015-04-03 at 11:20 -0400, Mouse wrote:
There is no guarantee the same network will be plugged back in.

True. But the time to deal with that is when you discover another network was plugged in, not when the original network is unplugged.

I strongly agree with Mouse. A cable being unplugged should be treated as a temporary condition, until such time as you have better information, such as "it's been unplugged for a long time now", or "it's plugged in again, but looks like a different network".

So lets say that we are plugged back into a new network, but it shares the same subnet and your existing IP address conflicts with a server on the network.

Two different networks that use the same address range? Like two distinct instances of 192.168.1.0/24?

Yes, that can happen, but dealing with should be done in a way that does not punish people who simply remove a cable and re-attach it seconds later, or power cycle a switch or access point to have it come back up a minute or two later.

However, I would rather be notified right away that something was awry with the connection rather than waiting for a long timeout on switching networks.

People who connect to multiple disjoint networks that happen to share the same IP address range are unusual, and should have the lowest priority in considering tradeoffs where making things work better for one class of user causes trouble for another class of user.

Here are a few scenarios:

1. Disconnected and re-connected to the same network after a short delay: Don't remove addresses on disconnect, but perhaps mark them as deprecated, or not to be used for initiating new outbound comnnections; On re-connect, verify that we appear to be on the same network, and mark addresses as fully usable again.

2. Disconnected and re-connected to the same network after a long delay: Perhaps the addresses can be removed after a timeout, and then re-connection can be handled like the very first connection after reboot. (The timeout could be a configuration option, and I'd suggest between 5 and 15 minutes: long enough to reboot a router or switch, but short enough that the user is unlikely to be able to travel to a different site and plug in to a different network that happens to share so many qualities that dhcpcd is unable to distinguish the two, as in case 5 below.)

3. Disconnected and re-connected to a different network after a short delay: On re-connect, notice that the network is different, remove the old addresses, and add new addresses.

4. Disconnected and re-connected to a different network after a long delay: Same as case 3, or perhaps the old addresses had already been removed as for case 2.

5. Disconnected and then re-connected to a network that is really different, but that is somehow mis-identified as being the same: The user loses, unless the old addresses had been removed after a timeout as in case 2. The user can manually initiate some sort of "repair" process, which removes old addresses and requests new addresses.

If you can do something to make the user in case 5 happier, while not making the user in case 1 sadder, then please do so. If you can improve the mechanism for distinguishing between "the same" and "different" networks, then please do so. But I think that being nice to the user in case 1 is much more important than being nice to the user in case 5.

--apb (Alan Barrett)


Home | Main Index | Thread Index | Old Index