• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

06-三层技术-IP业务配置指导

目录

09-IPv6过渡技术配置

本章节下载 09-IPv6过渡技术配置  (320.53 KB)

09-IPv6过渡技术配置


1 IPv6过渡技术

1.1  IPv6过渡技术简介

在IPv6成为主流协议之前,首先使用IPv6协议栈的网络希望能与当前仍被IPv4支撑着的互联网进行正常通信,因此必须开发出IPv4和IPv6互通技术以保证IPv4能够平稳过渡到IPv6。互通技术应该对信息传递做到高效无缝。目前已经出现了多种过渡技术,这些技术各有特点,用于解决不同过渡时期、不同环境的通信问题。

1. 双协议栈

双协议栈是一种最简单直接的过渡机制。同时支持IPv4协议和IPv6协议的网络节点称为双协议栈节点。当双协议栈节点配置IPv4地址和IPv6地址后,就可以在相应接口上转发IPv4和IPv6报文。当一个上层应用同时支持IPv4和IPv6协议时,根据协议要求可以选用TCP或UDP作为传输层的协议,但在选择网络层协议时,它会优先选择IPv6协议栈。双协议栈技术适合IPv4网络节点之间或者IPv6网络节点之间通信,是所有过渡技术的基础。但是,这种技术要求运行双协议栈的节点有一个全球唯一的地址,实际上没有解决IPv4地址资源匮乏的问题。

2. 6PE

6PE是一种过渡技术,ISP可以利用已有的IPv4骨干网为分散用户的IPv6网络提供接入能力。

6PE的主要思想是:6PE(IPv6 Provider Edge,IPv6供应商边缘)路由器将用户的IPv6路由信息转换为带有标签的IPv6路由信息,并且通过IBGP(Internal Border Gateway Protocol,内部边界网关协议)会话扩散到ISP的IPv4骨干网中。6PE路由器转发IPv6报文时,首先会将进入骨干网隧道的数据流打上标签。隧道可以是GRE隧道或者MPLS LSP等。

图1-1 6PE组网图

 

当ISP想利用自己原有的IPv4/MPLS网络,使其通过MPLS具有IPv6流量交换能力时,只需要升级PE路由器就可以了。所以对于运营商来说,使用6PE技术作为IPv6过渡机制无疑是一个高效的解决方案,其操作风险也会小得多。6PE的相关介绍和配置请参见“三层技术-IP路由配置指导”中的“BGP高级配置”。

3. 隧道技术

隧道是一种封装技术,它利用一种网络协议来传输另一种网络协议,即利用一种网络传输协议,将其他协议产生的数据报文封装在它自己的报文中,然后在网络中传输,如IPv6 over IPv4隧道技术和IPv4 over IPv6隧道技术。

本文只介绍IPv6 over IPv4隧道技术和IPv4 over IPv6隧道技术。如无特殊说明,下文中的隧道技术均指此类隧道。

1.2  IPv6 over IPv4隧道

1.2.1  IPv6 over IPv4隧道原理

图1-2所示,IPv6 over IPv4隧道是在IPv6数据报文前封装上IPv4的报文头,通过隧道使IPv6报文穿越IPv4网络,实现隔离的IPv6网络互通。IPv6 over IPv4隧道两端的设备必须支持IPv4/IPv6双协议栈,即同时支持IPv4协议和IPv6协议。

图1-2 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报文。

1.3  IPv4 over IPv6隧道

1.3.1  IPv4 over IPv6隧道原理

随着IPv6网络的广泛部署,IPv6网络将逐渐取代IPv4网络,占据主导地位。尚未被IPv6网络取代的IPv4网络将形成孤岛,需要通过IPv6网络互通。IPv4 over IPv6隧道在IPv4报文上封装IPv6的报文头,通过隧道使IPv4报文穿越IPv6网络,从而实现通过IPv6网络连接隔离的IPv4网络孤岛。

图1-3 IPv4 over IPv6隧道原理图

 

IPv4报文在隧道中传输经过封装与解封装两个过程,以图1-3为例说明这两个过程:

