基于策略路由的流定向传输方法

文档序号:7719752阅读:248来源:国知局

专利名称::基于策略路由的流定向传输方法
技术领域
:基于策略路由的流定向属于移动IP技术应用领域。
背景技术
:高速增长的移动业务需求极大促进了无线接入技术的快速发展。然而传统的IP技术是针对静态主机所设计的,其IP地址不仅标明了主机的身份,同时也标明了主机的位置,因此不能支持主机的移动性。即当移动主机从一个网络漫游到另一个网络时,由于IP地址发生了变化,而通信的对端主机又无法获知移动节点的新的IP地址,最终导致路由失效使得移动节点的通信中断。针对传统IP的缺陷,互联网工程工作小组(InternetEngineeringTaskForce,简称IETF)提出了移动IP的概念。在移动IP网络中部署家乡代理的实体,每个移动节点都有一个家乡地址。当用户离开了原来的网络(称为家乡网络),获得一个新的接入网络地址后,移动节点必须向家乡代理发起注册,并建立之间的双向隧道,这样通信对端所有发往移动节点的数据分组都会被家乡代理截获,所有的分组将通过家乡代理转发给移动节点,具体工作过程如附图4所示。在此基础上,近年来互联网工程任务组又提出了支持多接口注册的移动IP,可以为拥有多个接口的移动主机的每一个接口提供移动性支持。这些主机可以通过多个接口接入网络。对于用户来说,就希望能同时利用主机的多个接口接入到网络中去。在接入网络中时,用户会访问不同的资源,如访问流媒体、访问网页、收发邮件等。用户在上网过程中,要发送数据,也要接收数据。当发送数据时,对于重要的信息,用户希望发送的信息能安全可靠的传输到目的地,这时用户就希望发送的数据能走可靠的有线链路。当接收数据时,用户可能考虑就费用问题,无线上网费用较高,所以用户就希望从家乡代理转发的数据流量大的数据,走费用低的有线接口。对于服务质量而言,对于质量高的应用,用户希望数据能走高质量保证的有线链路。对于浏览网页等质量要求不高的应用,可能希望让这些数据不占用有线的带宽,就希望这些让数据走无线接口。总之,用户希望能利用已配备的多接口上网,但对于不同的网络应用,用户有不同上网策略。传统的路由方式都是基于目的地址的匹配规则来进行,即路由器只根据所收到的IP报文中目的地址字段来进行路由匹配,而不能根据源地址或者是协议类型,端口号等信息进行路由选择。但是具有多个接口的移动主机要同时使用多个接口,或者需要按照用户指定的策略让具有特定类型的数据分组从相应的不同接口转发出去,这就需要根据源地址,协议类型,端口号等信息进行路由匹配,很显然传统的路由策略是完全不能满足的要求的。在这种情况下,如何根据用户制定的策略,通过策略路由的方式让特定的数据分组从指定的接口进行传输。即基于策略路由的流定向是急待解决的问题。本发明用到了netfilter、策略路由和Linux的iptable与iproute2函数方面的知识。分别介绍如下Netfilter介绍netfilter是操作系统内核数据分组处理工具,工作在内核内部,是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理4的规则集,以及下述五个钩子函数。当一个数据包进入系统后要进行IP校验,数据包经过netfilter中的第一个钩子函数(1)NFJP—PRE—R0UTING进行处理,处理后把数据包转进路由代码,由路由代码决定该数据包是需要转发的,还是要发给本机的;若该数据包是发给本机的,则该数据经过钩子函数(2)NFJPJDCALJN处理以后,传递给上层协议;若该数据包转发则它被(3)NF_IP_FORWARD处理;经过转发的数据包经过最后一个钩子函数(4)NFJP—P0S乙R0UTING处理以后,再传输到网络上。本地产生的数据经过钩子函数(5)NFJPJDCALJ)UT处理后进行路由处理,然后,经过NFJP—POS乙ROUTING处理后发送到网络上。如附图5所示。策略路由介绍目前在计算机网络中使用的传统路由算法都是根据IP数据包的目的地址进行路由选择。然而在现实应用中经常有这样的需求进行路由选择时不仅仅根据数据报的目的地址,而且根据数据报的其他一些特性如源地址、IP协议、传输层端口,甚至是数据包的负载部分内容,这种类型的路由选择被称作基于策略的路由。策略是使用路由策略数据库(RPDB,routingpolicydatabase)来替代传统的、基于目的地址的路由表来实现的。RPDB通过包含的一些规则来选定合适的IP路由。这些规则可能会包含很多各种不同类型的健值(key),因此这些规则没有默认的特定次序,规则查找次序或规则优先级都是由网络或系统管理员设定的。Li皿x的RPDB是一个由数字优先级值进行排序的线性规则列表。RPDB能匹配数据报源地址、目的地址进入接口和fwmark值等。每个路由策略规则由一个选择器和一个动作指示组成。RPDB按照优先级递增的顺序被扫描,RPDB包含的每条规则的选择器被应用于数据报的源地址、目的地址、进入接口和fwmark值。若数据报匹配该规则对应于该规则的动作被执行。若动作成功返回,则规则输出将是一个有效的路由或是路由查找失败指示;否则查找RPDB的下一条规则。Linux的iptable与iproute函数介绍iptables组件是一种工具,也称为用户空间(userspace),它使用户插入、修改和除去netfilter信息包过滤表中的规则。生成的规则,则由内核的netfilter及其相关模块(如iptables模块和nat模块)中的某一个钩子函数来真正来执行。Iproute2也是一个在Li皿x下工具软件,它是高级的网络管理工具软件,可以实现对数据包的路由定位功能。
发明内容本发明的目的在于提供了一种基于策略路由的流定向的技术方法。本发明的特征在于,基于策略路由的流定向传输方法,其特征在于,所述流定向传输方法是在移动IP网络MIPv6中互为收、发信方的两个移动节点上依次按以下步骤实现的步骤l,初始化路由策略数据库RPDB,是一个由数字优先级进行排序的线性策略规划列表,每个路由策略规则由一个选择器和一个动作指示组成。能匹配数据报的源地址、目的地址、进入接口和包标记fwmark值。以便用户发送数据时实现按照用户策略选择指定的接口发送或接收。设移动节点上有两套用户策略策略A和策略B。策略的优先级范围为100900,数值越大优先级越高。策略B的优先级高于策略A。设家乡代理上有两套用户策略策略C和策略D。策略的优先级范围为100900,数值越大优先级越高。策略D的优先级高于5策略C。在移动IP网络中的各个移动节点上,设有两个接口为分别为(eth0,ethl),在两个接口上分配的地址依次为(add0)和(addl),对应分配的网关地址分别依次为(gaddO)和(gaddl),使符合策略A的数据走所述接口ethO,符合策略B的数据走所述接口ethl。在所述移动IP网络的各个家乡代理上,设有两个接口为分别为(eth2,eth3),在两个接口上分配的地址依次为(add2)和(add3),对应分配的网关地址分别依次为(gadd2)和(gadd3),使得符合对应于策略A的C类策略的数据走所述接口eth2,使得符合对应于策略B的D类策略的数据走所述接口eth3。还设有相同的所述路由策略数据库RPDB。另外,在所述移动节点和家乡代理上都设有供Li皿x操作系统内核使用的内核数据分组处理工具Netfilter;步骤2.l,在所述移动IP网络MIPv6中为所述移动节点的每个接口向家乡代理建立转交地址COA的注册;步骤2.2,为所述移动节点的每个接口建立通向家乡代理的MIPv6隧道;步骤3,根据用户输入的所述用户策略,所述发信方按以下步骤向所述家乡代理发起通信;步骤3.l,建立两张策略路由表表0中的路由绑定接口ethO地址;表1中的路由绑定接口ethl地址;具体命令如下表0:ip_6routeaddadd0/64devethOtable20//togatewayip_6routeadddefaultviagaddOdevethOtable20〃gadd0为默认路由器表1:ip-6routeaddaddl/64devethltable30//togatewayiprouteadddefaultviagaddldevethltable30〃gaddl为默认路由器步骤3.2,根据步骤1中输入的所述用户策略,利用所述Li皿x的数据包过滤工具iptables在所述发信方添加数据包过滤处理的netfilter规则,对进入的所述发信方的数据包分类,按不同的用户策略打上分类标记;利用Li皿x的iptable函数把符合策略A的数据标记为设定值假设为20,把符合策略B的数据标记为设定值假设为30,具体命令如下Iptables-tmangle-AOUTPUT-saddO_jMARK_set_mark20iptables-tmangle-AOUTPUT-saddl_jMARK_set_mark30步骤3.3,根据步骤3.2所述的用户策略和添加的netfilter规则,把进入的带所述分类标记的数据包按不同的用户策略引导到步骤3.1所建立的对应的策略路由表,根据所述策略路由表中的规则查找对应的路由,并加上对应的预先设定的优先级;具体命令如下ipruleaddfwmark2020pref1006ipruleaddfwmark30table30pref200步骤3.4,把从不同接口的进来的数据包仍从相应接口出去,具体命令如下ipruleaddfromadd2table40pref300ipruleaddfromadd3table50pref400步骤3.5,根据所述的绑定的接口地址把分配的所述对应的路由表的数据引导到所绑定的接口;步骤3.6,删除路由缓存,使得策略路由立即生效ipruleflushtablemain;步骤4,所述家乡代理根据收到的路由表类别,判断出所述的用户策略,依次按以下步骤通过相应的路由表向所述收信方发出数据包;步骤4.l,在所述收信方上建立策略路由表表2中的路由绑定接口eth2地址;表3中的路由绑定接口eth3地址;具体命令如下表2:ip-6routeaddadd2/64deveth2table40//togatewayip-6丽teadddefaultviagadd2deveth2table40〃gadd2为默认路由器表3:ip-6routeaddadd3/64deveth3table50//togatewayiprouteadddefaultviagadd3deveth3table50〃gadd3为默认路由器步骤4.2,根据步骤1中输入的所述用户策略,利用所述Li皿x的数据包过滤工具iptables,在家乡代理添加数据包过滤处理的netfilter规则,对进入的数据包分类,并按不同的用户策略C或策略B打上分类标记;利用Li皿x的iptable函数把符合策略C的数据标记为设定值假设为40,把符合策略D的数据标记为设定值假设为50,具体命令如下Iptables-tmangle_A0UTPUT-sadd2-jMARK_set_mark40iptables-tmangle-A0UTPUT-sadd3-jMARK_set_mark50步骤4.3,根据判断出来的所述的用户策略和步骤4.2中添加的netfilter规贝U,利用iproute2函数的iptable命令在所述家乡代理上添加分配数据包的路由表规则,把进入的带分类标记的数据包按分配到步骤4.1所建立的对应的策略路由表中,根据所述策略路由表中的规则查找对应的路由,并加上对应的预先设定的优先级;ipruleaddfwmark40table40pref100ipruleaddfwmark50table50pref200步骤4.4,把从不同接口的进来的数据包仍从相应接口出去,具体命令如下ipruleaddfromadd2table40pref300ipruleaddfromadd3table50pref400步骤4.5,对不同的分类标记把所述数据包的路由到不同的路由表中,并加上优先级;步骤4.6,根据步骤(4.1)中在本家乡代理上建立的路由引导规则,把分配到不同路由表的数据包引导到不同的接口;步骤4.7,删除路由缓存,使得策略路由立即生效ipruleflushtablemain。利用本发明能实现支持多接口注册的移动主机,根据用户的基于费用、通信质量、安全等不同需求,制定对用户最有利的策略,通过策略路由的方式让数据分组从指定的接口进行传输,即能实现数据流按用户要求定向,达到用户需求的最佳服务效果。图1为在移动IPv6网络中,本发明的策略路由要在移动节点和家乡代理上分别部署,其部署位置图;图2为在得到用户策略后,要根据用户策略,做策略路由的有关设置准备,本图为准备工作流程图;图3为在布置了策略路由后,从网络发来的数据包,进入系统内核后被内核处理流程图;图4为在移动IPv6网络中,移动IPv6的功能实体及其工作过程示意图;图5为未部署策略路由时,从网络发来的数据包,进入系统内核后被内核处理流程图;图6为在移动节点上,策略路由规则的添加说明图;图7为在家乡代理上,策略路由规则的添加说明图。具体实施例方式利用移动IP技术需要家乡代理转发数据的特点,在移动节点和家乡代理上部署策略路由,如图l所示。即在移动节点上部署发送数据时的路由策略,用户发送数据时实现按照用户的策略选择指定的接口发送。在家乡代理上部署转发数据的路由策略,转发数据时实现按照用户的策略从指定接口转发。在上述的关于netfilter的介绍中我们看到,数据进入系统后要被netfilter函数处理。Netfilter可以通过iptables添加规则。本发明的特征还在于,获得用户策略后,制定策略路由表;利用iptable函数给netfiIter添加规则,使数据包在经过netfiIter处理时,按用户策略分类并打上标记;利用iproute2函数对标记的数据包进行定位,定位到我们制定好的策略路由表中,并执行策略路由;利用IP—rule把数据包引导到策略路由指定的接口上去。策略路由的准备工作流程图如图2所示;移动节点和家乡代理策略路由规则添加说明图分别如图6、图7所示;布置策略路由后,数据包进入系统后处理流程图如图3所示。实现上述方法,其特征在于,该方法依次含有以下步骤获得用户策略(假设用户有两套策略A和B,移动节点有两个接口为分别为eth0和ethl,接口上分配的地址分别假设为add0和ddl,网关地址为gadd0和gaddl,符合策略A的数据走接口ethO,符合策略B的数据走接口ethl),做流定向准备,其特征在于,该方法依次含有以下步骤步骤slOl:在MIPV6中给每个接口进行C0A注册;步骤s102:给接口建立隧道;步骤sl03:根据用户策略,在移动节点上建立策略路由表表0和表1。表0中,路由绑定接口eth0地址;表1中,路由绑定接口ethl地址;8步骤s104:根据用户策略,在移动节点上添加netfilter规则,对进入移动节点的数据包分类,并打上分类标记,假设符合策略A的数据标记为20,符合策略B的数据标记为30;步骤s105:根据用户策略和netfilter规则,在移动节点上添加路由表规则,把进入的带标记的数据包,定位到步骤s103建立的策略路由表,标记为20的数据包定位到表O,并执行表O中规则,查找对应的路由;标记为30的数据包定位到表l,并执行表1中规则,查找对应的路由;步骤sl06:在移动节点上建立路由引导规则,把步骤s105中定位到表0的数据引导到接口ethO;定位到表1的数据引导到接口ethl;步骤s107:在家乡代理上,依次按步骤sl03、步骤sl04、步骤sl05、步骤s106设置好策略路由表、数据标记规则、路由表规则、路由引导规则;在步骤s103中,建立策略路由表,绑定发送接口,其特征在于,该方法依次含有以下步骤步骤s201:增加两张策略路由表,具体命令如下表0:ip_6routeaddadd0/64deveth0table20//togatewayip-6routeadddefaultviagadd0deveth0table20//defaultgateway表1:ip-6routeaddadd1/64devethltable30//togatewayiprouteadddefaultviagaddldevethltable30//defaultgateway在步骤sl04中,根据用户策略添加netfilter规则,其特征在于,该方法依次含有以下步骤步骤s301:利用Linux的iptable函数把符合策略A的数据标记为20,把符合策略B的数据标记为30,具体命令如下Iptables_tmangle_AOUTPUT_saddO_jMARK_set_mark20iptables_tmangle_A0UTPUT_saddl_jMARK_set_mark30在步骤sl06中,在移动节点建立路由引导规则,其特征在于,该方法依次含有以下步骤步骤s401:根据不同标记引导向不同路由表,并加上偏好度,具体命令如下ipruleaddfwmark20table20pref100ipruleaddfwmark30table30pref200步骤s402:考虑到回复报文时,从不同接口进来的报文仍应当从相应接口出去,具体命令如下ipruleaddfromadd0table20pref300ipruleaddfromaddltable30pref400步骤s403:删除路由缓存,使得策略路由立即生效ipruleflushtablemain。通过上述步骤实现了让数据流从策略指定的接口传输。在拥有多个接口的移动主机通过多个接口接入网络时。用户可以有多种传输接口选择,对于不同的网络应用,基于费用、传输质量等考虑,用户有不同传输选择策略。本发明的主要贡献就是提供了根据用户策略选择传输接口的技术。该方法的基本思想是利用移动IP技术需要家乡代理转发数据的特点,在移动节点和家乡代理上部署策略路由,即在移动节点上部署发送数据时的路由策略,用户发送数据时实现按照用户的策略选择指定的接口发送。在家乡代理上部署转发数据的路由策略,转发数据时实现按照用户的策略从指定接口转发。该方法的具体实施实例如下根据用户策略,给进入计算机的不同数据流分类。我们假设用户有两套策略A和B,移动节点有两个接口为分别为ethO和ethl,接口上分配的地址分别为addO:2001:ccO:2026::l(假设)和addl:2001:ccO:2027::1(假设)。符合策略A的数据走接口ethO,符合策略B的数据走接口ethl。首先增加两张策略路由表ip-6丽teadd2001:ccO:2026::1/64deveth0table20〃togatewayip-6routeadddefaultvia2001:cc0:2026::253deveth0table20〃defaultgatewayip-6routeadd2001:ccO:2027::1/64devethltable30〃togatewayiprouteadddefaultvia2001:cc0:2027::253devethltable30〃defaultgateway利用Linux的iptable函数给不同类型的数据流打上类型标记。Iptables_tmangle_AOUTPUT_s2001:ccO:2026::l_jMARK_set_mark20iptables_tmangle_AOUTPUT_s2001:ccO:2027::l_jMARK_set_mark301)把符合策略A的数据标记为20,把符合策略B的数据标记为30。ipruleaddfwmark20table20pref100ipruleaddfwmark30table30pref2002)根据不同标记引导向不同路由表,并加上偏好度考虑到回复报文时,从不同接口进来的报文仍应当从相应接口出去10ipruleaddfrom2001:cc0:2026::ltable20pref300ipruleaddfrom2001:ccO:2027::ltable30pref4003)删除路由缓存,使得策略路由立即生效ipruleflushtablemain。通过上述步骤实现了让数据流从策略指定的接口传输。本发明策略路由部署位置图见图1.本发明策略路由部署前准备工作流程图见图1.布置策略路由后,数据包进入系统后处理流程图.本发明通过策略路由的部署,实现了数据流的定向,解决了多接口的移动节点根据需求让不同业务流选择不同接口传输的问题。能实现根据用户的基于费用、通信质量、安全等的不同需求,达到最佳的服务效果。权利要求基于策略路由的流定向传输方法,其特征在于,所述流定向传输方法是在移动IP网络MIPv6中互为收、发信方的两个移动节点上依次按以下步骤实现步骤(1),初始化;路由策略数据库RPDB,是一个由数字优先级进行排序的线性策略规划列表,每个路由策略规则由一个选择器和一个动作指示组成。能匹配数据报的源地址、目的地址、进入接口和包标记fwmark值。以便用户发送数据时实现按照用户策略选择指定的接口发送或接收。设移动节点上有两套用户策略策略A和策略B。策略的优先级范围为100~900,数值越大优先级越高。策略B的优先级高于策略A。设家乡代理上有两套用户策略策略C和策略D。策略的优先级范围为100~900,数值越大优先级越高。策略D的优先级高于策略C。在移动IP网络中的各个移动节点上,设有两个接口为分别为(eth0,eth1),在两个接口上分配的地址依次为(add0)和(add1),对应分配的网关地址分别依次为(gadd0)和(gadd1),使符合策略A的数据走所述接口eth0,符合策略B的数据走所述接口eth1。在所述移动IP网络的各个家乡代理上,设有两个接口为分别为(eth2,eth3),在两个接口上分配的地址依次为(add2)和(add3),对应分配的网关地址分别依次为(gadd2)和(gadd3),使得符合对应于策略A的C类策略的数据走所述接口eth2,使得符合对应于策略B的D类策略的数据走所述接口eth3。还设有相同的所述路由策略数据库RPDB。另外,在所述移动节点和家乡代理上都设有供Linux操作系统内核使用的内核数据分组处理工具Netfilter;步骤(2.1),在所述移动IP网络MIPv6中为所述移动节点的每个接口向家乡代理建立转交地址COA的注册;步骤(2.2),为所述移动节点的每个接口建立通向家乡代理的MIPv6隧道;步骤(3),根据用户输入的所述用户策略,所述发信方按以下步骤向所述家乡代理发起通信;步骤(3.1),建立两张策略路由表表0中的路由绑定接口eth0地址;表1中的路由绑定接口eth1地址;步骤(3.2),根据步骤(1)中输入的所述用户策略,利用所述Linux的数据包过滤工具iptables在所述发信方添加数据包过滤处理的netfilter规则,对进入的所述发信方的数据包分类,按不同的用户策略打上分类标记;步骤(3.3),根据步骤(3.2)所述的用户策略和添加的netfilter规则,把进入的带所述分类标记的数据包按不同的用户策略引导到步骤(3.1)所建立的对应的策略路由表,根据所述策略路由表中的规则查找对应的路由,并加上对应的预先设定的优先级;步骤(3.4),把从不同接口的进来的数据包仍从相应接口出去;步骤(3.5),根据所述的绑定的接口地址把分配的所述对应的路由表的数据引导到所绑定的接口;步骤(3.6),删除路由缓存,使得策略路由立即生效;步骤(4),所述家乡代理根据收到的路由表类别,判断出所述的用户策略,依次按以下步骤通过相应的路由表向所述收信方发出数据包;步骤(4.1),在所述收信方上建立策略路由表表2中的路由绑定接口eth2地址;表3中的路由绑定接口eth3地址;步骤(4.2),根据步骤(1)中输入的所述用户策略,利用所述Linux的数据包过滤工具iptables,在家乡代理添加数据包过滤处理的netfilter规则,对进入的数据包分类,并按不同的用户策略C或策略B打上分类标记;步骤(4.3),根据判断出来的所述的用户策略和步骤(4.2)中添加的netfilter规则,利用iproute2函数的iptable命令在所述家乡代理上添加分配数据包的路由表规则,把进入的带分类标记的数据包按分配到步骤(4.1)所建立的对应的策略路由表中,根据所述策略路由表中的规则查找对应的路由,并加上对应的预先设定的优先级;步骤(4.4),把从不同接口的进来的数据包仍从相应接口出去;步骤(4.5),对不同的分类标记把所述数据包的路由到不同的路由表中,并加上优先级;步骤(4.6),根据步骤(4.1)中在本家乡代理上建立的路由引导规则,把分配到不同路由表的数据包引导到不同的接口;步骤(4.7),删除路由缓存,使得策略路由立即生效。全文摘要基于策略路由的流定向传输方法属于移动IP技术应用领域,其特征在于含有以下步骤在获得用户策略后,制定策略路由表;利用iptable函数给netfilter添加规则,使数据包在经过netfilter处理时,按用户策略分类并打上标记。利用iproute2函数对标记的数据包进行定位,定位到我们制定好的策略路由表中,并执行策略路由,利用IP_rule把数据包引导到策略路由指定的接口上去。本发明实现支持多接口注册的移动主机,可以根据用户基于费用、通信质量、安全等的不同需求制定的策略,通过策略路由的方式让数据分组从指定的接口进行传输,即实现数据流按用户要求定向,达到用户希望的服务效果。文档编号H04W80/00GK101695160SQ200910236370公开日2010年4月14日申请日期2009年10月20日优先权日2009年10月20日发明者崔勇,蔡云峰,马天泽申请人:清华大学;
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1