Problems routing IPv6

I am relatively new to working with IPV6. My router can ping public websites. The router can also ping my linux host and vice versa. My Linux host cannot reach anything upstream of the router. If I do a traceroute to google.com from the linux host it resolves the name but I get the following:

traceroute -6 google.com
traceroute to google.com (2607:f8b0:400a:803::200e), 30 hops max, 80 byte packets
connect: Network is unreachable

does your router get a PD and put a prefix on the LAN? Maybe the Linux machine has no public prefix?

How do I check that. I see this on the upstream interface

2001:569:bd3c:5600:9683:c4ff:febd:19f2/64

on your linux machine run ip addr show and look for a public address. if all you have is a ULA (fdxx:..) then this is probably the issue.

All I do have is a ULA, no public address. How do I fix this?

ubus call network.interface.wan6 status
ubus call network.interface.lan status

reasonably redact the output

In particular ipv6-address, ipv6-prefix and ipv6-prefix-assignment are of interest.

How is your router connected to internet? Is it connected to modem/ISP router/something else?
Are you on some 4G/5G mobile internet?

The router connects via ethernet to a Technicolor NHT20A ONT/router. It is a fiber connection to my ISP.

Wan6

{
	"up": true,
	"pending": false,
	"available": true,
	"autostart": true,
	"dynamic": false,
	"uptime": 5868,
	"l3_device": "eth1",
	"proto": "dhcpv6",
	"device": "eth1",
	"metric": 0,
	"dns_metric": 0,
	"delegation": true,
	"ipv4-address": [
		
	],
	"ipv6-address": [
		{
			"address": "2001:569:bd3c:5600:9683:c4ff:xxxx.yyyy",
			"mask": 64,
			"preferred": 14391,
			"valid": 14691
		}
	],
	"ipv6-prefix": [
		
	],
	"ipv6-prefix-assignment": [
		
	],
	"route": [
		{
			"target": "2001:569:bd3c:5600::",
			"mask": 64,
			"nexthop": "::",
			"metric": 256,
			"valid": 14691,
			"source": "::/0"
		},
		{
			"target": "2001:569:bd3c:5600::",
			"mask": 56,
			"nexthop": "fe80::aaa2:37ff:fe14:78e3",
			"metric": 384,
			"valid": 14691,
			"source": "2001:569:bd3c:5600:9683:c4ff:xxxx.yyyy/64"
		},
		{
			"target": "::",
			"mask": 0,
			"nexthop": "fe80::aaa2:37ff:fe14:78e3",
			"metric": 512,
			"valid": 891,
			"source": "2001:569:bd3c:5600:9683:c4ff:xxxx.yyyy/64"
		}
	],
	"dns-server": [
		"2001:4860:4860::8888",
		"2001:4860:4860::8844"
	],
	"dns-search": [
		
	],
	"neighbors": [
		
	],
	"inactive": {
		"ipv4-address": [
			
		],
		"ipv6-address": [
			
		],
		"route": [
			
		],
		"dns-server": [
			"2001:568:ff09:10c::67",
			"2001:568:ff09:10a::116"
		],
		"dns-search": [
			
		],
		"neighbors": [
			
		]
	},
	"data": {
		"passthru": "0017002020010568ff09010c000000000000006720010568ff09010a0000000000000116"
	}

LAN

{
	"up": true,
	"pending": false,
	"available": true,
	"autostart": true,
	"dynamic": false,
	"uptime": 10064,
	"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": "fd05:eaf1:8ae5::",
			"mask": 60,
			"local-address": {
				"address": "fd05:eaf1:8ae5::1",
				"mask": 60
			}
		}
	],
	"route": [
		
	],
	"dns-server": [
		
	],
	"dns-search": [
		
	],
	"neighbors": [
		
	],
	"inactive": {
		"ipv4-address": [
			
		],
		"ipv6-address": [
			
		],
		"route": [
			
		],
		"dns-server": [
			
		],
		"dns-search": [
			
		],
		"neighbors": [
			
		]
	},
	"data": {
		
	}
}

