02-PPP配置
本章节下载 (261.97 KB)
PPP(Point to Point Protocol)协议是在点到点链路上承载网络层数据包的一种链路层协议,由于它能够提供用户验证、易于扩充,并且支持同/异步通信,因而获得广泛应用。
PPP定义了一整套的协议,包括链路控制协议(LCP)、网络层控制协议(NCP)和验证协议(PAP和CHAP)。
l 链路控制协议(Link Control Protocol,LCP):主要用来建立、拆除和监控数据链路。
l 网络控制协议(Network Control Protocol,NCP):主要用来协商在该数据链路上所传输的数据包的格式与类型。
l 用于网络安全方面的验证协议族PAP和CHAP。
PAP(Password Authentication Protocol)验证为两次握手验证,密码为明文,PAP验证的过程如下:
(1) 被验证方发送用户名和密码到验证方;
(2) 验证方根据本端用户表查看是否有此用户以及密码是否正确,然后返回不同的响应(Acknowledge or Not Acknowledge)。
图1-1 PAP验证示意图
PAP不是一种安全的验证协议。当验证时,口令以明文方式在链路上发送,并且由于完成PPP链路建立后,被验证方会不停地在链路上反复发送用户名和口令,直到身份验证过程结束,所以不能防止攻击。
CHAP(Challenge-Handshake Authentication Protocol)验证为三次握手验证,密码为密文(密钥)。
CHAP单向验证是指一端作为验证方,另一端作为被验证方。双向验证是单向验证的简单叠加,即两端都是既作为验证方又作为被验证方。在实际应用中一般只采用单向验证。
CHAP单向验证过程分为两种情况:验证方配置了用户名和验证方没有配置用户名。推荐使用验证方配置用户名的方式,这样可以对验证方的身份进行确认。
l 验证方配置了用户名的CHAP验证过程如下:
(1) 验证方主动发起验证请求,验证方向被验证方发送一些随机产生的报文(Challenge),并同时将本端的用户名附带上一起发送给被验证方;
(2) 被验证方接到验证方的验证请求后,根据此报文中验证方的用户名在本端的用户表查找该用户对应的密码,如果在用户表找到了与验证方用户名相同的用户,便利用报文ID、此用户的密钥(密码)和MD5算法对该随机报文进行加密,将生成的密文和被验证方自己的用户名发回验证方(Response);
(3) 验证方用自己保存的被验证方密码和MD5算法对原随机报文加密,比较二者的密文,根据比较结果返回不同的响应(Acknowledge or Not Acknowledge)。
l 验证方没有配置用户名的CHAP验证过程如下:
(1) 验证方主动发起验证请求,验证方向被验证方发送一些随机产生的报文(Challenge);
(2) 被验证方接到验证方的验证请求后,利用报文ID、缺省的CHAP密码和MD5算法对该随机报文进行加密,将生成的密文和自己的用户名发回验证方(Response);
(3) 验证方用自己保存的被验证方密码和MD5算法对原随机报文加密,比较二者的密文,根据比较结果返回不同的响应(Acknowledge or Not Acknowledge)。
图1-2 CHAP验证示意图
PPP运行过程(参见下图)如下:
(1) 在开始建立PPP链路时,先进入到Establish阶段。
(2) 在Establish阶段PPP链路进行LCP协商,协商内容包括工作方式(是SP还是MP)、验证方式和最大传输单元等。LCP协商成功后进入Opened状态,表示底层链路已经建立。
(3) 如果配置了验证(远端验证本地或者本地验证远端)则进入Authenticate阶段,开始CHAP或PAP验证。
(4) 如果验证失败进入Terminate阶段,拆除链路,LCP状态转为Down;如果验证成功就进入Network协商阶段(NCP),此时LCP状态仍为Opened,而IPCP状态从Initial转到Request。
(5) NCP协商支持IPCP协商,IPCP协商主要包括双方的IP地址。通过NCP协商来选择和配置一个网络层协议。只有相应的网络层协议协商成功后,该网络层协议才可以通过这条PPP链路发送报文。
(6) PPP链路将一直保持通信,直至有明确的LCP或NCP帧关闭这条链路,或发生了某些外部事件(例如用户的干预)。
图1-3 PPP运行流程图
有关PPP的详细说明,请参考RFC 1661。
表1-1 配置验证方
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建虚拟接口模板并进入虚拟接口模板视图 |
interface virtual-template number |
- |
配置本地验证对端的方式为PAP |
ppp authentication-mode pap [ [ call-in ] domain isp-name ] |
必选 当不加domain时,缺省使用的domain是系统缺省的域,认证方式是本地验证,地址分配必须使用该域下配置的地址池 |
退回系统视图 |
quit |
- |
创建本地用户,并进入本地用户视图 |
local-user username |
必选 |
设置本地用户的密码 |
password { cipher | simple } password |
必选 |
设置本地用户的服务类型以及其他属性 |
service-type ppp |
必选 |
退回系统视图 |
quit |
- |
创建一个ISP域,或者进入已创建ISP域的视图 |
domain isp-name |
可选 |
配置域用户使用本地认证方案 |
authentication ppp local |
可选 |
关于创建本地用户以及设置本地用户属性、创建域以及设置域的属性的详细说明,请参见“安全配置指导”中的“AAA”。
表1-2 配置PAP验证的被验证方
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建虚拟接口模板并进入虚拟接口模板视图 |
interface virtual-template number |
- |
配置本地被对端以PAP方式验证时本地发送的PAP用户名和密码 |
ppp pap local-user username password { cipher | simple } password |
必选 缺省情况下,被对端以PAP方式验证时,本地设备发送的用户名和密码均为空 |
表1-3 配置验证方
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建虚拟接口模板并进入虚拟接口模板视图 |
interface virtual-template number |
- |
配置本地验证对端的方式为CHAP |
ppp authentication-mode chap [ [ call-in ] domain isp-name ] |
必选 当不加domain时,缺省使用的domain是系统缺省的域,认证方式是本地验证,地址分配必须使用该域下配置的地址池 |
配置本地用户名称 |
ppp chap user username |
可选 当选择验证方配置了用户名这种情况,必须配置;当选择验证方没有配置用户名这种情况,不用配置 |
退回系统视图 |
quit |
- |
创建本地用户,并进入本地用户视图 |
local-user username |
必选 |
设置本地用户的密码 |
password { cipher | simple } password |
必选 |
设置本地用户的服务类型以及其他属性 |
service-type ppp |
必选 |
退回系统视图 |
quit |
- |
创建一个ISP域,或者进入已创建ISP域的视图 |
domain isp-name |
可选 |
配置域用户使用本地认证方案 |
authentication ppp local |
可选 |
关于创建本地用户以及设置本地用户属性、创建域以及设置域的属性的详细说明,请参见“安全配置指导”中的“AAA”。
表1-4 配置被验证方
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
创建虚拟接口模板并进入虚拟接口模板视图 |
interface virtual-template number |
- |
|
配置本地用户名称 |
ppp chap user username |
必选 |
|
设置缺省的CHAP验证密码 |
ppp chap password { cipher | simple } password |
可选 当选择验证方配置了用户名这种情况,不用配置;当选择验证方没有配置用户名这种情况,必须配置 |
|
设置本地用户以及相应的密码(当选择验证方配置了用户名这种情况,必须配置;当选择验证方没有配置用户名这种情况,不用配置) |
退回系统视图 |
quit |
- |
创建本地用户,并进入本地用户视图 |
local-user username |
可选 |
|
设置本地用户的密码 |
password { cipher | simple } password |
可选 |
可以配置的PPP协商参数包括:
l 协商超时时间间隔
l 协商IP地址
l 协商DNS地址
(1) 协商超时时间间隔
在PPP协商过程中,如果在这个时间间隔内没有收到对端的应答报文,则PPP将会重发前一次发送的报文。超时时间间隔可选范围为1秒到10秒。
(2) 协商IP地址
协商IP地址的方式有两种:
l 配置设备作为Client端:若本端接口封装的链路层协议为PPP但还未配置IP地址,而对端已有IP地址时,可为本端接口配置IP地址可协商属性,使本端接口接受PPP协商产生的由对端分配的IP地址。该配置主要用于在通过ISP访问Internet时,得到由ISP分配的IP地址。
l 配置设备作为Server端:若是设备作为Server为对端设备分配IP地址,则应首先在域视图或系统视图下配置本地IP地址池,指明地址池的地址范围,然后在接口视图下指定该接口使用的地址池。
(3) 协商DNS地址
设备在进行PPP地址协商的过程中可以进行DNS地址协商,此时设备既可以配置为接收对端分配的DNS地址,也可以配置为向对方提供DNS地址。一般情况下,当PC与设备通过PPP协议相连时(通常为PC机拨号连接设备),设备应为对端设备指定DNS地址,这样PC就可以通过域名直接访问Internet;当设备通过PPP协议连接运营商的接入服务器时,设备应配置为被动接收或主动请求对端指定DNS地址,这样设备就可以使用接入服务器分配的DNS来解析域名。
表1-5 配置协商超时时间间隔
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建虚拟接口模板并进入虚拟接口模板视图 |
interface virtual-template number |
- |
配置协商超时时间间隔 |
ppp timer negotiate seconds |
可选 缺省情况下,协商超时时间间隔为3秒 |
表1-6 配置PPP协商IP地址
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
创建虚拟接口模板并进入虚拟接口模板视图 |
interface virtual-template number |
- |
|
配置PPP协商IP地址(Client端和Server端选择其一) |
配置Client端 |
必选 |
|
配置Server端 |
请参见表1-8 配置Server端(对于不需要进行认证的PPP用户)或者表1-9 配置Server端(对于需要进行认证的PPP用户) |
必选 |
(1) 配置Client端
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建虚拟接口模板并进入虚拟接口模板视图 |
interface virtual-template number |
- |
设置接口IP地址可协商属性 |
ip address ppp-negotiate |
必选 |
(2) 配置Server端
对于不需要进行认证的PPP用户,Server端的配置方式如下:
表1-8 配置Server端(对于不需要进行认证的PPP用户)
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
通过使用全局地址池给对端分配地址,或者直接为对端指定IP地址(两者选择其一) |
首先定义全局IP地址池,然后在接口上使用全局地址池给PPP用户分配IP地址 |
ip pool pool-number low-ip-address [ high-ip-address ] |
必选 当配置了remote address pool但没有指定pool-number时,缺省使用0号全局地址池 |
interface virtual-template number |
|||
remote address pool [ pool-number ] |
|||
接口直接为对端指定IP地址 |
interface virtual-template number remote address ip-address |
必选 |
对于需要进行认证的PPP用户,Server端的配置方式如表1-9所示,定义地址池所使用的域就是配置进行PPP认证时指定的域:
表1-9 配置Server端(对于需要进行认证的PPP用户)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入指定的域视图 |
domain domain-name |
必选 |
定义域地址池 |
ip pool pool-number low-ip-address [ high-ip-address ] |
必选 |
退回系统视图 |
quit |
- |
创建虚拟接口模板并进入虚拟接口模板视图 |
interface virtual-template number |
- |
使用域地址池给PPP用户分配IP地址 |
remote address pool [ pool-number ] |
必选 若配置该命令时不指定pool-number,则在IP地址协商时依次使用该域下的地址池给用户分配IP地址 |
配置PPP IPCP不允许对端使用自行配置的固定IP地址 |
ppp ipcp remote-address forced |
可选 缺省情况下,PPP IPCP的IP地址协商情况为本端不具有地址分配的强制性,即设备本端允许对端自行配置地址。当对端明确请求本端分配地址时,本端给对端分配地址;若对端已自行配置IP地址时,本端不再强行给对端分配地址 |
(1) 配置Client端
表1-10 配置Client端
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建虚拟接口模板并进入虚拟接口模板视图 |
interface virtual-template number |
- |
配置设备主动请求对端指定DNS地址 |
ppp ipcp dns request |
必选 缺省情况下,禁止设备主动向对端请求DNS服务器地址 |
配置设备被动地接收对端指定的DNS服务器地址 |
ppp ipcp dns admit-any |
可选 缺省情况下,设备不会被动地接收对端设备指定的DNS服务器的IP地址 |
(2) 配置Server端
表1-11 配置Server端
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建虚拟接口模板并进入虚拟接口模板视图 |
interface virtual-template number |
- |
使能设备为对端设备指定DNS服务器地址 |
ppp ipcp dns primary-dns-address [ secondary-dns-address ] |
必选 缺省情况下,设备不为对端设备指定DNS服务器的IP地址 |
PPP协议可以为每条PPP链路提供基于流量的计费统计功能,具体统计内容包括出入两个方向上流经本链路的报文数和字节数。AAA应用模块可以获取这些流量统计信息由于计费控制使用。
表1-12 配置PPP计费统计功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建虚拟接口模板并进入虚拟接口模板视图 |
interface virtual-template number |
- |
使能PPP计费统计功能 |
ppp account-statistics enable |
必选 缺省情况下,不启动计费统计功能 |
在完成上述配置后,在任意视图下执行display命令可以显示PPP配置后的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除相应的统计信息。
表1-13 PPP的显示和维护
操作 |
命令 |
显示虚拟访问接口的状态信息 |
display virtual-access [ va-number | peer peer-address | user user-name | vt vt-number ] * |
显示已创建的虚拟接口模板的状态信息 |
display interface virtual-template [ number ] |
清除指定接口的统计信息 |
reset counters interface [ interface-type [ interface-number ] ] |
PPP验证失败,链路始终不能转为up状态。
可能是由于PPP验证参数配置不正确,导致PPP验证失败。
打开PPP的调试开关,会看到LCP协商成功并转为up状态后进行PAP或CHAP协商,然后LCP转为down状态,则需要修改PPP验证参数的配置,保证验证方可以通过被验证方的验证。
物理链路始终是down状态。
物理链路始终是down状态,可能有以下原因:
l 接口没有被激活;
l 接口被管理员down掉;
l 物理接口已通,但是链路协商没有通过。
可以执行display interface命令来查看接口当前状态,判断故障原因,从而采取相应的方法使物理链路up。
接口有五种状态:
serial number is administratively down, line protocol is down:表示该接口被管理员down。
serial number is down, line protocol is down:表示该接口没有被激活或物理层没有转为up状态。
Virtual-template number is down, line protocol is spoofing up:表示该接口是拨号口,没有呼通。
serial number is up, line protocol is up:表示该接口链路协商即LCP协商已通过。
serial number is up, line protocol is down:表示该接口已激活,但链路协商仍没有通过。
未使能IPv6的前提下在PPP链路上配置IPv6地址,IPv6CP无法协商up,使能IPv6功能后,依旧不能协商up。
未使能IPv6的前提下,IPv6CP无法协商成功,由于IPv6CP无重协商机制,所以后续再使能IPv6也无法使IPv6CP协商up。
l 在PPP链路上配置IPv6地址时,建议首先使能系统的IPv6功能,然后再配置IPv6地址。
l 如果IPv6CP协商down,可以通过命令shutdown/undo shutdown接口使其重新进行协商。
PPPoE是Point-to-Point Protocol over Ethernet的简称,它可以通过一个远端接入设备为以太网上的主机提供因特网接入服务,并对接入的每个主机实现控制、计费功能。由于很好地结合了以太网的经济性及PPP良好的可扩展性与管理控制功能,PPPoE被广泛应用于小区组网等环境中。
PPPoE协议采用Client/Server方式,它将PPP报文封装在以太网帧之内,在以太网上提供点对点的连接。
PPPoE有两个阶段:Discovery阶段和PPP Session阶段,具体如下:
l Discovery阶段
当一个主机开始PPPoE进程的时候,它必须先识别接入端的以太网MAC地址,建立PPPoE的Session ID。这就是Discovery阶段的目的。
Discovery阶段结束时服务器和主机之间就确定了PPPoE会话的Session ID,双方进入PPPoE Session阶段。
l PPP Session阶段
当PPPoE进入Session阶段后PPP报文就可以作为PPPoE帧的净荷封装在以太网帧发到对端,Session ID必须是Discovery阶段确定的ID,MAC地址必须是对端的MAC地址,PPP报文从Protocol ID开始。在Session阶段,主机或服务器任何一方都可发PADT(PPPoE Active Discovery Terminate)报文通知对方结束本Session。
关于PPPoE的详细介绍,可以参考RFC 2516。
设备提供了PPPoE Server的功能,支持动态分配IP地址,提供本地认证、RADIUS/TACACS+等多种认证方式,配合访问包过滤防火墙及状态防火墙,可以对内部网络提供安全保障,适用于校园、智能小区等通过以太网接入Internet的组网应用。
这种组网方式需要在用户Host上安装PPPoE客户端拨号软件。
PPPoE Server可以配置在物理以太网接口上,也可以配置在由ADSL接口生成的虚拟以太网接口上。
表2-1 配置PPPoE Server
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建虚拟接口模板并进入虚拟接口模板视图 |
interface virtual-template number |
- |
设置PPP的工作参数(包括验证方式、IP地址获取方式),用户还可以设置为PPP对端分配的IP地址(或IP地址池) |
可选 |
|
进入指定的VLAN接口视图 |
interface interface-type interface-number |
必选 |
在VLAN接口上启用PPPoE协议 |
pppoe-server bind virtual-template number |
必选 缺省情况下,禁止PPPoE协议 |
退回系统视图 |
quit |
- |
配置一个对端MAC地址上能创建的最大PPPoE Session数目 |
pppoe-server max-sessions remote-mac number |
可选 缺省情况下,number数值为100 |
配置一个本端MAC地址上能创建的最大PPPoE Session数目 |
pppoe-server max-sessions local-mac number |
可选 缺省情况下,number数值为100 |
配置本系统能创建的最大PPPoE Session数目 |
pppoe-server max-sessions total number |
可选 缺省情况下,系统能创建PPPoE会话的最大数目与设备相关,请以设备的实际情况为准 |
PPPoE Server对PPP用户进行认证、计费 |
相关内容请参见“安全配置指导”中的“AAA” |
可选 |
退回系统视图 |
quit |
- |
关闭PPPoE Server产生的PPP日志信息的显示开关 |
pppoe-server log-information off |
可选 缺省情况下,打开PPPoE Server产生的PPP日志信息的显示开关 |
对于Virtual-Template接口,如果配置静态路由,请指定下一跳而不要指定出接口。如果必须指定出接口的话,请保证Virtual-Template下绑定的物理接口有效,从而保证报文能够正常传输。
在完成上述配置后,在任意视图下执行display命令可以显示PPPoE配置后的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以中止PPPoE Server端的会话。
表2-2 PPPoE显示和维护
配置 |
命令 |
显示PPPoE Server会话的状态和统计数据 |
display pppoe-server session { all | packet } |
中止PPPoE Server端的会话 |
reset pppoe-server { all | interface interface-type interface-number | virtual-template number } |
如图2-1所示,Host运行PPPoE Client,通过AC接入到Internet。AC作为PPPoE Server,配置本地认证,并通过地址池为用户分配IP地址。
AC通过Vlan-interface 1接口连接以太网,Vlan-interface 2接口连接Internet。
图2-1 PPPoE Server典型配置举例组网图
# 增加一个PPPoE用户。
<Sysname> system-view
[Sysname] local-user user1
[Sysname-luser-user1] password simple pass1
[Sysname-luser-user1] service-type ppp
[Sysname-luser-user1] quit
# 在AC上配置虚拟模板参数。
[Sysname] interface virtual-template 1
[Sysname-virtual-template1] ppp authentication-mode chap domain system
[Sysname-virtual-template1] ppp chap user user1
[Sysname-virtual-template1] remote address pool 1
[Sysname-virtual-template1] ip address 1.1.1.1 255.0.0.0
[Sysname-virtual-template1] quit
# 在AC上配置PPPoE参数。
[Sysname] interface Vlan-interface1
[Sysname-Vlan-interface1] pppoe-server bind virtual-template 1
[Sysname-Vlan-interface1] quit
# 配置域用户使用本地认证方案。
[Sysname] domain system
[Sysname-isp-system] authentication ppp local
# 增加一个本地IP地址池(9个IP地址)
[Sysname-isp-system] ip pool 1 1.1.1.2 1.1.1.10
这样,以太网上各主机安装PPPoE客户端软件后,配置好用户名和密码(此处为user1和pass1)就能使用PPPoE协议,通过设备Router接入到Internet。
若通过authentication ppp命令配置认证方案为radius-scheme或hwtacacs-scheme,那么还需要配置RADIUS/HWTACAS参数,使系统可以进行认证、授权、计费,具体配置步骤请参见“安全配置指导”中的“AAA”。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!