• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

06-IP组播配置指导

目录

13-IPv6组播路由与转发配置

本章节下载 13-IPv6组播路由与转发配置  (398.52 KB)

13-IPv6组播路由与转发配置


1 IPv6组播路由与转发

1.1  IPv6组播路由与转发简介

IPv6组播路由与转发中有以下三种表:

·     每个IPv6组播路由协议都有一个协议自身的路由表,如IPv6 PIM路由表。

·     各IPv6组播路由协议的IPv6组播路由信息经过综合形成一个总的IPv6组播路由表,该表由一系列(S,G)表项组成,即一系列由IPv6组播源S向IPv6组播组G发送IPv6组播数据的IPv6组播路由信息。IPv6组播路由表中包含了由一或多种IPv6组播路由协议生成的IPv6组播路由。

·     IPv6组播转发表直接用于控制IPv6组播数据包的转发,它与IPv6组播路由表保持一致,IPv6组播路由表中最优的IPv6组播路由会直接下发到IPv6组播转发表中。

1.1.1  RPF检查机制

IPv6组播路由协议在创建和维护IPv6组播路由表项时,运用了RPF(Reverse Path Forwarding,逆向路径转发)检查机制,以确保IPv6组播数据能够沿正确的路径传输,同时还能避免由于各种原因而造成的环路。

1. RPF检查过程

执行RPF检查的过程如下:

(1)     首先,以“报文源”的IPv6地址为目的地址,分别从IPv6单播路由表和IPv6 MBGP路由表中各选出一条最优路由。

说明 

根据IPv6组播报文传输的具体情况不同,“报文源”所代表的具体含义也不同:

·     如果当前报文沿从组播源到接收者或RP(Rendezvous Point,汇集点)的SPT(Shortest Path Tree,最短路径树)进行传输,则以组播源为“报文源”进行RPF检查。

·     如果当前报文沿从RP到接收者的RPT(Rendezvous Point Tree,共享树)进行传输,或者沿从组播源到RP的组播源侧RPT进行传输,则都以RP为“报文源”进行RPF检查。

·     如果当前报文为BSR(Bootstrap Router,自举路由器)报文,沿从BSR到各路由器的路径进行传输,则以BSR为“报文源”进行RPF检查。

有关SPT、RPT、组播源侧RPT、RP和BSR的详细介绍,请参见“IP组播配置指导”中的“IPv6 PIM”。

 

(2)     然后,从这些最优路由中再选出一条作为RPF路由。选取规则如下:

·     如果配置了按照最长匹配选择路由,则:

¡     选择前缀长度最长的路由。

¡     如果前缀长度相同,则选择路由优先级最高的路由。

¡     如果路由优先级也相同,则按照IPv6 MBGP路由、IPv6单播路由的顺序进行选择。

·     如果没有配置按照最长匹配选择路由,则:

¡     选择路由优先级最高的路由。

¡     如果路由优先级相同,则按照IPv6 MBGP路由、IPv6单播路由的顺序进行选择。

说明

RPF路由中包含有RPF接口和RPF邻居的信息,不论RPF路由为IPv6单播路由还是IPv6 MBGP路由,该路由表项的出接口都是RPF接口,下一跳都是RPF邻居。

 

(3)     最后,判断报文实际到达的接口与RPF接口是否相同:

·     相同,RPF检查通过。

·     不同,RPF检查失败。

2. RPF检查在IPv6组播转发中的应用

对每一个收到的IPv6组播数据报文都进行RPF检查会给路由器带来较大负担,而利用IPv6组播转发表可以解决这个问题。在建立IPv6组播路由和转发表时,会把IPv6组播数据报文(S,G)的RPF接口记录为(S,G)表项的入接口。当路由器收到IPv6组播数据报文(S,G)后,查找IPv6组播转发表:

(1)     如果IPv6组播转发表中不存在(S,G)表项,则对该报文执行RPF检查,将其RPF接口作为入接口,结合相关路由信息创建相应的表项,并下发到IPv6组播转发表中:

