专利名称:实现本地网络与公共网络间组播互通的方法和nat设备的制作方法
技术领域:
本发明涉及组播技术,具体涉及一种实现本地网络与公共网络间组播互通的方 法、一种本地网络向公共网络间提供组播数据的方法,以及适用于所述方法的NAT设备。
背景技术:
当本地网络(或称私有网络,简称私网)访问公共网络(简称公网)时,通常使用 网络地址转换(NAT,Network Address Translation)实现私网地址与公网地址之间的转 换。NAT在单播访问过程中尤其普遍。但对于组播流量,如果需要在私网和公网间传递组播流量,则必须在私网的出口 路由器和公网接入路由器上运行组播路由协议,才能实现组播流量的接入和发送。如果公 网的接入路由器没有运行组播路由协议,则不会理会私网发来的组播协议报文,就不能实 现组播互通。协议无关组播(PIM,Protocol Independent Multicast)协议是利用静态路 由或者任意单播路由协议所生成的单播路由表为组播提供路由的协议。PIM协议中的 PIM-SM(协议无关组播-稀疏模式)应用最为广泛,适用于组播组成员分布相对分散、范围 较大的大中型网络。在PIM-SM协议中,组播点播者通过互联网组管理协议(IGMP,Internet Group Management Protocol)报告报文通知与其直连的指定路由器(DR,Designated Router)加入组播组,DR逐跳地向汇集点(RP,Rendezvous Router)路由器发送加入报文并 形成组播转发树,组播数据通过RP沿着组播转发树转发给组播点播者。上述IGMP协议运 行于主机与主机直连的路由器之间,其实现的功能是双向的一方面,主机通过IGMP协议 通知直连路由器希望接收某个组播组的信息;另一方面,直连路由器通过IGMP协议周期性 地查询域内的组播组成员是否处于活动状态,实现所连网段组成员关系的收集和维护。PIM-SSM (协议无关组播-指定信源组播模型)是一种SSM模型的PIM协议,该SSM 模型中没有RP路由器的概念,无需建立组播转发树,组播点播者向已知的组播源逐跳发送 订阅报文,通知组播源建立基于源和目的的转发表项,组播源根据转发表项转发组播数据。 PIM-SSM协议下,组播点播者与DR之间仍通过IGMP报文交互。当采用PIM-SM/PIM-SSM协议实现私网与公网间的组播交互时,需要在私网出口 路由器和公网接入路由器上同时配置PIM-SM/PIM-SSM协议。但是出于安全性和管理便捷 性的考虑,不希望在公网中启用额外的组播路由协议。公网通常只支持一般的组播应用,例 如IGMP协议,用于处理计算机的组播组接入。可见,在现有技术中,如果公网中的接入路由器不配置PIM-SM/PIM-SSM协议,则 私网无法访问公网的组播业务。
发明内容
有鉴于此,本发明提供了一种实现私网与公网间组播互通的方法,能够在不需要 对公网的接入路由器进行特殊配置的情况下,实现本地PIM-SM/PIM-SSM组播网络对公网组播业务的访问。本地网络启用协议无关组播-稀疏模式PIM-SM协议或协议无关组播-指定信源 组播模型PIM-SSM协议,在启用PIM-SM协议时设置本地网络中的NAT设备为汇集RP路 由器;在所述网络地址转换NAT设备连接公共网络的出接口 Pl上配置互联网组管理协议 IGMP主机功能;该方法包括A、所述NAT设备接收本地主机请求加入公网组播组的组播协议报文时,根据为公 网组播组配置的公网IP地址,为所述请求加入的公网组播组分配一个公网IP地址,以分配 的公网IP地址为源地址,构造IGMP报告报文并通过出接口 Pl发送到公共网络侧,以报告 所述NAT设备作为组播点播者加入所述公网组播组;B、所述NAT设备作为组播点播者接收到公共网络分发的组播数据时,将所接收的 组播数据分发至本地网络。较佳地,预先在NAT设备上设置入规则,该入规则包括本地主机允许访问的公网 组播组地址,以及为组播组配置的公网IP地址;所述步骤A包括所述NAT设备接收到本地主机请求加入组播组Gl的组播协议报文时,根据所述入 规则,判断组播组Gl是否属于本地允许访问的公网组播组,如果是,则从所述入规则中获 取组播组Gl对应公网IP地址,以获取的公网IP地址为源地址,构造IGMP报告报文并通过 出接口 Pl发送到公共网络侧;否则,按照请求加入的组播组Gl为本地组播组处理。其中,所述步骤B包括所述NAT设备接收到公共网络分发的组播数据时,根据设置的组播数据进入权 限,判断所接收的组播数据所属组播组是否允许进入本地网络,如果允许,则执行所述将所 接收的组播数据分发至本地网络的操作;否则,丢弃所接收的组播数据。较佳地,当本地网络启用PIM-SM协议时,该方法进一步包括C、本地网络的组播源向作为RP路由器的所述NAT设备进行组播组注册;D、所述NAT设备接收来自本地组播源的组播数据,判断所接收组播数据所属组播 组是否允许对公网发布,如果允许,则根据设置的组播组地址与公网IP地址的映射关系, 获取所接收组播数据对应的公网IP地址,以获取的公网IP地址为源地址,对所接收组播数 据的报文进行NAT变换,将NAT变换后的组播数据通过出接口 Pl转发至公共网络侧;否则, 在本地网络转发所接收组播数据。较佳地,预先在所述NAT设备上设置出规则,该出规则包括允许发布到公共网络 中的本地组播组地址,以及为组播组配置的用于NAT变换的公网IP地址;所述步骤D包括所述NAT设备接收到来自本地组播源G2的组播数据时,如果根据所述出规则判定 所接收组播数据允许发布到公共网络中,则从所述出规则中获取本地组播源G2对应的公 网IP地址,以获取的公网IP地址为源地址,对所接收组播数据进行NAT变换,将NAT变换 后的组播数据通过出接口 Pl发送至公共网络侧。其中,为组播组配置的公网IP地址为所述出接口 Pl的公网IP地址,或者为公共 网络分配给组播点播者的公网地址池中的IP地址。
本发明提供了一种实现私网与公网间组播互通的方法,能够在不需要对公网的接 入路由器进行特殊配置的情况下,实现本地PIM-SM/PIM-SSM组播网络向公网提供组播业务。本地网络启用PIM-SM协议,设置本地网络中的NAT设备为RP路由器;该方法包括A、本地网络的组播源向作为RP路由器的所述NAT设备进行组播组注册;B、所述NAT设备接收来自本地组播源的本地组播数据,判断所接收本地组播数据 所属组播组是否允许对公网发布,如果允许,则根据设置的组播组地址与公网IP地址的映 射关系,获取所接收本地组播数据对应的公网IP地址,以获取的公网IP地址为源地址,对 所接收本地组播数据的报文进行NAT变换,将NAT变换后的本地组播数据通过出接口 Pl转 发至公共网络侧;否则,在本地网络转发所述本地组播数据。较佳地,预先在所述NAT设备上设置出规则,该出规则包括允许发布到公共网络 中的本地组播组地址,以及为组播组配置的用于NAT变换的公网IP地址;所述步骤B包括所述NAT设备接收到来自本地组播源G2的本地组播数据时,如果所述出规则判定 所接收的本地组播数据允许发布到公共网络中,则从所述出规则中获取本地组播源G2对 应的公网IP地址,以获取的公网IP地址为源地址,对所接收的本地组播数据的报文进行 NAT变换,将NAT变换后的本地组播数据通过出接口 Pl发送至公共网络侧。较佳地,所述出规则进一步包括为组播组配置的用于NAT变换的组播组公网IP地 址;所述NAT变换进一步包括从所述出规则中获取本地组播源G2对应的组播组公网 IP地址,采用获取的组播组公网IP地址替换所接收组播数据中的组播组私网IP地址。其中,为组播组配置的公网IP地址为所述出接口 Pl的公网IP地址,或者为公共 网络分配给组播点播者的公网地址池中的IP地址。本发明还提供了一种NAT设备,当本地网络使用该NAT设备时,能够在不需要对公 网的接入路由器进行特殊配置的情况下,实现本地PIM-SM/PIM-SSM组播网络对公网组播 业务的访问。该NAT设备所在的本地网络启用PIM-SM协议或PIM-SSM协议,在启用PIM-SM时 该NAT设备被配置为RP路由器;在该NAT设备连接公共网络的出接口 Pl上配置IGMP主机 功能;该NAT设备包括组播组加入单元和公网组播数据处理单元;所述组播组加入单元,用于在接收到本地主机请求加入公网组播组的组播协议报 文时,根据为公网组播组配置的公网IP地址,为所述请求加入的公网组播组分配一个公网 IP地址,以分配的公网IP地址为源地址,构造IGMP报告报文并通过出接口 Pl发送到公共 网络侧,以报告所述NAT设备作为组播点播者加入所述公网组播组;所述公网组播数据处理单元,用于在接收到公共网络分发的组播数据后,转发所 接收组播数据。其中,所述组播组加入单元包括入规则维护模块、入规则匹配模块、IGMP模块和本 地加入处理模块;
所述入规则维护模块,用于保存预先设置的入规则,该入规则包括本地主机允许 访问的公网组播组地址,以及为组播组配置的公网IP地址;所述入规则匹配模块,用于在接收到本地主机请求加入组播组Gl的组播协议报 文时,根据所述入规则维护模块保存的入规则,判断组播组Gl是否属于本地允许访问的公 网组播组,如果是,则通知所述IGMP模块;否则,通知所述本地加入处理模块;所述IGMP模块,用于在接收到通知时,从所述入规则维护模块保存的入规则中获 取组播组Gl对应公网IP地址,以获取的公网IP地址为源地址,构造IGMP报告报文并通过 出接口 Pl发送到公共网络侧;所述本地加入处理模块,用于在接收到通知时,按照请求加入的组播组Gl为本地组播组处理。其中,所述公网组播数据处理单元包括权限认定模块和转发模块;所述权限认定模块,用于在接收到公共网络分发的组播数据时,根据设置的组播 数据进入权限,判断所接收的组播数据所属组播组是否允许进入本地网络,如果允许,则通 知所述转发模块;否则,丢弃所接收的组播数据;所述转发模块,用于在接收到通知时,将所接收的组播数据分发至本地网络。较佳地,当该NAT设备所在本地网络启用PIM-SM协议时,该NAT设备进一步包括 本地组播数据接收单元和本地组播数据处理单元;所述本地组播数据接收单元,用于将接收自本地组播源的组播数据发送给本地组 播数据处理单元;所述本地组播数据处理单元,用于判断所接收组播数据所属组播组是否允许对公 网发布,如果允许,则根据设置的组播组地址与公网IP地址的映射关系,获取所接收组播 数据对应的公网IP地址,以获取的公网IP地址为源地址,对所接收组播数据的报文进行 NAT变换,将NAT变换后的组播数据通过出接口 Pl转发至公共网络侧;否则,在本地网络转 发所接收组播数据。其中,所述本地组播数据处理单元包括出规则维护模块、出规则匹配模块和组播 数据发布模块;所述出规则维护模块,用于保存预先设置的出规则,该出规则包括允许发布到公 共网络中的本地组播组地址,以及为组播组配置的用于NAT变换的公网IP地址;所述出规则匹配模块,用于接收到来自本地组播源G2的组播数据时,如果根据所 述出规则维护模块保存的出规则,判定所接收组播数据允许发布到公共网络中,则通知组 播数据发布模块;所述组播数据发布模块,用于在接收到通知时,从所述出规则维护模块保存的出 规则中获取本地组播源G2对应的公网IP地址,以获取的公网IP地址为源地址,对所接收 组播数据进行NAT变换,将NAT变换后的组播数据通过出接口 Pl发送至公共网络侧。本发明还提供了一种NAT设备,当本地网络使用该NAT设备时,能够在不需要对公 网的接入路由器进行特殊配置的情况下,实现本地PIM-SM/PIM-SSM组播网络向公网提供 组播业务。该NAT设备所在的本地网络启用PIM-SM协议,该NAT设备被配置为RP路由器;该NAT设备包括本地组播数据接收单元和本地组播数据处理单元;
所述本地组播数据接收单元,用于将接收自本地组播源的组播数据发送给本地组 播数据处理单元;所述本地组播数据处理单元,用于判断所接收组播数据所属组播组是否允许对公 网发布,如果允许,则根据设置的组播组地址与公网IP地址的映射关系,获取所接收组播 数据对应的公网IP地址,以获取的公网IP地址为源地址,对所接收组播数据的报文进行 NAT变换,将NAT变换后的组播数据通过出接口 Pl转发至公共网络侧;否则,在本地网络转 发所接收组播数据。其中,所述本地组播数据处理单元包括出规则维护模块、出规则匹配模块和组播 数据发布模块;所述出规则维护模块,用于保存预先设置的出规则,该出规则包括允许发布到公 共网络中的本地组播组地址,以及为组播组配置的用于NAT变换的公网IP地址;所述出规则匹配模块,用于接收到来自本地组播源G2的组播数据时,如果根据所 述出规则维护模块保存的出规则,判定所接收组播数据允许发布到公共网络中,则通知组 播数据发布模块;所述组播数据发布模块,用于在接收到通知时,从所述出规则维护模块保存的出 规则中获取本地组播源G2对应的公网IP地址,以获取的公网IP地址为源地址,对所接收 组播数据进行NAT变换,将NAT变换后的组播数据通过出接口 Pl发送至公共网络侧。较佳地,所述出规则维护模块保存的出规则进一步包括为组播组配置的用于NAT 变换的组播组公网IP地址;所述组播数据发布模块在NAT变换时,进一步从所述出规则中获取本地组播源G2 对应的组播组公网IP地址,采用获取的组播组公网IP地址替换所接收组播数据的组播组 私网IP地址。根据以上技术方案可见,由于NAT设备被配置为IGMP主机,因此可以作为一台主 机加入公网组播组,公网接入路由器只需要配置IGMP路由器功能即可,从而避免需要在公 网配置诸如PIM-SM协议和PIM-SSM协议带来的种种弊端。当本地网络运行PIM-SM协议时, NAT设备还被配置为本地网络中的RP路由器,因此NAT设备在接收到公网分发的组播数据 后能够直接根据自身维护的组播转发树,将组播数据分发到本地网络中,从而实现了本地 网络对公网组播业务的访问。当本地网络运行PIM-SSM协议时,没有RP路由器器的概念, 因此只需要NAT设备在接收到订阅报文后,建立组播组转发表项,那么NAT设备在接收到公 网分发的组播数据后能够直接根据组播转发表项将组播数据分发到本地网络中。而且,采用本发明的NAT设备还能够将本地组播数据提供给公网用户,而且无需 对公网设备进行特殊配置。本发明只需要在NAT设备上做修改,不需要修改其他设备,因此实现简单,便于和 其他设备对接,以及整网升级。
图1为本发明实现本地网络与公网间组播互通的方案的示意图。图2为本发明实施例中本地网络运行PIM-SM协议时,本地网络与公网进行组播互 通的示意图。
图3为图2中主机1加入公网组播组Gl的流程图。图4为图2中来自公网的组播数据在本地网络转发的流程图。图5为图2中本地组播源G2向公网提供组播数据的流程图。图6为本发明实施例中NAT设备的结构示意图。图7为图6中组播组加入单元60的结构示意图。图8为图6中公网组播数据处理单元70的结构示意图。图9为图6中本地组播数据处理单元90的结构示意图。
具体实施例方式下面结合附图并举实施例,对本发明进行详细描述。本发明为一种实现本地网络与公网间组播互通的方案,参见图1,首先需要对网络 和相关设备进行配置,具体配置包括本地网络启用PIM-SM或PIM-SSM协议,不限定公共网 络启用的组播路由协议,当然也可以是PIM协议。由于PIM-SM协议和PIM-SSM协议存在差 异,在启用PIM-SM协议时还需要设置本地网络中的NAT设备为RP路由器。在本地网络中NAT设备连接公共网络的出接口 Pl上配置IGMP主机功能,而不是 IGMP路由器功能,公网的接入路由器实现IGMP路由器功能,使得NAT设备可以作为一台 IGMP主机接入公网,所以不需要公网的接入路由器有额外特殊配置。在上述配置的基础上,该组播互通方案包括如下步骤A、当NAT设备接收本地主机请求加入公网组播组的组播协议报文时,根据为公网 组播组配置的公网IP地址,为所述请求加入的公网组播组分配一个公网IP地址,以分配的 公网IP地址为源地址,构造IGMP报告报文并通过出接口 Pl发送到公共网络侧,以报告所 述NAT设备作为组播点播者加入所述公网组播组。B、NAT设备作为组播点播者接收到公共网络分发的组播数据后,将所接收的组播 数据分发至本地网络的各组播点播者。至此,就完成了本地网络访问公网组播业务的过程,由于NAT设备被配置为IGMP 主机,因此可以作为一台主机加入公网组播组,公网接入路由器只需要配置IGMP路由器功 能即可,从而避免需要在公网配置诸如PIM-SM协议和PIM-SSM协议带来了的种种弊端。而 且,在本地网络运行PIM-SM协议的情况下,NAT设备还被配置为本地网络中的RP路由器, 因此NAT设备在接收到公网分发的组播数据后能够直接通过组播转发树分发给本地网络 的各个组播点播者,从而实现了本地网络对公网组播业务的访问。上述步骤A中,所述本地主机请求加入公网组播组的组播协议报文根据本地网络 运行的组播路由协议的不同而有所差异当本地网络运行PIM-SM协议时,所述组播协议报 文为组播组的加入报文;当运行PIM-SSM协议时,所述组播协议报文为订阅报文。订阅报文 本应逐跳到达组播源,用于通知组播源建立基于源和目的的组播组的转发表项,由于组播 源不在本地网络,必需通过NAT设备出去,因此订阅报文会到达NAT设备,在NAT设备上建 立组播组的转发表项,这样后续就可以通过在接收到公网组播数据后进行转发了。下面以本地网络运行PIM-SM协议为例进行详细描述。图2为本发明实施例中本地网络运行PIM-SM协议时,本地网络与公网进行组播互 通的示意图。如图2所示,主机1为本地组播点播者,DRl为主机1的指定路由器,DR2为NAT设备作为IGMP主机时的指定路由器。NAT设备连接公网的出接口为P1。图3为图2中主机1加入公网组播组Gl的流程。如图3所示,该流程包括以下步 骤步骤301 当主机1加入组播组Gl时,主机1向DRl发送IGMP报告报文,以通知 DRl主机1请求加入组播组Gl。步骤302 =DRl向RP路由器也就是NAT设备(以下简称RP/NAT设备)发送请求加 入组播组Gl的加入报文,该组播组加入报文沿着PIM-SM协议建立的组播转发树逐跳到达 RP/NAT设备。这个过程是PIM-SM协议的正常工作过程。步骤303 RP/NAT设备在接收到加入报文后,根据预先设置的入规则,判断组播组 Gl是否属于本地允许访问的公网组播组;如果是,则执行步骤304 ;否则,执行步骤305。本步骤中的入规则包括本地主机允许访问的公网组播组地址,该公网组播组地址 可以用组播组地址加掩码的形式表示。入规则还可以包括预先为公网组播组配置的公网IP 地址,该公网IP地址应该是公网侧的IGMP路由器也就是图2中的DR2能够认可的IP地址, 这样公网侧的IGMP路由器在接收到IGMP报告报文后才会进行处理。在实际中,为公网组播组配置的公网IP地址可以是RP/NAT设备的出接口 Pl的公 网IP地址,也可以是公共网络分配给组播点播者的公网地址池中的IP地址。该入规则可 以通过访问控制列表(ACL)技术实现。入规则的作用有两个,一个作用是区分请求加入的组播组是本地组播组还是公网 组播组,从而避免本地组播组被错误的注册到公网上;另一个作用是控制公网组播组的加 入,从而避免从公网接收非法的组播数据。需要说明的是,这里所说的公网组播组不一定的组播源在公网上,只是将从公网 接收的组播数据所属组播组称为公网组播组,该公网组播组的组播源可能来自另一个私 网,该组播数据从私网出发,穿越公网来到本地网络。步骤304 RP/NAT设备判定主机1请求加入的组播组Gl为公网组播组,则从入规 则中获取组播组Gl对应的公网IP地址,以获取的公网IP地址为源地址,构造IGMP报告报 文并通过出接口 Pl发送到公网侧。IGMP报告报文先到达公网中的DR2,以触发公网侧的 DR2对组播组Gl成员的收集和维护。由于RP/NAT设备的出接口 Pl启用了 IGMP主机功能, 因此公网侧的DR2将RP/NAT设备看成一个请求加入组播组Gl的组播点播者。至此,本流 程结束。本步骤304中,从入规则中获取组播组对应的公网IP地址为当配置的公网IP为 出接口 Pl的IP地址时,各个满足入规则的组播组统一使用出接口 Pl的IP地址作为IGMP 源地址;当配置的公网IP地址为公网为用户也就是组播点播者分配的公网IP地址池时,可 以根据预设的组播组与公网IP地址的对应关系,获取对应的公网IP地址,也可以从公网IP 地址池中选择一个公网IP地址,作为IGMP报告报文的源地址。当RP/NAT设备有组播组删除时,例如删除组播组G1,则IGMP协议不再维护组播 组G1,那么当DR2路由器在规定时间内接收不到自己发送的查询消息的响应,则不再向RP/ NAT设备分发组播组Gl的组播数据。如果出接口 Pl上配置的是第二或以上版本的IGMP协 议,则RP/NAT设备还可以主动通知DR2退出组播组Gl,使得DR2立刻停止向RP/NAT设备分 发组播组Gl的组播数据。
步骤305 :RP/NAT设备判定主机1请求加入的组播组Gl为本地组播组,不做特殊 处理,按照请求加入的组播组Gl为本地组播组进行现有处理。至此,本流程结束。图4为图2中来自公网的组播数据在本地网络转发的流程图。如图4所示,该流 程包括以下步骤步骤401 :RP/NAT设备接收公网分发的组播数据。当公网的组播源Gl分发组播数据时,组播数据被转发到公网接入侧的DR2,该DR2 将组播数据分发至组播组Gl的成员,而RP/NAT设备就是组播组Gl的成员之一,因此RP/ NAT设备会接到Gl的组播数据。步骤402 :RP/NAT设备根据预先设置的组播数据进入权限,判断所接收的组播数 据所属组播组是否允许进入本地网络;如果允许,则执行步骤403 ;否则,执行步骤404。其中,所述组播数据进入权限可以为前述入规则,因为入规则中记录着允许本地 主机允许访问的公网组播组,这公网组播组分发的组播数据必然允许进入私网。在这种情 况下,RP/NAT设备判断所接收组播数据中的组播组地址是否与入规则中本地主机允许访问 的公网组播组地址相匹配,如果匹配,则允许所接收组播数据进入本地网络;否则,执行步 骤 404。在实际中,组播数据进入权限也可以采用其他方式进行控制,例如设置独立的权 限表。当然,本流程也可以不包括步骤402,在这种情况下,如果RP/NAT设备查找不到所接 收组播数据的转发表项,则执行步骤404。步骤403 由于RP/NAT设备就是本地网络中的RP路由器,因此RP/NAT设备可以 将所接收组播数据沿着PIM-SM协议建立的组播转发树进行组播转发,从而将组播数据分 发到本地网络中的各个组播点播者,这其中就包括主机1。至此,本流程结束。步骤404 RP/NAT设备丢弃所接收组播数据。至此,本流程结束。在本发明将NAT设备设置为RP路由器和IGMP主机的基础上,还可以实现本地网 络向公网提供组播业务的方案。该本地网络为运行PIM-SM协议的网络,而运行PIM-SSM协 议的本地网络不能向公网提供组播数据。具体来说,如果本地网络中的组播源例如图2中的组播源G2希望向公网发送组播 数据,则组播源G2向RP/NAT设备进行组播组注册;之后,RP/NAT设备会接收到来自组播源 G2的组播数据,该RP/NAT设备判断所接收组播数据所属组播组G2是否允许对公网发布,如 果允许,则根据预设的组播组地址与公网IP地址的映射关系,获取所接收组播数据对应的 公网IP地址,将所接收组播数据的源地址修改为获取的公网IP地址,即进行NAT变换,将 NAT变换后的组播数据通过出接口 Pl转发至公网侧的DR2,该DR2继续在公网分发组播数 据。否则,RP/NAT设备在本地网络转发所接收组播数据。图5为图2中本地组播源G2向公网提供组播数据的流程图。如图5所示,DR3为 与组播源G2直连的指定路由器,该流程包括以下步骤步骤501 本地组播源G2向DR3发送组播数据。步骤502 :DR3向RP/NAT设备进行组播组注册,然后在DR3与RP/NAT设备之间建 立起组播转发树,接着,组播组G2的组播数据沿着组播转发树到达RP/NAT设备。步骤503 RP/NAT设备根据预设的出规则,判断接收自本地网络的组播数据是否 允许发布到公共网络中,根据保存的本地组播转发树判断是否在本地网络转发所接收组播数据;如果允许发送到公共网络中,则执行步骤504-505 ;如果判定在本地网络转发,则执 行步骤506。如果既不允许发送到公共网络中,又不会在本地网络转发,则可以根据预设处理 方式进行组播数据处理,例如丢弃。本步骤中的出规则包括允许发布到公网中的本地组播组地址,该本地组播组地址 可以用组播组地址加掩码的形式表示。该出规则还可以包括为本地组播组配置的公网IP 地址,该公网IP地址在NAT变换时作为出口源IP地址。与入规则中为组播组配置的公网 IP地址相同,出规则中为组播组配置的公网IP地址可以是出接口 Pl的公网IP地址,或者 为公共网络分配给组播点播者的公网地址池中的IP地址。步骤504 :RP/NAT设备判定所接收的组播数据允许发布到公网,则从出规则中获 取本地组播源G2对应的公网IP地址,以获取的公网IP地址为源地址对所接收的组播数据 的报文进行NAT变换。在实际中,如果组播组地址也需要替换,则上述出规则中还需要包括为本地组播 组配置的用于NAT变换的组播组公网IP地址,在这种情况下,本步骤的NAT变换操作进一 步包括从出规则中获取本地组播源G2对应的组播组公网IP地址,采用获取的组播组公网 IP地址替换所接收组播数据的组播组私网IP地址。步骤505 :RP/NAT设备向公网转发所接收组播数据。至此,本流程结束。步骤506 :RP/NAT设备按本地组播转发树进行组播数据转发。至此,本流程结束。从以上所述可见,本发明可以实现本地网络与公网之间的组播互通。当连接公网 的两个或两个以上的私网均配置了上述RP/NAT设备时,所述多个私网还可以通过公网进 行组播互通。下面举一个实例。仍参见图2,假设本地网络是一个启用PIM-SM协议的组播网络, 本地网络通过一个NAT设备与一个IPTV公网连接。NAT设备被配置为RP路由器和IGMP主 机。公网分配一个公网IP地址即GIP给NAT设备的出接口 Pl,允许本地网络访问组播组 G1。同时,本地网络有一个组播源G2,可以提供给公网用户访问。根据以上假设,RP/NAT设备上形成的入规则为本地主机允许访问的公网组播组 为G1,出接口 P1,且出接口 Pl的公网IP地址为GIP。RP/NAT设备上形成的出规则为允许发布到公网中的本地组播组为G2,出接口 Pl,出接口 Pl的公网源IP地址为GIP,且组播组地址G2不需要转换。那么,如果主机1点播公网的组播组地址为Gl的节目,则主机1向DRl发送IGMP 报告报文,以报告自己加入Gl组,DR2逐级向RP/NAT设备发出加入组播组Gl的加入报文, RP/NAT设备上建立Gl的组播转发表项,同时查询入规则,发现Gl满足入规则,并且得到 Gl的出接口 Pl和GIP,此时以GIP为源IP地址构造IGMP报告报文,通过出接口 Pl发起 IGMP报告报文,并执行IGMP的相关功能。公网侧与RP/NAT设备相连的DR2会逐级向公网 的RP(假设公网运行PIM-SM)加入组播组Gl,这样组播组地址为Gl的组播数据会进入RP/ NAT设备,进入的组播数据不做NAT变换,RP/NAT设备根据入规则确定所接收的组播数据允 许进入本地网络,则通过组播转发树进行转发,直到主机1。对于本地组播源G2发起的组播数据,DR3收到该组播数据后,会向RP/NAT设备进 行组播源注册,然后组播数据会到达RP/NAT设备。RP/NAT设备接收到组播数据,查询出规则,发现G2满足出规则,并且得到出接口 Pl和GIP,并得知组播组地址不变,则RP/NAT设备 修改组播数据所在报文的源IP地址为GIP,然后通过出接口 Pl向公网中的DR2发送,DR2 收到该组播数据,同样进行组播转发,将该组播数据转发到G2组内的组播点播者。如果RP/ NAT设备进一步判定自身保存有G2的组播数据的本地组播转发树,则还要按该本地组播转 发树进行组播数据转发。为了实现上述组播互通方法,本发明提供了一种NAT设备。图6为本发明实施例 中NAT设备的结构示意图。该NAT设备所在的本地网络启用PIM-SM协议或PIM-SSM协议, 在启用PIM-SM时该NAT设备被配置为RP路由器;在该NAT设备连接公共网络的出接口 Pl 上配置IGMP主机功能。如图6所示,该NAT设备包括组播组加入单元60和公网组播数据 处理单元70 ;组播组加入单元60,用于在接收到本地主机请求加入公网组播组的组播协议报文 时,根据为公网组播组配置的公网IP地址,为被请求加入的公网组播组分配一个公网IP地 址,以分配的公网IP地址为源地址,构造IGMP报告报文并通过出接口 Pl发送到公共网络 侧,以报告该NAT设备作为组播点播者加入公网组播组。公网组播数据处理单元70,用于在接收到公共网络分发的组播数据后,转发所接 收组播数据。图7为图6中组播组加入单元60的结构示意图。如图7所示,该组播组加入单元 60包括入规则维护模块61、入规则匹配模块62、IGMP模块63和本地加入处理模块64。其 中,入规则维护模块61,用于保存预先设置的入规则,该入规则包括本地主机允许访 问的公网组播组地址,以及为组播组配置的公网IP地址。入规则匹配模块62,用于在接收到本地主机请求加入组播组Gl的组播协议报文 时,根据入规则维护模块61保存的入规则,判断组播组Gl是否属于本地允许访问的公网组 播组,如果是,则通知IGMP模块63 ;否则,通知本地加入处理模块64。IGMP模块63,用于在接收到通知时,从入规则维护模块61保存的入规则中获取组 播组Gl对应公网IP地址,以获取的公网IP地址为源地址,构造IGMP报告报文并通过出接 口 Pl发送到公共网络侧。本地加入处理模块64,用于在接收到通知时,按照请求加入的组播组Gl为本地组播组处理。图8为图6中公网组播数据处理单元70的结构示意图。如图8所示,该公网组播 数据处理单元70包括权限认定模块71和转发模块72。其中,权限认定模块71,用于在接收到公共网络分发的组播数据时,根据设置的组播数 据进入权限,判断所接收的组播数据所属组播组是否允许进入本地网络,如果允许,则通知 转发模块72 ;否则,丢弃所接收的组播数据。转发模块72,用于在接收到通知时,将所接收的组播数据分发至本地网络。当该NAT设备所在本地网络启用PIM-SM协议时,该NAT设备还可以处理本地网络 发向公共网络的组播报文,在这种情况下,如图6所示,NAT设备进一步包括本地组播数据 接收单元80和本地组播数据处理单元90。其中,本地组播数据接收单元80,用于将接收自本地组播源的组播数据发送给本地组播数据处理单元90。本地组播数据处理单元90,用于判断所接收组播数据所属组播组是否允许对公网 发布,如果允许,则根据设置的组播组地址与公网IP地址的映射关系,获取所接收组播数 据对应的公网IP地址,以获取的公网IP地址为源地址,对所接收组播数据的报文进行NAT 变换,将NAT变换后的组播数据通过出接口 Pl转发至公共网络侧;否则,在本地网络转发所 接收组播数据。图9为图6中本地组播数据处理单元90的结构示意图。如图9所示,该本地组播 数据处理单元90包括出规则维护模块91、出规则匹配模块92、组播数据发布模块93和组 播数据本地转发模块94。其中,出规则维护模块91,用于保存预先设置的出规则,该出规则包括允许发布到公共 网络中的本地组播组地址,以及为组播组配置的用于NAT变换的公网IP地址。出规则匹配模块92,用于接收到来自本地组播源例如G2的组播数据时,如果根据 出规则维护模块91保存的出规则,判定所接收组播数据允许发布到公共网络中,则通知组 播数据发布模块93。组播数据发布模块93,用于在接收到通知时,从出规则维护模块91保存的出规则 中获取本地组播源G2对应的公网IP地址,以获取的公网IP地址为源地址,对所接收组播 数据进行NAT变换,将NAT变换后的组播数据通过出接口 Pl发送至公共网络侧。组播数据本地转发模块94,用于在接收到来自本地组播源例如G2的组播数据时, 如果判定所在RP/NAT设备保存有所接收组播数据的本地组播转发树,则按本地组播转发 树进行组播数据转发。较佳地,出规则维护模块91保存的出规则可以进一步包括为组播组配置的用于 NAT变换的组播组公网IP地址。那么,相应地,组播数据发布模块93在NAT变换时,进一步 从出规则中获取本地组播源G2对应的组播组公网IP地址,采用获取的组播组公网IP地址 替换所接收组播数据的组播组私网IP地址。在实际中,如果NAT设备只需要处理本地网络到公共网络的组播数据,则NAT设备 可以只包括上述本地组播数据接收单元80和本地组播数据处理单元90。综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的 保护范围之内。
权利要求
1.一种实现本地网络与公共网络间组播互通的方法,其特征在于,本地网络启用协议 无关组播-稀疏模式PIM-SM协议或协议无关组播-指定信源组播模型PIM-SSM协议,在启 用PIM-SM协议时设置本地网络中的NAT设备为汇集RP路由器;在所述网络地址转换NAT 设备连接公共网络的出接口 Pl上配置互联网组管理协议IGMP主机功能;该方法包括A、所述NAT设备接收本地主机请求加入公网组播组的组播协议报文时,根据为公网组 播组配置的公网IP地址,为所述请求加入的公网组播组分配一个公网IP地址,以分配的公 网IP地址为源地址,构造IGMP报告报文并通过出接口 Pl发送到公共网络侧,以报告所述 NAT设备作为组播点播者加入所述公网组播组;B、所述NAT设备作为组播点播者接收到公共网络分发的组播数据时,将所接收的组播 数据分发至本地网络。
2.如权利要求1所述的方法,其特征在于,预先在NAT设备上设置入规则,该入规则包 括本地主机允许访问的公网组播组地址,以及为组播组配置的公网IP地址;所述步骤A包括所述NAT设备接收到本地主机请求加入组播组Gl的组播协议报文时,根据所述入规 则,判断组播组Gl是否属于本地允许访问的公网组播组,如果是,则从所述入规则中获取 组播组Gl对应公网IP地址,以获取的公网IP地址为源地址,构造IGMP报告报文并通过出 接口 Pl发送到公共网络侧;否则,按照请求加入的组播组Gl为本地组播组处理。
3.如权利要求1所述的方法,其特征在于,所述步骤B包括所述NAT设备接收到公共网络分发的组播数据时,根据设置的组播数据进入权限,判 断所接收的组播数据所属组播组是否允许进入本地网络,如果允许,则执行所述将所接收 的组播数据分发至本地网络的操作;否则,丢弃所接收的组播数据。
4.如权利要求1所述的方法,其特征在于,当本地网络启用PIM-SM协议时,该方法进一 步包括C、本地网络的组播源向作为RP路由器的所述NAT设备进行组播组注册;D、所述NAT设备接收来自本地组播源的组播数据,判断所接收组播数据所属组播组是 否允许对公网发布,如果允许,则根据设置的组播组地址与公网IP地址的映射关系,获取 所接收组播数据对应的公网IP地址,以获取的公网IP地址为源地址,对所接收组播数据的 报文进行NAT变换,将NAT变换后的组播数据通过出接口 Pl转发至公共网络侧;否则,在本 地网络转发所接收组播数据。
5.如权利要求4所述的方法,其特征在于,预先在所述NAT设备上设置出规则,该出规 则包括允许发布到公共网络中的本地组播组地址,以及为组播组配置的用于NAT变换的公 网IP地址;所述步骤D包括所述NAT设备接收到来自本地组播源G2的组播数据时,如果根据所述出规则判定所接 收组播数据允许发布到公共网络中,则从所述出规则中获取本地组播源G2对应的公网IP 地址,以获取的公网IP地址为源地址,对所接收组播数据进行NAT变换,将NAT变换后的组 播数据通过出接口 Pl发送至公共网络侧。
6.如权利要求2或5所述的方法,其特征在于,为组播组配置的公网IP地址为所述出接口 Pl的公网IP地址,或者为公共网络分配给组播点播者的公网地址池中的IP地址。
7.—种本地网络向公共网络间提供组播数据的方法,其特征在于,本地网络启用 PIM-SM协议,设置本地网络中的NAT设备为RP路由器;该方法包括A、本地网络的组播源向作为RP路由器的所述NAT设备进行组播组注册;B、所述NAT设备接收来自本地组播源的本地组播数据,判断所接收本地组播数据所属 组播组是否允许对公网发布,如果允许,则根据设置的组播组地址与公网IP地址的映射关 系,获取所接收本地组播数据对应的公网IP地址,以获取的公网IP地址为源地址,对所接 收本地组播数据的报文进行NAT变换,将NAT变换后的本地组播数据通过出接口 Pl转发至 公共网络侧;否则,在本地网络转发所述本地组播数据。
8.如权利要求7所述的方法,其特征在于,预先在所述NAT设备上设置出规则,该出规 则包括允许发布到公共网络中的本地组播组地址,以及为组播组配置的用于NAT变换的公 网IP地址;所述步骤B包括所述NAT设备接收到来自本地组播源G2的本地组播数据时,如果所述出规则判定所接 收的本地组播数据允许发布到公共网络中,则从所述出规则中获取本地组播源G2对应的 公网IP地址,以获取的公网IP地址为源地址,对所接收的本地组播数据的报文进行NAT变 换,将NAT变换后的本地组播数据通过出接口 Pl发送至公共网络侧。
9.如权利要求8所述的方法,其特征在于,所述出规则进一步包括为组播组配置的用 于NAT变换的组播组公网IP地址;所述NAT变换进一步包括从所述出规则中获取本地组播源G2对应的组播组公网IP 地址,采用获取的组播组公网IP地址替换所接收组播数据中的组播组私网IP地址。
10.如权利要求8或9所述的方法,其特征在于,为组播组配置的公网IP地址为所述出 接口 Pl的公网IP地址,或者为公共网络分配给组播点播者的公网地址池中的IP地址。
11.一种NAT设备,其特征在于,该NAT设备所在的本地网络启用PIM-SM协议或 PIM-SSM协议,在启用PIM-SM时该NAT设备被配置为RP路由器;在该NAT设备连接公共网 络的出接口 Pl上配置IGMP主机功能;该NAT设备包括组播组加入单元和公网组播数据处理单元;所述组播组加入单元,用于在接收到本地主机请求加入公网组播组的组播协议报文 时,根据为公网组播组配置的公网IP地址,为所述请求加入的公网组播组分配一个公网IP 地址,以分配的公网IP地址为源地址,构造IGMP报告报文并通过出接口 Pl发送到公共网 络侧,以报告所述NAT设备作为组播点播者加入所述公网组播组;所述公网组播数据处理单元,用于在接收到公共网络分发的组播数据后,转发所接收 组播数据。
12.如权利要求11所述的NAT设备,其特征在于,所述组播组加入单元包括入规则维护 模块、入规则匹配模块、IGMP模块和本地加入处理模块;所述入规则维护模块,用于保存预先设置的入规则,该入规则包括本地主机允许访问 的公网组播组地址,以及为组播组配置的公网IP地址;所述入规则匹配模块,用于在接收到本地主机请求加入组播组Gl的组播协议报文时,根据所述入规则维护模块保存的入规则,判断组播组Gl是否属于本地允许访问的公网组 播组,如果是,则通知所述IGMP模块;否则,通知所述本地加入处理模块;所述IGMP模块,用于在接收到通知时,从所述入规则维护模块保存的入规则中获取组 播组Gl对应公网IP地址,以获取的公网IP地址为源地址,构造IGMP报告报文并通过出接 口 Pl发送到公共网络侧;所述本地加入处理模块,用于在接收到通知时,按照请求加入的组播组Gl为本地组播 组处理。
13.如权利要求11所述的NAT设备,其特征在于,所述公网组播数据处理单元包括权限 认定模块和转发模块;所述权限认定模块,用于在接收到公共网络分发的组播数据时,根据设置的组播数据 进入权限,判断所接收的组播数据所属组播组是否允许进入本地网络,如果允许,则通知所 述转发模块;否则,丢弃所接收的组播数据;所述转发模块,用于在接收到通知时,将所接收的组播数据分发至本地网络。
14.如权利要求11所述的NAT设备,其特征在于,当该NAT设备所在本地网络启用 PIM-SM协议时,该NAT设备进一步包括本地组播数据接收单元和本地组播数据处理单元;所述本地组播数据接收单元,用于将接收自本地组播源的组播数据发送给本地组播数 据处理单元;所述本地组播数据处理单元,用于判断所接收组播数据所属组播组是否允许对公网发 布,如果允许,则根据设置的组播组地址与公网IP地址的映射关系,获取所接收组播数据 对应的公网IP地址,以获取的公网IP地址为源地址,对所接收组播数据的报文进行NAT变 换,将NAT变换后的组播数据通过出接口 Pl转发至公共网络侧;否则,在本地网络转发所接 收组播数据。
15.如权利要求14所述的NAT设备,其特征在于,所述本地组播数据处理单元包括出规 则维护模块、出规则匹配模块和组播数据发布模块;所述出规则维护模块,用于保存预先设置的出规则,该出规则包括允许发布到公共网 络中的本地组播组地址,以及为组播组配置的用于NAT变换的公网IP地址;所述出规则匹配模块,用于接收到来自本地组播源G2的组播数据时,如果根据所述出 规则维护模块保存的出规则,判定所接收组播数据允许发布到公共网络中,则通知组播数 据发布模块;所述组播数据发布模块,用于在接收到通知时,从所述出规则维护模块保存的出规则 中获取本地组播源G2对应的公网IP地址,以获取的公网IP地址为源地址,对所接收组播 数据进行NAT变换,将NAT变换后的组播数据通过出接口 Pl发送至公共网络侧。
16.一种NAT设备,其特征在于,该NAT设备所在的本地网络启用PIM-SM协议,该NAT 设备被配置为RP路由器;该NAT设备包括本地组播数据接收单元和本地组播数据处理单元;所述本地组播数据接收单元,用于将接收自本地组播源的组播数据发送给本地组播数 据处理单元;所述本地组播数据处理单元,用于判断所接收组播数据所属组播组是否允许对公网发 布,如果允许,则根据设置的组播组地址与公网IP地址的映射关系,获取所接收组播数据对应的公网IP地址,以获取的公网IP地址为源地址,对所接收组播数据的报文进行NAT变 换,将NAT变换后的组播数据通过出接口 Pl转发至公共网络侧;否则,在本地网络转发所接 收组播数据。
17.如权利要求16所述的NAT设备,其特征在于,所述本地组播数据处理单元包括出规 则维护模块、出规则匹配模块和组播数据发布模块;所述出规则维护模块,用于保存预先设置的出规则,该出规则包括允许发布到公共网 络中的本地组播组地址,以及为组播组配置的用于NAT变换的公网IP地址;所述出规则匹配模块,用于接收到来自本地组播源G2的组播数据时,如果根据所述出 规则维护模块保存的出规则,判定所接收组播数据允许发布到公共网络中,则通知组播数 据发布模块;所述组播数据发布模块,用于在接收到通知时,从所述出规则维护模块保存的出规则 中获取本地组播源G2对应的公网IP地址,以获取的公网IP地址为源地址,对所接收组播 数据进行NAT变换,将NAT变换后的组播数据通过出接口 Pl发送至公共网络侧。
18.如权利要求17所述的NAT设备,其特征在于,所述出规则维护模块保存的出规则进 一步包括为组播组配置的用于NAT变换的组播组公网IP地址;所述组播数据发布模块在NAT变换时,进一步从所述出规则中获取本地组播源G2对应 的组播组公网IP地址,采用获取的组播组公网IP地址替换所接收组播数据的组播组私网 IP地址。
全文摘要
本发明公开了一种实现本地网络与公共网络间组播互通的方法以及NAT设备,所述方法包括,配置NAT设备支持IGMP主机功能,当NAT设备接收本地主机请求加入公网组播组G1的组播协议报文时,为所述公网组播组G1分配一个公网IP地址,以分配的公网IP地址为源地址,向公网发送IGMP报告报文,以报告所述NAT设备作为组播点播者加入所述公网组播组;当NAT设备接收到公共网络分发的组播数据时,将所接收的组播数据分发至本地网络。使用本发明能够在不需要对公网的接入路由器进行特殊配置的情况下,实现本地PIM-SM/PIM-SSM组播网络对公网组播业务的访问。
文档编号H04L29/12GK102045179SQ20091023581
公开日2011年5月4日 申请日期2009年10月9日 优先权日2009年10月9日
发明者卢胜文 申请人:杭州华三通信技术有限公司