BRAS技术与认证(6)

2020-02-21 23:15

BRAS技术与认证

主机在本以太网内广播一个PADI(PPPoE Active Discovery Initial)报文,在此报文中包含主机想要得到的服务类型信息。

主机以广播形式发送PADI报文

ServerAPADIPADIPADIServerBPCPADIServerC

说明?

如果在PPPoE的服务器端配臵service-name,client将发送Discovery阶段的PADI报文给服务器端请求建立连接。

如果该PADI报文中包含有不为空的service-name时,服务器端将用配臵的

service-name和该报文中的service-name进行完全匹配性检测。如果两者完全相同,服务器端提供后续服务,否则,服务器端不提供服务。

以上是两者的service-name都不为空时的情况。但如果两者中有一个service-name为空,就不进行此项检测,直接按照原来的程序执行。

?

?

以太网内的所有服务器收到这个PADI报文后,将其中请求的服务与自己能提供的服务进行比较,可以提供此服务的服务器发回PADO(PPPoE Active Discovery Offer)报文。如0中,ServerA和ServerB都可以提供服务,所以都会向主机发回PADO报文。

服务器发回PADO报文

ServerAPADO-APADO-APADO-BPADO-BServerBPCServerC

主机可能收到多个服务器的PADO报文,主机将依据PADO的内容,从多个服务器中选择一个,并向它发回一个会话请求报文PADR(PPPoE Active Discovery Request)。

例如在图中,主机选择ServerA,并发回PADR报文。

25

BRAS技术与认证 PADRPADRServerBPCServerCServerA 服务器产生唯一的会话标识,标识和主机的这段PPPoE会话。并把此会话标识通过会话确认报文PADS(PPPoE Active Discovery Session-confirmation)发回给主机,如果没有错误,双方进入PPP Session阶段。例如在图中,ServerA收到PADR报文后,会向主机发送PADS报文。

ServerAPADSPADSServerBPCServerC

接入服务器发送确认数据包后,它就可以进入到PPP会话阶段。当主机接收到该确认数据包后,它就可以进入PPP会话阶段。

Discovery阶段所有的以太网帧的Ethernet_Type域都设臵为0x8863。

PPPoE的Payload部分包含0个或多个Tag。一个Tag是一个TLV(Type-Length-Value)结构,其帧结构定义如图所示。

0Tag_TypeTag_Value......15Tag_Length31 各域的含义如下:

?

Tag_Type域的长度是16比特,也就是网络字节序。图列出了各种Tag_Type和Tag_Value的

对应关系和含义。 Tag_Value Tag_Type 0x0000 End-Of-List 含义 该Tag值表明表中是最后一个Tag。该Tag的Tag_Length必须总是0。 不要求使用该标签,它是为了向后兼容。 26

BRAS技术与认证 Tag_Value Tag_Type 含义 0x0101 Service-Name 该Tag表明后面紧跟的是服务的名称。 ? Tag_Value是不以NULL结束的字符串。 ? 当Tag_Length为0时,该TAG用于表明接受任何服务。 使用Service-Name标签的例子是表明Internet服务提供商ISP或者一类服务或者服务的质量。 0x0102 AC-Name 该Tag表明后面紧跟的字符串唯一地表示了某个特定的接入服务器。 它可以是商标、型号以及序列号等信息的集合,或者该接入服务器MAC地址的一个简单表示。 它不以NULL来结束。 0x0103 Host-Uniq 该Tag由主机用于把接入服务器的响应报文(PADO或者PADS)与主机的某个唯一特定的请求联系起来。 Tag_Value是主机选择的长度和值,可以是任意的二进制数据。它不能由接入服务器解释。 主机可以在PADI或者PADR中包含一个Host-Uniq标签。如果接入服务器收到了该标签,它必须在对应的PADO或者PADS中不加改变的包含该标签。 0x0104 AC-Cookie 该Tag由接入服务器用于防止服务攻击。 接入服务器可以在PADO数据包中包含该Tag。如果主机收到了该标签,它必须在接下来的PADR中不加改变的包含该标签。 Tag_Value的长度和值都是任意的二进制数据。 0x0105 Vendor-Specific 该Tag用来传送厂商自定义的信息。 Tag_Value的前4个字节包含了厂商的识别码,其余字节尚未定义。 厂商识别码的高字节为0,低3个字节为网络字节序的厂商的SMI网络管理专用企业码。 不推荐使用该Tag。为了确保互操作性,在实现过程中,可以悄悄的忽略Vendor-Specific Tag。 27