·     封装过程

Device A连接IPv4网络的接口收到IPv4报文后,首先交由IPv4协议栈处理。IPv4协议栈根据IPv4报文头中的目的地址判断该报文需要通过隧道进行转发,则将此报文发给Tunnel接口。

Tunnel接口收到此报文后添加IPv6报文头,IPv6报文头中源IPv6地址为隧道的源端地址,目的IPv6地址为隧道的目的端地址。封装完成后将报文交给IPv6模块处理。IPv6协议模块根据IPv6报文头的目的地址重新确定如何转发此报文。

·     解封装过程

解封装过程和封装过程相反。从连接IPv6网络的接口接收到IPv6报文后,将其送到IPv6协议模块。IPv6协议模块检查IPv6报文封装的协议类型。若封装的协议为IPv4,则报文进入隧道处理模块进行解封装处理。解封装之后的IPv4报文被送往IPv4协议模块进行二次路由处理。


2 配置IPv6 over IPv4隧道

2.1  配置IPv6 over IPv4手动隧道

2.1.1  配置限制和指导

·     在本端设备上为隧道指定的目的端地址,应该与在对端设备上为隧道指定的源端地址相同;在本端设备上为隧道指定的源端地址,应该与在对端设备上为隧道指定的目的端地址相同。

·     在同一台设备上,隧道模式相同的Tunnel接口建议不要同时配置完全相同的源端地址和目的端地址。

·     如果封装前IPv6报文的目的IPv6地址与Tunnel接口的IPv6地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv6地址的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,指定到达目的IPv6地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址。用户也可以配置动态路由,在Tunnel接口使能动态路由协议。在隧道的两端都要进行此项配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“IPv6静态路由”或其他路由协议配置。

·     本配置任务仅列出了配置IPv6 over IPv4手动隧道涉及的隧道接口相关的基础配置命令(interface tunnelsourcedestinationtunnel dfbit enable命令),关于隧道接口的更多配置命令的详细介绍,请参见“接口管理命令参考”中的“隧道接口”。

2.1.2  配置步骤

(1)     进入系统视图。

system-view

(2)     进入模式为IPv6 over IPv4手动隧道的Tunnel接口视图。

interface tunnel number [ mode ipv6-ipv4 ]

(3)     设置Tunnel接口的IPv6地址。

详细配置方法,请参见“三层技术-IP业务配置指导”中的“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.3  IPv6 over IPv4手动隧道典型配置举例

1. 组网需求

图2-1所示,两个IPv6网络分别通过Switch A和Switch B与IPv4网络连接,要求在Switch A和Switch B之间建立IPv6 over IPv4隧道,使两个IPv6网络可以互通。由于隧道终点的IPv4地址不能从IPv6报文的目的地址中自动获取,因此,需要配置IPv6 over IPv4手动隧道。

2. 组网图

图2-1 IPv6 over IPv4手动隧道组网图

 

3. 配置准备

在开始下面的配置之前,请确保Switch A和Switch B上已经创建相应的VLAN接口,且两者之间IPv4报文路由可达。

4. 配置步骤

(1)     配置Switch A

# 配置接口HundredGigE1/0/2(隧道的实际物理接口)加入VLAN100。

<SwitchA> system-view

[SwitchA] vlan 100

[SwitchA-vlan100] port hundredgige 1/0/2

[SwitchA-vlan100] quit

# 配置接口Vlan-interface100的IP地址。

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] ip address 192.168.100.1 255.255.255.0

[SwitchA-Vlan-interface100] quit

# 配置接口HundredGigE1/0/1加入VLAN101。

[SwitchA] vlan 101

[SwitchA-vlan101] port hundredgige 1/0/1

[SwitchA-vlan101] quit

# 配置接口Vlan-interface101的IPv6地址。

[SwitchA] interface vlan-interface 101

[SwitchA-Vlan-interface101] ipv6 address 3002::1 64

[SwitchA-Vlan-interface101] quit

# 创建模式为IPv6 over IPv4手动隧道的接口Tunnel1。

