On 01.10.2015 10:48, Martin Pieuchot wrote:
> Hello,
> 
> On 30/09/15(Wed) 18:19, Daniel Gillen wrote:
>> [...]
>> inet 0.0.0.0 255.255.255.255 NONE \
>>         pppoedev vlan35 \
>>         authproto pap \
>>         authname "<user>@vo.lu" \
>>         authkey "<password>"
>> dest 0.0.0.1
>> inet6 autoconf
>> !/sbin/route add 0.0.0.0/0 -ifp pppoe0 0.0.0.1
>> !/sbin/route add ::/0 -ifp pppoe0 fe80::
>>
>> As you can see, it get my IPv6 address trough autoconfiguration.
>>
>> After my pppoe reconnected again, I saw the following in ifconfig:
> 
> What do you mean by "reconnected again" ?
> 
>> pppoe0: flags=208851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST,AUTOCONF6>
>> mtu 1492
>>         priority: 0
>>         dev: vlan35 state: session
>>         sid: 0x44e PADI retries: 8 PADR retries: 0 time: 13:20:45
>>         sppp: phase network authproto pap authname "<user>@vo.lu"
>>         groups: pppoe egress
>>         status: active
>>         inet6 fe80::XX:XX:XX:6c3a%pppoe0 ->  prefixlen 64 scopeid 0x8
>>         inet6 2001:XX:XX:6f3:XX:XX:XX:6c3a ->  prefixlen 64 autoconf
>> pltime 556434 vltime 2543634
>> [...]
>>         inet6 2001:XX:XX:6f3:XX:XX:XX:87b2 ->  prefixlen 64 autoconf
>> autoconfprivacy pltime 1835 vltime 520374
>>         inet 85.XX.XX.XX --> 80.XX.XX.XX netmask 0xffffffff
>>         inet6 2001:XX:XX:7c5:XX:XX:XX:6c3a ->  prefixlen 64 autoconf
>> pltime 604755 vltime 2591955
>>         inet6 2001:XX:XX:7c5:XX:XX:XX:30c ->  prefixlen 64 autoconf
>> autoconfprivacy pltime 37915 vltime 556755
>>
>> I got the new 2001:XX:XX:7c5::/64 prefix after the reconnect and OpenBSD
>> added it to my interface.
>>
>> But it didn't remove the now invalid and no longer working
>> 2001:XX:XX:6f3::/64 prefix addresses which caused quite some issues as
>> my NAT was still using that address for part of the connections.
>>
>> Shouldn't those be removed as soon as their prefix is no longer valid?
>> Or at least all be deprecated?
> 
> If this happens again could you include the output of "# ndp -p",
> "# route -n show -inet6" and "# ndp -r" in your report?
> 
> Thanks,
> Martin
> 

I managed to reproduce the issue and executed the commands you told me.

Just one sidenode as it might matter, I'm running -current freshly
checked out and build Thu Oct 1, 18:33:57 CEST 2015.

# uname -a
OpenBSD gate 5.8 GENERIC.MP#1 amd64

And here we go, the short version:

# reboot

# ifconfig pppoe0
IPv4 address is 80.XX.XX.227
Autoconfigured IPv6 address is 2001:XX:XX:707:XX:XX:XX:6c3a

# ping6 -c 1 -S 2001:XX:XX:707:XX:XX:XX:6c3a 2a00:1450:4001:806::1009
Pinging google with that source address works

# ndp -p
2001:XX:XX:707::/64 if=pppoe0
flags=LAD vltime=2592000, pltime=604800, expire=29d23h59m39s, ref=2
advertised by
fe80::46d3:caff:fe9c:ef00%pppoe0 (no neighbor state)

# route -n show -inet6
See long version below

# ndp -r
fe80::46d3:caff:fe9c:ef00%pppoe0 if=pppoe0, flags=O, pref=medium,
expire=29m59s

Now I simmulated a PPPoE dis-/re-connect (Thx again to Todd for the tip)
# ifconfig pppoe0 down up

