Xiaomi 4a Gigabit Ipv6 Lan clients problem

Hi,
Recently my ISP activated IPv6 for users and i have decided to try it on my home network.
My current setup is described as below:

VDSL Line----Zyxel P-2812 Modem----Mi 4a Giga Router----PC, Phone etc.

Both devices have openwrt 21.02.1.Modem and router is connected via CAT6 ethernet cable.PC and other devices are connected via wireless and i have no problems with IPv4.

My Zyxel Modem assigns IPv6 from ISP and if i connect my PC directly to modem via CAT6 cable i can use IPv6 without any problems.I can IPv6 ping openwrt.org from modem (zyxel) web interface.

When i switch over router (mi4a) I can IPv6 ping openwrt.org from web interface and it seems working but none of my wireless and wired devices are working on IPv6.

I am sure my PC and phone supports IPv6 because it works on Zyxel modem. But somehow Mi4a doesn’t work on IPv6. My all settings are default.

Could someone point me at right direction?
Thanks in advance.

Zyxel must delegate a prefix to Xiaomi. Run on both: ifstatus wan6; ifstatus lan; uci export network

1 Like

Thanks for reply trendy.Here is my zyxel output:

root@Zyxel:~# ifstatus wan6
{
        "up": true,
        "pending": false,
        "available": true,
        "autostart": true,
        "dynamic": false,
        "uptime": 44576,
        "l3_device": "pppoe-wan",
        "proto": "dhcpv6",
        "device": "pppoe-wan",
        "updated": [
                "prefixes"
        ],
        "metric": 0,
        "dns_metric": 0,
        "delegation": true,
        "ipv4-address": [

        ],
        "ipv6-address": [
                {
                        "address": "2a02:ff0:20f0:62e0:a86b:cb4c:**masked**:**masked**",
                        "mask": 64,
                        "preferred": 604739,
                        "valid": 2591939
                }
        ],
        "ipv6-prefix": [
                {
                        "address": "2a02:ff0:20f0:62e0::",
                        "mask": 64,
                        "preferred": 560224,
                        "valid": 2547424,
                        "class": "wan6",
                        "assigned": {
                                "lan": {
                                        "address": "2a02:ff0:20f0:62e0::",
                                        "mask": 64
                                }
                        }
                }
        ],
        "ipv6-prefix-assignment": [

        ],
        "route": [
                {
                        "target": "::",
                        "mask": 0,
                        "nexthop": "fe80::7aba:f9ff:feeb:a500",
                        "metric": 512,
                        "valid": 1739,
                        "source": "2a02:ff0:20f0:62e0::/64"
                },
                {
                        "target": "::",
                        "mask": 0,
                        "nexthop": "fe80::7aba:f9ff:feeb:a500",
                        "metric": 512,
                        "valid": 1739,
                        "source": "2a02:ff0:20f0:62e0:a86b:cb4c:**masked**:**masked**/64"
                }
        ],
        "dns-server": [
                "2a02:ff0:2:327:193:192:98:8",
                "2a02:ff0:4:327:212:154:100:18"
        ],
        "dns-search": [

        ],
        "neighbors": [

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

                ],
                "ipv6-address": [

                ],
                "route": [

                ],
                "dns-server": [

                ],
                "dns-search": [

                ],
                "neighbors": [

                ]
        },
        "data": {
                "passthru": "001700202a020ff00002032701930192009800082a020ff0000                                                403270212015401000018"
        }
}
root@Zyxel:~#
root@Zyxel:~# ifstatus lan
{
        "up": true,
        "pending": false,
        "available": true,
        "autostart": true,
        "dynamic": false,
        "uptime": 44754,
        "l3_device": "br-lan",
        "proto": "static",
        "device": "br-lan",
        "updated": [
                "addresses"
        ],
        "metric": 0,
        "dns_metric": 0,
        "delegation": true,
        "ipv4-address": [
                {
                        "address": "192.168.1.1",
                        "mask": 24
                }
        ],
        "ipv6-address": [

        ],
        "ipv6-prefix": [

        ],
        "ipv6-prefix-assignment": [
                {
                        "address": "2a02:ff0:20f0:62e0::",
                        "mask": 64,
                        "preferred": 560146,
                        "valid": 2547346,
                        "local-address": {
                                "address": "2a02:ff0:20f0:62e0::1",
                                "mask": 64
                        }
                },
                {
                        "address": "fd84:d69f:5292::",
                        "mask": 60,
                        "local-address": {
                                "address": "fd84:d69f:5292::1",
                                "mask": 60
                        }
                }
        ],
        "route": [

        ],
        "dns-server": [

        ],
        "dns-search": [

        ],
        "neighbors": [

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

                ],
                "ipv6-address": [

                ],
                "route": [

                ],
                "dns-server": [

                ],
                "dns-search": [

                ],
                "neighbors": [

                ]
        },
        "data": {

        }
}
root@Zyxel:~#