[SwitchA] interface tunnel 1 mode ipv6-ipv4

# 配置Tunnel1接口的IPv6地址。

[SwitchA-Tunnel1] ipv6 address 3001::1/64

# 配置Tunnel1接口的源接口为Vlan-interface100。

[SwitchA-Tunnel1] source vlan-interface 100

# 配置Tunnel1接口的目的端地址(Switch B的Vlan-interface100的IP地址)。

[SwitchA-Tunnel1] destination 192.168.50.1

[SwitchA-Tunnel1] quit

# 配置从Switch A经过Tunnel1接口到IPv6 network 2的静态路由。

[SwitchA] ipv6 route-static 3003:: 64 tunnel 1

(2)     配置Switch B

# 配置接口HundredGigE1/0/2(隧道的实际物理接口)加入VLAN100。

<SwitchB> system-view

[SwitchB] vlan 100

[SwitchB-vlan100] port hundredgige 1/0/2

[SwitchB-vlan100] quit

# 配置接口Vlan-interface100的IP地址。

[SwitchB] interface vlan-interface 100

[SwitchB-Vlan-interface100] ip address 192.168.50.1 255.255.255.0

[SwitchB-Vlan-interface100] quit

# 配置接口HundredGigE1/0/1加入VLAN101。

[SwitchB] vlan 101

[SwitchB-vlan101] port hundredgige 1/0/1

[SwitchB-vlan101] quit

# 配置接口Vlan-interface101的IPv6地址。

[SwitchB] interface vlan-interface 101

[SwitchB-Vlan-interface101] ipv6 address 3003::1 64

[SwitchB-Vlan-interface101] quit

# 创建模式为IPv6 over IPv4手动隧道的接口Tunnel1。

[SwitchB] interface tunnel 1 mode ipv6-ipv4

# 配置Tunnel1接口的IPv6地址。

[SwitchB-Tunnel1] ipv6 address 3001::2/64

# 配置Tunnel1接口的源接口为Vlan-interface100。

[SwitchB-Tunnel1] source vlan-interface 100

# 配置Tunnel1接口的目的端地址(Switch A的Vlan-interface100的IP地址)。

[SwitchB-Tunnel1] destination 192.168.100.1

[SwitchB-Tunnel1] quit

# 配置从Switch B经过Tunnel1接口到IPv6 network 1的静态路由。

[SwitchB] ipv6 route-static 3002:: 64 tunnel 1

5. 验证配置

# 完成上述配置后,在Switch A和Switch B上分别执行display ipv6 interface命令,可以看出Tunnel1接口处于up状态。(具体显示信息略)

# 从Switch A和Switch B上可以Ping通对端的Vlan-int101接口的IPv6地址。下面仅以Switch A为例。

[SwitchA] 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

2.2  配置丢弃含有IPv4兼容IPv6地址的IPv6报文

1. 配置限制和指导

IPv4兼容IPv6自动隧道不支持配置丢弃含有IPv4兼容IPv6地址的IPv6报文。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置丢弃含有IPv4兼容IPv6地址的IPv6报文。

tunnel discard ipv4-compatible-packet

缺省情况下,不会丢弃含有IPv4兼容IPv6地址的IPv6报文。

本命令的详细介绍,请参见“接口管理命令参考”中的“隧道接口”。

2.3  开启隧道报文的分片检查功能

(1)     进入系统视图。

system-view

(2)     开启隧道报文的分片检查功能。

tunnel ipv6-fragmentation-check enable

缺省情况下,隧道报文的分片检查功能处于关闭状态。

2.4  IPv6 over IPv4隧道显示和维护

2.4.1  显示IPv6 over IPv4隧道接口的信息

可在任意视图下执行以下命令:

·     显示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 ]

本命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“IPv6基础”。

2.4.2  清除IPv6 over IPv4隧道的统计信息

请在用户视图下执行以下命令:

·     清除IPv6 over IPv4隧道接口的统计信息。

reset counters interface [ tunnel [ number ] ]

本命令的详细介绍,请参见“接口管理命令参考”中的“接口公共”。

