一种PPPoE协议报文转发方法

文档序号:7625448阅读:296来源:国知局
专利名称:一种PPPoE协议报文转发方法
技术领域
本发明涉及网络通信技术,尤其涉及一种PPPoE(基于以太网的点对点协议)协议报文转发方法。
背景技术
随着宽带网络技术的不断发展,以xDSL、CableModem和以太网为主的几种主流宽带接入技术的应用,在秉承窄带拨号上网的运营思路基础上,IETF(国际互联网工程任务组)制定出了PPPoE协议,它提供了在以太网中多台用户主机连接到远端的BAS(宽带接入服务器)上的一种标准,在以太网上建立、维持各用户主机与BAS之间点对点的关系,BAS提供PPPoE服务器功能以支持对PPPoE协议报文的终结。
如图1所示,在接入网络中,多个用户主机11通过其网络终端设备12与网络接入设备13如DSLAM(数字用户线复用器)相连接,其用户主机接入协议类型可以是PPPoE或PPPoA,DSLAM在完成PPPoE/PPPoA到PPPoE的转换后需要进一步通过EMAN(以太网城域网)将PPPoE报文转发到BAS上以终结PPP会话。由于EMAN中的执行汇聚功能的以太网交换机14或BAS 15的MAC地址表的容量是有限的,如果在接入设备DSLAM的每个用户主机和BAS之间的PPPoE会话都使用不同的MAC地址,当用户会话数较大时容易耗尽EMAN中后续设备(以太网交换机14和BAS 15)的MAC地址表。而且对后续设备来说,庞大的MAC地址表也限制了其数据转发处理能力。

发明内容
本发明目的在于提供一种PPPoE协议报文转发方法,根据本方法实现的网络设备下的多个客户端可使用同样的MAC地址与BAS进行会话。
一种PPPoE协议报文转发方法,包括a)在PPPoE发现阶段,上行方向,将来自若干客户端的PPPoE协议报文源MAC地址设置为本机MAC地址,并将客户端信息承载在PPPoE协议报文中,下行方向,根据返回的PPPoE协议报文中相应客户端信息配置PPPoE协议报文;并为每个客户端PPPoE建立会话记录表;b)在PPP会话阶段,根据所建立的会话记录进行上行PPPoE数据报文源MAC地址替换,下行PPPoE数据协议报文目的MAC地址替换,并转发PPPoE数据报文。
优选地,所述会话记录表至少包括客户端信息、PPPoE会话标识。
优选地,所述会话记录表进一步包括PPPoE服务器MAC地址。
优选地,所述会话记录表进一步包括中继会话标签,所述PPPoE协议报文转发方法进一步将来自客户端协议报文的中继会话标签值保存在会话记录表并在相应的返回报文中予以替换。
其中,所述客户端信息可以是客户端MAC地址。
优选地,所述PPPoE协议报文转发中,客户端信息承载于PPPoE协议报文中继会话标签。
优选地,所述PPPoE协议报文转发中,当所述PPPoE报文为有效发现终止报文时,进一步删除该报文相应的客户端与PPPoE服务器之间所建立的会话记录。
通过上述发明方法,网络接入设备可以对所转发的所有PPPoE报文通过使用有限的MAC地址,从而减少了EMAN中的以太网交换机进行数据转发时所需要的查表时间,提高了转发效率;此外,针对现有BAS和以太网交换机的MAC地址表数量比较少、不利于大规模PPPoE/PPPoA用户的接入,通过本发明很好地解决了上述局限性;在本发明实现上,以DSLAM为例,通过将用户设备MAC地址替换为本机MAC地址,如用户接入线卡的MAC地址,从而避免了用户设备MAC地址在EMAN中和其他网络设备的MAC发生冲突。


