Is it OK for IPV6 only get link address?

not sure it is off topic.
I am using a cellular modem to connect to AWS IoT. It works fine for IPV4, now I move to dual stack for IPV4IPV6.
The issue is it appears I only get IPV6 link local address as below and cannot connect to AWS IoT.

May I know if it is normal that my teco just assign IPV6 link local address to my device? It appears OK, but not sure.
BTW, I am using LwIP stack and STM32 Cellular module.

our_ipaddr  =   his_ipaddr  =   netmask     =   dns1        =   dns2        =   our6_ipaddr = FE80::E4E1:7945:6991:BB45
local  LL address fe80::e4e1:7945:6991:bb45
remote LL address fe80::90d8:e219:ddb2:eae1

@jiangpen , which IP-stack are you using? Is that lwIP, FreeRTOS+TCP or a different one?

A link-local address is only useful for local messages, on a single LAN.

When you want to get on the Internet and use AWS IoT, I think you will need an IPv6 router which will give your device an IPv6 public IP-address. There will be no NAT involved.

An IPv6 address can be obtained in one of three ways:

  • Router Advertisement.
  • DHCPv6.
  • Static allocation in case you own a (series of) public IPv6 addresses.

Please check your ISP and/or your router to see if it supports IPv6.

If it does not, like my ISR, i hope that you can get a public IPv4 address. With that it it possible to build an 6-in-4 tunnel.

I am using the Hurricane Electric Free IPv6 Tunnel Broker, using a Raspberry Pi as a router. If you want I can give more information about this. There will be more tunnel brokers around.

In case you are interested in using FreeRTOS+TCP:

FreeRTOS-Plus-TCP /IPv4 /single
FreeRTOS-Plus-TCP /ipv4+6 /multi

The words single and multi mean that the release supports either a single network interface, or multiple ones.
And in the case of multi, you can also assign multiple IP-addresses to your device.