·     若该报文实际到达的接口正是其RPF接口,则RPF检查通过,向所有的出接口转发该报文;

·     若该报文实际到达的接口不是其RPF接口,则RPF检查失败,丢弃该报文。

(2)     如果IPv6组播转发表中已存在(S,G)表项,且该报文实际到达的接口与入接口相匹配,则向所有的出接口转发该报文。

(3)     如果IPv6组播转发表中已存在(S,G)表项,但该报文实际到达的接口与入接口不匹配,则对此报文执行RPF检查:

·     若其RPF接口与入接口一致,则说明(S,G)表项正确,丢弃这个来自错误路径的报文;

·     若其RPF接口与入接口不符,则说明(S,G)表项已过时,于是把入接口更新为RPF接口。如果该报文实际到达的接口正是其RPF接口,则向所有的出接口转发该报文,否则将其丢弃。

图1-1 RPF检查过程

图1-1所示,假设网络中IPv6单播路由畅通,未配置IPv6 MBGP。IPv6组播报文(S,G)沿从组播源(Source)到接收者(Receiver)的SPT进行传输。假定Device C上的IPv6组播转发表中已存在(S,G)表项,其记录的入接口为Vlan-interface20:

·     如果该IPv6组播报文从接口Vlan-interface20到达Device C,与(S,G)表项的入接口相匹配,则向所有的出接口转发该报文。

·     如果该IPv6组播报文从接口Vlan-interface10到达Device C,与(S,G)表项的入接口不匹配,则对其执行RPF检查:通过查找IPv6单播路由表发现到达Source的出接口(即RPF接口)是Vlan-interface20,与(S,G)表项的入接口一致。这说明(S,G)表项是正确的,该报文来自错误的路径,RPF检查失败,于是丢弃该报文。

1.1.2  跨IPv6单播网段的IPv6组播转发

网络中可能存在不支持IPv6组播协议的路由器,从IPv6组播源发出的IPv6组播数据沿IPv6组播路由器逐跳转发,当下一跳路由器不支持IPv6组播协议时,IPv6组播转发路径将被阻断。而通过在处于IPv6单播网段两端的IPv6组播路由器之间建立隧道,则可以实现跨IPv6单播网段的IPv6组播数据转发。

图1-2 使用隧道传输IPv6组播数据

 

图1-2所示,在IPv6组播路由器Device A和Device B之间建立隧道。Device A将IPv6组播数据封装在IPv6单播报文中,通过IPv6单播路由器转发至隧道另一端的Device B,再由Device B将IPv6单播报文头剥掉后继续进行IPv6组播传输。

1.1.3  IPv6组播路径跟踪

IPv6 Mtrace功能可以用来跟踪IPv6组播数据在组播网络中经过的路径。

1. 角色介绍

·     LHR(Last-hop Router,最后一跳路由器):在指定组播网络中,如果某路由器有一个接口的IPv6地址与指定目的端IPv6地址在同一个网段内,且能够向该网段转发特定的组播流,则称该路由器为最后一跳路由器。

·     FHR(First-hop Router,第一跳路由器):与组播源直连的路由器。

·     Client(客户端):触发组播路径跟踪的路由器。

2. 执行过程

(1)     客户端向指定目的端发送最大TTL的查询报文(Query Message);

(2)     最后一跳路由器收到查询报文后,在该报文上添加本地转发信息,将其转换成请求报文(Request Message),并向上游邻居转发该请求报文。

(3)     路径中的每台路由器都在收到的请求报文后添加本地转发信息,并向上游邻居发送。

(4)     第一跳路由器在收到请求报文后,同样添加本地转发信息,然后将其报文类型改为回应报文(Reply Message),向客户端发送。

(5)     客户端收到回应报文后解析其中的转发信息并显示该信息。

1.2  IPv6组播路由与转发配置任务简介

表1-1 IPv6组播路由与转发配置任务简介

配置任务

说明

详细配置

