As I understand it, public IPv6 addresses allocated by the IANA will have the prefix 2000::/3. These IP addresses will be routable through the Internet.
IPv6 multicast addresses on the other side are prefixed FF00::/8.
My understanding is that the IPv6 multicast addresses won't be routable through the internet. Am I right? If so, is there any way to do one-to-many IP routing over the Internet in IPv6?
I must correct a assumption you seem to have made here.
If all the routers between you and your destination support it, then Multicast can certainly work over the IPv4 Internet. It is simply blocked or not configured in many places. I suspect this is because multicast is not well understood, and many people believe they do not need it. So they simply do not permit it through their firewalls/routers.
IPv6 certainly is capable just like IPv4 of having Multicast work globally. Only time will tell us if people actually permit multicast through their networks.
IPv6 public -unicast- addresses have the prefix 2000::/3 (so far). The allocation for multicast includes accommodation for link-local, variously local scoped and global addressing (as per RFC3307). It's the same basic idea as IPv4 multicast, where a chunk of the 224/4 space is set aside for GLOP addresses and such.
Check out RFC3306 as well, I think it probably more directly answers your question.
This specification defines an extension to the multicast addressing architecture of the IP Version 6 protocol. The extension presented in this document allows for unicast-prefix-based allocation of multicast addresses. By delegating multicast addresses at the same time as unicast prefixes, network operators will be able to identify their multicast addresses without needing to run an inter-domain allocation protocol.
So the idea is that if you have a globally routed /64 that it can be included in the overall group ID to give you something that can be routed globally. In other words, if you already have a v6 prefix and a suitably enabled carrier then you're already set.
The standards allow global multicast routing, but AFAIK currently most ISPs restrict multicast only for their use (IPTV etc.)
My own guess is that many ISP's that happen to be cable providers who deploy IPv6 will block it at their border.
It may be cynical of me to think this, but they have a vested interest in keeping the costs HIGH for their content competitors. v6 multicast would allow HBO or any other streaming video provider to transmit one v6 stream to the Ipv6 world over a multicast channel and dramatically cut costs.
I see multiple answers assuming you have mistaken what multicast is. You have made no mistake and your question is clear. I asked this question to myself:
Can I multicast across the IPv6 Internet?
Traditionally, such as in IPv4 I would need to request a permanent global multicast address (or subnet) and assign these to my network. This is still possible with IPv6. However, IPv6 is inherently multicast-happy so it would make sense to include some mechanism for me to multicast to you without requesting unique addresses.
The advantages become obvious when you have three people each on two physically separate networks (six people) playing the same network game. The options are to unicast packets to every player (five packets sent for every update), or to multicast (one or two packets for every update): the first packet would be sent to a link-local multicast address for the players on the local LAN, and another packet would be sent to the global multicast address, which the routers would understand are intended for the players on the other LAN. It may even be the case that the packet is sent once to the global multicast address, and the router (or the local clients) know how to deal with that. The latter would certainly be more efficient.
Given how useful multicast is, it would irritate IANA if they had to assign multicast prefixes for everyone who wants to play a network game, or deliver a video conference, or broadcast a live performance to friends, and so on and so on....
The application form from IANA clearly states that you probably don't need to ask for a permanent IPv6 multicast address, which is nice.
Unicast-Prefix-based IPv6 Multicast Addresses
This, of course, has been addressed. The title "Unicast-Prefix-based IPv6 Multicast Addresses" should really say it all: if you have a globally unique IPv6 IP address then you (your computer/device) can assign your(/it)self a globally unique multicast address which is based on your unicast assignment. The requirements are that the software at every point (servers, routers, clients) knows what it's doing. Old routers and lazy ISPs are likely to be the downfall for the next few years.
It was incredibly difficult to find an answer to what seems to be a very simple question, and the closest I could come to find a definitive answer was in RFC3306:
Most articles (and answers) on IPv6 multicast focus on local multicast which has pre-defined addresses, and are not very helpful. The clincher is that a client can assign itself a unique multicast address based on its unicast address, and of course scopes still apply:
It's no real surprise that this is difficult to answer as IPv6 connectivity is so rare that testing the Internet for IPv6 multicast ability and reliability is impossible for most end users, and as a result there are not a lot of articles written about it. Indeed, most end users have no idea why they would use IPv6 multicast at home, but the applications are ready and waiting.
This page talks about some confusion brought on by the RFCs, and RFC3956 mentions how certain multicast domains have trouble talking to each other. It may, at this point, be difficult to implement, but I see no reason why the game server (from my above example) cannot assign itself a multicast IPv6 address and inform the clients of this address, and all without having to beg for a static multicast IPv6 assignment.
This is something I would like to follow up myself in the future.
Step 1: ISPs need to enable IPv6. Still.
See also: RFC6308: Overview of the Internet Multicast Addressing Architecture
You confuse two things in my opinion: multicast routing and IPv6 address allocation.
Multicast routing depends on all routers on the path between the multicast source and you forwarding multicast packets to the destinations which want to receive a certain multicast group. In an uncontrolled network with full multicast network any source system can send to any multicast group without any controls, and all systems which have joined that group will receive the data. This has nothing to do with any allocation, just with multicast routing being enabled.
IPv6 address allocation from 2000::/3 decides who can use which unicast address.
So who can use which IPv6 multicast group is for as far as I know only defined in rfc3307.
Multicast sources do not have a lot of control which destinations see their packets, it is quite possible data transmitted via multicast reaches destionations not available via unicast.
I think IPv6 multicast should be routable over the Internet, in contrast to the IPv4 multicast that isn't routable over the Internet.
https://en.wikipedia.org/wiki/Multicast_address#IPv6
https://en.wikipedia.org/wiki/IPv6#Multicasting
http://ipv6friday.org/blog/2011/12/ipv6-multicast/
There is "Solicited multicast" in the IPv6 for applications. These addresses automatically apeared when on the some interface is created Unicast address. Just use FF02:0:0:0:0:1:FF00::/104, and other 24 bits are the same as in the Unicast address. https://www.rfc-editor.org/rfc/rfc3306