ISATAP+6to4综合隧道满足IPV6访问

实验涉及原理简单介绍

在RFC4214中规范的站点内自动隧道寻址协议(ISATAP)设计用于在私有或者全局编制的IPv4站点内部,提供一个自动的隧道机制。ISATAP使用ip-protocol协议号41在IPv4中封装IPv6,ISATAP将底层IPV4基础设施看成是一个NBMA链路层。在路由器配置之后,在站点内知道这个机制的任何客户端能够自动建立一条到路由器的隧道。

ISATAP的关键是ISATAP格式接口ID的概念。在ISATAP的情况下,接口ID高32位是0000:5efe;其他32位是接口的IPv4地址。这个接口ID能够被添加在链路本地,唯一本地或全局单播的后面。配置一个有IPv4地址的主机,之后激活ISATAP,基于前面的描述的机制自动产生一个链路本地地址(fe80)。然后开始执行ISATAP服务的域名查找 。之后能建立一条到路由器的ISATAP隧道。在路由器的隧道接口上明确关闭RA抑制的前提下,客户端发送一条路由请求RS。他将接收到必要的配置以执行自动地址配置。ISATAP特别适合于为一个IPV4站点内个别的,隔离的双栈节点提供IPv6访问


 

      而在RFC3056中规范的6to4是一种自动建立隧道的机制,与ISATAP不同,这种机制使相互隔离的IPv6孤岛通过使用6to4寻址规范。以最小的配置代价在仅支持IPv4的骨干上互联。特别的隧道的目的地址不需要显示配置,它从分组的目的IPv6地址内嵌的IPv4地址中动态获得。6to4的固定地址格式是2002:A:B:C:D::/48其中A.B.C.D是ipV4地址。

 

                  实验部分

 ISATAP+6to4综合隧道满足IPV6访问_第1张图片

Site-A和Site-B是一个混合的网络,既有IPv6设施,也有IPv4设施。最中间是IPv4主干网络。隔离了Site-A和Site-B中的IPV6网络部分,现在需要隔离的Site-A和Site-B需能通过IPv4主干网以IPv6的方式相互访问。

Site-B中有两台路由器分别为二个不同子网中的双栈主机提供IPv6访问需求。需要二个子网中的双栈主机相互以IPv6访问。Site-A中有一台ISATAP路由器,IPV6网络还有一台IPv6服务器。需要所有用户都能以IPv6方式访问服务器。R4,5,7是三台6到4中继路由器

      所有路由器要开启IPv6转发

基本配置


R1#(其他ISATAP路由器类似)

interface Tunnel0

ipv6 address 2002:2401:101::/64 eui-64

 no ipv6 nd suppress-ra

 ipv6 ospf 30 area 0

 tunnel source 192.168.1.1

 tunnel mode ipv6ip isatap

!

interface FastEthernet0/0

 ip address 192.168.3.1 255.255.255.0

!

interface FastEthernet1/0

 ip address 192.168.1.1 255.255.255.0

!

interface FastEthernet2/0

ipv6 address 2002:2401:101:4::1/64

 ipv6 ospf 30 area 0

ip route 192.168.2.0 255.255.255.0 FastEthernet1/0

R4#

interface Tunnel0

ipv6 unnumbered Serial2/0

 tunnel source Loopback0

 tunnel mode ipv6ip 6to4

!

router ospf 30

 log-adjacency-changes

 network 12.12.12.4 0.0.0.0 area 0

 network 23.23.23.4 0.0.0.0 area 0

 network 36.1.1.1 0.0.0.0 area 0

ipv6 route 2002::/16 Tunnel0

ipv6 router ospf 30

redistribute static

R5#

      

interface Tunnel0

ipv6 unnumbered Loopback1

 tunnel source Loopback0

 tunnel mode ipv6ip 6to4

router ospf 30

 log-adjacency-changes

 network 12.12.12.5 0.0.0.0 area 0

 network 13.13.13.5 0.0.0.0 area 0

 network 14.1.1.1 0.0.0.0 area 0

ipv6 route 2002::/16 Tunnel0

ipv6 router ospf 30

 router-id 30.30.5.5

 log-adjacency-changes

 redistribute static

R7#

interface Tunnel0

 no ip address

 no ip redirects

 ipv6 unnumbered Serial2/0

 tunnel source Loopback0

 tunnel mode ipv6ip 6to4

router ospf 30

 log-adjacency-changes

 network 13.13.13.7 0.0.0.0 area 0

 network 23.23.23.7 0.0.0.0 area 0

 network 25.1.1.1 0.0.0.0 area 0

ipv6 route 2002::/16 Tunnel0

ipv6 router ospf 30

 log-adjacency-changes

 redistribute static

 

配置LINUX主机ISATAP隧道

ISATAP+6to4综合隧道满足IPV6访问_第2张图片

查看隧道是否成功启动


 ISATAP+6to4综合隧道满足IPV6访问_第3张图片

测试Site-B站点内双栈主机相互以IPv6方式访问


Site-B内主机以IPV6方式穿越IPV4主干网访问Site-A服务器


Site-B和Site-A之间双栈主机穿越IPV4主干网互相以IPv6访问


 

 

都成功了,IPV6孤岛网络实现了穿越IPv4主干网相互访问,并且站点内部的双栈主机也能穿越站点内部IPv4网络以IPv6方式访问出去

通信过程(以站内访问服务器为例)

①ISATAP主机获得ISATAP地址(站点本地地址),并将下一跳跃点next hop设为ISATAP 路由器的ISATAP地址(站点本地地址);

②当ISATAP主机送出目的地为所在子网络以外的地址时,ISATAP先将IPv6数据包进行IPv4封装,然后以隧道方式送到ISATAP 路由器的IPv4地址;

以下是在R4接口F0/0抓到的一个ICMP-echo报文

可以看到整个报文的结构:IPv4封装IPv6报文。并利用IPv4地址在IPv4网络中路由

IPv6源地址:2011:1::5efe:ac10:102(后32是主机IPv4地址172.16.1.2)

IPv6目的地址:2001::2050:79ff:fe66:6800(IPv6服务器地址)

IPv4头部的源地址从IPv6地址中获取,目的地址为R1路由器的地址(172.26.2.1)

注意到IPv4的协议号是41(用于ISATAP)

ISATAP+6to4综合隧道满足IPV6访问_第4张图片

③ISATAP 路由器除去IPv4包头后,将IPv6 数据包转送给IPv6网络中的目的IPv6服务器;

在R1 F0/0接口抓包。可以看到IPv4头部已经被剥掉。只剩IPv6头部在IPv6网络中路由

ISATAP+6to4综合隧道满足IPV6访问_第5张图片

④IPv6服务器直接将应答的IPv6数据包发回给ISATAP网络;

服务器回包

ISATAP+6to4综合隧道满足IPV6访问_第6张图片

⑤在应答IPv6数据包经过ISATAP路由器时,ISATAP路由器先将应答IPv6数据包进行IPv4封装,然后再转发给ISATAP主机;

ISATAP路由器R1收到服务器的IPv6报文后,根据IPv6目的地址提取出对应的双栈主机IPv4地址(172.16.1.2),并对IPv6报文进行IPv4封装。

ISATAP+6to4综合隧道满足IPV6访问_第7张图片

在R4(ipv4网络内部路由器)抓包,可以看到报文任然是一个被IPv4封装的IPv6报文,从ISATAP路由器到R4仍然是根据头部IPv4地址进行的路由

ISATAP+6to4综合隧道满足IPV6访问_第8张图片

⑥ISATAP主机收到应答数据包后,将数据包去掉IPv4包头,恢复成原始IPv6数据包。

虚拟机上没装wireshark,就不抓报了。不过结果应该很清楚,双栈主机收到的报文一定是一个已经剥掉IPv4头部的IPv6报文

通过上述步骤,ISATAP主机与IPv6网络中的IPv6服务器完成了一次完整的数据通信过程。

你可能感兴趣的:(网络技术)