# ifconfig pppoe0
New IPv4 address is 85.XX.XX.98
But now I have 2 autoconfigured IPv6 addresses, the old
2001:XX:XX:707:XX:XX:XX:6c3a address and the new
2001:XX:XX:7c5:XX:XX:XX:6c3a address.

# ping6 -c 1 -S 2001:XX:XX:707:XX:XX:XX:6c3a 2a00:1450:4001:806::1009
# ping6 -c 1 -S 2001:XX:XX:7c5:XX:XX:XX:6c3a 2a00:1450:4001:806::1009
Pinging google with the old 2001:XX:XX:707::/64 prefix address does not
work anymore, but the new 2001:XX:XX:7c5::/64 prefix address works.

# ndp -p
2001:XX:XX:7c5::/64 if=pppoe0
flags=LAD vltime=2592000, pltime=604800, expire=29d23h59m47s, ref=2
advertised by
fe80::46d3:caff:fe9c:ef00%pppoe0 (no neighbor state)
2001:XX:XX:707::/64 if=pppoe0
flags=LAD vltime=2592000, pltime=604800, expire=29d23h58m45s, ref=2
advertised by
fe80::46d3:caff:fe9c:ef00%pppoe0 (no neighbor state)

# route -n show -inet6
Again, see below

# ndp -r
fe80::46d3:caff:fe9c:ef00%pppoe0 if=pppoe0, flags=O, pref=medium,
expire=29m28

I think the old 2001:XX:XX:707::/64 prefix should be removed as soon as
the same router (fe80::46d3:caff:fe9c:ef00) advertises a new prefix.

Or am I getting something wrong here?

**********************************
And here the log version including 'route' output:

# reboot

# ifconfig pppoe0
pppoe0: flags=208851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST,AUTOCONF6>
mtu 1492
priority: 0
dev: vlan35 state: session
sid: 0x47c PADI retries: 0 PADR retries: 0 time: 00:00:21
sppp: phase network authproto pap authname "<username>@vo.lu"
groups: pppoe egress
status: active
inet6 fe80::XX:XX:XX:6c3a%pppoe0 -> prefixlen 64 scopeid 0x8
inet 80.XX.XX.227 --> 80.XX.XX.143 netmask 0xffffffff
inet6 2001:XX:XX:707:XX:XX:XX:6c3a -> prefixlen 64 autoconf pltime
604796 vltime 2591996
inet6 2001:XX:XX:707:XX:XX:XX:e080 -> prefixlen 64 autoconf
autoconfprivacy pltime 85930 vltime 604780

# ping6 -c 1 -S 2001:XX:XX:707:XX:XX:XX:6c3a 2a00:1450:4001:806::1009
PING6(72=40+8+24 bytes) 2001:XX:XX:707:XX:XX:XX:6c3a -->
2a00:1450:4001:806::1009
32 bytes from 2a00:1450:4001:806::1009, icmp_seq=0 hlim=59 time=6.551 ms
--- 2a00:1450:4001:806::1009 ping6 statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 6.551/6.551/6.551/0.000 ms

# ndp -p
2001:XX:XX:707::/64 if=pppoe0
flags=LAD vltime=2592000, pltime=604800, expire=29d23h59m39s, ref=2
advertised by
fe80::46d3:caff:fe9c:ef00%pppoe0 (no neighbor state)

# route -n show -inet6
Routing tables