root@Zyxel:~# uci export network
package network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd84:d69f:5292::/48'
        option packet_steering '1'

config atm-bridge 'atm'
        option encaps 'llc'
        option payload 'bridged'
        option nameprefix 'dsl'
        option vci '35'
        option vpi '8'

config dsl 'dsl'
        option line_mode 'vdsl'
        option ds_snr_offset '0'
        option annex 'b'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth0.1'

config device
        option name 'eth0.1'
        option macaddr 'c8:6c:**masked**:**masked**:**masked**:**masked**'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'

config device
        option name 'dsl0'
        option macaddr 'c8:6c:**masked**:**masked**:**masked**:**masked**'

config interface 'wan'
        option proto 'pppoe'
        option password '**masked**'
        option username '**masked**@**masked**.net'
        option delegate '0'
        option device 'dsl0.35'
        option ip6assign '64'
        option peerdns '0'
        list dns '1.1.1.1'
        list dns '8.8.8.8'
        option ipv6 '1'

config interface 'wan6'
        option device '@wan'
        option proto 'dhcpv6'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '0 1 2 4 6t'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '5 6t'

And here is xiaomi output:

root@Xiaomi:~# ifstatus wan6
{
        "up": true,
        "pending": false,
        "available": true,
        "autostart": true,
        "dynamic": false,
        "uptime": 249,
        "l3_device": "wan",
        "proto": "dhcpv6",
        "device": "wan",
        "updated": [
                "addresses",
                "routes",
                "prefixes",
                "data"
        ],
        "metric": 0,
        "dns_metric": 0,
        "delegation": true,
        "ipv4-address": [

        ],
        "ipv6-address": [
                {
                        "address": "2a02:ff0:20f0:62e0::97b",
                        "mask": 128,
                        "preferred": 42951,
                        "valid": 42951
                },
                {
                        "address": "fd84:d69f:5292::97b",
                        "mask": 128,
                        "preferred": 42951,
                        "valid": 42951
                },
                {
                        "address": "2a02:ff0:20f0:62e0:9e9d:7eff:fe16:6aaa",
                        "mask": 64,
                        "preferred": 560025,
                        "valid": 2547225
                },
                {
                        "address": "fd84:d69f:5292:0:9e9d:7eff:fe16:6aaa",
                        "mask": 64
                }
        ],
        "ipv6-prefix": [
                {
                        "address": "fd84:d69f:5292:4::",
                        "mask": 62,
                        "preferred": 42951,
                        "valid": 42951,
                        "class": "wan6",
                        "assigned": {
                                "lan": {
                                        "address": "fd84:d69f:5292:4::",
                                        "mask": 62
                                }
                        }
                }
        ],
        "ipv6-prefix-assignment": [

        ],
        "route": [
                {
                        "target": "2a02:ff0:20f0:62e0::",
                        "mask": 64,
                        "nexthop": "::",
                        "metric": 256,
                        "valid": 2547225,
                        "source": "::/0"
                },
                {
                        "target": "fd84:d69f:5292::",
                        "mask": 64,
                        "nexthop": "::",
                        "metric": 256,
                        "source": "::/0"
                },
                {
                        "target": "fd84:d69f:5292::",
                        "mask": 48,
                        "nexthop": "fe80::ca6c:87ff:fe80:ecf8",
                        "metric": 512,
                        "valid": 1551,
                        "source": "fd84:d69f:5292:4::/62"
                },
                {
                        "target": "fd84:d69f:5292::",
                        "mask": 48,
                        "nexthop": "fe80::ca6c:87ff:fe80:ecf8",
                        "metric": 512,
                        "valid": 1551,
                        "source": "2a02:ff0:20f0:62e0:9e9d:7eff:fe16:6aaa/64"
                },
                {
                        "target": "fd84:d69f:5292::",
                        "mask": 48,
                        "nexthop": "fe80::ca6c:87ff:fe80:ecf8",
                        "metric": 512,
                        "valid": 1551,
                        "source": "fd84:d69f:5292:0:9e9d:7eff:fe16:6aaa/64"
                },
                {
                        "target": "fd84:d69f:5292::",
                        "mask": 48,
                        "nexthop": "fe80::ca6c:87ff:fe80:ecf8",
                        "metric": 512,
                        "valid": 1551,
                        "source": "2a02:ff0:20f0:62e0::97b/128"
                },
                {
                        "target": "fd84:d69f:5292::",
                        "mask": 48,
                        "nexthop": "fe80::ca6c:87ff:fe80:ecf8",
                        "metric": 512,
                        "valid": 1551,
                        "source": "fd84:d69f:5292::97b/128"
                },
                {
                        "target": "::",
                        "mask": 0,
                        "nexthop": "fe80::ca6c:87ff:fe80:ecf8",
                        "metric": 512,
                        "valid": 1551,
                        "source": "fd84:d69f:5292:4::/62"
                },
                {
                        "target": "::",
                        "mask": 0,
                        "nexthop": "fe80::ca6c:87ff:fe80:ecf8",
                        "metric": 512,
                        "valid": 1551,
                        "source": "2a02:ff0:20f0:62e0:9e9d:7eff:fe16:6aaa/64"
                },
                {
                        "target": "::",
                        "mask": 0,
                        "nexthop": "fe80::ca6c:87ff:fe80:ecf8",
                        "metric": 512,
                        "valid": 1551,
                        "source": "fd84:d69f:5292:0:9e9d:7eff:fe16:6aaa/64"
                },
                {
                        "target": "::",
                        "mask": 0,
                        "nexthop": "fe80::ca6c:87ff:fe80:ecf8",
                        "metric": 512,
                        "valid": 1551,
                        "source": "2a02:ff0:20f0:62e0::97b/128"
                },
                {
                        "target": "::",
                        "mask": 0,
                        "nexthop": "fe80::ca6c:87ff:fe80:ecf8",
                        "metric": 512,
                        "valid": 1551,
                        "source": "fd84:d69f:5292::97b/128"
                }
        ],
        "dns-server": [
                "fd84:d69f:5292::1"
        ],
        "dns-search": [

        ],
        "neighbors": [

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

                ],
                "ipv6-address": [

                ],
                "route": [

                ],
                "dns-server": [

                ],
                "dns-search": [

                ],
                "neighbors": [

                ]
        },
        "data": {
                "passthru": "00170010fd84d69f529200000000000000000001"
        }
}
root@Xiaomi:~# ifstatus lan
{
        "up": true,
        "pending": false,
        "available": true,
        "autostart": true,
        "dynamic": false,
        "uptime": 269,
        "l3_device": "br-lan",
        "proto": "static",
        "device": "br-lan",
        "updated": [
                "addresses"
        ],
        "metric": 0,
        "dns_metric": 0,
        "delegation": true,
        "ipv4-address": [
                {
                        "address": "192.168.2.1",
                        "mask": 24
                }
        ],
        "ipv6-address": [

        ],
        "ipv6-prefix": [

        ],
        "ipv6-prefix-assignment": [
                {
                        "address": "fd84:d69f:5292:4::",
                        "mask": 62,
                        "preferred": 42939,
                        "valid": 42939,
                        "local-address": {
                                "address": "fd84:d69f:5292:4::1",
                                "mask": 62
                        }
                },
                {
                        "address": "fdc5:4db9:bd0f::",
                        "mask": 60,
                        "local-address": {
                                "address": "fdc5:4db9:bd0f::1",
                                "mask": 60
                        }
                }
        ],
        "route": [

        ],
        "dns-server": [

        ],
        "dns-search": [

        ],
        "neighbors": [

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

                ],
                "ipv6-address": [

                ],
                "route": [

                ],
                "dns-server": [

                ],
                "dns-search": [

                ],
                "neighbors": [

                ]
        },
        "data": {

        }
}
root@Xiaomi:~# uci export network
package network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option packet_steering '1'
        option ula_prefix 'fdc5:4db9:bd0f::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'lan1'
        list ports 'lan2'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option ipaddr '192.168.2.1'

