Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IPv6 Multicast Address #2090

Closed
svdo opened this issue Jul 24, 2015 · 6 comments
Closed

IPv6 Multicast Address #2090

svdo opened this issue Jul 24, 2015 · 6 comments
Labels
bug A problem with current functionality, as opposed to missing functionality (enhancement) frozen-due-to-age Issues closed and untouched for a long time, together with being locked for discussion protocol Issues that require a change to the protocol (BEP, relay, discovery)

Comments

@svdo
Copy link

svdo commented Jul 24, 2015

Hi,

Question: Is Syncthing using a proper address for IPv6 mulitcast?

Background:
I'm working with @dapperstout on the Swift implementation of syncthing. Because I'm having trouble getting IPv6 multicast to work, I posted a question about it on stack overflow: http://stackoverflow.com/questions/31574247/gcdasyncudpsocket-cannot-get-udp-multicast-over-ipv6-to-work?noredirect=1#comment51108878_31574247. I don't know too much about IPv6 yet, but on stack overflow it is claimed that the Syncthing multicast address (ff32::5222), as specified in https://github.com/syncthing/specs/blob/master/DISCOVERYv2.md, is reserved for future use (referring to http://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml#unicast-multicast-group-ids).

Could someone with enough knowledge on this have a look at it? If this is a bug in the specification, it would be good to fix it.

@calmh
Copy link
Member

calmh commented Jul 25, 2015

I admit I don't really know and find the available documentation somewhat confusing. I think I made that choice based RFC 3307 (Allocation Guidelines for IPv6 Multicast Addresses, https://tools.ietf.org/html/rfc3307#section-4.3). If there's someone more knowledgeable who can interpret things and make a recommendation it's not a problem to change the spec and code in the next minor beta release.

@calmh calmh added protocol Issues that require a change to the protocol (BEP, relay, discovery) help-wanted labels Jul 25, 2015
@calmh
Copy link
Member

calmh commented Jul 25, 2015

Looks like I misread the documentation and made an invalid assumption. We should use something in FF3X::8000:0 to FF3X::FFFF:FFFF instead. This will be changed in the spec and the v0.12 release of Syncthing.

@calmh calmh added bug A problem with current functionality, as opposed to missing functionality (enhancement) and removed help-wanted labels Jul 25, 2015
@calmh
Copy link
Member

calmh commented Jul 25, 2015

Lacking any real reasons to choose otherwise I suggest ff32::8384:8384 (link local, temporary, 8384 being ST in ASCII). It also matches the default GUI/API port and so may have some default association to Syncthing by those who see it.

@calmh calmh added this to the v0.12 milestone Jul 25, 2015
@svdo
Copy link
Author

svdo commented Jul 25, 2015

I think an important question is whether we want any-source multicast or source-specific multicast (https://en.wikipedia.org/wiki/Source-specific_multicast). The FF3X::8000:0 to FF3X::FFFF:FFFF is under the heading "Unicast-based (Including SSM) Multicast Group IDs". I'm not sure if that's what you want, the alternatives are under the heading "Link-Local Scope Multicast Addresses". I see things like SSDP, UPnP and mDNSv6 are all link-local multicast addresses. Since synching is using this for discovery, I got a strong suspicion that it should also use that type of multicast addresses.

I just read this IPv6 quick start, it helped me a bit in understanding some of the terminology: https://4sysops.com/archives/ipv6-part-1-get-started-now/

@dcarosone
Copy link

dcarosone commented Jul 26, 2015 via email

@calmh
Copy link
Member

calmh commented Jul 27, 2015

Myeah, so ff32:: in this case is link-local, transient, based on network prefix. The first two are correct, the latter isn't. So I guess ff12:: may be the prefix we're looking for (link-local, transient). "Transient" in this case meaning "not assigned by IANA". http://tools.ietf.org/html/rfc4291#section-2.7

I don't think SSM or not is encoded in the address here, other than by some guidelines on how to select SSM addresses. If we wanted a wider scope than link-local I guess that would be admin-local or possibly site-local...

@calmh calmh closed this as completed in 40d0100 Aug 23, 2015
@st-review st-review added the frozen-due-to-age Issues closed and untouched for a long time, together with being locked for discussion label Jun 16, 2017
@syncthing syncthing locked and limited conversation to collaborators Jun 16, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug A problem with current functionality, as opposed to missing functionality (enhancement) frozen-due-to-age Issues closed and untouched for a long time, together with being locked for discussion protocol Issues that require a change to the protocol (BEP, relay, discovery)
Projects
None yet
Development

No branches or pull requests

4 participants