Weird behavior regarding xxxx:xxxx:xxxx:xxxx::/128

I set up a clean 7.23.1 environment and configured the following simple addresses:

/ipv6 address
add address=fe80::cc:0:0:18 advertise=no auto-link-local=no interface=lan
# The result below will be fd00:0:0:cc::18/64, although I believe it should be fd00:0:0:cc::18/128
add address=fd00:0:0:cc::18 advertise=no interface=lan

Then, I pinged fd00:0:0:cc:: from the router itself, and got the following result:

It seems like it's resolving to its own address. This causes a problem. For a DHCPv6 stateful server, if a pool like fd00:0:0:cc::/64 is configured, the first client to get an address from this pool will receive fd00:0:0:cc::/128. RouterOS will then consider this address as its own, resulting in abnormal communication for the client.

So, is this a bug?

Also, just two quick questions regarding the DHCPv6 pool:

  1. Is there a way to reserve specific addresses in the pool so they won't be handed out? I know static binding is one way, but it's too inefficient.

  2. It seems ROS always allocates addresses sequentially starting from 0. Is there a way to make it start from a specific address and allocate them randomly? For example, starting with 10f, and the next one being a random address like 20a, etc.

Thank you.

I believe the netmask should also be included for the address to function as intended:

/ipv6 address
add address=fd00:0:0:cc::18/64 advertise=no interface=lan

As for your questions, there aren't specific options covering your needs that I'm aware of, so no to both of them