参考RFC6052:https://tools.ietf.org/html/rfc6052#section-2.2
+--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |PL| 0-------------32--40--48--56--64--72--80--88--96--104---------| +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |32| prefix |v4(32) | u | suffix | +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |40| prefix |v4(24) | u |(8)| suffix | +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |48| prefix |v4(16) | u | (16) | suffix | +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |56| prefix |(8)| u | v4(24) | suffix | +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |64| prefix | u | v4(32) | suffix | +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |96| prefix | v4(32) | +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 1. prefix的值只允许32、40、48、56、64和96;这个prefix可以是well-known prefix(64:ff9b::/96),也可以是自己指定的网络前缀,但是要在ipv6端的host上根据此前缀加上路由。
2. 位64到71的地址保留,与IPv6寻址体系结构中定义的主机标识符格式兼容。即上图中的u,这些位必须设置为0。
3. prefix为32位时,32到63为IPv4的地址转换为的16进制数;
prefix为40位时,40到63为IPv4的地址转换为的16进制数的前24位,72到79是后8位。
prefix为48位时,48到63(16位),72到87(16位)
prefix为56位时,56到63(8位),72到95(24位)
prefix为64位时,72到103(32位)
prefix为96位时,96到127(32位)
4. eg:host的ipv4地址为3.3.3.3,转换成十六进制(ipv6):03 03 03 03,前缀这里就用well-known prefix举例(也可以用其他自己指定的)
prefix为32位时,64:ff9b:0303:0303::,即(64:ff9b:303:303::);
prefix为40位时,64:ff9b:0003:0303:0003::: (即,64:ff9b:3:303:3::)
prefix为48位时,64:ff9b:0000:0303:0003:0300:: (即,64:ff9b:0:303:3:300::)
prefix为56位时,64:ff9b:0000:0003:0003:0303:: (即,64:ff9b:0:3:3:303::)
prefix为64位时,64:ff9b:0000:0000:0003:0303:0300:: (即,64:ff9b::3:303:300:0)
prefix为96位时,64:ff9b::303:303
其中红色的00是u。
