2014-04-01 09:30:29

by Zhu Yanjun

[permalink] [raw]
Subject: ipv6:remove ipv6 global address after the interface is down

Hi, Paul

With kernel 2.6.34.x, the following problem will appear.

TargetA ------------------------- TargetB
3000::1/64 3000::2/64

TargetA
- bring the interface down by doing an "ifconfig eth1 down"
- bring the interface back up by doing an "ifconfig eth1 up"

TargetB
- ping6 3000::1
ping6 succeeds the first time
- after bringing the interface on TargetA down and then back up,
ping6 to the interface fails.

With the latest mainline kernel(3.4+), this problem is resolved. When
eth1 is down, ipv6 address and route item are removed.
But with kernel 2.6.34.x, when eth1 is down, ipv6 address remains while
route item is removed.

So when eth1 is up and assign the previous ipv6 address, with 2.6.34.x,
some errors will appear. But with latest mainline kernel, it can work well.

So I made a patch to fix this problem in kernel 2.6.34.x. Please merge
this to kernel2.6.34.x.

Thanks a lot.
Zhu Yanjun


Attachments:
0001-ipv6-remove-ipv6-global-address-after-the-interface.patch (3.13 kB)

2014-04-01 09:35:47

by Hannes Frederic Sowa

[permalink] [raw]
Subject: Re: ipv6:remove ipv6 global address after the interface is down

On Tue, Apr 01, 2014 at 05:30:31PM +0800, zhuyj wrote:
> Hi, Paul
>
> With kernel 2.6.34.x, the following problem will appear.
>
> TargetA ------------------------- TargetB
> 3000::1/64 3000::2/64
>
> TargetA
> - bring the interface down by doing an "ifconfig eth1 down"
> - bring the interface back up by doing an "ifconfig eth1 up"
>
> TargetB
> - ping6 3000::1
> ping6 succeeds the first time
> - after bringing the interface on TargetA down and then back up,
> ping6 to the interface fails.
>
> With the latest mainline kernel(3.4+), this problem is resolved. When
> eth1 is down, ipv6 address and route item are removed.
> But with kernel 2.6.34.x, when eth1 is down, ipv6 address remains while
> route item is removed.
>
> So when eth1 is up and assign the previous ipv6 address, with 2.6.34.x,
> some errors will appear. But with latest mainline kernel, it can work well.
>
> So I made a patch to fix this problem in kernel 2.6.34.x. Please merge
> this to kernel2.6.34.x.

2.6.34 stable is EOL and won't get updated anymore. If this is problem is also
present in other, still maintained, stable kernel this would be possible.

Can you identify the upstream commit which repaired this problem and when it
got introduced?

Thanks,

Hannes

2014-04-01 10:12:18

by Zhu Yanjun

[permalink] [raw]
Subject: Re: ipv6:remove ipv6 global address after the interface is down

On 04/01/2014 05:35 PM, Hannes Frederic Sowa wrote:
> On Tue, Apr 01, 2014 at 05:30:31PM +0800, zhuyj wrote:
>> Hi, Paul
>>
>> With kernel 2.6.34.x, the following problem will appear.
>>
>> TargetA ------------------------- TargetB
>> 3000::1/64 3000::2/64
>>
>> TargetA
>> - bring the interface down by doing an "ifconfig eth1 down"
>> - bring the interface back up by doing an "ifconfig eth1 up"
>>
>> TargetB
>> - ping6 3000::1
>> ping6 succeeds the first time
>> - after bringing the interface on TargetA down and then back up,
>> ping6 to the interface fails.
>>
>> With the latest mainline kernel(3.4+), this problem is resolved. When
>> eth1 is down, ipv6 address and route item are removed.
>> But with kernel 2.6.34.x, when eth1 is down, ipv6 address remains while
>> route item is removed.
>>
>> So when eth1 is up and assign the previous ipv6 address, with 2.6.34.x,
>> some errors will appear. But with latest mainline kernel, it can work well.
>>
>> So I made a patch to fix this problem in kernel 2.6.34.x. Please merge
>> this to kernel2.6.34.x.
> 2.6.34 stable is EOL and won't get updated anymore. If this is problem is also
> present in other, still maintained, stable kernel this would be possible.
Hi, Hannes

It is fortunate. I checked other stable kernel. They can work well.
Maybe this patch can only fix the problem on 2.6.34.x.

>
> Can you identify the upstream commit which repaired this problem and when it
> got introduced?
commit 73a8bd74 [ipv6:Revert 'administrative down' address handling
changes] can fix this problem.

Best Regards!
Zhu Yanjun
>
> Thanks,
>
> Hannes
>
>