200 likes | 337 Views
IPv6 multicast. Stig Venaas venaas@uninett.no. Overview. IPv6 multicast addresses and scopes IPv6 multicast protocols Interdomain IPv6 multicast Current deployment IPv6 multicast applications. IPv6 multicast addresses. Scopes: 0 Reserved 1 Interface local 2 Link local 3 Reserved
E N D
IPv6 multicast Stig Venaas venaas@uninett.no
Overview • IPv6 multicast addresses and scopes • IPv6 multicast protocols • Interdomain IPv6 multicast • Current deployment • IPv6 multicast applications
IPv6 multicast addresses Scopes: 0 Reserved 1 Interface local 2 Link local 3 Reserved 4 Admin local 5 Site local 6-7 Unassigned (admin) 8 Organization local 9-D Unassigned (admin) E Global F Reserved IPv6 multicast addresses are in the range FF00::/8 All IPv6 hosts need to support multicast Used for neighbour discovery (like IPv4 ARP) Well defined scoping architecture Risk of addressing conflicts much less than with IPv4 • Flag bits: 0 R P T • T = 0 – permanent IANA assigned address • T = 1 – transient address (not IANA) • P = 1 – derived from unicast prefix (RFC 3306) • R = 1 – embedded-RP address (RFC 3956)
Unicast prefix based addresses • Unicast prefix based addresses are defined in RFC 3306 • Flags are set to 3 (P=T=1) • Reserved must be 0 • Plen is the length of the prefix used • Prefix is a unicast prefix • The group ID consists of any 32 bits • In this way every site will have many multicast addresses unique to them • One can also use /64 prefixes to get addresses unique to a link • Example: • Site with unicast prefix 2001:db8:1::/48 • Example multicast address ff3e:30:2001:db8:1:0:dead:beef
Embedded-RP addresses • Embedded-RP addresses are defined in RFC 3956 • Variation of the unicast prefix based addresses • Flags are set to 7 (R=P=T=1). R is a new flag for embedded-RP • Reserved must be 0 • RIID contains the last 4 bits of the RP address • Plen is the length of the prefix used • Prefix is a unicast prefix • The group ID consists of any 32 bits • One may use /64 prefixes as well to have an RP per link • Example: • Site with unicast prefix 2001:db8:1::/48 can pick RP address2001:db8:1::a • Example multicast address ff7e:0a30:2001:db8:1:0:dead:beef
SSM addresses • SSM addresses are special subset of unicast prefix based addresses • Flags are set to 3 (P=T=1) • Reserved must be 0 • Plen is set to 0 • Prefix is set to all zeroes • The group ID consists of any 32 bits • This results in ff3x::/96 for SSM (where x is any scope)
IPv6 multicast protocols • MLD is used for hosts to report to routers what they want to receive • Mostly similar to IGMP for IPv4 • MLDv1 supports joining groups (ASM) • Like IGMPv2 • MLDv2 supports joining groups and sources (SSM) • Like IGMPv3 • All IPv6 systems (should) support MLDv1 • MLDv2 supported by Linux and Windows Vista • PIM-SM is the most widely used routing protocol • Just like it is for IPv4 • Multiprotocol BGP used for exchanging routes for RPF • Like for IPv4 • One big difference is that there is no MSDP
PIM-SM and Rendezvous Points • Interdomain multicast routing is usually done with a protocol called PIM-SM • PIM-SM requires an RP for source discovery • All routers must use the same RP and somehow know its address • Initially packets from a source will be sent to the RP • When a host joins a group, join messages are sent hop by hop towards the RP • The RP serves as a meeting place between sources and receivers • This works well within a site or a single administrative domain • But we don’t want one single central common RP for all multicast on the Internet • So we want something that can work across administrative domains
IPv6, MSDP and Embedded-RP • MSDP doesn’t scale with large scale deployment since source information is flooded to all the RPs • Hence the IETF decided not to have MSDP for IPv6 • For IPv6 there is something called Embedded-RP (RFC 3956) • It defines a specific way to create multicast group addresses where the RP address is encoded into the group address • An embedded-RP address starts with ff70::/12 • Flags value of 7 means embedded-RP • E.g. ff7e:140:2001:700:f000:100:1234:beac has the RP 2001:700:f000:100::1 • Only a new way to map from group to RP. The main point is that it allows for a large number of RPs that can be practically anywhere in the Internet. They do not need to be preconfigured in the routers, routers automatically use the right RP • Someone hosting or initiating a multicast session can pick a group address with their RP address encoded inside • Everyone joining or sending to their session will then use their RP
IPv4 – IPv6 comparison • The main philosophy behind MSDP is to avoid one single common RP in the Internet, and to avoid relying on a 3rd party’s RP • With Embedded-RP we solve both of these • Provided one of the parties in a session picks a group address specifying their own RP • A technical difference is that with MSDP (and also SSM), there is only (S,G)-joins between domains • With embedded-RP, an RP is shared by multiple domains, so there will also be (*,G)-joins between domains
What about SSM? • SSM (Source-Specific Multicast) available for both IPv4 and IPv6 • There are no differences here • Some believe only SSM is needed for interdomain multicast • SSM simplifies multicast signaling in the network • No need for RPs, PIM register, switching between shared and source-specific trees… • But very difficult for multi-party applications • E.g. conferencing where everyone is a source and everyone needs to know the IP addresses of the others • SSM is supported by very few applications and systems • Edge routers and hosts need to support MLDv2 • Hosts need to support RFC 3678, which is the API for specifying source filters • Applications need to be changed to support this API
Deployment of IPv6 multicast • The European IST project 6NET had a European backbone and deployed native IPv6 multicast in 2003, and came up with the idea of Embedded-RP • IPv6 multicast has been deployed natively in Abilene, GEANT, NORDUnet, TEIN2, as well as in many NRNs (incl. CERNET2 and UNINETT) • These also have native IPv6 multicast peerings • Abilene has peerings with GEANT, TransPAC, and networks in Latin America • GEANT has peerings with about 10 NRNs • For multicast BGP peerings, see http://drift.uninett.no/ipv6/bgp/mcast/bgp-page-complete.html • There is also a world-wide network called M6Bone. This was started by RENATER 6 years ago • Anyone can join this to experiment with IPv6 multicast, see http://www.m6bone.net/
Deployment of IPv6 multicast • IPv6 multicast with a single central RP has been working in the M6Bone for 7 years. Still in use, but as we’ve discussed, it’s not a scalable solution • Embedded-RP and SSM are being actively used in GEANT, Abilene and many other networks • Easy to deploy, most routers need no configuration. SSM and embedded-RP works with no configuration, although at least one vendor requires you to enable embedded-RP • E.g. GEANT/Abilene routers need no RP configured • RP router can be close to the edge, e.g. in a university, that need to be configured • ACM Sigcomm 2007 is taking place in Kyoto this week, and they are doing IPv6 multicast streaming using embedded-RP
IPv6 multicast applications • Mbone tools – vic/rat etc • IPv6 multicast conferencing applications • http://www-mice.cs.ucl.ac.uk/multimedia/software/ • VideoLAN (vlc) – http://www.videolan.org/ • Video streaming, also IPv6 multicast. Server and client • DVTS – http://www.sfc.wide.ad.jp/DVTS/ • Streaming DV over RTP over IPv4/IPv6 • Mad flute – http://www.atm.tut.fi/mad/ • Streaming of files using multicast (IPv4/IPv6 ASM/SSM) • Monitoring/debugging tools • Dbeacon, http://dbeacon.innerghost.net/ • An alternative to NLANR beacon • ssmping/asmping – http://www.venaas.no/multicast/ssmping/ • ping-like tool for testing IPv6/IPv4 ssm/asm connectivity
ssmping • A tool for testing multicast connectivity • Behavior is a bit like normal ping • A server must run ssmpingd • A client can ping a server by sending unicast ssmping query • Server replies with both unicast and multicast ssmping replies • In this way a client can check that it receives SSM from the server • And also parameters like delay, number of router hops etc. • Note that there is also a similar tool called asmping for checking ASM connectivity • See http://www.venaas.no/multicast/ssmping/
Example IPv4 ssmping output (v6 supported) -bash-3.00$ ssmping -c 5 -4 ssmping.uninett.no ssmping joined (S,G) = (158.38.62.21,232.43.211.234) pinging S from 129.241.210.1 unicast from 158.38.62.21, seq=0 dist=15 time=72.874 ms unicast from 158.38.62.21, seq=1 dist=15 time=72.663 ms multicast from 158.38.62.21, seq=1 dist=9 time=76.502 ms unicast from 158.38.62.21, seq=2 dist=15 time=72.056 ms multicast from 158.38.62.21, seq=2 dist=9 time=73.556 ms unicast from 158.38.62.21, seq=3 dist=15 time=72.232 ms multicast from 158.38.62.21, seq=3 dist=9 time=73.579 ms unicast from 158.38.62.21, seq=4 dist=15 time=72.513 ms multicast from 158.38.62.21, seq=4 dist=9 time=73.256 ms --- 158.38.62.21 ssmping statistics --- 5 packets transmitted, time 5004 ms unicast: 5 packets received, 0% packet loss rtt min/avg/max/std-dev = 72.056/72.467/72.874/0.415 ms multicast: 4 packets received, 20% packet loss 0% loss since first multicast packet received (after 1077 ms) rtt min/avg/max/std-dev = 73.256/74.223/76.502/1.335 ms -bash-3.00$
dbeacon • dbeacon is a new multicast beacon • http://fivebits.net/~hugo/dbeacon/ • Sources also at http://mirror.aarnet.edu.au/pub/dbeacon/ • Alternative to NLANR beacon • IPv4 and IPv6, ASM and SSM • Written in C, light, and easy to install • No central server, ASM used for signalling • Any beacon client can be configured to provide a matrix • Beacon options, e.g. • dbeacon –b ff7e:a30:2001:db8:10::beac –S –a admin@email • With Apache: • ScriptAlias /matrix/ /usr/share/dbeacon-matrix/matrix.pl • Edit script for path to matrix $dumpfile = '/var/lib/dbeacon/dump.xml';
IPv4 - IPv6 multicast gateway • In IPv4 the gateway is a multicast host using IGMP • In IPv6 the gateway is a PIM router and RP for the /96 prefix