Hello great devs,
looks like something broke recently on trunk, regarding IPv6 RA handling 
("proto=dhcpv6")
when an interface receives a router advertisement with on-link bit set,
it correctly adds the default via,
as well as a static route to the local (on-link) network
but after some seconds (maybe a minute) that static route disappears,
which makes the host use the default via (unnecessarily) to reach other hosts 
on the local segment.

it worked fine with netifd_2013-12-29, albeit the routing table approach was 
different (it used a separate table)

what follows is an insightful log taken from trunk r39428

root@OpenWrt:~# rdisc6 eth1
Soliciting ff02::2 (ff02::2) on eth1...

Hop limit                 :           64 (      0x40)
Stateful address conf.    :           No
Stateful other conf.      :           No
Mobile home agent         :           No
Router preference         :       medium
Neighbor discovery proxy  :           No
Router lifetime           :         1800 (0x00000708) seconds
Reachable time            :  unspecified (0x00000000)
Retransmit time           :  unspecified (0x00000000)
 Prefix                   : 2a00:1508:1:f004::/64
  On-link                 :          Yes
  Autonomous address conf.:          Yes
  Valid time              :         3600 (0x00000e10) seconds
  Pref. time              :         3600 (0x00000e10) seconds
 MTU                      :         1500 bytes (valid)
 Source link-layer address: 90:F6:52:BB:EC:AD
 Recursive DNS server     : 2a00:1508:1:f004::1
  DNS server lifetime     :         1200 (0x000004b0) seconds
 from fe80::92f6:52ff:febb:ecad

root@OpenWrt:~# ip -6 r
default from :: via fe80::92f6:52ff:febb:ecad dev eth1  proto static  metric 
1024 
default from 2a00:1508:1:f004::/64 via fe80::92f6:52ff:febb:ecad dev eth1  
proto static  metric 1024 
2a00:1508:1:f004::/64 dev eth1  proto static  metric 256 
fd03:9cbd:8bca::/60 dev br-lan  proto kernel  metric 256 
unreachable fd03:9cbd:8bca::/48 dev lo  proto static  metric 2147483647  error 
-128
fe80::/64 dev br-lan  proto kernel  metric 256 
fe80::/64 dev eth1  proto kernel  metric 256 
### wait a dozen seconds, no more than a minute, and check routing table again:
root@OpenWrt:~# ip -6 r
default from :: via fe80::92f6:52ff:febb:ecad dev eth1  proto static  metric 
1024 
default from 2a00:1508:1:f004::/64 via fe80::92f6:52ff:febb:ecad dev eth1  
proto static  metric 1024 
fd03:9cbd:8bca::/60 dev br-lan  proto kernel  metric 256 
unreachable fd03:9cbd:8bca::/48 dev lo  proto static  metric 2147483647  error 
-128
fe80::/64 dev br-lan  proto kernel  metric 256 
fe80::/64 dev eth1  proto kernel  metric 256 

root@OpenWrt:~# opkg install 
/tmp/netifd_2013-12-29-7d79d0a8aa5a5b4c1ed987af119356438d98fe7b_ar71xx.ipk  
--force-downgrade
Downgrading netifd on root from 
2014-01-20-88b3e92933925c09cfb6e95e9c8645727654ddf7 to 
2013-12-29-7d79d0a8aa5a5b4c1ed987af119356438d98fe7b...
Configuring netifd.
root@OpenWrt:~# reboot

root@OpenWrt:~# rdisc6 eth1
Soliciting ff02::2 (ff02::2) on eth1...
[snip]
root@OpenWrt:~# ip -6 r s table 1004
default from :: via fe80::92f6:52ff:febb:ecad dev eth1  proto static  metric 
1024 
default from 2a00:1508:1:f004::/64 via fe80::92f6:52ff:febb:ecad dev eth1  
proto static  metric 1024 
2a00:1508:1:f004::/64 dev eth1  proto static  metric 256 

With netifd_2013-12-29, that last rule is never dropped / removed, even after 
days of uptime

Hope that helps chasing the bug, since the bisect window is small: only 3 
commits,
"Add indicator-flags to ubus and hotplug update-events"
"Remove automatically assigned IPv6 routing table" # fishy, fishy, fishy fish? 
;)
"Don't add unnecessary NOP policy rules"

cheers!
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to