关于isatap隧道的IPV6的缩略地址下IPV4映射/兼容地址的计算方法

先说一下在123查上面看到的东西
http://www.123cha.com/ip/?q=172.16.156.76

Ipv6扩展地址 Ipv6缩略地址
Ipv6表示地址 2002:ac10:9c4c:0:0:0:0:0 2002:ac10:9c4c::
Ipv4映射地址 0:0:0:0:0:FFFF:172.16.156.76 ::FFFF:172.16.156.76
Ipv4兼容地址 0:0:0:0:0:0:172.16.156.76 ::FFFF:ac10:9c4c

看下我本机的路由表

[text]route -6 print
IPv6 Route Table
===========================================================================
Active Routes:
If Metric Network Destination Gateway
20 286 ::/0 fe80::5efe:219.230.144.10
1 306 ::1/128 On-link
15 58 2001::/32 On-link
15 306 2001:0:4137:9e76:819:297e:f5f7:fff1/128
On-link
20 38 2001:da8:1008:6003::/64 On-link
20 286 2001:da8:1008:6003:0:5efe:172.16.156.76/128
On-link
15 306 fe80::/64 On-link
19 296 fe80::5efe:10.8.0.14/128 On-link
20 286 fe80::5efe:172.16.156.76/128
On-link
15 306 fe80::819:297e:f5f7:fff1/128
On-link
1 306 ff00::/8 On-link
15 306 ff00::/8 On-link
===========================================================================
Persistent Routes:
None[/text]

在windows下面,无论是XP还是VISTA/7 都是使用IPv4映射地址来进行表示和设置路由的。

主机先向ISATAP服务器发送路由请求,得到一个64位的IPv6地址前缀(比如我们学校的前缀就是2001:da8:1008:6003),然后再加上64位的接口标识符::0:5EFE:x.x.x.x(这里的x.x.x.x是双栈主机的IPv4单播地址),这样就构成一个ISATAP地址

IPV4映射地址到IPV4兼容缩略地址之间是十六进制转换关系

比如

172 -> ac
16 -> 10
156 -> 9c
76 -> 4c

可以用下面的shell脚本进行转化(需要先安装Linux下面的计算器bc: apt-get install bc)

[bash]#!/bin/bash
ipv4=172.16.156.76
b='';for id in echo $ipv4|sed 's/\./ /g'
do
b=${b}echo "obase=16;$id"|bc
if [ expr ${#b} % 4 -eq 0 ]; then
b=${b}:;
fi
done
echo $b |tr 'A-Z' 'a-z'
[/bash]

无论是windows还是linux,都可以直接使用IPV4映射地址进行IPV6隧道的人工配置,
Linux的手工配置方法可以看这里只不过Linux配置完毕后,用ifconfig看到的都是兼容地址,还有最著名的BT软件μtorrent链接peers的时候也是使用的兼容地址,

在windows下面,手工配置isatap隧道地址的方法如下

 


顺便说一下shell里面十进制转换为其他进制的方法

[bash]#二进制转换10进制
((n=2#11111111));echo $n
#16进制华为10进制
((n=16#ac));echo $n
[/bash]

Author Info :
  • From:关于isatap隧道的IPV6的缩略地址下IPV4映射/兼容地址的计算方法
  • URL:https://blog.ihipop.com/2011/06/2532.html
  • Please Reserve This Link,Thanks!
  • 发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注