isatap linux,关于isatap隧道的IPV6的缩略地址下IPV4映射/兼容地址的计算方法
Ipv6擴(kuò)展地址
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
看下我本機(jī)的路由表
[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映射地址來進(jìn)行表示和設(shè)置路由的。
主機(jī)先向ISATAP服務(wù)器發(fā)送路由請求,得到一個64位的IPv6地址前綴(比如我們學(xué)校的前綴就是2001:da8:1008:6003),然后再加上64位的接口標(biāo)識符::0:5EFE:x.x.x.x(這里的x.x.x.x是雙棧主機(jī)的IPv4單播地址),這樣就構(gòu)成一個ISATAP地址
IPV4映射地址到IPV4兼容縮略地址之間是十六進(jìn)制轉(zhuǎn)換關(guān)系
比如
172
->
ac
16
->
10
156
->
9c
76
->
4c
可以用下面的shell腳本進(jìn)行轉(zhuǎn)化(需要先安裝Linux下面的計(jì)算器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映射地址進(jìn)行IPV6隧道的人工配置,
Linux的手工配置方法可以看這里只不過Linux配置完畢后,用ifconfig看到的都是兼容地址,還有最著名的BT軟件μtorrent鏈接peers的時候也是使用的兼容地址,
在windows下面,手工配置isatap隧道地址的方法如下
@echo off
set interface=isatap.{0A26141A-77D1-41BC-942A-423FD94902EF}
set prefix="2001:da8:1008:6003"
set ip="219.230.144.212"
set gateway="219.230.144.254"
set isataprouter="219.230.144.10"
route add %isataprouter% %gateway%
for /f " tokens=2 delims='\s' " %%a in ('"netsh int ipv6 show addr %interface% | findstr /r ^Address.*Parameters$"') do netsh int ipv6 del addr %interface% %%a
netsh int ipv6 add addr %interface% fe80::5efe:%ip%
netsh int ipv6 add addr %interface% %prefix%:0:5efe:%ip%
netsh int ipv6 isa s s d
netsh int ipv6 isa s s e
pause
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echooff
setinterface=isatap.{0A26141A-77D1-41BC-942A-423FD94902EF}
setprefix="2001:da8:1008:6003"
setip="219.230.144.212"
setgateway="219.230.144.254"
setisataprouter="219.230.144.10"
routeadd%isataprouter%%gateway%
for/f" tokens=2 delims='\s' "%%ain('"netsh int ipv6 show addr %interface% | findstr /r ^Address.*Parameters$"')donetshintipv6deladdr%interface%%%a
netshintipv6addaddr%interface%fe80::5efe:%ip%
netshintipv6addaddr%interface%%prefix%:0:5efe:%ip%
netshintipv6isassd
netshintipv6isasse
pause
順便說一下shell里面十進(jìn)制轉(zhuǎn)換為其他進(jìn)制的方法
[bash]#二進(jìn)制轉(zhuǎn)換10進(jìn)制
((n=2#11111111));echo $n
#16進(jìn)制華為10進(jìn)制
((n=16#ac));echo $n
[/bash]
總結(jié)
以上是生活随笔為你收集整理的isatap linux,关于isatap隧道的IPV6的缩略地址下IPV4映射/兼容地址的计算方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: isatap linux,好奇怪的IPv
- 下一篇: isatap linux,IPv6的IS