使能IPv6组播路由

必选

1.3 

配置IPv6组播路由与转发

配置按照最长匹配选择RPF路由

可选

1.4.2 

配置对IPv6组播流量进行负载分担

可选

1.4.3 

配置IPv6组播转发边界

可选

1.4.4 

配置IPv6组播数据在Super VLAN内的各Sub VLAN之间互通

可选

1.4.5 

配置IPv6组播路径跟踪功能

可选

1.4.6 

配置缓存未知IPv6组播数据报文的最大数目

可选

1.4.7 

 

1.3  使能IPv6组播路由

在公网实例或VPN实例中配置各项三层IPv6组播功能之前,必须先在该实例中使能IPv6组播路由。

表1-2 使能IPv6组播路由

操作

命令

说明

进入系统视图

system-view

-

使能IPv6组播路由,并进入IPv6 MRIB(Multicast Routing Information Base,组播路由信息库)视图

ipv6 multicast routing [ vpn-instance vpn-instance-name ]

缺省情况下,IPv6组播路由处于关闭状态

 

1.4  配置IPv6组播路由与转发

1.4.1  配置准备

在配置IPv6组播路由与转发之前,需完成以下任务:

·     配置任一IPv6单播路由协议,实现域内网络层互通

·     配置IPv6 PIM-DM或IPv6 PIM-SM

1.4.2  配置按照最长匹配选择RPF路由

用户可以配置组播路由器按照最长匹配原则来选择RPF路由,有关RPF路由选择的详细介绍,请参见“1.1.1  1. RPF检查过程”一节。

表1-3 配置按照最长匹配选择RPF路由

操作

命令

说明

进入系统视图

system-view

-

进入IPv6 MRIB视图

ipv6 multicast routing [ vpn-instance vpn-instance-name ]

-

配置按照最长匹配选择RPF路由

longest-match

缺省情况下,选择路由优先级最高的路由作为RPF路由

 

1.4.3  配置对IPv6组播流量进行负载分担

用户通过配置根据组播源或组播源组进行IPv6组播流量的负载分担,可以优化存在多条IPv6组播数据流时的网络流量。

表1-4 配置对IPv6组播流量进行负载分担

操作

命令

说明

进入系统视图

system-view

-

进入IPv6 MRIB视图

ipv6 multicast routing [ vpn-instance vpn-instance-name ]

-

配置对IPv6组播流量进行负载分担

load-splitting { source | source-group }

缺省情况下,不对IPv6组播流量进行负载分担

本命令对IPv6双向PIM不生效

 

1.4.4  配置IPv6组播转发边界

提示

进行本配置不需要使能IPv6组播路由。

 

IPv6组播信息在网络中的转发并不是漫无边际的,每个IPv6组播组对应的IPv6组播信息都必须在确定的范围内传递。IPv6组播转发边界为指定范围或Scope值的IPv6组播组划定了边界条件,如果IPv6组播报文的目的地址与边界条件匹配,就停止转发。当在一个接口上配置了IPv6组播转发边界后,将不能从该接口转发IPv6组播报文(包括本机发出的IPv6组播报文),也不能从该接口接收IPv6组播报文。

表1-5 配置IPv6组播转发边界

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置IPv6组播转发边界

ipv6 multicast boundary { ipv6-group-address prefix-length | scope { scope-id | admin-local | global | organization-local | site-local } }

缺省情况下,接口上不存在IPv6组播转发边界

 

1.4.5  配置IPv6组播数据在Super VLAN内的各Sub VLAN之间互通

一个Super VLAN内可以有多个Sub VLAN,不同Sub VLAN之间相互隔离。通过本配置可以使IPv6组播数据在同一Super VLAN内的各Sub VLAN之间互通。有关Super VLAN及其Sub VLAN的详细介绍,请参见“二层技术-以太网交换配置指导”中的“VLAN”。

提示

完成本配置后必须使用reset ipv6 multicast forwarding-table命令清除IPv6组播转发表中所有以该VLAN接口为入接口的转发项,否则本配置将不能生效。

 

表1-6 配置IPv6组播数据在Super VLAN内的各Sub VLAN之间互通

操作

命令

说明

进入系统视图

system-view

-

进入VLAN接口视图

interface vlan-interface interface-number

-

配置IPv6组播数据在Super VLAN内的各Sub VLAN之间互通

ipv6 multicast forwarding supervlan community

缺省情况下,IPv6组播数据在Super VLAN内的各Sub VLAN之间隔离

 

1.4.6  配置IPv6组播路径跟踪功能

表1-7 配置IPv6组播路径跟踪功能

操作

命令

说明

进入系统视图

system-view

-

配置IPv6 Mtrace服务使用的UDP端口号

ipv6 mtrace-service port number

缺省情况下,IPv6 Mtrace服务使用的UDP端口号为10240

跟踪路径上所有设备必须配置相同的UDP端口号,并保证UDP端口号没有被其他业务使用。

利用IPv6 Mtrace功能跟踪IPv6组播数据的传输路径

mtrace v2 ipv6 [ vpn-instance vpn-instance-name ] { source-address | group-address } * [ destination address | port number | wait-time time | max-hop count ] * [ verbose ]

可在任意视图下执行此命令

本命令指定的端口号与上一条命令配置的UDP端口号相同

 

1.4.7  配置缓存未知IPv6组播数据报文的最大数目

仅R2612及以上版本支持该功能。

接收到IPv6组播数据报文后,如果没有查找到对应的IPv6组播转发表项,则设备会缓存该报文。若在一定时间内建立了该报文对应的IPv6组播转发表项,则转发该报文,以确保在IPv6组播转发表项建立的过程中不会丢弃匹配该表项的IPv6组播报文。

可以通过以下两种方式控制设备缓存的未知IPv6组播数据报文数目:

·     设置对于同一个(S,G)表项,可缓存的最大未知IPv6组播数据报文数目。

·     设置内存中可缓存的未知IPv6组播数据报文的最大数目。

建议配置ipv6 multicast forwarding-table cache-unknown total的值要远远大于ipv6 multicast forwarding-table cache-unknown per-entry配置的值。

表1-8 配置缓存未知IPv6组播数据报文的最大数目

操作

命令

说明

进入系统视图

system-view

-

设置对于同一个(S,G)表项,可缓存的最大未知IPv6组播数据报文数目

ipv6 multicast forwarding-table cache-unknown per-entry per-entry-limit

缺省情况下,对于同一个(S,G)表项,可缓存的最大未知IPv6组播数据报文数目为1

设置内存中缓存的未知IPv6组播数据报文的总数

ipv6 multicast forwarding-table cache-unknown total total-limit

缺省情况下,内存中缓存的未知IPv6组播数据报文的总数量为1024

 

1.5  IPv6组播路由与转发显示和维护

注意

执行reset命令清除IPv6组播路由表或IPv6组播转发表中的信息,可能导致IPv6组播信息无法正常传输。

 

在完成上述配置后,在任意视图下执行display命令可以显示配置后IPv6组播路由与转发的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以清除IPv6组播路由与转发的统计信息。

表1-9 IPv6组播路由与转发显示和维护

操作

命令

显示IPv6 MRIB维护的接口信息

display ipv6 mrib [ vpn-instance vpn-instance-name ] interface [ interface-type interface-number ]

显示IPv6组播边界的信息

display ipv6 multicast [ vpn-instance vpn-instance-name ] boundary { group [ ipv6-group-address [ prefix-length ] ] | scope [ scope-id ] } [ interface interface-type interface-number ]

显示IPv6组播快速转发表项信息

display ipv6 multicast [ vpn-instance vpn-instance-name ] fast-forwarding cache [ ipv6-source-address | ipv6-group-address ] * [ slot slot-number ]

显示IPv6组播转发的DF信息

display ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding df-info [ ipv6-rp-address ] [ verbose ] [ slot slot-number ]