BRAS技术与认证 Tag_Value Tag_Type 0x0110 Relay-Session-Id 含义 该Tag可由中继流量的中间代理加入到Discovery数据包中。 Tag_Value对主机和接入服务器都是不透明。如果主机或接入服务器收到该Tag,则它们必须在所有的Discovery数据包中包含该Tag以作为响应。 所有的PADI数据包必须保证足够空间来加入Tag_Value长度为12字节的Relay-Session-Id标签。 如果Discovery数据包中已经包含一个Relay-Session-Id标签,则不允许再加入该标签。这种情况下,中间代理应该使用该现有的Relay-Session-Id标签。 如果它不能使用现有的标签,或者没有足够空间来增加一个Relay-Session-Id标签,那么它应该向发送者返回一个Generic-Error标签。 0x0201 Service-Name-Error 该Tag典型的有一个长度为零的数据部分。 它表明了由于某种原因,没有理睬所请求的Service-Name。如果有数据部分,并且数据部分的头一个字节非0,那么它必须是一个可打印字符串,解释请求被拒绝的原因。 该字符串可以不以NULL结束。 0x0202 AC-System-Error 该Tag表明了接入服务器在处理主机请求时出现了某个错误。例如没有足够资源来创建一个虚拟电路。PADS数据包中可以包含该标签。 如果有数据,并且数据的第一个字节不为0,那么数据必须是一个可打印字符串,该字符串解释了错误的性质。 该字符串可以不以NULL结束。 0x0203 Generic-Error 该Tag表明发生了一个错误。 当发生一个不可恢复的错误并且没有其它合适的Tag时,它可被加到PADO、PADR或PADS数据包中。 如果出现数据部分,那么数据必须是一个解释错误性质的字符串。 该字符串不允许以NULL结束。 ?

Tag_Length域的长度是16比特,是一个网络字节序的无符号值,表明Tag_Value的字节数。

28

BRAS技术与认证

如果收到的Discovery数据包中包含未知的Tag_Type,则必须忽略掉该Tag,除非本文档特别指出。这样规定是为了在增加新的Tag时保持向后兼容。如果增加强制使用的Tag,则版本号version将会提高。 4.2.2 PADI数据包

主机发送Destination_address为广播地址的PADI数据包,Code域设臵为0x09,Session_ID域必须设臵为0x0000。

PADI数据包必须包含且仅包含一个Tag_Type为Service-Name的Tag,以表明主机请求的服务,以及任意数目的其它类型的TAG。整个PADI数据包,包括PPPoE头部不允许超过1484个字节,以留足空间让中继代理向数据包中增加类型为Relay-Session-Id的Tag。

PADI报文结构示例图

0150xFFFFFFFF0xFFFFHost_MAC_addressHost_MAC_address ( Continue )Ethernet_Type ( 0x8863 )Session_ID ( 0x0000 )Tag_Type ( 0x0101 )V = 1T = 1Code ( 0x09 )192331Length ( 0x0004 )Tag_Length ( 0x0000 )

4.2.3 PADO数据包

如果接入服务器能够为收到的PADI请求提供服务,它将通过发送一个PADO数据包来做出应答。Destination_address是发送PADI报文的主机的单播地址,Code域为0x07,Session_ID域必须设臵为0x0000。

PADO数据包必须包含一个类型为AC-Name的Tag,AC是接入服务器的名字。还必须包含与PADI中相同的Service-Name,以及任意数目的类型为Service-Name的Tag,表明接入服务器提供的其它服务。

如果接入服务器不能为PADI提供服务,则不允许用PADO作响应。

29


BRAS技术与认证(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:王微 房价上涨已脱离经济基本面和真实住房需求

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: