多连接多结点PPP组(Bundle)发现协议 1. 介绍 多连接PPP允许拨号用户对一个主机打开多个PPP连接。通常这种连接建立在动态申请的情况下,也就是说,当主连接的能力达到极限时,打开一个或多个次连接。当需求减少时关闭次连接。许多拨号主机支持使多个连接拨打同一个电话号码,这就是说必须有一个Modem库来进行响应。可能有许多个独立的Modem连接在远程访问服务器(RAS)上,使用一个模拟电话线路,也可能是一个Modem连接到T1/E1线路上。无论如何RAS必须能够处理请求,但现在的RAS还不能支持上百个连接,这就带来了问题,用户如何在连接了PPP主连接后,再连接PPP次连接。如果RAS已经没有可用的Modem或接收的请求被分配到另一台RAS上就会带来问题。为了解决这一问题,必须使RAS能够判断此连接是PPP主连接还是次连接。如果是次连接,RAS用于在主次连接上传输组头(Bundle Head,BH)在什么地方。如果BH在另一RAS上,协议必须用于传输PPP包到包括BH的RAS上,这样PPP包才能够重组。下面我们会讨论发现机制和传输协议,以及发现协议需要配置的参数。 2. BH发现机制 当用户拨入RAS进行多连接PPP协商时,RAS必须决定下面的三种情况哪一种存在:
在操作时,RAS先判断是不是情况2,如果BH不是本地的而且它确实存在的话,发现协议用于决定BH在什么地方。 2.1 包格式 UDP端口号:581,组播地址:224.0.1.69。下面是发现消息的格式:
其中:EPD = 结束点descriminator;remote = 拨号主机;local = RAS;级和长度域长度为1,数据域长度不定,可以为0。MP协议要求RAS都有相同的本地EPD,对于MMP,RAS可能不会使用它IP或MAC地址作为EPD。据有同一个轮询上的RAS都有相同的EPD,不同的轮询上可以共享不同的EPD。本地EPD被包括在结束点标记中以保证在不同轮询上的主机不会被因为EPD的相同而被发现机制发现。除了单播响应消息外,其它据有消息均发送到规定的组播地址上。如果系统不能发送组播消息,可以使用255.255.255.255进行广播。 2.2 结束点标记匹配 比较结束点ID会是很费事的。首先必须决定EPD的等级,然后再比较值。这些比较是比较费时的,为了提高效率,使用hash域可以提高比较速度。当BH创建后,hash也随之创建并和结束点ID一起保存。当查询或响应消息产生时,hash被创建并保存在这些消息中。当RAS接收到一条消息,它可以进行利用hash和自己表中的相应hash域进行快速比较。如果hash不匹配,结束点不可能匹配,如果hash匹配,还要对结束点ID进行比较以确定是否匹配。创建hash也是有代价的,但对于每个BH和消息,它只创建一次,比较却要进行多次,因此还是划算的。 2.3 协议操作 在本节中,据有的配置参数由它们的名字指定,例如ROBUSTNESS指传输数目等。发现协议在QUERY_INTERAL时组播ROBUSTNESS查询消息,如果响应消息在上一广播的QUERY_INTERVAL时间之内接收到,RAS会认为这是个主连接并开始建立BH,它发出一个组播响应消息。如果接收到响应消息,则不需要再发出另外的查询消息了,RAS就已经建立了一条通向包括BH的通道了。 如果RAS接收到一个MP连接的查询请求,而对此连接已经有BH了,它发出向查询者传送响应消息。这里不需要重复响应消息,因为即使此消息丢失,查询者的下一查询消息还会使RAS发出响应消息的。 2.4 处理连接 在发送查询消息时,如果接收到相同MP连接的查询消息,则说明拨入结点同时请求多连接,解决的方法是选择BH。每个RAS等待据有的查询消息被发完,此后,拥有最小随机ID的RAS变为BH。如果两台或多台RAS拥有相同的随机ID,拥有最小IP地址的RAS成为BH。这台RAS在QUERY_INTERVAL时间内发出两个响应信息,向MP进行说明应该形成BH。当其它RAS接收到响应信息时,它们停止广播,停止检测附加的响应信息,并且向与它们相关的MP进程说明BH在什么地方。 RAS为每个连接产生一个随机ID,在查询和响应信息中使用与相关连接关联的随机ID值。因此随机ID不能重复使用,除非能够保证其它RAS不会因为重复使用随机ID而把信息发错了地方。 2.5 MP操作 MP必须以下面的算法保证对于相同的MP连接不会有不同的BH。在进行MP连接时,必须首先检查是否已经为此连接创建了BH。如果创建了,则直接与此BH产生关联即可不必进行发现。作为一种优化,如果MP未发出此连接的BH,但发现存在此连接的次连接,MP应该连接到这个已知的BH上,而不进行发现。如果MP未找到已知的BH,那就进行发现过程,如果发现过程发现了BH,那MP就应该使用这个BH,如果发现过程没有发现,则MP创建新的BH。当RAS决定要为连接创建BH时,不要拖延,越快越好,因为越快建立就可以越早地为其它RAS主机进行响应,如果这个RAS拖延了,其它主机可能建立它们自己的BH。 3. 传输协议 第二层通道协议(L2TP)用于将PPP数据从包括次连接的RAS传输到包括BH的RAS上。 4. 配置 有两个必须的配置开关和一个条件配置开关。它们都是必须配置的。 4.1 Robustness 此开关设置查询消息的重复次数,其值在1-15之间,默认值为3。这个值太小了可能会造成查询不完全,太大了会使用MP超时,在网络情况不好时可以设置大一点。 4.2 Query Interval 此开头设置在响应消息和查询消息之间的时间。它的单位是1/10秒,值在1-15之间,默认值为1。太大了会使用MP超时,在网络情况不好时可以设置大一点。 4.3 TTL(条件的) 此开关设置所有发现包IP层的TTL,对于使用限制广播地址的系统,不应该实现此开关,TTL应该设置为1,默认值是1。 5. 安全问题 发现机制中没有涉及到安全机制,当不转发组播包时,发现包会局限于一个LAN内,如果LAN在物理上安全的,不需要进行软件上的保护。如果可以进行组播转发,但限制的范围很小,只需要物理上的安全网络,不需要进行软件保护。如果组播可以穿过整个Internet(虽然不推荐这样做)对RAS的认证可以通过IPSEC完成。 |