#17992: IPv6 with IPv6-PD does not work on BB-RC3/CC
-------------------------+-----------------------------------
 Reporter:  jostein      |      Owner:  developers
     Type:  defect       |     Status:  new
 Priority:  normal       |  Milestone:  Barrier Breaker 14.07
Component:  base system  |    Version:  Barrier Breaker 14.07
 Keywords:               |
-------------------------+-----------------------------------
 I was running an earlier trunk-version of BB (from may?) where 6relayd was
 an option to get IPv6 with ISP-provided prefix delegation working.

 After updating to BB-RC3 (and also trying in trunk/CC), where 6relayd has
 been "deprecated" in favour of odhcpd, I can't get IPv6 working at all.

 I've also modified my /etc/config/network according to the guides here:
 http://wiki.openwrt.org/doc/uci/network6#native.ipv6.connection

 There is a multitude of failures across the line, and I'm certain they're
 linked somehow, but I'm not sure where to start.

 I've tried the most basic test there is:

 {{{
 root@OpenWrt:~# ping6 www.google.com
 PING www.google.com (2a00:1450:4010:c04::63): 56 data bytes
 ping6: sendto: Operation not permitted
 }}}

 In the overview of the Luci Web-UI, the "wan" interface has an IPv4
 address, while the "wan6" interface is listed as "not connected" in the
 overview.

 Checking the interfaces section lists the "wan" interface as having both a
 IPv4 and a IPv6 address, while the "wan6" interface has an blank/zeroed
 MAC address and no IP addresses at all.

 Checking my interfaces in the shell confirms I have been assigned at least
 a IPv6 address:

 {{{
 root@OpenWrt:~# ifconfig
 br-lan    Link encap:Ethernet  HWaddr 00:24:A5:D8:7D:37
           inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
           inet6 addr: fe80::224:a5ff:fed8:7d37/64 Scope:Link
           inet6 addr: 2a02:fe0:c310:830::1/60 Scope:Global
           inet6 addr: fddd:9c60:e47d::1/60 Scope:Global
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:67715 errors:0 dropped:0 overruns:0 frame:0
           TX packets:74617 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:8280689 (7.8 MiB)  TX bytes:52801652 (50.3 MiB)

 eth0      Link encap:Ethernet  HWaddr 00:24:A5:D8:7D:37
           inet6 addr: fe80::224:a5ff:fed8:7d37/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:69961 errors:0 dropped:0 overruns:2396 frame:0
           TX packets:74690 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:9696995 (9.2 MiB)  TX bytes:53107697 (50.6 MiB)
           Interrupt:4

 eth0.1    Link encap:Ethernet  HWaddr 00:24:A5:D8:7D:37
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:69882 errors:0 dropped:0 overruns:0 frame:0
           TX packets:74670 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:8428090 (8.0 MiB)  TX bytes:52806170 (50.3 MiB)

 eth1      Link encap:Ethernet  HWaddr 00:24:A5:D8:7D:38
           inet addr:84.215.73.196  Bcast:84.215.127.255
 Mask:255.255.192.0
           inet6 addr: fe80::224:a5ff:fed8:7d38/64 Scope:Link
           inet6 addr: 2a02:fe0:c300:1:3d44:9a12:dcc8:89dd/128 Scope:Global
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:74101 errors:0 dropped:0 overruns:0 frame:0
           TX packets:53694 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:50643643 (48.2 MiB)  TX bytes:7408853 (7.0 MiB)
           Interrupt:5

 lo        Link encap:Local Loopback
           inet addr:127.0.0.1  Mask:255.0.0.0
           inet6 addr: ::1/128 Scope:Host
           UP LOOPBACK RUNNING  MTU:65536  Metric:1
           RX packets:213 errors:0 dropped:0 overruns:0 frame:0
           TX packets:213 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:16496 (16.1 KiB)  TX bytes:16496 (16.1 KiB)
 }}}

 So I have been assigned at least one IPv6 address.

 Checking the logical interfaces manually yields  information conflicting
 with what Luci reports: It says "wan" has an IPv4 address, while "wan6"
 has an IPv6 address (as expected):


 {{{
 root@OpenWrt:~# ifstatus wan
 {
         "up": true,
         "pending": false,
         "available": true,
         "autostart": true,
         "uptime": 6660,
         "l3_device": "eth1",
         "proto": "dhcp",
         "device": "eth1",
         "updated": [
                 "addresses",
                 "routes"
         ],
         "metric": 0,
         "delegation": true,
         "ipv4-address": [
                 {
                         "address": "84.215.73.196",
                         "mask": 18
                 }
         ],
         "ipv6-address": [

         ],
         "ipv6-prefix": [

         ],
         "ipv6-prefix-assignment": [

         ],
         "route": [
                 {
                         "target": "0.0.0.0",
                         "mask": 0,
                         "nexthop": "84.215.64.1",
                         "source": "0.0.0.0\/0"
                 }
         ],
         "dns-server": [
                 "84.208.20.110",
                 "84.208.20.111"
         ],
         "dns-search": [
                 "getinternet.no"
         ],
         "inactive": {
                 "ipv4-address": [

                 ],
                 "ipv6-address": [

                 ],
                 "route": [

                 ],
                 "dns-server": [

                 ],
                 "dns-search": [

                 ]
         },
         "data": {

         }
 }

 root@OpenWrt:~# ifstatus wan6
 {
         "up": true,
         "pending": false,
         "available": true,
         "autostart": true,
         "uptime": 6676,
         "l3_device": "eth1",
         "proto": "dhcpv6",
         "device": "eth1",
         "updated": [
                 "addresses",
                 "prefixes",
                 "data"
         ],
         "metric": 0,
         "delegation": true,
         "ipv4-address": [

         ],
         "ipv6-address": [
                 {
                         "address": "2a02:fe0:c300:1:3d44:9a12:dcc8:89dd",
                         "mask": 128,
                         "preferred": 598124,
                         "valid": 1202924
                 }
         ],
         "ipv6-prefix": [
                 {
                         "address": "2a02:fe0:c310:830::",
                         "mask": 60,
                         "preferred": 598124,
                         "valid": 1202924,
                         "class": "wan6",
                         "assigned": {
                                 "lan": {
                                         "address": "2a02:fe0:c310:830::",
                                         "mask": 60
                                 }
                         }
                 }
         ],
         "ipv6-prefix-assignment": [

         ],
         "route": [

         ],
         "dns-server": [
                 "2a02:fe0:1:2:1:0:1:110",
                 "2a02:fe0:1:2:1:0:1:111"
         ],
         "dns-search": [

         ],
         "inactive": {
                 "ipv4-address": [

                 ],
                 "ipv6-address": [

                 ],
                 "route": [

                 ],
                 "dns-server": [

                 ],
                 "dns-search": [

                 ]
         },
         "data": {
                 "passthru":
 "001700202a020fe00001000200010000000101102a020fe0000100020001000000010111"
         }
 }

 }}}

 As can be seen there, it even lists my IPv6 subnet-prefix!

 That doesn't seem to ''translate'' into any advertised routes though:


 {{{
 root@OpenWrt:~# route -A inet6
 Kernel IPv6 routing table
 Destination                                 Next Hop
 Flags Metric Ref    Use Iface
 2a02:fe0:c310:830::/64                      ::
 U     1024   0        0 br-lan
 fddd:9c60:e47d::/64                         ::
 U     1024   0        0 br-lan
 fe80::/64                                   ::
 U     256    0        0 eth0
 fe80::/64                                   ::
 U     256    0        0 br-lan
 fe80::/64                                   ::
 U     256    0        0 eth1
 ::1/128                                     ::
 U     0      0        1 lo
 2a02:fe0:c300:1:3d44:9a12:dcc8:89dd/128     ::
 U     0      3        1 lo
 2a02:fe0:c310:830::/128                     ::
 U     0      0        1 lo
 2a02:fe0:c310:830::1/128                    ::
 U     0      2        1 lo
 fddd:9c60:e47d::/128                        ::
 U     0      0        1 lo
 fddd:9c60:e47d::1/128                       ::
 U     0      2        1 lo
 fe80::/128                                  ::
 U     0      0        1 lo
 fe80::/128                                  ::
 U     0      0        1 lo
 fe80::/128                                  ::
 U     0      0        1 lo
 fe80::224:a5ff:fed8:7d37/128                ::
 U     0      2        1 lo
 fe80::224:a5ff:fed8:7d37/128                ::
 U     0      0        1 lo
 fe80::224:a5ff:fed8:7d38/128                ::
 U     0      4        1 lo
 ff02::1/128                                 ::
 UC    0      1        0 br-lan
 ff02::c/128                                 ::
 UC    0      5016       0 br-lan
 ff00::/8                                    ::
 U     256    0        0 eth0
 ff00::/8                                    ::
 U     256    0        2 br-lan
 ff00::/8                                    ::
 U     256    0        0 eth1

 }}}

 As far as I can tell, no default route has been added nor advertised.

 Checking the logs for any activity from odchpd doesn't really yield much
 information either:


 {{{
 root@OpenWrt:~# logread | grep odhcpd
 Sat Sep 27 11:30:19 2014 daemon.info dnsmasq[1749]: read /tmp/hosts/odhcpd
 - 0 addresses
 Sat Sep 27 11:56:41 2014 daemon.warn odhcpd[1909]: DHCPV6 REBIND IA_NA
 from 000100011aa3810f54ae2798e681 on br-lan: ok
 Sat Sep 27 11:56:42 2014 daemon.warn odhcpd[1909]: DHCPV6 SOLICIT IA_NA
 from 000100011aa3810f54ae2798e681 on br-lan: ok 2a02:fe0:c310:830::3af/128
 fddd:9c60:e47d::3af/128
 Sat Sep 27 11:56:43 2014 daemon.warn odhcpd[1909]: DHCPV6 REQUEST IA_NA
 from 000100011aa3810f54ae2798e681 on br-lan: ok 2a02:fe0:c310:830::3af/128
 fddd:9c60:e47d::3af/128
 }}}

 Not sure what the normal or "expected" log-data for this daemon should be
 though.

 I've tried flushing iptables and doing a ping. The result is the same.
 ip6tables doesn't seem to have much of a ruleset anyway:

 {{{
 root@OpenWrt:~# ip6tables -L
 Chain INPUT (policy ACCEPT)
 target     prot opt source               destination
 delegate_input  all      anywhere             anywhere

 Chain FORWARD (policy DROP)
 target     prot opt source               destination
 delegate_forward  all      anywhere             anywhere

 Chain OUTPUT (policy ACCEPT)
 target     prot opt source               destination
 delegate_output  all      anywhere             anywhere

 Chain MINIUPNPD (0 references)
 target     prot opt source               destination

 Chain delegate_forward (1 references)
 target     prot opt source               destination
 forwarding_rule  all      anywhere             anywhere             /*
 user chain for forwarding */
 ACCEPT     all      anywhere             anywhere             ctstate
 RELATED,ESTABLISHED
 zone_lan_forward  all      anywhere             anywhere
 zone_wan6_forward  all      anywhere             anywhere
 reject     all      anywhere             anywhere

 Chain delegate_input (1 references)
 target     prot opt source               destination
 ACCEPT     all      anywhere             anywhere
 input_rule  all      anywhere             anywhere             /* user
 chain for input */
 ACCEPT     all      anywhere             anywhere             ctstate
 RELATED,ESTABLISHED
 syn_flood  tcp      anywhere             anywhere             tcp
 flags:FIN,SYN,RST,ACK/SYN
 zone_lan_input  all      anywhere             anywhere
 zone_wan6_input  all      anywhere             anywhere

 Chain delegate_output (1 references)
 target     prot opt source               destination
 ACCEPT     all      anywhere             anywhere
 output_rule  all      anywhere             anywhere             /* user
 chain for output */
 ACCEPT     all      anywhere             anywhere             ctstate
 RELATED,ESTABLISHED
 zone_lan_output  all      anywhere             anywhere
 zone_wan6_output  all      anywhere             anywhere

 Chain forwarding_lan_rule (1 references)
 target     prot opt source               destination

 Chain forwarding_rule (1 references)
 target     prot opt source               destination

 Chain forwarding_wan6_rule (1 references)
 target     prot opt source               destination

 Chain input_lan_rule (1 references)
 target     prot opt source               destination

 Chain input_rule (1 references)
 target     prot opt source               destination

 Chain input_wan6_rule (1 references)
 target     prot opt source               destination

 Chain output_lan_rule (1 references)
 target     prot opt source               destination

 Chain output_rule (1 references)
 target     prot opt source               destination

 Chain output_wan6_rule (1 references)
 target     prot opt source               destination

 Chain reject (1 references)
 target     prot opt source               destination
 REJECT     tcp      anywhere             anywhere             reject-with
 tcp-reset
 REJECT     all      anywhere             anywhere             reject-with
 icmp6-port-unreachable

 Chain syn_flood (1 references)
 target     prot opt source               destination
 RETURN     tcp      anywhere             anywhere             tcp
 flags:FIN,SYN,RST,ACK/SYN limit: avg 25/sec burst 50
 DROP       all      anywhere             anywhere

 Chain zone_lan_dest_ACCEPT (3 references)
 target     prot opt source               destination
 ACCEPT     all      anywhere             anywhere

 Chain zone_lan_forward (1 references)
 target     prot opt source               destination
 forwarding_lan_rule  all      anywhere             anywhere             /*
 user chain for forwarding */
 zone_wan6_dest_ACCEPT  all      anywhere             anywhere
 /* forwarding lan -> wan6 */
 zone_lan_dest_ACCEPT  all      anywhere             anywhere

 Chain zone_lan_input (1 references)
 target     prot opt source               destination
 input_lan_rule  all      anywhere             anywhere             /* user
 chain for input */
 zone_lan_src_ACCEPT  all      anywhere             anywhere

 Chain zone_lan_output (1 references)
 target     prot opt source               destination
 output_lan_rule  all      anywhere             anywhere             /*
 user chain for output */
 zone_lan_dest_ACCEPT  all      anywhere             anywhere

 Chain zone_lan_src_ACCEPT (1 references)
 target     prot opt source               destination
 ACCEPT     all      anywhere             anywhere

 Chain zone_wan6_dest_ACCEPT (3 references)
 target     prot opt source               destination
 ACCEPT     all      anywhere             anywhere

 Chain zone_wan6_forward (1 references)
 target     prot opt source               destination
 forwarding_wan6_rule  all      anywhere             anywhere
 /* user chain for forwarding */
 zone_lan_dest_ACCEPT  all      anywhere             anywhere
 /* forwarding wan6 -> lan */
 zone_wan6_dest_ACCEPT  all      anywhere             anywhere

 Chain zone_wan6_input (1 references)
 target     prot opt source               destination
 input_wan6_rule  all      anywhere             anywhere             /*
 user chain for input */
 zone_wan6_src_ACCEPT  all      anywhere             anywhere

 Chain zone_wan6_output (1 references)
 target     prot opt source               destination
 output_wan6_rule  all      anywhere             anywhere             /*
 user chain for output */
 zone_wan6_dest_ACCEPT  all      anywhere             anywhere

 Chain zone_wan6_src_ACCEPT (1 references)
 target     prot opt source               destination
 ACCEPT     all      anywhere             anywhere
 }}}

 Manually resetting the firewall lists a few errors though:


 {{{
 root@OpenWrt:~# /etc/init.d/firewall restart
 Warning: Unable to locate ipset utility, disabling ipset support
  * Flushing IPv4 filter table
  * Flushing IPv4 nat table
  * Flushing IPv4 mangle table
  * Flushing IPv4 raw table
  * Flushing IPv6 filter table
  * Flushing IPv6 mangle table
  * Flushing IPv6 raw table
  * Flushing conntrack table ...
  * Populating IPv4 filter table
    * Zone 'lan'
    * Zone 'wan'
    * Zone 'VPN'
    * Rule 'Allow-DHCP-Renew'
    * Rule 'Allow-Ping'
    * Rule 'OpenVPN / HTTPS'
 ...
    * Forward 'lan' -> 'wan'
    * Forward 'wan6' -> 'lan'
      ! Skipping due to different family of zone
    * Forward 'lan' -> 'wan6'
      ! Skipping due to different family of zone
    * Forward 'VPN' -> 'lan'
    * Forward 'VPN' -> 'wan'
    * Forward 'lan' -> 'VPN'
    * Forward 'wan' -> 'VPN'
  * Populating IPv4 nat table
    * Zone 'lan'
    * Zone 'wan'
    * Zone 'VPN'
 ...
  * Populating IPv4 mangle table
    * Zone 'lan'
    * Zone 'wan'
    * Zone 'VPN'
  * Populating IPv4 raw table
    * Zone 'lan'
    * Zone 'wan'
    * Zone 'VPN'
  * Populating IPv6 filter table
    * Zone 'lan'
    * Zone 'wan6'
    * Rule 'Allow-DHCPv6'
      ! Skipping due to different family of zone
    * Rule 'Allow-ICMPv6-Input'
      ! Skipping due to different family of zone
    * Rule 'Allow-ICMPv6-Forward'
      ! Skipping due to different family of zone
 ...
    * Forward 'lan' -> 'wan'
      ! Skipping due to different family of zone
    * Forward 'wan6' -> 'lan'
    * Forward 'lan' -> 'wan6'
    * Forward 'VPN' -> 'lan'
      ! Skipping due to different family of zone
    * Forward 'VPN' -> 'wan'
      ! Skipping due to different family of zone
    * Forward 'lan' -> 'VPN'
      ! Skipping due to different family of zone
    * Forward 'wan' -> 'VPN'
      ! Skipping due to different family of zone
  * Populating IPv6 mangle table
    * Zone 'lan'
    * Zone 'wan6'
  * Populating IPv6 raw table
    * Zone 'lan'
    * Zone 'wan6'
  * Set tcp_ecn to off
  * Set tcp_syncookies to on
  * Set tcp_window_scaling to on
  * Running script '/etc/firewall.user'
  * Running script '/usr/share/miniupnpd/firewall.include'
 ip6tables: No chain/target/match by that name.
 }}}

 Is there something more I need to do or install? To me this looks like a
 defect in odhcpd, but it's kinda hard to tell.

 If needed to further debug this issue, I can provide a tcpdump of the IPv6
 negotiation process too. Just let me know.

--
Ticket URL: <https://dev.openwrt.org/ticket/17992>
OpenWrt <http://openwrt.org>
Opensource Wireless Router Technology
_______________________________________________
openwrt-tickets mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-tickets

Reply via email to