Should a ping6 session keep working after moving the target device's Ethernet cable to another port on the switch?

2

This is a really basic question, but I need a sanity check to make sure my expectations are not incorrect and that what I'm seeing isn't expected behavior.

The situation is: I've got a Mac Pro running MacOS/X, and an ARM-based Linux box. Both are connected to an 8-port Extreme Networks Gigabit switch (with no Internet uplink, this is a local LAN only).

On my Mac, I start a ping6 session running, pinging the Linux box:

$ ping6 fe80::21c:abff:fe00:55e5%en1

... and start getting pong-responses back, as expected.

Then I go over to the Ethernet switch, disconnect from the Ethernet switch the cable that leads to the Linux box, and reconnect that cable to another open port on the Ethernet switch.

At this point, my expectation is that (after a pause of a few seconds), the ping6 session on my Mac would resume seeing responses.

However, my observation is that sometimes the ping6 session stops receiving responses indefinitely -- or at least, until I return the Linux box's Ethernet connection back to the switch-port that it was originally connected to. (stopping and restarting the ping6 process doesn't help; waiting longer doesn't help)

My primary question, then, is: is the behavior I'm observing expected behavior? And if so, is there anything I can do (in software) to recover from this port-change? Or if not, do you have any idea what might be going wrong? (My suspicion is that it might be an NDP issue)

Jeremy Friesner

Posted 2018-03-07T01:53:48.100

Reputation: 187

Not AFAICT (I did a "arp -a -d" which didn't seem to have any effect; AFAICT arp is an IPv4-specific thing and doesn't effect IPv6 lookups. Looking for an IPv6-equivalent action, I tried "npd -c" but that didn't seem to help either) – Jeremy Friesner – 2018-03-07T15:29:26.040

Do you get a response if you use the all nodes address ff02::1 rather than fe80::21c:abff:fe00:55e5? Does it work if you then go back to the unicast address? – kasperd – 2018-03-17T10:34:47.517

Answers

1

You are correct that you should continue receiving ping replies after reconnecting the target device, even after moving it to another switch port.

stopping and restarting the ping6 process doesn't help; waiting longer doesn't help

This is not normal. Something is preventing either the ping requests or the replies from being transmitted between the two devices after the port change. I'm not familiar with the specific firewall configuration possibilities on Linux, but on a Windows machine a change in network interface can result in different firewall rules being applied.

There's also the outside chance there's something wrong with the switch itself, though that can easily be ruled out by confirming that the Linux box can communicate with the network normally while connected to the new switch port.

I say Reinstate Monica

Posted 2018-03-07T01:53:48.100

Reputation: 21 477

It appears the "outside chance" is confirmed: the misbehavior seems to be specific to the Ethernet switch I was using (an Extreme Networks Summit X440-8t). If I reconnect everything to another switch (an Extreme Networks Summit X440-24p) instead, I get the behavior I would expect. – Jeremy Friesner – 2018-03-07T20:05:34.017

@JeremyFriesner thanks for reporting back on the specific cause. Glad to know our sanity need not be doubted! – I say Reinstate Monica – 2018-03-07T20:09:14.147

@JeremyFriesner Maybe one of the ports on the switch is simply defective. – kasperd – 2018-03-17T10:36:44.987

@kasperd I've seen the problem on most (if not all) of the switch's ports, so I think the defect is more likely in the switch itself; perhaps in its firmware. – Jeremy Friesner – 2018-03-17T14:12:59.620

@JeremyFriesner It's quite plausible that there are switches where the firmware will take care of purging CAM table entries associated with ports that have lost link. And it is also plausible that there are switches which don't do it. So firmware difference can have something to say in what you observed. – kasperd – 2018-03-17T15:51:08.367

1

The switch has no way to know the port has been changed until the machine whose port was changed sends some traffic. If your Linux machine is quiet and not engaging in any network activity at the time you move its Ethernet cable to another port, then you will have to wait until it does send some traffic.

Once it does send traffic, the switch will pick up the fact that it has moved and update its internal tables appropriately.

Michael Hampton

Posted 2018-03-07T01:53:48.100

Reputation: 11 744

Shouldn't under normal circumstances the simple act of disconnecting/reconnecting the Linux box's network connection trigger at least some traffic? Renewal of its DHCP lease comes to mind... – I say Reinstate Monica – 2018-03-07T14:48:09.423

@TwistyImpersonator Only if the machine gets its IP address through DHCP. – Michael Hampton – 2018-03-07T16:36:01.723

1@MichaelHampton It's not quite true that the switch has no way of knowing. The switch will know that it lost link on the port, and dropping all CAM table entries related to a port when link is lost on the port would make sense. I have however never tested if switches do that. – kasperd – 2018-03-17T10:39:16.490

1@kasperd Apparently some switches do that and some don't. – Michael Hampton – 2018-03-17T19:19:47.873