多链路PPP (也指MP、MPPP、MLP或多链路)提供在多个物理WAN链路中进行流量扩展的方法,同时提供信息包分段和重组、正确排序、多厂商互操作性和入站与出站流量负载均衡信息。
MPPP 允许对数据包分段。这些片段通过多条点对点链路同时发送到相同的远程地址。在用户定义的负载阈值下,多个物理链路将恢复运行。此负载可以只在入站数据流、或者只在出站数据流或二者中任意一个中测量;但是,它不能在入站和出站流量的结合负载中测量。
如果是拨号连接,MPPP可在ISDN基本速率接口(BRI)、主速率接口(PRI)配置和异步串行接口中配置。它也可以配置用于非拨号串行接口,但本文对此功能无特别说明。本文档将讨论按需拨号路由 (DDR) 的基本 MPPP 的配置。 本文档将不涉及多机箱多链路 PPP;有关详细信息,请参阅多机箱多链路 PPP (MMP) 文档。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
本文档没有任何特定的前提条件。
本文档中的信息基于以下软件和硬件版本。
多链路 PPP 最初在 Cisco IOS® 软件版本 11.0(3) 中引入
在此示例中,使用了 Cisco IOS 软件版本 11.3。
本文档中的信息都是基于特定实验室环境中的设备创建的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您是在真实网络上操作,请确保您在使用任何命令前已经了解其潜在影响。
MPPP 是在多个逻辑数据链路间拆分、再结合与排列数据报的方法。有关MPPP的 详细说明,请参 阅RFC 1990 RFC 1990。最初的动因是在ISDN中开发多个承载信道,但它同样适用于多个PPP 链路连接二个系统的所有情况(包括异步链路)。
流量通过控制接口(一个虚拟访问接口)路由到MPPP链路时会发生分段,不同分段发送到不同物理链路。在链路的远程终端上,片段被重新组装,然后发送到通往最终目的地的下一跳上。
这一部分提供了在路由器上配置MPPP的命令和不同方法。
需要的命令 | 描述 |
---|---|
PPP 多链路 | 在物理接口和拨号程序接口(如果使用Dialer Profile)配置PPP多链路命令(在两个路由器上)。 注意:如果添加此命令,则必须断开任何现有连接,然后重新连接以应用新的多链路参数。由于多链路在呼叫建立期间完成协商,它的任何更改都不是在已完成链路控制协议(LCP)协商的连接上进行的。 |
dialer load-threshold 5 outbound | 不在拨号程序上的接口负荷(从1到255)将向目的地发送另一个呼叫。带宽被定义为255比率,其中255将是100%的可用带宽。在本例中,当链路上的出站负载是5/255或2%时,将出现另外的信道。根据您的需要变化此值。outbound 参数将负载计算设置为仅计算出站流量。inbound 参数亦然,但仅计算入站流量。使用任一参数将负载设置为高于出站和入站负载。 提示:通常,客户会配置dialer load-threshold 1命令,因为他们希望所有B信道都立即用于每个呼叫。背后的理论是如果所有B信道一次出现,那么整个ISDN管道可以供每次呼叫使用。传递用户数据的时间减少,所以该呼叫的持续时间也应当缩短。 这个理论非常合理,实际上,不要将dialer load-threshold值设置在3以下,是非常好的一个想法。当该值的设置低于“3”时可能导致一次出现多个ISDN信道,这将导致两条信道争用带宽,并且无法连接其中任何一个信道。 |
可选命令 | 描述 |
ppp timeout multilink link remove seconds | 本命令可以用于防止多链路连接在负载发生变化时产生倒换。例如,如果负载阈值设置为15 (15/255 = 6%),并且数据流超出阈值时,这时会出现其他线路。当流量低于阈值时,附加线路取消。在数据速率变化剧烈的情况中,多信道停留一段特定的时间则比较有益,即使负载阈值低于指定值。指定多链路超时低于控制所有链路超时的拨号程序空闲超时。 |
ppp timeout multilink link add seconds | 直到高数据流按照指定的时间间隔接收,此命令均可用于防止多条链路添加到MP套件。这样可以防止突发 数据流引发额外的线路。 |
ppp multilink max-link 或 ppp multilink links maximum(IOS 12.2 或更高版本) | 在ppp multilink links maximum命令中设置的值,规定了捆绑中允许的最大链路数量。当超过ppp multilink links maximum命令分配的数量的链路试图进入捆绑时,MLP就挂断其拨号信道,以减少链路的数量。此命令可用于防止多链路连接启动过多连接。 |
ppp multilink min-link 或 ppp multilink links minimum(IOS 12.2 或更高版本) | 设置在ppp multilink links minimum命令中的值,指定了MLP将设法保留在捆绑中的最小链路数量。MLP尝试拨号其他链路,以获取链路参数指定的编号,即使负载没有超出负载阈值。此命令可用于强制启用一定数量的信道 |
multilink bundle-name | 可以使用此命令,来更改识别多链路捆绑的标准。 |
本部分说明如何使用传统 DDR(循环组和拨号程序映射)配置多链路 PPP。
由于ISDN接口被视为"拨号程序"接口,我们几乎不需要使用命令,即可使ISDN接口能够进行MPPP连接。例如,除非您使用的BRI或PRI不止一个,否则就没有必要配置拨号程序循环组。
以下是一个配置的BRI示例,进行简单的按需拨号的PPP连接:
! interface BRI0 ip address 192.168.12.3 255.255.255.240 encapsulation ppp dialer map IP 192.168.12.1 name ROUTER1 5554321 dialer-group 1 ppp authentication chap isdn spid1 40855512120000 5551212 isdn spid2 40855512340000 5551234 !
只需要在这个接口配置上增加两个命令,就可能实现MPPP。位于呼叫另一端的路由器必须进行类似配置。这两条命令是:
ppp multilink
dialer load-threshold load [outbound | inbound | either]
如果两个或多个物理接口需要捆绑在一起(例如使用异步或串行接口,或ISDN接口不止一个时),必须使用不同方法。在这些情况下,必须配置拨号循环组,并且必须添加拨号接口到路由器的配置,以便控制MPPP连接。简而言之,“逻辑”接口必须控制“物理”接口。
为了完成此配置,您必须:
将物理接口置于循环组。
创建一个逻辑(“拨号程序”)接口作为循环组的主接口。
配置拨号程序接口,以便执行 MPPP。
遵循以下步骤,在多个接口上配置 MPPP:
通过使用 dialer rotary-group 编号 命令,将物理接口置于循环组中。在本例中,异步接口位于循环组 1 中:
router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. router(config)#interface async 1 router(config-if)#dialer rotary-group 1 router(config-if)#^Z router#
注意:如果路由器从未配置,或者路由器已设置回其默认配置,请确保使用no shutdown接口配置命令。
要创建拨号程序接口,请使用 interface dialer 编号 全局配置命令。在本例中,创建了接口拨号程序 1:
router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. router(config)#interface dialer 1 router(config-if)#end router#
注意:interface dialer命令的number参数必须与步骤1中配置的旋转组的编号相同。
请使用 show running-config 命令,以查看拨号程序接口的默认配置:
! interface Dialer1 no ip address no cdp enable !
其次,配置拨号程序接口,以便拨打或接听电话。MPPP 的必要命令与步骤 1 中相同:
! interface Dialer1 ip address 192.168.10.1 255.255.255.0 encapsulation ppp dialer in-band dialer idle-timeout 300 dialer map ip 192.168.10.11 name RemoteRouter broadcast 5551234 dialer load-threshold 100 dialer-group 1 no fair-queue ppp multilink ppp authentication chap !
有关包含 MPPP 的完整 DDR 配置的示例,请参阅 PPP 支持页
在 Dialer Profiles 上配置多链路 PPP 与传统 DDR 类似。物理接口与拨号程序接口上均必须配置 ppp multilink 命令。应该在拨号程序接口上配置 dialer load-threshold 命令。例如,
interface BRI0 no ip address encapsulation ppp dialer pool-member 1 isdn switch-type basic-5ess ppp authentication chap ppp multilink ! -- Configure multilink on both physical and dialer interfaces ! interface Dialer1 ip address 172.22.85.1 255.255.255.0 encapsulation ppp dialer pool 1 ! -- Defines the pool of physical resources from which the Dialer ! -- interface may draw B channels as needed. dialer remote-name R1 dialer string 6661000 dialer load-threshold 128 outbound dialer-group 5 ppp authentication chap ppp multilink ! -- Configure multilink on both physical and dialer interfaces
有关 Dialer Profiles 的详细信息,请参阅 Dialer Profiles 配置和故障排除文档
要验证 MPPP 连接是否正常工作,请使用 debug ppp negotiation 命令。必须在LCP阶段协商的关键要素包括最大接收重建单元(MRRU)和端点分辨器(EndpointDisc):
As1 LCP: O CONFREQ [Listen] id 1 len 26 As1 LCP: AuthProto CHAP (0x0305C22305) As1 LCP: MagicNumber 0x10963BD1 (0x050610963BD1) As1 LCP: MRRU 1524 (0x110405F4) As1 LCP: EndpointDisc 1 Local (0x13070174657374) As1 LCP: I CONFREQ [REQsent] id 3 Len 27 As1 LCP: MRU 1500 (0x010405DC) As1 LCP: MagicNumber 0x2CBF9DAE (0x05062CBF9DAE) As1 LCP: MRRU 1500 (0x110405DC) As1 LCP: EndpointDisc 1 Local (0x1306011AC16D) As1 LCP: I CONFACK [REQsent] id 1 Len 26 As1 LCP: AuthProto CHAP (0x0305C22305) As1 LCP: MagicNumber 0x10963BD1 (0x050610963BD1) As1 LCP: MRRU 1524 (0x110405F4) As1 LCP: EndpointDisc 1 Local (0x13070174657374) As1 LCP: O CONFACK [ACKrcvd] id 3 Len 24 As1 LCP: MRU 1500 (0x010405DC) As1 LCP: MagicNumber 0x2CBF9DAE (0x05062CBF9DAE) As1 LCP: MRRU 1500 (0x110405DC) As1 LCP: EndpointDisc 1 Local (0x1306011AC16D) As1 LCP: State is Open
与LCP协商的其他元素一样,在CONFREQs和CONFACK交换期间,连接的两端的MRRU和EndpointDisc必须一致。连接的两端必须为要建立的协议发送 CONFACK。欲知关于如何阅读debug ppp negotiation output 的更多信息,请参见文档“了解debug ppp negotiation输出”。
当MPPP在PPP 协商的LCP阶段成功完成协商,并且成功实施质询握手验证协议(CHAP)或密码验证协议(PAP)后,Cisco IOS软件将创建虚拟访问接口代表MPPP套件。如需了解虚拟访问接口用法和理论的更多信息,请参阅Cisco IOS文档的虚拟访问PPP功能。
虚拟访问接口在debug ppp negotiation输出中通过下列方式发送信号:
As1 PPP: Phase is VIRTUALIZED
从此时开始,网络控制协议 (NCP) 的 PPP 协商由虚拟访问接口处理。例如:
Vi1 PPP: Treating connection as a dedicated line Vi1 PPP: Phase is ESTABLISHING, Active Open Vi1 LCP: O CONFREQ [Closed] id 1 Len 37 ... Vi1 PPP: Phase is UP Vi1 IPCP: O CONFREQ [Closed] id 1 len 10 Vi1 IPCP: Address 192.168.10.1 (0x0306C0A80A01) ...
一旦MPPP连接被建立,连接信息便可在show ppp multilink命令的输出中找到。
router#show ppp multilink Virtual-Access1, bundle name is RemoteRouter 0 lost fragments, 0 reordered, 0 unassigned, sequence 0x29/0x17 rcvd/sent 0 discarded, 0 lost received, 1/255 load Member links: 1 (max not set, min not set) Async1
捆绑名 是连接的客户端设备的认证用户名。成员链接 是作为捆绑活动成员的物理接口的列表。在上例中,当前只有一条链路处于活动状态,但路由器可以在某个点向捆绑添加更多链路。要使用命令clear interface interface断开特定链路(而不是整个捆绑)的连接。例如,clear interface Async1。
命名规则将首先尝试的顺序(如捆绑名称所示)可以通过multilink bundle-name命令更改。
另外,show interface命令对于虚拟访问接口有效,因为它适用于其他任何物理或逻辑接口。将会出现与任何所有show interface output中出现的同类信息。
router#show interface virtual-access 1 Virtual-Access1 is up, line protocol is up Hardware is Virtual Access interface Description: Multilink PPP to RemoteRouter ! -- This VAccess interface is conencted to "RemoteRouter" Internet address is 192.168.10.1/24 MTU 1500 bytes, BW 7720 Kbit, DLY 100000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation PPP, loopback not set Keepalive set (10 sec) DTR is pulsed for 5 seconds on reset LCP Open, multilink Open ! -- multilink state should be Open for a successful connection Open: IPCP Last input 00:00:01, output never, output hang never Last clearing of "show interface" counters 04:25:13 Queueing strategy: fifo Output queue 0/40, 0 drops; input queue 0/75, 0 drops 5 minute input rate 12000 bits/sec, 2 packets/sec 5 minute output rate 12000 bits/sec, 2 packets/sec 2959 packets input, 2075644 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 2980 packets output, 2068142 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 output buffer failures, 0 output buffers swapped out 0 carrier transitions
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
09-Sep-2005 |
初始版本 |