显示IPv6组播转发的事件统计信息

display ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding event [ slot slot-number ]

显示IPv6组播转发表的信息

display ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding-table [ ipv6-source-address [ prefix-length ] | ipv6-group-address [ prefix-length ] | incoming-interface interface-type interface-number | outgoing-interface { exclude | include | match } interface-type interface-number | slot slot-number | statistics ] *

显示IPv6组播转发表的DF列表信息

display ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding-table df-list [ ipv6-group-address ] [ verbose ] [ slot slot-number ]

显示IPv6组播路由表的信息

display ipv6 multicast [ vpn-instance vpn-instance-name ] routing-table [ ipv6-source-address [ prefix-length ] | ipv6-group-address [ prefix-length ] | incoming-interface interface-type interface-number | outgoing-interface { exclude | include | match } interface-type interface-number ] *

显示IPv6组播源的RPF信息

display ipv6 multicast [ vpn-instance vpn-instance-name ] rpf-info ipv6-source-address [ ipv6-group-address ]

清除IPv6组播快速转发表中的转发项

reset ipv6 multicast [ vpn-instance vpn-instance-name ] fast-forwarding cache { { ipv6-source-address | ipv6-group-address } * | all } [ slot slot-number ]

清除IPv6组播转发的事件统计信息

reset ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding event

清除IPv6组播转发表中的转发项

reset ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding-table { { ipv6-source-address [ prefix-length ] | ipv6-group-address [ prefix-length ] | incoming-interface { interface-type interface-number } } * | all }

清除IPv6组播路由表中的路由项

reset ipv6 multicast [ vpn-instance vpn-instance-name ] routing-table { { ipv6-source-address [ prefix-length ] | ipv6-group-address [ prefix-length ] | incoming-interface interface-type interface-number } * | all }

 

说明

·     清除IPv6组播路由表中的路由项后,IPv6组播转发表中的相应表项也将随之删除。

·     清除IPv6组播转发表中的转发项后,IPv6组播路由表中的相应表项也将随之删除。

 

1.6  IPv6组播路由与转发典型配置举例

1.6.1  利用GRE隧道实现IPv6组播转发配置举例

1. 组网需求

·     Switch A和Switch C支持IPv6组播功能并运行IPv6 PIM-DM,但Switch B不支持IPv6组播功能;

·     Switch A、Switch B和Switch C之间运行OSPFv3协议(不发布或引入组播源所在接口前缀);

·     要求通过配置,使Receiver能够接收来自Source的IPv6组播信息。

2. 组网图

图1-3 利用GRE隧道实现IPv6组播转发配置组网图

3. 配置步骤

(1)     配置IPv6地址和IPv6单播路由协议

请按照图1-3配置各接口的IPv6地址和前缀长度,并在各交换机上配置OSPFv3协议(不发布或引入组播源所在接口前缀),具体配置过程略。

(2)     配置GRE隧道

# 在Switch A上创建业务环回组1,并指定其业务类型为Tunnel类型。

<SwitchA> system-view

[SwitchA] service-loopback group 1 type tunnel

# 将Switch A的端口Ten-GigabitEthernet1/0/3(该端口不属于VLAN 100和101)加入业务环回组1。

[SwitchA] interface ten-gigabitethernet 1/0/3

[SwitchA-Ten-GigabitEthernet1/0/3] port service-loopback group 1

[SwitchA-Ten-GigabitEthernet1/0/3] quit

# 在Switch A上创建接口Tunnel2,并指定其隧道模式为GRE over IPv6隧道。

[SwitchA] interface tunnel 2 mode gre ipv6

# 在Switch A上为Tunnel2接口配置IPv6地址,并指定隧道的源地址和目的地址。

[SwitchA-Tunnel2] ipv6 address 5001::1 64

[SwitchA-Tunnel2] source 2001::1

[SwitchA-Tunnel2] destination 3001::2

[SwitchA-Tunnel2] quit

