OpenWrt Forum Archive

Topic: Cannot route ipv6 from lan to wan

The content of this topic has been archived on 10 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Running 14.07-rc3.

I am trying to configure ipv6 over my LTE usb  modem connection. The router itself currently has ipv6 connectivity to the Internet, but I cannot figure out how to get lan clients to route over ipv6 to the Internet. ipv4 works fine, of course.

/e/c/network

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

config globals 'globals'
        option ula_prefix 'fd00:1010::/48'

config interface 'lan'
        option ifname 'eth0'
        option type 'bridge'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign 60
        option ip6hint 10

config interface 'wan'
        option ifname 'eth1'
        option proto 'dhcp'

config interface wan6
        option ifname @wan
        option proto dhcpv6

root@OpenWrt:~# ifstatus wan6

{
    "up": true,
    "pending": false,
    "available": true,
    "autostart": true,
    "uptime": 299,
    "l3_device": "eth1",
    "proto": "dhcpv6",
    "device": "eth1",
    "updated": [
        "addresses",
        "routes"
    ],
    "metric": 0,
    "delegation": true,
    "ipv4-address": [
        
    ],
    "ipv6-address": [
        {
            "address": "2600:1010:b007:5544:d295:c7ff:fe3f:d23f",
            "mask": 64
        }
    ],
    "ipv6-prefix": [
        
    ],
    "ipv6-prefix-assignment": [
        
    ],
    "route": [
        {
            "target": "2600:1010:b007:5544::",
            "mask": 64,
            "nexthop": "::",
            "metric": 256,
            "source": "::\/0"
        },
        {
            "target": "::",
            "mask": 0,
            "nexthop": "fe80::e017:228:fa29:9274",
            "metric": 1024,
            "valid": 65226,
            "source": "2600:1010:b007:5544:d295:c7ff:fe3f:d23f\/64"
        },
        {
            "target": "::",
            "mask": 0,
            "nexthop": "fe80::e017:228:fa29:9274",
            "metric": 1024,
            "valid": 65226,
            "source": "::\/128"
        }
    ],
    "dns-server": [
        
    ],
    "dns-search": [
        
    ],
    "inactive": {
        "ipv4-address": [
            
        ],
        "ipv6-address": [
            
        ],
        "route": [
            
        ],
        "dns-server": [
            
        ],
        "dns-search": [
            
        ]
    },
    "data": {
        
    }
}

root@OpenWrt:~# ip -6 route

default from :: via fe80::e017:228:fa29:9274 dev eth1  proto static  metric 1024 
default from 2600:1010:b007:5544::/64 via fe80::e017:228:fa29:9274 dev eth1  proto static  metric 1024 
2600:1010:b007:5544::/64 dev eth1  proto static  metric 256 
fd00:1010:0:10::/60 dev br-lan  proto kernel  metric 256 
unreachable fd00:1010::/48 dev lo  proto static  metric 2147483647  error -128
fe80::/64 dev eth1  proto kernel  metric 256 
fe80::/64 dev br-lan  proto kernel  metric 256 
fe80::/64 dev wlan0  proto kernel  metric 256 

When I run this configuration, I see this message in logread:

daemon.warn odhcpd[739]: A default route is present but there is no public prefix on br-lan thus we don't announce a default route!

When I do a ping to ipv6 Google from a lan client,  it just says:

ping: sendmsg: Network is unreachable

I'm not sure exactly what it wants for ip6prefix, but I tried some arbitrary values such as "option ip6prefix aaaa:bbbb::/64", I get a different warning in logread:

daemon.warn netifd: Failed to assign requested subprefix of size 60 for lan, trying other

and then lan client pings return a slightly more hopeful error:

From aaaa:bbbb::1 icmp_seq=1233 Destination unreachable: No route

I can also ping6 aaaa:bbbb::1 like this.

However, I'm not sure how to get it to route correctly still. This is my first foray into ipv6, so I may be missing something obvious...

Nothing wrong on your side, however your ISP / LTE-carrier must provide you with a delegated prefix for your clients which it doesn't at the moment. You cannot just use an arbitrary value in ip6prefix since it must be routed to you.

CyrusFF wrote:

Nothing wrong on your side, however your ISP / LTE-carrier must provide you with a delegated prefix for your clients which it doesn't at the moment. You cannot just use an arbitrary value in ip6prefix since it must be routed to you.

Thanks for the reply! I think I understand more now. The interesting thing is that the usb modem actually creates a new interface eth1 when connected, like several of them do, but that is really only the "lan" side of the usb modem. The "true" wan interface is managed internally by the modem and I don't have any visibility into its configuration. Openwrt can only see the "lan" side of the modem with its /64 address.

Do I have any options? I am curious about odhcpd's ndproxy mentions. Could this be used to somehow route ipv6 over the wan interface?

The discussion might have continued from here.