Hi Adam,

On 1/15/26 14:21, Adam Prycki via ceph-users wrote:
Hello,

ceph doesn't support dual-stack networking.
Cluster components bind to either v4 or v6 address.

It's the same with multiple subnets. You can have multiple subnets configured in your cluster, but each component binds only to one of these subnets.

> - How does the mon process decide which address to use?
Lookup ms_bind_ipv4 and ms_bind_ipv6. (these options are exclusive, as I mentioned above)


Thanks for the information. https://docs.ceph.com/en/squid/rados/configuration/network-config-ref/ does not mention that the ms_bind_ipv4 an ms_bind_ipv6 options are exclusive, so I'm a little bit confused. I would have expected software like ceph to handle dual stack setups in 2026. If I remember correctly this was one of the goals of the MsgrV2 protocol.

Nonetheless, since most clients are already running with dual stack (the k8s cluster will be the last and probably most "interesting" setup..), let's adopt the migration and target ipv6 only:

- set ms_bind_ipv4 to false and ms_bind_ipv6 to true

- delete and re-add mons one after another

- process the other components like OSDs etc.


Do Ceph components use their public address to bind _outgoing_ connections to a certain interface/IP address? If this is the case I do not see any sane and simple way to migrate to IPv6.

Example:

mon A: 1.2.3.1/24 (ceph public) and 1234::1/64

mon B: 1.2.3.2/24 and 1234::2/64 (ceph public)


If mon A want to send packets to mon B, it can use its ipv6 address as source, which is _not_ the public address of the mon; vice versa for connections from mon B to mon A. in this setup a migration to IPv6 is straightforward, if all clients are capable of IPv6.


Best regards,

Burkhard

_______________________________________________
ceph-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to