How to enable IPv6 Autoconfiguration with static address in Linux (RHEL)

Solution 1:

Token IPv6 addresses is a thing in Linux, man ip-token. Essentially,
ip token set ::123/64 dev eth0 There isn't really configuration supporting this in EL scripts, so I just dump it in a /sbin/ifup-local script.

Auto configuration addresses are not necessarily based on your MAC address. sysctl -w net.ipv6.conf.default.use_tempaddr=1 should turn on privacy extensions and also prefer your static global addresses, if you want that kind of predictability. Save to /etc/sysctl.d/ if you are happy with it and want it permanently. See ip-sysctl.txt for other options.

Solution 2:

You need to accept the Router Advertisement (RA) messages from the router. That will have the prefix (network) and prefix length as well as the default gateway.

Check out the kernel config vars

net.ipv6.conf.default.accept_ra

net.ipv6.conf.all.accept_ra

and make sure they are set to (typically) 1

Also, make sure that something on your network (usually your router) is sending the RAs.