EN
首页 / 全部资讯 / 知识百科 / IPv6之ISATAP隧道技术详解(二)

IPv6之ISATAP隧道技术详解(二)

时间:2021-09-21 13:01 发布:http://www.vecloud.com 阅读量:254

四、典型实验

环境描述

PC是ISATAP主机,它是一台双栈PC,这里我们使用的是一台win7系统的电脑做测试。电脑网卡的IP地址为1.1.1.1/24,网关为1.1.1.254,网关是SW1的interface vlan10。

SW1创建两个VLAN:VLAN10及20,分别对应PC及ISATAP路由器。VLAN20的SVI口IP为2.2.2.254,是ISATAP路由器的默认网关。

ISATAP Router的接口IP为2.2.2.2。该IPv4地址在后续的ISATAP配置中使用到,ISATAP主机就是通过这个IP找到ISATAP Router并与之建立ISATAP tunnel。ISATAP Router同时连接到了一个IPv6网络,这里我们用loopback模拟:2001:8888::8/64,用于后续的测试。

最终的实验结果是首先PC要能够ping通ISATAP Router的IPv4地址也就是2.2.2.2。然后PC与ISATAP router建立隧道并拿到IPv6地址,而且要能够ping通20001:8888::8

设备配置

PC1的配置:

网卡配置IP地址1.1.1.1/24,网关为1.1.1.254

安装IPv6协议栈,此时Win7会自动产生一个ISATAP隧道虚拟接口:

隧道适配器 isatap.{0DB7233C-89B7-49DB-A8C0-D1AA005F4E6A}:

SW1的配置:

vlan 10

vlan 20

interface fast0/1

switchport access vlan 10

interface fast0/15

switchport access vlan 20

interface vlan 10

ip address 1.1.1.254 255.255.255.0

interface vlan 20

ip address 2.2.2.254 255.255.255.0

Router的配置:

ipv6 unicast-routing

!

interface FastEthernet0/0

ip address 2.2.2.2 255.255.255.0

no shutdown

!

interface Tunnel1

ip unnumbered  fastEthernet 0/0               !! 这个IPv4地址就是ISATAP隧道的目的地址ipv6 enableipv6 address 2001:1111::/64 eui-64            !! 这个IPv6地址的前缀会被通告给ISATAP主机no ipv6 nd suppress-ratunnel source fastEthernet 0/0

tunnel mode ipv6ip isatap

!

interface loopback0

ipv6 enable

ipv6 address 2001:8888::8/64

!

ip route 0.0.0.0 0.0.0.0 2.2.2.254

注意ISATAP路由器的配置,关键部分在于tunnel的配置,tunnel模式是ipv6ip isatap的,同时注意在tunnel这里配置的IPV4地址,就是对应的ISATAP主机上配置的那条CMD命令里ISATAP路由器的地址。

我们这个实验演示的是tunnel直接用fa0/0的地址,当然,tunnel也可以有自己的IPv4地址,只要保证ISATAP主机到这个IPv4地址路由可达就行。

另外tunnel的IPv6地址,对应的前缀就是稍后要下发给ISATAP主机的前缀,这个实验中,我们tunnel的IPv6全局单播地址使用的是前缀+eui-64的配置方式,这里的eui-64实际上指的就是前面我们介绍的那个特殊的64bits接口标识。

实验测试

我们首先在路由器上查看一下:

R2#show ipv6 interface brief

FastEthernet0/0            [up/up]

Tunnel0                    [up/up]

FE80::5EFE:202:202

2001:1111::5EFE:202:202

注意,这里的Linklocal地址:FE80::5EFE:202:202就是一个ISATAP 格式的地址,最后的64bits是由32bits的0000:5EFE加上32bits的接口IPv4地址(这里是2.2.2.2)构成的。

如下图。而IPv6全局单播地址,也是使用64bits的接口标识构成的,当然,你也可以手工配置IPv6全局单播地址,不一定要使用接口标识。

接下去,我们在ISATAP主机上,CMD模式下输入:

netsh interface ipv6 isatap set router 2.2.2.2PC就会开始发送RS,报文如下:

我们看到这个RS的ICMPv6报文外是IPv6的头,IPv6的头外是IPv4的头。注意外层IPv4的头,源是1.1.1.1,目的是2.2.2.2。然后内层IPv6的头,源是ISATAP主机的Linklocal地址,目的是ISATAP路由器的Linklocal地址。

在路由器收到RS后回回应一个RA:

路由器回应的这个RA里,就有一个ICMPv6的Option,其中就包含着ISATAP路由器的IPv6前缀。而ISATAP主机就可以根据这个前缀,结合自己的接口标识构建IPv6地址。

最终PC获取到的IPv4地址如下:

我们看到PC首先根据自己本地配置的IPv4地址:1.1.1.1,生成64bits的接口ID:

这个64bits的接口ID,与从ISATAP路由器获取到的IPv6全局单播地址前缀2001:1111::的前64bits,构成了PC的IPv6全局单播地址:2001:1111::200:5efe:1.1.1.1。

这个64bits的接口ID,与FE80::/10构成了PC的Linklocal地址:fe80::200:5efe:1.1.1.1。同时,PC将ISATAP路由器的Linklocal地址fe80::5efe:2.2.2.2设置为默认网关。

当主机与其它IPv6主机进行通讯时,从隧道接口转发,将从报文的下一跳IPv6地址中取出IPv4地址作为IPv4封装的目的地址。如果目的主机在本站点内,则下一跳就是目的主机本身,如果目的主机不在本站点内,则下一跳为ISATAP路由器的地址。

我们最后再做一个测试,就是ISATAP主机去ping 2008:8888::1。

这个到达ISATAP的loopback的IPv6数据包,被套上一个ISATAP的IPv4隧道头,然后传给ISATAP路由器,由路由器进行下一步的IPv6转发。

以上就是IPv6之ISATAP隧道技术详解(二)的介绍,Vecloud为客户提供丰富的IPV6网络专线解决方案,主要国家包含日本、韩国、伦敦、法兰克福、洛杉矶、圣何塞、华盛顿、印度、迪拜、南非等均可随时提供网络专线和IP传输服务。

400-028-9798
vecloud-微云