图1是一种典型的网络接入系统结构示意;图2是一种典型的PPPoE会话流程图;图3是PPPoE帧格式;
图4是本发明所提供的客户端与BAS之间PPPoE协议报文转发;图5是本发明提供的客户端会话记录表。
具体实施例方式
下面结合附图,对本发明的优选实施方式进行详细的说明。
图2是一种典型的用户主机11与BAS 15之间的PPPoE会话流程图,它包含PPPoE发现阶段和PPP会话两个阶段。
(1)PPPoE发现阶段目的是获得PPPoE终结端BAS的PPPoE服务器的MAC地址,并建立一个与该PPPoE服务器之间唯一的PPP会话标识符(SESSION ID)。发现阶段会话步骤包括用户主机广播一个PADI(有效发现初始)报文寻找BAS,PADI报文必须至少包含一个服务名称类型(Service Name)的标签,以表明用户主机所要求提供的服务。
一个或多个可以提供用户主机要求的BAS(图中只示意一个)发送PADO(有效发现提供)报文。
用户主机选择一个合适的BAS,发送PADR(单播会话请求)报文以告知被选择的BAS,PADR中必须声明向BAS请求的服务种类。
被选择的BAS收到PADR报文后开始为用户主机分配一个唯一的Session ID,启动PPP状态机以准备开始PPP会话,并发送一个PADS(会话确认报文)。
此外,PPPoE还有一个PADT(有效发现终止)报文,它可以在会话建立后的任何时候由用户主机或者BAS发送,以终止PPPoE会话。
(2)PPP会话阶段用户主机收到PADS报文后,双方进入PPP会话阶段。在会话阶段的Session ID必须是发现阶段所分配的值,PPPoE数据(PPP Data)报文的负荷区包含一个PPP帧,进行PPP层的链路配置、协商、数据交换等过程。
结合图1所示意,用户主机与BAS之间的网络终端设备12、网络接入设备13、太网交换机14等将提供PPPoE协议报文的转发。
图3是PPPOE的帧格式,其详细说明可参考相关IETF标准,这里只作简单说明类型31为0x8863时表示PPPoE发现阶段;为0x8864时表示PPP会话阶段。
代码32用于表示用户主机与BAS之间的报文类型,例如为0x09时表示一个PADI报文;0x07时表示一个PADO报文,为0x00时表示PPP会话阶段……。
SESSION_ID 33是一个网络字节序的无符号值,对一个给定的PPP会话来说该值是一个固定值,并且与客户端地址和目的地址一起实际地定义了一个PPP会话。
标签类型34用于其它约定用途定义,例如为0x0101表示一个服务名称类型(表明可向用户主机提供的服务种类)的标签;为0x0102表示一个宽带接入服务器名称的标签;为0x0110表示一个中继会话标签,……上述每种标签除了标签类型34外,还具有标签长度、标签值。
下面,我们结合图4以DSLAM为例对客户端与BAS之间PPPoE协议报文转发方法做进一步说明。
在PPPoE发现阶段,DSLAM在获得来自客户端PADI(或者PADR)报文时,记录下该报文所对应的客户端信息,如客户端MAC地址;DSLAM进一步将客户端信息编码到发往BAS的PADI(或者PADR)报文中,并以本机MAC地址(如当前用户线卡的MAC地址)替换PADI(或者PADR)报文的源MAC地址然后将转换后的PADI’(或者PADR’)报文传递到BAS端的PPPoE Server。当收到来自PPPoE Server响应的PADO’(或者PADS’)后,根据该报文中原样复制的客户端信息找到原客户端MAC地址,然后DSLAM以获得的原客户端MAC地址替换PADO’(或者PADS’)报文的目的MAC地址后、并进一步删除该报文中的客户端信息编码并将转换后的PADO(或者PADS)报文传递给客户端。
DSLAM可以为每个正在建立或建立好的客户端PPPoE会话建立会话记录表,如图5所示,其会话记录结构至少需要包含客户端信息、SESSION_ID以为每个客户端与PPPoE服务器之间定义一个唯一的PPP会话;当EMAN中存在多个PPPoE服务器时,该会话记录结构还需要进一步包括PPPoE服务器MAC地址。
优选地,所述客户端信息既可以是前述客户端MAC地址、也可以包括与该客户端相连的DSLAM中的端口号、或其它相关信息或它们的组合,只要其能唯一地表示该客户端PPPoE协议报文。如此,PPPoE报文中承载的客户信息可以是唯一标识该客户端的一个PPPoE会话记录索引,DSLAM能根据该记录索引确定PADO’(或者PADS’)需要配置转发的客户端信息。
优选地,对客户端上行的PPPoE报文转发可以使用PPPoE协议报文中继会话标签承载客户端信息;但不排除在DSLAM和BAS之间约定一个新的标签类型承载上述客户端信息,只要BAS返回的PPPoE报文(如前述PADO’或者PADS’)中提供从PADI(或者PADR)中原样复制的客户端信息。
优选地,如果发现阶段协议报文中已经存在中继会话标签,根据RFC 2516中约定,转发设备再不得增加新的中继会话标签,但我们可以在客户端会话记录表中增加一个中继标签选项,将来自客户端转发前的PPPoE报文(如前述PADI或者PADR)的中继会话标签记录保存在会话记录表中并对BAS返回的PPPoE报文(如前述PADO’或者PADS’)相应的中继标签予以替换后再转发。
收到PADS’后,它将报文中的SESSION_ID记录到会话记录表相应的客户端会话记录中,如此,DSLAM可以为每个客户端与PPPoE服务器之间定义一个唯一的PPP会话.如前所述,当EMAN中存在多个PPPoE服务器时,该会话记录结构还需要进一步记录PPPoE服务器的MAC地址,当然,对PPPoE服务器的MAC地址的记录可以是在收到PADO’报文时记录(EMAN中存在一个PPPoE服务器时),也可以是在收到PADS’进行记录。
在PPP会话阶段,如果收到来自客户端的PPPoE数据(PPP Data)报文,则以本机MAC地址,如当前用户线卡的MAC地址替换原来的源MAC地址,并根据发现阶段确定的会话记录将转换后的PPP Data’报文发往目的BAS。同样,在收到来自BAS的PPP Data’报文,根据报文中的SESSION_ID以及BAS的PPPoE服务器的MAC地址可以在会话记录唯一地确定客户端信息,如客户端MAC地址,并以其替换该报文中的目的MAC地址并转发转换后的PPP Data报文。
此外,当DSLAM收到客户端或者BAS发送的PADT报文时,它在执行完该报文转发后,进一步删除该客户端与PPPoE服务器之间会话记录。
尽管上述实施例对PPPoE客户端进行PPPoE报文转发,但是本发明思想同样可用于为PPPoA客户端提供PPPoA到PPPoE的报文转发,所不同的是DSLAM记录PPPoA客户端信息不同,例如DSL线号、Vpi和Vci,并需要完成PPPoA协议报文到PPPoE协议报文的转换过程。
通过上述PPPoE协议报文转换方法,DSLAM可以为多个PPPoE/PPPoA客户端使用单一的源MAC地址与BAS进行PPPoE会话,从而节省了后续设备的MAC地址空间,减少了其进行数据交换过程中的查表时间,从而提高了转发效率。
不脱离本发明的构思和范围可以做出许多其他改变和改型。应当理解,本发明不限于特定的实施方式,本发明的范围由所附权利要求限定。
权利要求
1.一种PPPoE协议报文转发方法,包括a)在PPPoE发现阶段,上行方向,将来自若干客户端的PPPoE协议报文源MAC地址设置为本机MAC地址,并将客户端信息承载在PPPoE协议报文中,下行方向,根据返回的PPPoE协议报文中相应客户端信息配置PPPoE协议报文,并为每个客户端PPPoE建立会话记录表;b)在PPP会话阶段,根据所建立的会话记录进行上行PPPoE数据报文源MAC地址设置,下行PPPoE数据协议报文客户端信息恢复,并转发PPPoE数据报文。
2.如权利要求1所述的PPPoE协议报文转发方法,其特征在于所述会话记录表至少包括客户端信息、PPPoE会话标识。
3.如权利要求2所述的PPPoE协议报文转发方法,其特征在于所述会话记录表进一步包括PPPoE服务器MAC地址。
4.如权利要求1至3所述的PPPoE协议报文转发方法,其特征在于当所述客户端信息可以是客户端MAC地址。
5.如权利要求1至3所述的PPPoE协议报文转发方法,其特征在于所述步骤a)中,客户端信息承载于PPPoE协议报文中继会话标签。
6.如权利要求5所述的PPPoE协议报文转发方法,其特征在于所述会话记录表进一步包括中继会话标签,所述PPPoE协议报文转发方法进一步将来自客户端协议报文的中继会话标签值保存在会话记录表并在相应的返回报文中予以替换。
7.如权利要求1至3所述的PPPoE协议报文转发方法,其特征在于当所述PPPoE报文为有效发现终止报文时,进一步删除该报文相应的客户端与PPPoE服务器之间所建立的会话记录。
全文摘要
本发明公开了一种PPPoE协议报文转发方法,所述方法包括a)在PPPoE发现阶段,上行方向,将来自若干客户端的PPPoE协议报文源MAC地址设置为本机MAC地址,并将客户端信息承载在PPPoE协议报文中,下行方向,根据返回的PPPoE协议报文中相应客户端信息配置PPPoE协议报文,并为每个客户端PPPoE建立会话记录表;b)在PPP会话阶段,根据所建立的会话记录进行上行PPPoE数据报文源MAC地址设置,下行PPPoE数据协议报文客户端信息恢复,并转发PPPoE数据报文。通过上述发明方法,可以减少EMAN中的以太网交换机进行数据转发时所需要的查表时间,提高了转发效率。
文档编号H04L29/06GK1972238SQ20051011072
公开日2007年5月30日 申请日期2005年11月24日 优先权日2005年11月24日
发明者赵民正, 徐毅钧, 张伟华, 熊诚峰 申请人:上海贝尔阿尔卡特股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1