config interface 'wan'
        option device 'wan'
        option proto 'dhcp'

config interface 'wan6'
        option device 'wan'
        option proto 'dhcpv6'

root@Xiaomi:~#

Could you please explain " delegate a prefix to Xiaomi". I am pretty new for this IPv6 stuff, please excuse my ignorance.

Many thanks again!

Unfortunately your ISP is delegating you (or assigning you, if you prefer it like this) a /64 prefix only. This is the smallest ipv6 network possible you can have to use with all clients. Your configuration is correct and the only thing you can do is to notify your ISP to delegate you a larger prefix, usually a /56 is normal for residential users. When they delegate a bigger network, the zyxel will delegate a piece of the /56 to the xiaomi and the xiaomi will be able to allocate it to its lan hosts.

Many thanks for reply.
Oh i see now the problem.64 prefix only have one subnet.I have asked to ISP to fix prefix to 56, waiting their answers.

I am wondering if i use modem for only dsl connection and i will add router for pppoe ( i will use my dsl username and password for pppoe) and dhcp and other than all of dsl connection.May this configuration work for IPv6?or any ideas without changing prefix?

You can check the prefix that is delegated to the modem-router. If it is larger than the /64 then it might work.

You can with ipv6 relay, but it is a workaround.

NAT6 masq read this, same for my isp

@trendy

@tekocheng

Thank you both guys i have set IPv6 relay on Xiaomi and now it works at it should.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.