·     清除IPv6 over IPv4隧道接口的IPv6统计信息。

reset ipv6 statistics [ slot slot-number ]

 


3 配置IPv4 over IPv6隧道

3.1  配置IPv4 over IPv6手动隧道

3.1.1  配置限制和指导

·     在本端设备上为隧道指定的目的端地址,应该与在对端设备上为隧道指定的源端地址相同;在本端设备上为隧道指定的源端地址,应该与在对端设备上为隧道指定的目的端地址相同。

·     在同一台设备上,隧道模式相同的Tunnel接口建议不要同时配置完全相同的源端地址和目的端地址。

·     如果封装前IPv4报文的目的IPv4地址与Tunnel接口的IPv4地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv4地址的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,指定到达目的IPv4地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址。用户也可以配置动态路由,在Tunnel接口使能动态路由协议。在隧道的两端都要进行转发路由的配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“静态路由”或其他路由协议配置。

·     本配置任务仅列出了配置IPv4 over IPv6隧道涉及的隧道接口相关的基础配置命令(interface tunnelsourcedestination命令),关于隧道接口的更多配置命令的详细介绍,请参见“接口管理命令参考”中的“隧道接口”。

3.1.2  配置步骤

(1)     进入系统视图。

system-view

(2)     进入模式为IPv4 over IPv6隧道或IPv6隧道的Tunnel接口视图。

interface tunnel number [ mode { ipv4-ipv6 | ipv6 } ]

(3)     设置Tunnel接口的IPv4地址。

ip address ip-address { mask | mask-length } [ sub ]

(4)     设置隧道的源端地址或源接口。

source { ipv6-address | interface-type interface-number }

缺省情况下,未设置隧道的源端地址和源接口。

如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IPv6地址;如果设置的是隧道的源接口,则该接口下的最小地址将作为封装后隧道报文的源IPv6地址。

(5)     设置隧道的目的端地址。

destination ipv6-address

缺省情况下,未设置隧道的目的端地址。

隧道的目的端地址是对端接收报文的接口的地址,该地址将作为封装后隧道报文的目的IPv6地址。

3.1.3  IPv4 over IPv6手动隧道典型配置举例

1. 组网需求

两个IPv4网络分别通过Switch A和Switch B与IPv6网络连接。通过在Switch A和Switch B之间建立IPv4 over IPv6隧道,实现两个IPv4网络穿越IPv6网络互联。

2. 组网图

图3-1 IPv4 over IPv6隧道组网图

3. 配置准备

在开始下面的配置之前,请确保Switch A和Switch B上已经创建相应的VLAN接口,且两者之间IPv6报文路由可达。

4. 配置步骤

(1)     配置Switch A

# 配置接口HundredGigE1/0/1加入VLAN100。

<SwitchA> system-view

[SwitchA] vlan 100

[SwitchA-vlan100] port hundredgige 1/0/1

[SwitchA-vlan100] quit

# 配置接口Vlan-interface100的IP地址。

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] ip address 30.1.1.1 255.255.255.0

[SwitchA-Vlan-interface100] quit

# 配置接口HundredGigE1/0/2(隧道的实际物理接口)加入VLAN101。

[SwitchA] vlan 101

[SwitchA-vlan101] port hundredgige 1/0/2

[SwitchA-vlan101] quit

# 配置接口Vlan-interface101的IPv6地址。

[SwitchA] interface vlan-interface 101

[SwitchA-Vlan-interface101] ipv6 address 2001::1:1 64

[SwitchA-Vlan-interface101] quit

# 创建模式为IPv6隧道的接口Tunnel1。

[SwitchA] interface tunnel 1 mode ipv6

# 配置Tunnel1接口的IP地址。

[SwitchA-Tunnel1] ip address 30.1.2.1 255.255.255.0

# 配置Tunnel1接口的源端地址(Vlan-interface101的IP地址)。

[SwitchA-Tunnel1] source 2001::1:1

# 配置Tunnel1接口的目的端地址(Switch B的Vlan-interface101的IP地址)。

