forked from hugosantos/mrd6
-
Notifications
You must be signed in to change notification settings - Fork 1
/
README.translator
149 lines (98 loc) · 4.65 KB
/
README.translator
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
IPv4 to IPv6 multicast translator
---------------------------------
MRD6 contains an IPv4 to IPv6 multicast translator implementation.
The implementation follows the architectural ideas and address
translation presented in draft-venaas-behave-mcast46
Internet-Draft. IPv4 to IPv6 protocol translation is done using an
adapted version of the SIIT algorithm (RFC 2765).
The translator can be used as an MLD to IGMP proxy, or to make IPv4
groups available for a large IPv6 network using PIM-SM. The
translator performs only IPv4 to IPv6 translation. IPv6 to IPv4
translation is not supported. The translator supports both ASM
(any-source multicast) and SSM (source-specific multicast).
The translator is supported only on Linux.
Address translation
-------------------
An IPv4 source address is translated to an IPv6 address by
prepending the IPv4 address with the IPv6 unicast prefix configured
to the translator (unicast-prefix configuration option). In other
words, the original IPv4 source address is stored in the last 32
bits of the IPv6 address. The IPv6 unicast prefix must be routed
towards the translator on the IPv6 network.
In similar fashion, IPv4 ASM or SSM addresses are translated to
IPv6 ASM and SSM addresses, by prepending the original IPv4
addresses with the IPv6 ASM or SSM prefix configured to the
translator (asm-prefix and ssm-prefix configuration options).
The translator must be configured as the rendezvous point (RP) for
the IPv6 ASM prefix. A good way to accomplish this is to use an
Embedded-RP ASM prefix (RFC 3956).
Joining and leaving IPv4 groups
-------------------------------
The translator receives IPv6 multicast joins with the protocols
supported by MRD6 (MLDv2, PIM-SM).
(*,G) joins:
If the the IPv6 group address matches the configured ASM prefix,
the translator joins the IPv4 ASM group embedded in the IPv6
address. The embedded IPv4 address must be also a valid IPv4 ASM
group address.
(S,G) joins:
If the IPv6 source address matches the configured unicast prefix,
and the IPv6 group address matches the SSM prefix, the translator
joins the IPv4 SSM channel embedded in the IPv6 addresses. The
embedded IPv4 group address must be also a valid IPv4 SSM group
address.
When the last IPv6 receiver leaves a translated group, the
translator leaves the original IPv4 group. The translator joins and
leaves IPv4 groups with IGMPv3 (RFC 3376) through the IPv4
interface configured to the translator (ipv4-interface
configuration option).
Protocol translation
--------------------
The implementation translates received IPv4 multicast packets to
IPv6 with a modified SIIT (RFC 2765) algorithm.
All transport layer protocols are translated. However, transport
layer checksums are updated only for UDP packets. Thus, other
transport layer protocols may be translated with invalid checksums.
IPv4 fragments are translated to identical IPv6
fragments. Additionally, if the size of a translated packet exceeds
the currently known IPv6 path MTU, the translator handles
fragmentation on behalf of the IPv4 multicast senders.
Example configuration
---------------------
/* IPv4 to IPv6 multicast translator configuration. */
translator {
/* IPv4 interface and address of the translator */
ipv4-interface = eth0;
ipv4-address = 192.0.2.75;
/* Unicast prefix prepended to IPv4 source addresses.
* The prefix must be routed towards the translator on
* the IPv6 network. */
unicast-prefix = 2001:db8:ab:cd:ef::/96;
/* Multicast prefix prepended to IPv4 ASM and SSM group addresses */
asm-prefix = ff7e:140:2001:db8:ab:cd::/96;
ssm-prefix = ff3e::/96;
}
Useful mrd6sh commands
----------------------
show translator
Displays the current state and configuration of the IPv4 to
IPv6 multicast translator module.
show group
Displays information about all translated groups.
show counters
Displays forwarding statistics.
Author and contact information
------------------------------
The multicast translator was implemented by Teemu Kiviniemi as part
of his master's thesis. The thesis describes the translator
implementation in detail.
The thesis is available at:
http://iki.fi/teemuki/translator/
E-mail:
Teemu Kiviniemi <[email protected]>
Thanks to
---------
Pekka Savola for comments and suggestions.
CSC - It Center for Science Ltd. and Funet for the possibility to
use a modern, high performance network for developing and testing
the multicast translator.