Re: ceph cluster_network with linklocal ipv6

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 08/18/2015 03:39 PM, Björn Lässig wrote:
> For not having any dependencies in my cluster network, i want to use
> only ipv6 link-local addresses on interface 'cephnet'.
> cluster_network = fe80::%cephnet/64

RFC4007 11.7

   The IPv6 addressing architecture [1] also defines the syntax of IPv6
   prefixes.  If the address portion of a prefix is non-global and its
   scope zone should be disambiguated, the address portion SHOULD be in
   the format.  For example, a link-local prefix fe80::/64 on the second
   link can be represented as follows:

            fe80::%2/64

   In this combination, it is important to place the zone index portion
   before the prefix length when we consider parsing the format by a
   name-to-address library function [11].  That is, we can first
   separate the address with the zone index from the prefix length, and
   just pass the former to the library function.

so my original format would be the correct one.

just looked into the code ... and this is exactly what happens in:

src/common/ipaddr.cc: bool parse_network(const char *s, […]) {

it looks where a '/' is and try to cast everything after to a longint.
Everything before the '/' is thrown into inet_pton

ok = inet_pton(AF_INET6, addr, &((struct sockaddr_in6*)network)->sin6_addr);

and inet_pton6 from glibc does not look at '%'.
No chance, this code could work with an interfacename after or before
the '/'

I'm using addresses with global scope now.

Björn



_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com




[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Ceph Dev]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux