26-IPv6过渡技术配置
本章节下载: 26-IPv6过渡技术配置 (271.61 KB)
在IPv6成为主流协议之前,首先使用IPv6协议栈的网络希望能与当前仍被IPv4支撑着的互联网进行正常通信,因此必须开发出IPv4和IPv6互通技术以保证IPv4能够平稳过渡到IPv6。互通技术应该对信息传递做到高效无缝。
隧道是一种封装技术,它利用一种网络协议来传输另一种网络协议,即利用一种网络传输协议,将其他协议产生的数据报文封装在它自己的报文中,然后在网络中传输,如IPv6 over IPv4隧道技术。
如图1-1所示,IPv6 over IPv4隧道是在IPv6数据报文前封装上IPv4的报文头,通过隧道使IPv6报文穿越IPv4网络,实现隔离的IPv6网络互通。IPv6 over IPv4隧道两端的设备必须支持IPv4/IPv6双协议栈,即同时支持IPv4协议和IPv6协议。
图1-1 IPv6 over IPv4隧道原理图
IPv6 over IPv4隧道对报文的处理过程如下:
(1) IPv6网络中的主机发送IPv6报文,该报文到达隧道的源端设备Device A。
(2) Device A根据路由表判定该报文要通过隧道进行转发后,在IPv6报文前封装上IPv4的报文头,通过隧道的实际物理接口将报文转发出去。IPv4报文头中的源IP地址为隧道的源端地址,目的IP地址为隧道的目的端地址。
(3) 封装报文通过隧道到达隧道目的端设备(或称隧道终点)Device B,Device B判断该封装报文的目的地是本设备后,将对报文进行解封装。
(4) Device B根据解封装后的IPv6报文的目的地址处理该IPv6报文。如果目的地就是本设备,则将IPv6报文转给上层协议处理;否则,查找路由表转发该IPv6报文。
· 在本端设备上为隧道指定的目的端地址,应该与在对端设备上为隧道指定的源端地址相同;在本端设备上为隧道指定的源端地址,应该与在对端设备上为隧道指定的目的端地址相同。
· 在同一台设备上,隧道模式相同的Tunnel接口建议不要同时配置完全相同的源端地址和目的端地址。
· 如果封装前IPv6报文的目的IPv6地址与Tunnel接口的IPv6地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv6地址的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,指定到达目的IPv6地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址。用户也可以配置动态路由,在Tunnel接口使能动态路由协议。在隧道的两端都要进行此项配置,配置的详细情况请参见“网络互通配置指导”中的“IPv6静态路由”或其他路由协议配置。
· 本配置任务仅列出了配置IPv6 over IPv4手动隧道涉及的隧道接口相关的基础配置命令(interface tunnel、source、destination和tunnel dfbit enable命令),关于隧道接口的更多配置命令的详细介绍,请参见“接口管理命令参考”中的“隧道接口”。
(1) 进入系统视图。
system-view
(2) 进入模式为IPv6 over IPv4手动隧道的Tunnel接口视图。
interface tunnel number [ mode ipv6-ipv4 ]
(3) 设置Tunnel接口的IPv6地址。
详细配置方法,请参见“网络互通配置指导”中的“IPv6基础”。
(4) 设置隧道的源端地址或源接口。
source { ipv4-address | interface-type interface-number }
缺省情况下,未设置隧道的源端地址和源接口。
如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IP地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后隧道报文的源IP地址。
(5) 设置隧道的目的端地址。
destination ipv4-address
缺省情况下,未设置隧道的目的端地址。
隧道的目的端地址是对端接收报文的接口的地址,该地址将作为封装后隧道报文的目的地址。
(6) (可选)设置封装后隧道报文的DF(Don’t Fragment,不分片)标志。
tunnel dfbit enable
缺省情况下,未设置隧道报文的不分片标志,即转发隧道报文时允许分片。
如图2-1所示,两个IPv6网络分别通过Device A和Device B与IPv4网络连接,要求在Device A和Device B之间建立IPv6 over IPv4隧道,使两个IPv6网络可以互通。由于隧道终点的IPv4地址不能从IPv6报文的目的地址中自动获取,因此,需要配置IPv6 over IPv4手动隧道。
图2-1 IPv6 over IPv4手动隧道组网图
在开始下面的配置之前,请确保Device A和Device B之间IPv4报文路由可达。
(1) 配置Device A
# 配置接口GigabitEthernet1/0/2的地址。
<DeviceA> system-view
[DeviceA] interface gigabitethernet 1/0/2
[DeviceA-GigabitEthernet1/0/2] ip address 192.168.100.1 255.255.255.0
[DeviceA-GigabitEthernet1/0/2] quit
# 配置接口GigabitEthernet1/0/1的IPv6地址。
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] ipv6 address 3002::1 64
[DeviceA-GigabitEthernet1/0/1] quit
# 创建模式为IPv6 over IPv4手动隧道的接口Tunnel0。
[DeviceA] interface tunnel 0 mode ipv6-ipv4
# 配置Tunnel0接口的IPv6地址。
[DeviceA-Tunnel0] ipv6 address 3001::1/64
# 配置Tunnel0接口的源接口为GigabitEthernet1/0/2。
[DeviceA-Tunnel0] source gigabitethernet 1/0/2
# 配置Tunnel0接口的目的端地址(Device B的GigabitEthernet1/0/2的IP地址)。
[DeviceA-Tunnel0] destination 192.168.50.1
[DeviceA-Tunnel0] quit
# 配置从Device A经过Tunnel0接口到IPv6 network 2的静态路由。
[DeviceA] ipv6 route-static 3003:: 64 tunnel 0
(2) 配置Device B
# 配置接口GigabitEthernet1/0/2的地址。
<DeviceB> system-view
[DeviceB] interface gigabitethernet 1/0/2
[DeviceB-GigabitEthernet1/0/2] ip address 192.168.50.1 255.255.255.0
[DeviceB-GigabitEthernet1/0/2] quit
# 配置接口GigabitEthernet1/0/1的IPv6地址。
[DeviceB] interface gigabitethernet 1/0/1
[DeviceB-GigabitEthernet1/0/1] ipv6 address 3003::1 64
[DeviceB-GigabitEthernet1/0/1] quit
# 创建模式为IPv6 over IPv4手动隧道的接口Tunnel0。
[DeviceB] interface tunnel 0 mode ipv6-ipv4
# 配置Tunnel0接口的IPv6地址。
[DeviceB-Tunnel0] ipv6 address 3001::2/64
# 配置Tunnel0接口的源接口为GigabitEthernet1/0/2。
[DeviceB-Tunnel0] source gigabitethernet 1/0/2
# 配置Tunnel0接口的目的端地址(Device A的GigabitEthernet1/0/2的IP地址)。
[DeviceB-Tunnel0] destination 192.168.100.1
[DeviceB-Tunnel0] quit
# 配置从Device B经过Tunnel0接口到IPv6 network 1的静态路由。
[DeviceB] ipv6 route-static 3002:: 64 tunnel 0
# 完成上述配置后,在Device A和Device B上分别执行display ipv6 interface命令,可以看出Tunnel0接口处于up状态。(具体显示信息略)
# 从Device A和Device B上可以Ping通对端的GigabitEthernet1/0/1接口的IPv6地址。下面仅以Device A为例。
[DeviceA] ping ipv6 3003::1
Ping6(56 data bytes) 3001::1 --> 3003::1, press CTRL_C to break
56 bytes from 3003::1, icmp_seq=0 hlim=64 time=45.000 ms
56 bytes from 3003::1, icmp_seq=1 hlim=64 time=10.000 ms
56 bytes from 3003::1, icmp_seq=2 hlim=64 time=4.000 ms
56 bytes from 3003::1, icmp_seq=3 hlim=64 time=10.000 ms
56 bytes from 3003::1, icmp_seq=4 hlim=64 time=11.000 ms
--- Ping6 statistics for 3003::1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 4.000/16.000/45.000/14.711 ms
· ISATAP隧道不需要配置隧道的目的端地址,因为隧道的目的端地址可以通过ISATAP地址中嵌入的IPv4地址自动获得。
· 对于自动隧道,隧道模式相同的Tunnel接口建议不要同时配置完全相同的源端地址。
· 如果封装前IPv6报文的目的IPv6地址与Tunnel接口的IPv6地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv6地址的转发路由,以便需要进行封装的报文能正常转发。对于自动隧道,用户只能配置静态路由,指定到达目的IPv6地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址,不支持动态路由。在隧道的两端都要进行转发路由的配置,配置的详细情况请参见“网络互通配置指导”中的“IPv6静态路由”。
· 本配置任务仅列出了配置ISATAP隧道涉及的隧道接口相关的基础配置命令(interface tunnel、source和tunnel dfbit enable命令),关于隧道接口的更多配置命令的详细介绍,请参见“接口管理命令参考”中的“隧道接口”。
(1) 进入系统视图。
system-view
(2) 进入模式为ISATAP隧道的Tunnel接口视图。
interface tunnel number [ mode ipv6-ipv4 isatap ]
(3) 设置Tunnel接口的IPv6地址。
详细配置方法,请参见“网络互通配置指导”中的“IPv6基础”。
(4) 设置隧道的源端地址或源接口。
source { ipv4-address | interface-type interface-number }
缺省情况下,未设置隧道的源端地址和源接口。
如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IP地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后隧道报文的源IP地址。
(5) (可选)设置封装后隧道报文的DF(Don’t Fragment,不分片)标志。
tunnel dfbit enable
缺省情况下,未设置隧道报文的不分片标志,即转发隧道报文时允许分片。
如图2-2所示,IPv6网络和IPv4网络通过ISATAP交换机相连,在IPv4网络侧分布着一些IPv6主机。要求将IPv4网络中的IPv6主机通过ISATAP隧道接入到IPv6网络。
图2-2 ISATAP隧道组网图
(1) 配置Switch
# 配置接口GigabitEthernet1/0/1加入VLAN100。
<Switch> system-view
[Switch] vlan 100
[Switch-vlan100] port gigabitethernet 1/0/1
[Switch-vlan100] quit
# 配置接口Vlan-interface100的IPv6地址。
[Switch] interface vlan-interface 100
[Switch-Vlan-interface100] ipv6 address 3001::1/64
[Switch-Vlan-interface100] quit
# 配置接口GigabitEthernet1/0/2(隧道的实际物理接口)加入VLAN101。
[Switch] vlan 101
[Switch-vlan101] port gigabitethernet 1/0/2
[Switch-vlan101] quit
# 配置接口Vlan-interface101的IP地址。
[Switch] interface vlan-interface 101
[Switch-Vlan-interface101] ip address 1.1.1.1 255.0.0.0
[Switch-Vlan-interface101] quit
# 创建业务环回组1,并配置服务类型为tunnel。
[Switch] service-loopback group 1 type tunnel
# 将接口GigabitEthernet1/0/3加入业务环回组1。
[Switch] interface gigabitethernet 1/0/3
[Switch-GigabitEthernet1/0/3] port service-loopback group 1
[Switch-GigabitEthernet1/0/3] quit
# 创建模式为ISATAP隧道的接口Tunnel0。
[Switch] interface tunnel 0 mode ipv6-ipv4 isatap
# 配置Tunnel0接口采用EUI-64格式形成IPv6地址。
[Switch-Tunnel0] ipv6 address 2001:: 64 eui-64
# 配置Tunnel0接口的源接口为Vlan-interface101。
[Switch-Tunnel0] source vlan-interface 101
# 取消对RA消息发布的抑制,使主机可以通过交换机发布的RA消息获取地址前缀等信息。
[Switch-Tunnel0] undo ipv6 nd ra halt
[Switch-Tunnel0] quit
(2) 配置ISATAP主机
ISATAP主机上的具体配置与主机的操作系统有关,下面仅以Windows XP操作系统为例进行说明。
# 在主机上安装IPv6协议。
C:\>ipv6 install
# 在Windows XP上,ISATAP接口通常为接口2,查看这个ISATAP接口的信息:
C:\>ipv6 if 2
Interface 2: Automatic Tunneling Pseudo-Interface
Guid {48FCE3FC-EC30-E50E-F1A7-71172AEEE3AE}
does not use Neighbor Discovery
does not use Router Discovery
routing preference 1
EUI-64 embedded IPv4 address: 0.0.0.0
router link-layer address: 0.0.0.0
preferred link-local fe80::5efe:1.1.1.2, life infinite
link MTU 1280 (true link MTU 65515)
current hop limit 128
reachable time 42500ms (base 30000ms)
retransmission interval 1000ms
DAD transmits 0
default site prefix length 48
# 配置ISATAP交换机的IPv4地址。
C:\>netsh interface ipv6 isatap set router 1.1.1.1
# 完成上述配置后,再来查看ISATAP接口的信息。
C:\>ipv6 if 2
Interface 2: Automatic Tunneling Pseudo-Interface
Guid {48FCE3FC-EC30-E50E-F1A7-71172AEEE3AE}
does not use Neighbor Discovery
uses Router Discovery
routing preference 1
EUI-64 embedded IPv4 address: 1.1.1.2
router link-layer address: 1.1.1.1
preferred global 2001::5efe:1.1.1.2, life 29d23h59m46s/6d23h59m46s (public)
preferred link-local fe80::5efe:1.1.1.2, life infinite
link MTU 1500 (true link MTU 65515)
current hop limit 255
reachable time 42500ms (base 30000ms)
retransmission interval 1000ms
DAD transmits 0
default site prefix length 48
对比前后的接口信息,我们可以看到主机获取了2001::/64的前缀,自动生成全球单播地址2001::5efe:1.1.1.2,同时还有一行信息“uses Router Discovery”表明主机启用了路由器发现。
# 查看主机上的IPv6路由信息。
C:\>ipv6 rt
2001::/64 -> 2 pref 1if+8=9 life 29d23h59m43s (autoconf)
::/0 -> 2/fe80::5efe:1.1.1.1 pref 1if+256=257 life 29m43s (autoconf)
(3) 配置IPv6主机
# 配置一条到ISATAP交换机隧道的路由。
C:\>netsh interface ipv6 set route 2001::/64 5 3001::1
# 在ISATAP主机上Ping IPv6主机的地址,可以Ping通,表明ISATAP隧道已经成功建立,ISATAP主机可访问IPv6网络中的主机。
C:\>ping 3001::2
Pinging 3001::2 with 32 bytes of data:
Reply from 3001::2: time=1ms
Reply from 3001::2: time=1ms
Reply from 3001::2: time=1ms
Reply from 3001::2: time=1ms
Ping statistics for 3001::2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 1ms, Average = 1ms
可在任意视图下执行以下命令:
· 显示IPv6 over IPv4隧道接口的信息。
display tunnel-interface [ number ]
本命令的详细介绍,请参见“接口管理命令参考”中的“隧道接口”。
· 显示IPv6 over IPv4隧道接口的相关信息。
display interface [ tunnel [ number ] ] [ brief [ description | down ] ]
本命令的详细介绍,请参见“接口管理命令参考”中的“隧道接口”。
· 显示IPv6 over IPv4隧道接口的IPv6相关信息。
display ipv6 interface [ tunnel [ number ] ] [ brief ]
本命令的详细介绍,请参见“网络互通命令参考”中的“IPv6基础”。
请在用户视图下执行以下命令:
· 清除IPv6 over IPv4隧道接口的统计信息。
reset counters interface [ tunnel [ number ] ]
本命令的详细介绍,请参见“接口管理命令参考”中的“接口公共”。
· 清除IPv6 over IPv4隧道接口的IPv6统计信息。
reset ipv6 statistics
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!