PPPoE 在以太网上传输PPP的方法( 四 )


当LCP结束的时候,主机和访问集中器必须停止使用该PPPoE会话 。假如主机希望开始另一个PPP会话,则它必须重新进入PPPoEDiscoverey阶段 。
8.其它方面的考虑
假如主机在一段指定时间内没有收到PADO数据包,它应该重发其PADI数据包并把等待的间隔加倍 。按所期望的次数重复这个动作 。主机在等待接收PADS数据包时,应该采用类似的定时机制,只是主机重新发送的是PADR数据包 。在重发指定次数后(还没有收到PADO),主机应该重新发送PADI 。
本文档中的ETHER_TYPE(0x8863,0x8864)已经被IEEE指定专用于以太网上的PPP(PPPoE),使用这两个值和PPPoEVER(版本)域将唯一标识本协议 。
本文档始终使用UTF-8(参考文献[5])而不是ASCII 。UTF-8支持所有ASCII字符集同时答应国际字符集 。参见参考文献[5] 。
9.安全方面的考虑
为了防止拒绝服务攻击(DenialofService,简称DOS),访问集中器可以使用类型为AC-Cookie的TAG 。访问集中器应该能够根据PADR的SOURCE_ADDR来重新产生具有唯一性的TAG_VALUE 。使用这种方法,访问集中器可以确保PADI的SOURCE_ADDR确实是可到达的,并对该地址的并行会话数进行限制 。使用什么样的算法并没有指定,留给实现细节自己选择 。对主机MAC地址使用HMAC(参考文献[3])就是一个例子,(在进行HMAC密码散列时)使用的是仅有访问集中器知道的密码 。虽然AC-Cookie对防止某些DOS有用,但它不能防止所有的DOS攻击,访问集中器可以使用其它的方法来保护 。
很多访问集中器不希望提供信息表明为未认证实体提供什么服务 。在这种情况下,访问集中器应该使用下面两种策略之一:它应该根据请求中的Service-Name标签不拒绝该请求,并返回收到的TAG_VALUE;或者应该仅接受带有TAG_LENGTH为0(表明任意服务)的Service-Name标签的请求 。推荐使用前一种方案 。
10.致谢
本文档建立在几个论坛所讨论概念的基础上,包括ADSL论坛 。还从RFC1661,RFC1662以及RFC2364中借用了很多内容 。
11.参考文献
[1]Simpson,W.,Editor,“点到点协议(PPP)”,STD51,RFC1661,July1994
[2]Bradner,S.,“RFC中表明条件级别的要害词”,BCP14,RFC2119,March1997.
[3]Krawczyk,H.,Bellare,M.andR.Canetti,“HMAC:消息认证的密钥散列”,RFC2104,February1998.
[4]Reynolds,J.andJ.Postel,“指定值”,STD2,RFC1700,October1994.参见:http://www.iana.org/numbers.Html
[5]Yergeau,F.,“UTF-8,ISO10646的一种转换”,RFC2279,January1998.
附录A
TAG_TYPE和TAG_VALUE
0x0000End-Of-List
该TAG表明表中没有其它TAG了 。该TAG的TAG_LENGTH必须总是0 。不要求使用该标签,存在是为了向后兼容 。
0x0101Service-Name
该TAG表明后面紧跟的是服务的名称 。TAG_VALUE是不以NULL结束的UTF-8字符串 。当TAG_LENGTH为0时,该TAG用于表明接受任何服务 。使用Service-Name标签的例子是表明ISP(Internet服务提供商)或者一类服务或者服务的质量 。
0x0102AC-Name
该TAG表明后面紧跟的字符串唯一地表示了某个特定的访问集中器 。它可以是商标、型号以及序列号等信息的集合,或者该访问集中器MAC地址的一个简单的UTF-8表示 。它不以NULL来结束 。
0x0103Host-Uniq
该TAG由主机用于把访问集中器的响应(PADO或者PADS)与主机的某个唯一特定的请求联系起来 。TAG_VALUE是主机选择的长度和值为任意的二进制数据 。它不能由访问集中器解释 。主机可以在PADI或者PADR中包含一个Host-Uniq标签 。假如访问集中器收到了该标签,它必须在对应的PADO或者PADS中不加改变的包含该标签 。
0x0104AC-Cookie
该TAG由访问集中器用于防止拒绝服务攻击(见“安全方面的考虑”) 。访问集中器可以在PADO数据包中包含该TAG 。假如主机收到了该标签,它必须在接下来的PADR中不加改变的包含该标签 。TAG_VALUEI是长度和值任意的二进制数据,不能由主机解释 。

推荐阅读