OK it appears that your OpenWrt router only gets single IPv6 address. It does not get prefix via DHCPv6 Prefix delegation. So there are no GUA addresses to assign to it's downstream devices.

Is that ONT/router in bridge mode? For best functionality it should be in bridge mode, not router mode. Sometimes you can change that yourself, sometimes you must ask ISP to do that.

https://forum.telus.com/discussions/my_home_services_and_devices/how-do-i-bridge-a-technicolor-nh20t-so-i-can-use-my-own-router/162482

but search web yourself

Best might be first ask your ISP.

If bridge mode is not viable there still might be some other options. For instance static configuration but only if ISP's router supports that.

That was what I was suspecting but I just ran a test where I plugged my laptop directly into the ONT ethernet port and it got a IPv6 public address that was different that the ONT itself. I then went to test-ipv6.com and it ran all the tests with no problems. Here is an IPconfig from a windows laptop I used to run the test.

IPv6
WAN Protocol:  	IPv6 - Automatic
WAN IP:  	2001:0569:BD3C:5601:AAA2:37FF:FE14:78E5
WAN Prefix:  	2001:569:BD3C:5601::/64
LAN Prefix:  	2001:569:BD3C:5600::/64
Assigned Prefix:  	2001:569:BD3C:5600::/56
Gateway:  	FE80::2D0:F6FF:FE23:4388
Primary DNS:  	2001:568:ff09:10c:0:0:0:67
Secondary DNS:  	2001:568:ff09:10a:0:0:0:116
LAN GUA:  	2001:0569:BD3C:5600:AAA2:37FF:FE14:78E3

I also went to admin interface for the ONT and found the following

IPv6
WAN Protocol: IPv6 - Automatic
WAN IP: 2001:0569:BD3C:5601:AAA2:37FF:FE14:78E5
WAN Prefix: 2001:569:BD3C:5601::/64
LAN Prefix: 2001:569:BD3C:5600::/64
Assigned Prefix: 2001:569:BD3C:5600::/56

To me this looks like the ONT indeed does run as a router, not bridge.
Since the IPS's router gets /56 prefix.

Good news is that you might manually take part of that prefix (e.g. 2001:569:BD3C:56f0::/60) and statically route it to your OpenWrt router and then set that prefix for delegation on the OpenWrt router. But the ISP's router would have to support manual static routes.

If it was running as bridge then it would not get it's own prefix.
And the prefix 2001:569:BD3C:5600::/56 would be on your OpenWrt instead.

Wait also Windows machine got Assigned Prefix?

Yes that is the verbatim dump of the windows ipconfig command. When I ran that test there was nothing plugged into the ONT except for the windows laptop.

So windows got prefix, but OpenWrt does not?

A windows laptop with a wan and a lan?

Did you realy ran ipconfig /all from a windows cmd prompt?

Yeah the output looks odd. On my windows machine the formatting looks quite different on ipconfig. Also does Windows even support PD? I know Linux (NetworkManager) does when sharing connection.

I do not see desktop system using PD unless sharing connection e.g. using WiFi as a hotstop.

Let me check again. I was having to dump stuff into text files so I will rerun.

Ethernet adapter Ethernet:

   Connection-specific DNS Suffix  . : 
   IPv6 Address. . . . . . . . . . . : 2001:569:bd3c:5600:fb3b:620f:966:9443
   Temporary IPv6 Address. . . . . . : 2001:569:bd3c:5600:65d7:8528:c17:d349
   Link-local IPv6 Address . . . . . : fe80::1db4:6536:7755:f43d%12
   IPv4 Address. . . . . . . . . . . : 192.168.1.67
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : fe80::aaa2:37ff:fe14:78e3%12
                                       192.168.1.254