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                             g...@greenie.muc.de
fax: +49-89-35655025                        g...@net.informatik.tu-muenchen.de

Attachment: pgpejeKsv4_9z.pgp
Description: PGP signature

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

Reply via email to