[SwitchA-Tunnel1] destination 2002::2:1

[SwitchA-Tunnel1] quit

# 配置从Switch A经过Tunnel1接口到IPv4 network 2的静态路由。

[SwitchA] ip route-static 30.1.3.0 255.255.255.0 tunnel 1

(2)     配置Switch B

# 配置接口HundredGigE1/0/1加入VLAN100。

<SwitchB> system-view

[SwitchB] vlan 100

[SwitchB-vlan100] port hundredgige 1/0/1

[SwitchB-vlan100] quit

# 配置接口Vlan-interface100的IP地址。

[SwitchB] interface vlan-interface 100

[SwitchB-Vlan-interface100] ip address 30.1.3.1 255.255.255.0

[SwitchB-Vlan-interface100] quit

# 配置接口HundredGigE1/0/2(隧道的实际物理接口)加入VLAN101。

[SwitchB] vlan 101

[SwitchB-vlan101] port hundredgige 1/0/2

[SwitchB-vlan101] quit

# 配置接口Vlan-interface101的IPv6地址。

[SwitchB] interface vlan-interface 101

[SwitchB-Vlan-interface101] ipv6 address 2002::2:1 64

[SwitchB-Vlan-interface101] quit

# 创建模式为IPv6隧道的接口Tunnel2。

[SwitchB] interface tunnel 2 mode ipv6

# 配置Tunnel2接口的IP地址。

[SwitchB-Tunnel2] ip address 30.1.2.2 255.255.255.0

# 配置Tunnel2接口的源端地址(Vlan-interface101的IP地址)。

[SwitchB-Tunnel2] source 2002::2:1

# 配置Tunnel2接口的目的端地址(Switch A的Vlan-interface101的IP地址)。

[SwitchB-Tunnel2] destination 2001::1:1

[SwitchB-Tunnel2] quit

# 配置从Switch B经过Tunnel2接口到IPv4 network 1的静态路由。

[SwitchB] ip route-static 30.1.1.0 255.255.255.0 tunnel 2

5. 验证配置

# 完成上述配置后,在Switch A和Switch B上分别执行display interface tunnel命令,可以看出Tunnel接口处于up状态。(具体显示信息略)

# 从Switch A和Switch B上可以Ping通对端的Vlan-interface100接口的IPv4地址。下面仅以Switch A为例。

[SwitchA] ping -a 30.1.1.1 30.1.3.1

Ping 30.1.3.1 (30.1.3.1) from 30.1.1.1: 56 data bytes, press CTRL_C to break

56 bytes from 30.1.3.1: icmp_seq=0 ttl=255 time=3.000 ms

56 bytes from 30.1.3.1: icmp_seq=1 ttl=255 time=1.000 ms

56 bytes from 30.1.3.1: icmp_seq=2 ttl=255 time=0.000 ms

56 bytes from 30.1.3.1: icmp_seq=3 ttl=255 time=1.000 ms

56 bytes from 30.1.3.1: icmp_seq=4 ttl=255 time=1.000 ms

 

--- Ping statistics for 30.1.3.1 ---

5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss

round-trip min/avg/max/std-dev = 0.000/1.200/3.000/0.980 ms

3.2  IPv4 over IPv6隧道显示和维护

3.2.1  显示IPv4 over IPv6隧道接口的信息

可在任意视图下执行以下命令:

·     显示IPv4 over IPv6隧道接口的信息。

display tunnel-interface [ number ]

本命令的详细介绍,请参见“接口管理命令参考”中的“隧道接口”。

·     显示IPv4 over IPv6隧道接口的相关信息。

display interface [ tunnel [ number ] ] [ brief [ description | down ] ]

本命令的详细介绍,请参见“接口管理命令参考”中的“隧道接口”。

3.2.2  清除IPv4 over IPv6隧道的统计信息

请在用户视图下执行以下命令,清除IPv4 over IPv6 隧道的统计信息。

reset counters interface [ tunnel [ number ] ]

本命令的详细介绍,请参见“接口管理命令参考”中的“接口公共命令”。

 

 

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们