Hi, thanks for your help so far. (Side question: if people feel this is getting off-topic for openwrt-devel, I'll take it offline. For now I keep the CC: because I think other people might end up running into this, and google might find the solutions, then :-) )
On Sat, May 03, 2014 at 07:59:03AM +0200, Steven Barth wrote:
> >Oh well. First thing is "I should have looked at 'ifstatus wan_6'" which
> >indeed tells me "WAN is working":
> >
> >root@OpenWrt:/etc/config# ifstatus wan_6
> >{
> > "up": false,
> > "pending": true,
> > "available": true,
> > "autostart": true,
> > "proto": "dhcpv6",
> > "device": "eth0",
> > "data": {
> >
> > }
> >}
> doesn't really look like working.
Well, it's not succeeding, but at least it's doing something :-) - while
"ifstatus wan" got me all confused, with all protocols set to "false".
> >Questions :-)
> >
> > - is hnetd intentionally ignoring the A-Bit in RA?
> hnetd doesn't reimplement the dhcpv6-client it uses OpenWrt's internal
> dhcpv6-protocol-handler.
> So it behaves the same as if you had an interface with proto=dhcpv6 and
> option forceprefix 1. If it works with that you should be good to go
> (unless there is a bug somewhere sigh)
What does "forceprefix 1" do?
If I do "proto dhcp" and no "forceprefix", the wan interface gets an
IPv6 address from the RAs received (plus default route).
Right now, I have neither an IPv6 default route nor an address, so it
very much looks like it's ignoring my RAs.
> And normally the dhcpv6 handler ignores O/M-bits and just asks for IA_NA
> + IA_PD first in a solicit and when that fails (server returns with
> NoAddrsAvail) tries with IA_PD-only which should succeed in your case
> (don't know why it didn't though).
Yeah, given the not-exactly-clear specification of O/M-Bits, this sounds
like a "fail-save" approach in the general case.
[..]
> > - what's the recommended config on the upstream side to make it work?
> > Remove the "O"-Bit? (I have that because I cannot send RFC6106 info
> > from IOS, so RA+stateless DHCP is what we currently use to get IPv6
> > addresses + DNS addresses into the client devices)
> I'll try to confirm / fix a bug tomorrow or on monday.
Thanks for testing against ISC DHCP (other mail). I'm not sure what
is different here - maybe ISC is returning the prefix right away, while
IOS just tells the router "go away"?
> I could offer you
> a workaround at the moment which is: Open /lib/netifd/proto/hnet.sh and
> search for json_add_string proto dhcpv6
>
> Below that insert a line:
> json_add_string reqaddress none
> which should disable it asking for an IA_NA alltogether.
Done...
May 3 14:47:47: IPv6 DHCP: Received SOLICIT from FE80::12FE:EDFF:FEE6:5F33 on
Vlan62
May 3 14:47:47: IPv6 DHCP: Option USER-CLASS(15) is not processed
May 3 14:47:47: IPv6 DHCP: Option RECONF-ACCEPT(20) is not processed
May 3 14:47:47: IPv6 DHCP: Option UNKNOWN(39) is not processed
May 3 14:47:47: IPv6 DHCP: Sending ADVERTISE to FE80::12FE:EDFF:FEE6:5F33 on
Vlan62
May 3 14:47:47: IPv6 DHCP: Received REQUEST from FE80::12FE:EDFF:FEE6:5F33 on
Vlan62
May 3 14:47:47: IPv6 DHCP: Option USER-CLASS(15) is not processed
May 3 14:47:47: IPv6 DHCP: Option RECONF-ACCEPT(20) is not processed
May 3 14:47:47: IPv6 DHCP: Option UNKNOWN(39) is not processed
May 3 14:47:47: IPv6 DHCP: Creating binding for FE80::12FE:EDFF:FEE6:5F33 in
pool NetmasterTEST
May 3 14:47:47: IPv6 DHCP: Allocating IA_PD 00000001 in binding for
FE80::12FE:EDFF:FEE6:5F33
May 3 14:47:47: IPv6 DHCP: Allocating prefix 2001:608:5::/56 in binding for
FE80::12FE:EDFF:FEE6:5F33, IAID 00000001
May 3 14:47:47: IPv6 DHCP: Sending REPLY to FE80::12FE:EDFF:FEE6:5F33 on Vlan62
... and things work :-) - I'm not posting the whole "ifstatus wan_6" now,
as it is 100+ lines long. The most important bits are these, though:
"ipv6-address": [
{
"address": "2001:608:0:62:12fe:edff:fee6:5f33",
"mask": 64,
"preferred": 604752,
"valid": 2591952
}
],
"ipv6-prefix": [
{
"address": "2001:608:5::",
"mask": 56,
"preferred": 1751,
"valid": 3551,
"class": "wan_6",
"assigned": {
}
}
],
"good!".
Next question :-)
root@OpenWrt:~# ifstatus lan_6
{
"up": false,
"pending": true,
"available": true,
"autostart": true,
"proto": "dhcpv6",
"device": "eth1",
"data": {
}
}
as per your definition, this is "not working", right?.
OTOH, "ip -6 addr" confirms that it indeed selected a subnet from the
delegated prefix (2001:608:5::/56), assigned it to the lan=eth1 (only
a single LAN interface here)
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2001:608:5:b5:12fe:edff:fee6:5f32/64 scope global dynamic
valid_lft 3448sec preferred_lft 1648sec
inet6 2001:608:0:62:12fe:edff:fee6:5f33/64 scope global dynamic
valid_lft 2591971sec preferred_lft 604771sec
inet6 fe80::12fe:edff:fee6:5f32/64 scope link
valid_lft forever preferred_lft forever
$ ip -6 route
2001:608:5:b5::/64 dev eth1 proto static metric 1024
So it looks good to me.
Though... "ip -6 route" actually brings up the next "huh, what?" question:
root@OpenWrt:~# ip -6 route
default from :: via fe80::214:1cff:fed2:30c0 dev eth0 proto static metric
1024
default from 2001:608:0:62::/64 via fe80::214:1cff:fed2:30c0 dev eth0 proto
static metric 1024
default from 2001:608:5::/56 via fe80::214:1cff:fed2:30c0 dev eth0 proto
static metric 1024
2001:608:0:62::/64 dev eth1 proto kernel metric 256 expires 2591907sec
2001:608:5:b5::/64 dev eth1 proto static metric 1024
unreachable 2001:608:5::/56 dev lo proto static metric 1000000000 error -128
unreachable 2001:608:5::/56 dev lo proto static metric 2147483647 error -128
unreachable fd83:af19:9ef::/48 dev lo proto static metric 2147483647 error
-128
I understand the defaults (eth0=wan, source dependent, could be multiple
routers, but there is only one, so all the same), and the unreachables.
I do not understand this one:
2001:608:0:62::/64 dev eth1 proto kernel metric 256 expires 2591907sec
this network is connected to the *WAN* side of things (eth0), and announced
by RA from the Cisco to the WRT. The address from that /64 is visible on
both eth0 + eth1, which I find a bit surprising but "otherwise harmless",
but the route shouldn't point to eth1 - my belly says "this would make
the box unable to reach other devices on the :0:62:: LAN".
Incidentially, when I ping6 the GUA address of the router, it *does* work:
root@OpenWrt:~# ping6 2001:608:0:62::ffff
PING 2001:608:0:62::ffff (2001:608:0:62::ffff): 56 data bytes
64 bytes from 2001:608:0:62::ffff: seq=0 ttl=64 time=0.810 ms
64 bytes from 2001:608:0:62::ffff: seq=1 ttl=64 time=0.658 ms
"whut"?
Anyway. Short summary: with the change to hnet.sh, it seems to be working
and I get all the addresses and prefixes I expect to see. There is just
confusion in "what should the output of some commands look like".
thanks,
gert
--
USENET is *not* the non-clickable part of WWW!
//www.muc.de/~gert/
Gert Doering - Munich, Germany [email protected]
fax: +49-89-35655025 [email protected]
pgpejeKsv4_9z.pgp
Description: PGP signature
_______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