Internet6:
Destination Gateway Flags Refs Use Mtu Prio Iface
::/104 ::1 UGRS 0 0 32768 8 lo0
::/96 ::1 UGRS 0 0 32768 8 lo0
default fe80:: UGS 0 159 - 8 pppoe0
default fe80::46d3:caff:fe9c:ef00%pppoe0 UG 0 0 - 56 pppoe0
::1 ::1 UHl 14 0 32768 1 lo0
::127.0.0.0/104 ::1 UGRS 0 0 32768 8 lo0
::224.0.0.0/100 ::1 UGRS 0 0 32768 8 lo0
::255.0.0.0/104 ::1 UGRS 0 0 32768 8 lo0
::ffff:0.0.0.0/96 ::1 UGRS 0 0 32768 8 lo0
2001:XX:XX:707:XX:XX:XX:6c3a 2001:XX:XX:707:XX:XX:XX:6c3a UHl 0 0 - 1 pppoe0
2001:XX:XX:707:XX:XX:XX:e080 2001:XX:XX:707:XX:XX:XX:e080 UHl 0 0 - 1 pppoe0
2002::/24 ::1 UGRS 0 0 32768 8 lo0
2002:7f00::/24 ::1 UGRS 0 0 32768 8 lo0
2002:e000::/20 ::1 UGRS 0 0 32768 8 lo0
2002:ff00::/24 ::1 UGRS 0 0 32768 8 lo0
fe80::/10 ::1 UGRS 2 0 32768 8 lo0
fe80::1%lo0 fe80::1%lo0 UHl 0 0 32768 1 lo0
fe80::XX:XX:XX:6c3a%pppoe0 fe80::XX:XX:XX:6c3a%pppoe0 UHl 0 0 - 1 pppoe0
fe80::46d3:caff:fe9c:ef00%pppoe0 pppoe0 UHL 0 0 - 4 pppoe0
fec0::/10 ::1 UGRS 0 0 32768 8 lo0
ff01::/16 ::1 UGRS 0 0 32768 8 lo0
ff01::%lo0/32 ::1 UC 0 0 32768 4 lo0
ff01::%pppoe0/32 fe80::XX:XX:XX:6c3a%pppoe0 UC 0 0 - 4 pppoe0
ff02::/16 ::1 UGRS 0 0 32768 8 lo0
ff02::%lo0/32 ::1 UC 0 0 32768 4 lo0
ff02::%pppoe0/32 fe80::XX:XX:XX:6c3a%pppoe0 UC 0 0 - 4 pppoe0

# ndp -r
fe80::46d3:caff:fe9c:ef00%pppoe0 if=pppoe0, flags=O, pref=medium,
expire=29m59s

# ifconfig pppoe0 down up

# ifconfig pppoe0
pppoe0: flags=208851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST,AUTOCONF6>
mtu 1492
priority: 0
dev: vlan35 state: session
sid: 0x47e PADI retries: 0 PADR retries: 0 time: 00:00:04
sppp: phase network authproto pap authname "<username>@vo.lu"
groups: pppoe egress
status: active
inet6 fe80::XX:XX:XX:6c3a%pppoe0 -> prefixlen 64 scopeid 0x8
inet6 2001:XX:XX:707:XX:XX:XX:6c3a -> prefixlen 64 autoconf pltime
604750 vltime 2591950
inet6 2001:XX:XX:707:XX:XX:XX:e080 -> prefixlen 64 autoconf
autoconfprivacy pltime 85780 vltime 604630
inet 85.XX.XX.98 --> 80.XX.XX.143 netmask 0xffffffff
inet6 2001:XX:XX:7c5:XX:XX:XX:6c3a -> prefixlen 64 autoconf pltime
604796 vltime 2591996
inet6 2001:XX:XX:7c5:XX:XX:XX:7626 -> prefixlen 64 autoconf
autoconfprivacy pltime 86253 vltime 604796

# ping6 -c 1 -S 2001:XX:XX:707:XX:XX:XX:6c3a 2a00:1450:4001:806::1009
PING6(72=40+8+24 bytes) 2001:XX:XX:707:XX:XX:XX:6c3a -->
2a00:1450:4001:806::1009
--- 2a00:1450:4001:806::1009 ping6 statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss

# ping6 -c 1 -S 2001:XX:XX:7c5:XX:XX:XX:6c3a 2a00:1450:4001:806::1009
PING6(72=40+8+24 bytes) 2001:XX:XX:7c5:XX:XX:XX:6c3a -->
2a00:1450:4001:806::1009
32 bytes from 2a00:1450:4001:806::1009, icmp_seq=0 hlim=59 time=6.499 ms
--- 2a00:1450:4001:806::1009 ping6 statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 6.499/6.499/6.499/0.000 ms

# ndp -p
2001:XX:XX:7c5::/64 if=pppoe0
flags=LAD vltime=2592000, pltime=604800, expire=29d23h59m47s, ref=2
advertised by
fe80::46d3:caff:fe9c:ef00%pppoe0 (no neighbor state)
2001:XX:XX:707::/64 if=pppoe0
flags=LAD vltime=2592000, pltime=604800, expire=29d23h58m45s, ref=2
advertised by
fe80::46d3:caff:fe9c:ef00%pppoe0 (no neighbor state)

# route -n show -inet6
Routing tables

Internet6:
Destination Gateway Flags Refs Use Mtu Prio Iface
::/104 ::1 UGRS 0 0 32768 8 lo0
::/96 ::1 UGRS 0 0 32768 8 lo0
default fe80:: UGS 0 250 - 8 pppoe0
default fe80::46d3:caff:fe9c:ef00%pppoe0 UG 0 0 - 56 pppoe0
::1 ::1 UHl 14 0 32768 1 lo0
::127.0.0.0/104 ::1 UGRS 0 0 32768 8 lo0
::224.0.0.0/100 ::1 UGRS 0 0 32768 8 lo0
::255.0.0.0/104 ::1 UGRS 0 0 32768 8 lo0
::ffff:0.0.0.0/96 ::1 UGRS 0 0 32768 8 lo0
2001:XX:XX:707:XX:XX:XX:6c3a 2001:XX:XX:707:XX:XX:XX:6c3a UHl 0 0 - 1 pppoe0
2001:XX:XX:707:XX:XX:XX:e080 2001:XX:XX:707:XX:XX:XX:e080 UHl 0 0 - 1 pppoe0
2001:XX:XX:7c5:XX:XX:XX:6c3a 2001:XX:XX:7c5:XX:XX:XX:6c3a UHl 0 0 - 1 pppoe0
2001:XX:XX:7c5:XX:XX:XX:7626 2001:XX:XX:7c5:XX:XX:XX:7626 UHl 0 0 - 1 pppoe0
2002::/24 ::1 UGRS 0 0 32768 8 lo0
2002:7f00::/24 ::1 UGRS 0 0 32768 8 lo0
2002:e000::/20 ::1 UGRS 0 0 32768 8 lo0
2002:ff00::/24 ::1 UGRS 0 0 32768 8 lo0
fe80::/10 ::1 UGRS 2 0 32768 8 lo0
fe80::1%lo0 fe80::1%lo0 UHl 0 0 32768 1 lo0
fe80::XX:XX:XX:6c3a%pppoe0 fe80::XX:XX:XX:6c3a%pppoe0 UHl 0 0 - 1 pppoe0
fe80::46d3:caff:fe9c:ef00%pppoe0 pppoe0 UHL 0 0 - 4 pppoe0
fec0::/10 ::1 UGRS 0 0 32768 8 lo0
ff01::/16 ::1 UGRS 0 0 32768 8 lo0
ff01::%lo0/32 ::1 UC 0 0 32768 4 lo0
ff01::%pppoe0/32 fe80::XX:XX:XX:6c3a%pppoe0 UC 0 0 - 4 pppoe0
ff02::/16 ::1 UGRS 0 0 32768 8 lo0
ff02::%lo0/32 ::1 UC 0 0 32768 4 lo0
ff02::%pppoe0/32 fe80::XX:XX:XX:6c3a%pppoe0 UC 0 0 - 4 pppoe0

# ndp -r
fe80::46d3:caff:fe9c:ef00%pppoe0 if=pppoe0, flags=O, pref=medium,
expire=29m28

-- 
Unix _IS_ user friendly - it's just
selective about who its friends are!

Reply via email to