# 在Switch C上创建业务环回组1,并指定其业务类型为Tunnel类型。

<SwitchC> system-view

[SwitchC] service-loopback group 1 type tunnel

# 将Switch C的端口Ten-GigabitEthernet1/0/3(该端口不属于VLAN 200和102)加入业务环回组1。

[SwitchC] interface ten-gigabitethernet 1/0/3

[SwitchC-Ten-GigabitEthernet1/0/3] port service-loopback group 1

[SwitchC-Ten-GigabitEthernet1/0/3] quit

# 在Switch C上创建接口Tunnel2,并指定其隧道模式为GRE over IPv6隧道。

[SwitchC] interface tunnel 2 mode gre ipv6

# 在Switch C上为Tunnel2接口配置IPv6地址,并指定隧道的源地址和目的地址。

[SwitchC-Tunnel2] ipv6 address 5001::2 64

[SwitchC-Tunnel2] source 3001::2

[SwitchC-Tunnel2] destination 2001::1

[SwitchC-Tunnel2] quit

(3)     使能IPv6组播路由,并使能IPv6 PIM-DM和MLD

# 在Switch A上使能IPv6组播路由,并在各接口上使能IPv6 PIM-DM。

[SwitchA] ipv6 multicast routing

[SwitchA-mrib6] quit

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] ipv6 pim dm

[SwitchA-Vlan-interface100] quit

[SwitchA] interface vlan-interface 101

[SwitchA-Vlan-interface101] ipv6 pim dm

[SwitchA-Vlan-interface101] quit

[SwitchA] interface tunnel 2

[SwitchA-Tunnel2] ipv6 pim dm

[SwitchA-Tunnel2] quit

# 在Switch C上使能IPv6组播路由,在主机侧接口Vlan-interface200上使能MLD,并在其它接口上使能IPv6 PIM-DM。

[SwitchC] ipv6 multicast routing

[SwitchC-mrib6] quit

[SwitchC] interface vlan-interface 200

[SwitchC-Vlan-interface200] mld enable

[SwitchC-Vlan-interface200] quit

[SwitchC] interface vlan-interface 102

[SwitchC-Vlan-interface102] ipv6 pim dm

[SwitchC-Vlan-interface102] quit

[SwitchC] interface tunnel 2

[SwitchC-Tunnel2] ipv6 pim dm

[SwitchC-Tunnel2] quit

(4)     配置IPv6静态路由

# 在Switch C上配置IPv6静态路由,该路由的目的地址为1001::1/64,下一跳地址为Tunnel2。

[SwitchC] ipv6 route-static 1001::1 64 tunnel 2

4. 验证配置

IPv6组播源向IPv6组播组FF1E::101发送IPv6组播数据,接收者加入该IPv6组播组后能够收到IPv6组播源发来的IPv6组播数据。

# 显示Switch C上的IPv6 PIM路由表信息。

[SwitchC] display ipv6 pim routing-table

 Total 1 (*, G) entry; 1 (S, G) entry

 

 (*, FF1E::101)

     Protocol: pim-dm, Flag: WC

     UpTime: 00:04:25

     Upstream interface: NULL

         Upstream neighbor: NULL

         RPF prime neighbor: NULL

     Downstream interface(s) information:

     Total number of downstreams: 1

         1: Vlan-interface200

             Protocol: mld, UpTime: 00:04:25, Expires: -

 

 (1001::100, FF1E::101)

     Protocol: pim-dm, Flag: ACT

     UpTime: 00:06:14

     Upstream interface: Tunnel2

         Upstream neighbor: FE80::A01:101:1

         RPF prime neighbor: FE80::A01:101:1

     Downstream interface(s) information:

     Total number of downstreams: 1

         1: Vlan-interface200

             Protocol: pim-dm, UpTime: 00:04:25, Expires: -

Switch C的RPF邻居为Switch A,IPv6组播数据通过GRE隧道直接由Switch A发往Switch C。

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

新华三官网
联系我们