第19章_广域网技术
- 随着经济全球化与数字化变革加速,企业规模不断扩大,越来越多的分支机构出现在不同的地域。每个分支的网络被认为一个LAN(Local Area Network,局域网),总部和各分支机构之间通信需要跨越地理位置。因此,企业需要通过WAN(Wide Area Network,广域网)将这些分散在不同地理位置的分支机构连接起来,以便更好地开展业务。
- 广域网技术的发展,伴随着带宽不断的升级:
- 早期出现的X.25只能提供64 kbit/s的带宽,
- 其后DDN(Digital Data Network,数字数据网)和FR(Frame Relay,帧中继)提供的带宽提高到2 Mbit/s,
- SDH(Synchronous Digital Hierachy,同步数字结构)和ATM(Asynchronous Transfer Mode,异步传输模式)进一步把带宽提升到10 Gbit/s,
- 最后发展到当前以IP为基础的10 Gbit/s甚至更高带宽的广域网络。
- 本课程主要讲解广域网技术基础概述,HDLC以及PPP(Point-to-Point Protocol ,点对点协议)原理与相关应用。
1.早期广域网技术概述
1.1什么是广域网
- 广域网是连接不同地区局域网的网络,通常所覆盖的范围从几十公里到几千公里。它能连接多个地区、城市和国家,或横跨几个洲提供远距离通信,形成国际性的远程网络。
1.2广域网与局域网区别
- 广域网与局域网的区别主要体现在以下几个方面:
- 局域网带宽高但是传输距离短,无法满足广域网长距离传输;
- 局域网设备通常都是交换机,广域网设备大多都是路由器;
- 局域网属于某一个单位或者组织,广域网服务大多由ISP提供;
- 广域网与局域网一般仅在物理层和数据链路层采用不同的协议或技术,其他层次基本没有差异;
- 银行、政府、军队、大型公司的专用网络也属于广域网,且与Internet实现物理隔离;
- Internet只是广域网的一种,小企业借用Internet作为广域网连接。
1.3早期广域网技术介绍
- 早期广域网与局域网的区别在于数据链路层和物理层的差异性,在TCP/IP参考模型中,其他各层无差异。
- 初期广域网常用的物理层标准有EIA(Electronic Industries Alliance,电子工业协会)和TIA(Telecommunications Industry Association,电信工业协会)制定的公共物理层接口标准EIA/TIA-232(即RS-232)、 ITU(International Telecommunication Union,国际电信联盟)制定的串行线路接口标准V.24和V.35,以及有关各种数字接口的物理和电气特性的G.703标准等。
- 广域网常见的数据链路层标准有:
- HDLC(High-level Data Link Control,高级数据链路控制)、
- PPP(Point-to-Point Protocol,点到点协议)、
- FR(Frame Relay,帧中继)、
- ATM异步传输模式等,
- 其中:
- HDLC协议是一种通用的协议,工作在数据链路层。数据报文加上头开销和尾开销后封装成HDLC帧,只支持在点到点的同步链路上的数据传输,不支持IP地址协商与认证,过于追求高可靠性,导致数据帧开销较大,传输效率较低。
- PPP协议工作在数据链路层,主要用在支持全双工的同、异步链路上,进行点到点之间的数据传输。由于它能够提供用户认证,易于扩充,并且支持同、异步通信,因而获得广泛应用。
- 帧中继是一种工业标准的、交换式的数据链路协议,通过使用无差错校验机制,加快了数据转发速度。
- ATM是建立在电路交换和分组交换基础上的一种面向连接的交换技术,ATM传送信息的基本载体是53 Byte固定长度ATM信元。
1.4广域网络设备角阿色介绍
- 广域网络设备基本角色有三种,CE(Customer Edge,用户边缘设备) 、PE (Provider Edge,服务提供商边缘设备) 和P(Provider ,服务提供商设备) 。具体定义是:
- CE:用户端连接服务提供商的边缘设备。CE连接一个或多个PE,实现用户接入。
- PE:服务提供商连接CE的边缘设备。PE同时连接CE和P设备,是重要的网络节点。
- P:服务提供商不连接任何CE的设备。
1.5早期广域网技术的应用
- 早期的广域网技术主要是针对不同的物理链路类型,在数据链路层进行不同的二层封装。在CE与PE之间常用的广域网封装协议有PPP/HDLC/FR等,用于解决用户接入广域网的长距离传输问题。在ISP内部常用的广域网协议主要是ATM,它用于解决骨干网高速转发的问题。
2.HDLC
2.1串行链路数据的传输方式
- 串行链路普遍用于广域网中。串行链路中定义了两种数据传输方式:异步和同步。
异步传输:是以==字节==为单位来传输数据,并且需要采用额外的起始位和停止位来标记每个字节的开始和结束。起始位为二进制值0,停止位为二进制值1。在这种传输方式下,开始和停止位占据发送数据的相当大的比例,每个字节的发送都需要额外的开销。
同步传输:是以==帧==为单位来传输数据,在通信时需要使用时钟来同步本端和对端的设备通信。DCE即数据通信设备,它提供了一个用于同步DCE设备和DTE设备之间数据传输的时钟信号。DTE即数据终端设备,它通常使用DCE产生的时钟信号。
2.2HDLC协议应用
- High-level Data Link Control,高级数据链路控制,简称HDLC,是一种面向比特的链路层协议。
- ISO制定的HDLC是一种面向比特的通信规则。
- HDLC传送的信息单位为==帧==。
- 作为面向比特的同步数据控制协议的典型,HDLC具有如下特点:
- 协议不依赖于任何一种字符编码集;
- 数据报文可透明传输,用于透明传输的“0比特插入法”易于硬件实现;全双工通信,不必等待确认可连续发送数据,有较高的数据链路传输效率;
- 所有帧均采用CRC校验,并对信息帧进行编号,可防止漏收或重收,传输可靠性高;传输控制功能与处理功能分离,具有较大的灵活性和较完善的控制功能。
2.3HDLC帧结构
- HDLC有三种类型的帧:信息帧、监控帧、无编号帧。
- 完整的HDLC帧由标志字段(F)、地址字段(A)、控制字段(C)、信息字段(I)、帧校验序列字段(FCS)等组成。
- 标志字段:为01111110,用以标志帧的开始与结束,也可以作为帧与帧之间的填充字符。
- 地址字段:携带的是地址信息。
- 控制字段:用于构成各种命令及响应,以便对链路进行监视与控制。发送方利用控制字段来通知接收方来执行约定的操作;相反,接收方用该字段作为对命令的响应,报告已经完成的操作或状态的变化。
- 信息字段:可以包含任意长度的二进制数,其上限由FCS字段或通讯节点的缓存容量来决定,目前用得较多的是1000-2000比特,而下限可以是0,即无信息字段。监控帧中不能有信息字段。
- 帧检验序列字段:可以使用16位CRC对两个标志字段之间的内容进行校验。
- HDLC有三种类型的帧:
- 信息帧(I帧):用于传送有效信息或数据,通常简称为I帧。
- 监控帧(S帧):用于差错控制和流量控制,通常称为S帧。S帧的标志是控制字段的前两个比特位为“10”。S帧不带信息字段,只有6个字节即48个比特。
- 无编号帧(U帧):简称U帧。U帧用于提供对链路的建立、拆除以及多种控制功能。
2.4HDLC基本配置
- 用户只需要在串行接口视图下运行
link-protocol hdlc
命令就可以使能接口的HDLC协议。华为设备上的串行接口默认运行PPP协议。用户必须在串行链路两端的端口上配置相同的链路协议,双方才能通信。
2.5HDLC接口地址借用
- 串行接口可以借用Loopback接口的IP地址和对端建立连接。
一个接口如果没有IP地址就无法生成路由,也就无法转发报文。
IP地址借用允许一个没有IP地址的接口从其它接口借用IP地址。这样可以避免一个接口独占IP地址,节省IP地址资源。一般建议借用loopback接口的IP地址,因为这类接口总是处于活跃(active)状态,因而能提供稳定可用的IP地址。
本例中,在RTA的S1/0/0接口配置完接口地址借用之后,还需要在RTA上配置静态路由,以使RTA能够转发数据到10.1.1.0/24网络。
配置验证:
- 执行
display ip interface brief
命令可以查看路由器接口简要信息。如果有IP地址被借用,该IP地址会显示在多个接口上,说明借用loopback接口的IP地址成功。
3.PPP
3.1PPP协议概述
- PPP(Point-to-Point Protocol,点到点协议)是一种常见的广域网数据链路层协议,主要用于在全双工的链路上进行点到点的数据传输封装。
- PPP提供了安全认证协议族PAP(Password Authentication Protocol,密码验证协议)和CHAP(Challenge Handshake Authentication Protocol,挑战握手认证协议)。
- PPP协议具有良好的扩展性,例如,当需要在以太网链路上承载PPP协议时,PPP可以扩展为PPPoE。
- PPP协议提供LCP(Link Control Protocol,链路控制协议),用于各种链路层参数的协商,例如最大接收单元,认证模式等。
- PPP协议提供各种NCP(Network Control Protocol,网络控制协议),如IPCP(IP Control Protocol ,IP控制协议),用于各网络层参数的协商,更好地支持了网络层协议。
3.2PPP协议应用
- PPP协议是一种点到点链路层协议,主要用于在全双工的同异步链路上进行点到点的数据传输。
- PPP协议是一种点到点链路层协议,主要用于在全双工的同异步链路上进行点到点的数据传输。PPP协议有如下优点:
- PPP既支持同步传输又支持异步传输,而X.25、FR(Frame Relay)等数据链路层协议仅支持同步传输,SLIP仅支持异步传输。
- PPP协议具有很好的扩展性,例如,当需要在以太网链路上承载PPP协议时,PPP可以扩展为PPPoE。
- PPP提供了LCP(Link Control Protocol)协议,用于各种链路层参数的协商。
- PPP提供了各种NCP(Network Control Protocol)协议(如IPCP、IPXCP),用于各网络层参数的协商,更好地支持了网络层协议。
- PPP提供了认证协议:CHAP(Challenge-Handshake Authentication Protocol)、PAP(Password Authentication Protocol),更好的保证了网络的安全性。
- 无重传机制,网络开销小,速度快。
3.3PPP组件
PPP包含两个组件:链路控制协议LCP和网络层控制协议NCP。
为了能适应多种多样的链路类型,PPP定义了链路控制协议LCP。LCP可以自动检测链路环境,如是否存在环路;协商链路参数,如最大数据包长度,使用何种认证协议等等。与其他数据链路层协议相比,PPP协议的一个重要特点是可以提供认证功能,链路两端可以协商使用何种认证协议来实施认证过程,只有认证成功之后才会建立连接。
PPP定义了一组网络层控制协议NCP,每一个NCP对应了一种网络层协议,用于协商网络层地址等参数,例如IPCP用于协商控制IP协议,IPXCP用于协商控制IPX协议等。
3.4PPP链路建立流程
- PPP链路的建立有三个阶段的协商过程,链路层协商、认证协商(可选)和网络层协商。
- 链路层协商:通过LCP报文进行链路参数协商,建立链路层连接。
- 认证协商(可选):通过链路建立阶段协商的认证方式进行链路认证。
- 网络层协商 :通过NCP协商来选择和配置一个网络层协议并进行网络层参数协商。
3.5PPP链路接口状态机
- PPP协商由链路两端的接口完成。接口的状态表示了协议的协商阶段。
对于PPP链路建立过程的描述如下:
- Dead阶段也称为物理层不可用阶段。当通信双方的两端检测到物理线路激活时,就会从Dead阶段迁移至Establish阶段,即链路建立阶段。
- 在Establish阶段,PPP链路进行LCP参数协商。协商内容包括最大接收单元MRU、认证方式、魔术字(Magic Number)等选项。LCP参数协商成功后会进入Opened状态,表示底层链路已经建立。
- 多数情况下,链路两端的设备是需要经过认证阶段(Authenticate)后才能够进入到网络层协议阶段。PPP链路在缺省情况下是不要求进行认证的。如果要求认证,则在链路建立阶段必须指定认证协议。认证方式是在链路建立阶段双方进行协商的。如果在这个阶段再次收到了Configure-Request报文,则又会返回到链路建立阶段。
- 在Network阶段,PPP链路进行NCP协商。通过NCP协商来选择和配置一个网络层协议并进行网络层参数协商。只有相应的网络层协议协商成功后,该网络层协议才可以通过这条PPP链路发送报文。如果在这个阶段收到了Configure-Request报文,也会返回到链路建立阶段。
- NCP协商成功后,PPP链路将保持通信状态。PPP运行过程中,可以随时中断连接,例如物理链路断开、认证失败、超时定时器时间、管理员通过配置关闭连接等动作都可能导致链路进入Terminate阶段。
- 在Terminate阶段,如果所有的资源都被释放,通信双方将回到Dead阶段,直到通信双方重新建立PPP连接。
PPP运行过程中,可以随时中断连接,物理链路断开、认证失败、超时定时器时间到、管理员通过配置关闭连接等动作都可能导致链路进入Terminate阶段。
3.6PPP帧格式
- PPP报文可由Protocol字段标识不同类型的PPP报文。例如,当Protocol字段为0xC021时,代表是LCP报文。此时又由Code字段标识不同类型LCP报文,如下表所示。
- PPP帧格式:
- Flag字段标识一个物理帧的起始和结束,该字节为二进制序列01111110(0X7E)。
- PPP帧的Address字段字节固定为11111111 (0XFF),是一个广播地址。
- PPP数据帧的Control字段默认为00000011(0X03),表明为无序号帧。
- 帧校验序列(FCS)字段是个16 bit的校验和,用于检查PPP帧的完整性。
- Protocol字段用来说明PPP所封装的协议报文类型,0XC021代表LCP报文,0XC023代表PAP报文,0XC223代表CHAP报文。
- Information字段包含Protocol字段中指定协议的内容,该字段的最大长度被称为最大接收单元MRU,缺省值为1500。
- 当Protocol字段为0XC021时,Information结构如下:
- Identifier字段为1个字节,用来匹配请求和响应。
- Length域的值就是该LCP报文的总字节数据。
- Data字段则承载各种TLV(Type/Length/Value)参数用于协商配置选项,包括最大接收单元,认证协议等等。
- LCP报文携带的一些常见的配置参数有MRU、认证协议和魔术字。
- 在VRP(Versatile Routing Platform,通用路由平台)平台上,MRU参数使用接口上配置的MTU(Maximum Transmission Unit,最大传输单元)值来表示。
- 常用的PPP认证协议有PAP和CHAP,一条PPP链路的两端可以使用不同的认证协议认证对端,但是被认证方必须支持认证方要求使用的认证协议并正确配置用户名和密码等认证信息。
- LCP使用魔术字来检测链路环路和其他异常情况。魔术字是随机产生的一个数字,随机机制需要保证两端产生相同魔术字的可能性几乎为0。
3.7LCP报文
- 此表格列出了LCP用于链路层参数协商所使用四种报文类型。
- Configure-Request(配置请求):链路层协商过程中发送的第一个报文,该报文表明点对点双方开始进行链路层参数的协商。
- Configure-Ack(配置响应):收到对端发来的Configure-Request报文,如果参数取值完全接受,则以此报文响应。
- Configure-Nak(配置不响应):收到对端发来的Configure-Request报文,如果参数取值不被本端认可,则发送此报文并且携带本端可接受的配置参数。
- Configure-Reject(配置拒绝):收到对端发来的Configure-Request报文,如果本端不能识别对端发送的Configure-Request中的某些参数,则发送此报文并且携带那些本端不能认别的配置参数。
3.8LCP协商参数
LCP报文携带的一些常见的配置参数有MRU,认证协议,以及魔术字。
- 在VRP平台上,MRU参数使用接口上配置的最大传输单元(MTU)值来表示。
- 常用的PPP认证协议有PAP和CHAP,一条PPP链路的两端可以使用不同的认证协议认证对端,但是被认证方必须支持认证方要求使用的认证协议并正确配置用户名和密码等认证信息。
- LCP使用魔术字来检测链路环路和其它异常情况。魔术字为随机产生的一个数字,随机机制需要保证两端产生相同魔术字的可能性几乎为0。
收到一个
Configure-Request
报文之后,其包含的魔术字需要和本地产生的魔术字做比较,如果不同,表示链路无环路,则使用Confugure-Ack
报文确认(其它参数也协商成功),表示魔术字协商成功。在后续发送的报文中,如果报文含有魔术字字段,则该字段设置为协商成功的魔术字。
3.9LCP协商过程
3.9.1正常协商
- LCP协商由不同的LCP报文交互完成。协商由任意一方发送
Configure-Request
报文发起。如果对端接收此报文且参数匹配,则通过回复Configure-Ack
响应协商成功。
- R1和R2使用串行链路相连,运行PPP协议。当物理层链路变为可用状态之后,R1和R2使用LCP协商链路参数。
- 本例中,R1首先发送一个
Configure-Request
报文,此报文中包含R1上配置的链路层参数。当R2收到此Configure-Request
报文之后,如果R2能识别并接受此报文中的所有参数,则向R1回应一个Configure-Ack
报文。同样的,R2也需要向R1发送Configure-Request
报文,使R1检测R2上的参数是不是可接受的。- R1在没有收到
Configure-Ack
报文的情况下,会每隔3秒重传一次Configure-Request
报文,如果连续10次发送Configure-Request
报文仍然没有收到Configure-Ack
报文,则认为对端不可用,停止发送Configure-Request
报文。
3.9.2参数不匹配
- 在LCP报文交互中出现LCP参数不匹配时,接收方回复Configure-Nak响应告知对端修改参数然后重新协商。
- 当R2收到R1发送的
Configure-Request
报文之后,如果R2能识别此报文中携带的所有链路层参数,但是认为部分或全部参数的取值不能接受,即参数的取值协商不成功,则R2需要向R1回应一个Configure-Nak
报文。- 在这个
Configure-Nak
报文中,只包含不能接受的链路层参数,并且此报文所包含的链路层参数将被修改为R2上可以接受的取值(或取值范围)。- 在收到
Configure-Nak
报文之后,R1需要根据此报文中的链路层参数重新选择本地配置的其他参数,并重新发送一个Configure-Request
。
3.9.3参数不识别
- 在LCP报文交互中出现LCP参数不识别时,接收方回复
Configure-Reject
响应告知对端删除不识别的参数然后重新协商。
- 当R2收到R1发送的
Configure-Request
报文之后,如果R2不能识别此报文中携带的部分或全部链路层参数,则R2需要向R1回应一个Configure-Reject
报文。在此Configure-Reject
报文中,只包含不能被识别的链路层参数。- 在收到Configure-Reject报文之后,R1需要向R2重新发送一个
Configure-Request
报文,在新的Configure-Request
报文中,不再包含不被对端(R2)识别的参数。
3.10PPP认证模式
3.10.1PAP
- 链路协商成功后,进行认证协商(此过程可选)。认证协商有两种模式,PAP和CHAP。
- PAP认证双方有两次握手。协商报文以明文的形式在链路上传输。
- LCP协商完成后,认证方要求被认证方使用PAP进行认证。
- PAP认证协议为两次握手认证协议,密码以明文方式在链路上发送,过程如下:
- 被认证方将配置的用户名和密码信息使用
Authenticate-Reques
t报文以明文方式发送给认证方。- 认证方收到被认证方发送的用户名和密码信息之后,根据本地配置的用户名和密码数据库检查用户名和密码信息是否匹配;如果匹配,则返回
Authenticate-Ack
报文,表示认证成功。否则,返回Authenticate-Nak
报文,表示认证失败。
3.10.2CHAP
- CHAP认证双方有三次握手。协商报文被加密后再在链路上传输。
- LCP协商完成后,认证方要求被认证方使用CHAP进行认证。
- CHAP认证过程需要三次报文的交互。过程如下:
- 认证方主动发起认证请求,认证方向被认证方发送
Challenge
报文,报文内包含随机数(Random)和ID。- 被认证方收到此Challenge报文之后,进行一次加密运算,运算公式为MD5{ ID+随机数+密码},意思是将Identifier、随机数和密码三部分连成一个字符串,然后对此字符串做MD5运算,得到一个16 Byte长的摘要信息,然后将此摘要信息和端口上配置的CHAP用户名一起封装在
Response
报文中发回认证方。- 认证方接收到被认证方发送的
Response
报文之后,按照其中的用户名在本地查找相应的密码信息,得到密码信息之后,进行一次加密运算,运算方式和被认证方的加密运算方式相同;然后将加密运算得到的摘要信息和Response
报文中封装的摘要信息做比较,相同则认证成功,不相同则认证失败。- 使用CHAP认证方式时,被认证方的密码是被加密后才进行传输的,这样就极大的提高了安全性。
- 加密算法声明
- 使用加密算法时,MD5(数字签名场景和口令加密)加密算法安全性低,存在安全风险,在协议支持的加密算法选择范围内,建议使用更安全的加密算法,例如AES/RSA(2048位以上)/SHA2/HMAC-SHA2。
3.11NCP协商
3.11.1静态IP地址协商
- PPP认证协商后,双方进入NCP协商阶段,协商在数据链路上所传输的数据包的格式与类型。以常见的IPCP协议为例,它分为静态IP地址协商和动态IP地址协商。
- 静态IP地址协商需要手动在链路两端配置IP地址。
- NCP主要用来建立和配置不同的网络层协议,协商在该数据链路上所传输的数据包的格式与类型。常见的有IPCP等。
- 静态IP地址商过程如下:
- 每一端都要发送
Configure-Request
报文,在此报文中包含本地配置的IP地址;- 每一端接收到此
Configure-Request
报文之后,检查其中的IP地址,如果IP地址是一个合法的单播IP地址,而且和本地配置的IP地址不同(没有IP冲突),则认为对端可以使用该地址,回应一个Configure-Ack
报文。
3.11.2动态IP地址协商
- 动态IP地址协商支持PPP链路一端为对端配置IP地址。
- 动态协商IP地址的过程如下:
- R1向R2发送一个
Configure-Request
报文,此报文中会包含一个IP地址0.0.0.0,表示向对端请求IP地址;- R2收到上述
Configure-Request
报文后,认为其中包含的地址(0.0.0.0)不合法,使用Configure-Nak
回应一个新的IP地址10.1.1.1;- R1收到此
Configure-Nak
报文之后,更新本地IP地址,并重新发送一个Configure-Request
报文,包含新的IP地址10.1.1.1;- R2收到
Configure-Request
报文后,认为其中包含的IP地址为合法地址,回应一个Configure-Ack
报文;- 同时,R2也要向R1发送
Configure-Request
报文请求使用地址10.1.1.2,R1认为此地址合法,回应Configure-Ack
报文。
3.12PPP协议配置
3.12.1PPP配置命令
3.12.1.1PPP基础配置命令
1.配置接口封装PPP协议
[Huawei-Serial0/0/0] link-protocol ppp
在接口视图下,将接口封装协议改为ppp,华为串行接口默认封装协议为ppp。
2.配置协商超时时间间隔
[Huawei-Serial0/0/0] ppp timer negotiate seconds
在PPP LCP协商过程中,本端设备会向对端设备发送LCP协商报文,如果在指定协商时间间隔内没有收到对端的应答报文,则重新发送。
3.12.1.2PAP认证配置命令
1.配置验证方以PAP方式认证对端
[Huawei-aaa] local-user user-name password { cipher | irreversible-cipher } password
[Huawei-aaa] local-user user-name service-type ppp
配置验证方以PAP方式认证对端,首先需要通过AAA将被验证方的用户名和密码加入本地用户列表,然后选择认证模式。
2.配置被验证方以PAP方式被对端认证
[Huawei-Serial0/0/0] ppp pap local-user user-name password { cipher | simple } password
配置本地被对端以PAP方式验证时,本地发送PAP用户名和口令。
3.12.1.3CHAP认证配置命令
1.配置验证方以CHAP方式认证对端
[Huawei-aaa] local-user user-name password { cipher | irreversible-cipher } password
[Huawei-aaa] local-user user-name service-type ppp
[Huawei-Serial0/0/0] ppp authentication-mode chap
2.配置被验证方以CHAP方式被对端认证
[Huawei-Serial0/0/0] ppp chap user user-name
[Huawei-Serial0/0/0] ppp chap password { cipher | simple } password
配置本地用户名,配置本地被对端以CHAP方式验证时的口令。
3.12.2配置举例
3.12.2.1PAP认证
local-user huawei password cipher huawei123
命令用于创建一个本地用户,用户名为“huawei”,密码为“huawei123”,关键字“cipher”表示密码信息在配置文件中被加密。local-user huawei service-type ppp
命令用于设置用户“huawei”为PPP用户。ppp authentication-mode pap命令用于在认证方开启PAP认证的功能,即要求对端使用PAP认证。ppp pap local-user huawei password cipher huawei123
命令用于在被认证方配置PAP使用的用户名和密码信息。
配置验证:
3.12.2.2CHAP认证
local-user huawei password cipher huawei123
命令用于创建一个本地用户,用户名为“huawei”,密码为“huawei123”;关键字“cipher”表示密码信息在配置文件中加密保存。local-user huawei service-type ppp
命令用于设置用户“huawei”为PPP用户。ppp authentication-mode chap命令用于在认证方开启CHAP认证的功能,即要求对端使用CHAP认证。ppp chap user huawei
命令用于在被认证方设置CHAP使用的用户名为“huawei”。ppp chap password cipher huawei123
命令用于在被认证方设置CHAP使用的密码为“huawei123”。
配置验证:
4.PPPoE
数字用户线路DSL(Digital Subscriber Line)是以电话线为传输介质的传输技术,人们通常把所有的DSL技术统称为xDSL,x代表不同种类的数字用户线路技术。目前比较流行的宽带接入方式为ADSL,ADSL是非对称DSL技术,使用的是PPPoE(PPP over Ethernet)协议。
PPPoE协议通过在以太网上提供点到点的连接,建立PPP会话,使得以太网中的主机能够连接到远端的宽带接入服务器上。PPPoE具有适用范围广、安全性高、计费方便等特点。
PPPoE(PPP over Ethernet,以太网承载PPP协议)是一种把PPP帧封装到以太网帧中的链路层协议。PPPoE可以使以太网网络中的多台主机连接到远端的宽带接入服务器。
PPPoE集中了PPP和Ethernet两个技术的优点。既有以太网的组网灵活优势,又可以利用PPP协议实现认证、计费等功能。
4.1DSL应用场景
- 数字用户线路DSL是以电话线为传输介质的传输技术。
DSL是一种利用现有电话网络实现数据通信的宽带技术。在使用DSL接入网络时,用户侧会安装调制解调器,然后通过现有的电话线与数字用户线路接入复用器(DSLAM)相连。DSLAM是各种DSL系统的局端设备,属于最后一公里接入设备。
然后,DSLAM通过高速ATM网络或者以太网将用户的数据流量转发给宽带远程接入服务器(BRAS)。BRAS是面向宽带网络应用的接入网关,位于骨干网的边缘层。
4.2PPPoE应用场景
运营商希望通过同一台接入设备来连接远程的多个主机,同时接入设备能够提供访问控制和计费功能。在众多的接入技术中,把多个主机连接到接入设备的最经济的方法就是以太网,而PPP协议可以提供良好的访问控制和计费功能,于是产生了在以太网上传输PPP报文的技术,即PPPoE。
PPPoE利用以太网将大量主机组成网络,通过一个远端接入设备连入因特网,并运用PPP协议对接入的每个主机进行控制,具有适用范围广、安全性高、计费方便的特点。
PPPoE技术解决了用户上网收费等实际应用问题,得到了宽带接入运营商的认可并被广泛应用。
PPPoE的常见应用场景有家庭用户拨号上网、企业用户拨号上网等。
- 运营商希望把一个站点上的多台主机连接到同一台远程接入设备,同时接入设备能够提供与拨号上网类似的访问控制和计费功能。在众多的接入技术中,把多个主机连接到接入设备的比较经济的方法就是以太网,而PPP协议可以提供良好的访问控制和计费功能,于是产生了在以太网上传输PPP报文的技术,即PPPoE。
- PPPoE利用以太网将大量主机组成网络,通过一个远端接入设备接入因特网,并运用PPP协议对接入的每个主机进行控制,具有适用范围广、安全性高、计费方便的特点。
4.3PPPoE帧结构
4.4PPPoE报文
- PPPoE会话的建立通过不同的PPPoE报文交互实现。PPPoE报文结构及常见的报文类型如下所示:
- PPPoE报文封装在Ethernet帧中,Ethernet中各字段解释如下:
- DMAC:表示目的设备的MAC地址,通常为以太网单播目的地址或者以太网广播地址(0xFFFFFFFF)。
- SMAC:表示源设备的以太网MAC地址。
- Eth-Type:表示协议类型字段,当值为0x8863时表示承载的是PPPoE发现阶段的报文。当值为0x8864时表示承载的是PPPoE会话阶段的报文。
- PPPoE字段中的各个字段解释如下:
- VER:表示PPPoE版本号,值为0x01。
- Type:表示类型,值为0x01。
- Code:表示PPPoE报文类型,不同取值标识不同的PPPoE报文类型。
- PPPoE会话ID,与以太网SMAC和DMAC一起定义了一个PPPoE会话。
- Length:表示PPPoE报文的长度。
4.5PPPoE会话建立
- PPPoE的会话建立有三个阶段,PPPoE发现阶段、PPPoE会话阶段和PPPoE终结阶段。
4.5.1PPPoE发现阶段
- PPPoE协议发现有四个步骤:客户端发送请求、服务端响应请求、客户端确认响应和建立会话。
- PPPoE客户端在本地以太网中广播一个PADI报文,此PADI报文中包含了客户端需要的服务信息。
- PADI报文的目的MAC地址是一个广播地址,Code字段为0x09,Session ID字段为0x0000。
- 所有PPPoE服务器端收到PADI报文之后,会将报文中所请求的服务与自己能够提供的服务进行比较。
- 如果服务器端可以提供客户端请求的服务,就会回复一个PADO报文。
- PADO报文的目的地址是发送PADI报文的客户端MAC地址,Code字段为0x07,Session ID字段为0x0000。
- 客户端可能会收到多个PADO报文,此时将选择最先收到的PADO报文对应的PPPoE服务器端,并发送一个PADR报文给这个服务器端。
- PADR报文的目的地址是选中的服务器端的MAC地址,Code字段为0x19,Session ID字段为0x0000。
- PPPoE服务器端收到PADR报文后,会生成一个唯一的Session ID来标识和PPPoE客户端的会话,并发送PADS报文。
- PADS报文的目的地址是PPPoE客户端的MAC地址,Code字段为0x65,Session ID字段是PPPoE服务器端为本PPPoE会话产生的Session ID。
- 会话建立成功后,PPPoE客户端和服务器端进入PPPoE会话阶段。
4.5.2PPPoE会话阶段
- PPPoE会话阶段会进行PPP协商,分为LCP协商、认证协商、NCP协商三个阶段。
- PPPoE会话阶段可分为两部分:PPP协商阶段和PPP报文传输阶段。
- PPPoE Session上的PPP协商和普通的PPP协商方式一致,分为LCP、认证、NCP三个阶段。
- LCP阶段主要完成建立、配置和检测数据链路连接。
- LCP协商成功后,开始进行认证,认证协议类型由LCP协商结果决定。
- 认证成功后,PPP进入NCP阶段,NCP是一个协议族,用于配置不同的网络层协议,常用的是IP控制协议(IPCP),它负责配置用户的IP地址和DNS服务器地址等。
- PPPoE Session的PPP协商成功后,就可以承载PPP数据报文。在这一阶段传输的数据包中必须包含在发现阶段确定的Session ID并保持不变。
4.5.3PPPoE会话终结阶段
- 当PPPoE客户端希望关闭连接时,会向PPPoE服务器端发送一个PADT报文,用于关闭连接。
- 同样,如果PPPoE服务器端希望关闭连接时,也会向PPPoE客户端发送一个PADT报文。
- 在PADT报文中,目的MAC地址为单播地址,Session ID为希望关闭的连接的Session ID。一旦收到一个PADT报文之后,连接随即关闭。
4.6PPPoE基础配置
4.6.1基础配置命令
1.通过拨号规则来配置发起PPPoE会话的条件
[Huawei] dialer-rule
2.配置拨号接口用户名,此用户名必须与对端服务器用户名相同
[Huawei-Dialer1]dialer user username
3.将接口置于一个拨号访问组
[Huawei-Dialer1]dialer-group group-number
4.指定当前拨号接口使用的拨号绑定
[Huawei-Dialer1]dialer-bundle number
5.将物理端口与dialer-bundle进行绑定
[Huawei-Ethernet0/0/0]pppoe-client dial-bundle-number number
4.6.2PPPoE配置
4.6.1.2PPPoE客户端
- PPPoE客户端配置包括三个步骤。
- 首先需要配置一个拨号接口。
dialer-rule
命令用于进入Dialer-rule视图,在该视图下,可以通过拨号规则来配置发起PPPoE会话的条件。interface dialer number
命令用来创建并进入Dialer接口。dialer user user-name
命令用于配置对端用户名,这个用户名必须与对端服务器上的PPP用户名相同。dialer-group group-number
命令用来将接口置于一个拨号访问组。dialer bundle number
命令用来指定Dialer接口使用的Dialer bundle。设备通过Dialerbundle将物理接口与拨号接口关联起来。
第二个步骤是在接口上将Dialer Bundle和接口绑定:
pppoe-client dial-bundle-number number
命令来实现Dialer Bundle和物理接口的绑定,用来指定PPPoE会话对应的Dialer Bundle,其中number是与PPPoE会话相对应的Dialer Bundle编号。on-demand表示PPPoE会话工作在按需拨号模式。AR2200支持报文触发方式的按需拨号。目前ARG3系列路由器支持的按需拨号方式为报文触发方式,即当物理线路Up后,设备不会立即发起PPPoE呼叫,只有当有数据需要传送时,设备才会发起PPPoE呼叫,建立PPPoE会话。第三个步骤是配置一条缺省静态路由,该路由允许在路由表中没有相应匹配表项的流量都能通过拨号接口发起PPPoE会话。
配置验证:
display interface dialer[number]
命令用于查看拨号接口的配置,便于定位拨号接口的故障。LCP opened,IPCP opened
表示链路的状态完全正常。
display pppoe-client session summary
命令用于查看PPPoE客户端的PPPoE会话状态和统计信息。本节给出了两个例子来说明不同的PPPoE会话状态。
ID表示PPPoE会话ID,Bundle ID和Dialer ID的值与拨号参数配置有关。
Intf表示客户端侧协商时的物理接口。
State表示PPPoE会话的状态,包括以下四种:
- IDLE表示当前会话状态为空闲。
- PADI表示PPPoE会话处于发现阶段,并已经发送PADI报文。
- PADR表示PPPoE会话处于发现阶段,并已经发送PADR报文。
- UP表示PPPoE会话建立成功。
4.6.2.2PPPoE服务器端
- 在PPPoE服务器端上创建为客户端分配IP的地址池;
- PPPoE服务器端完成PPPoE客户端认证并分配合法的IP地址。
1.创建地址池与虚拟模板:
2.将物理接口与虚拟模板绑定:
3.创建访问用户:
- PPPoE服务器端配置
interface virtual-template
命令用来创建虚拟模板接口,或者进入一个已经创建的虚拟模板接口视图。pppoe-server bind
命令用来配置PPPoE接入用户上线绑定的虚拟模板接口。
5.广域网技术的发展
- 早期广域网常用的数据链路层协议包括PPP、HDLC和ATM等。后期随着全网IP化的演进,基于IP技术的Internet快速普及,但基于最长匹配算法的IP技术必须使用软件查找路由,转发性能低下,因此IP技术的转发性能成为当时限制网络发展的瓶颈。
- MPLS(Multiprotocol Label Switching,多协议标记交换)最初是为了提高路由器的转发速度而提出的。与传统IP路由方式相比,它在数据转发时,只在网络边缘解析IP报文头,后续节点只基于标签转发,而不用在每一跳都解析IP报文头,减少软件处理流程节约了处理时间。
- 随着路由器性能的提升,路由查找速度已经不是阻碍网络发展的瓶颈。这使得MPLS在提高转发速度方面不再具备明显的优势。但是MPLS支持多层标签和转发平面面向连接的特性,使其在VPN(Virtual Private Network,虚拟专用网)、TE(Traffic Engineering,流量工程)、QoS(Quality of Service,服务质量)等方面得到广泛应用。
5.1传统IP路由转发
传统的IP转发采用的是逐跳转发。数据报文经过每一台路由器,都要被解封装查看报文网络层信息,然后根据路由最长匹配原则查找路由表指导报文转发。各路由器重复进行解封装查找路由表和再封装的过程,所以转发性能低。
传统IP路由转发的特点:
- 所有路由器需要知道全网的路由。
- 传统IP转发是面向无连接的,无法提供较好的端到端QoS保证。
5.2MPLS标签转发
- MPLS是一种IP骨干网技术。
- MPLS是一种隧道技术,在IP路由和控制协议的基础上,向网络层提供面向连接的交换。能够提供较好的QoS保证。
- MPLS标签指导报文转发的过程中,使用本地标签查找替代传统IP转发的路由查找,大大提高转发效率。
- MPLS转发过程中使用的标签,既可以通过手工静态配置,又可以通过动态标签分发协议分配。
MPLS转发存在的问题:
- MPLS的标签分发有静态和动态两种方式,均面临着不同的问题:
- 静态标签分发为手工配置。随着网络规模不断的扩大,网络拓扑易变化,静态手工配置标签不适应大型网络需求。
- 动态标签分发的问题,一方面在于部分动态标签协议本身并无算路能力,需依赖IGP进行路径计算,同时控制面协议复杂,设备之间需要发送大量的消息来维持邻居及路径状态,浪费了链路带宽及设备资源。另一方面部分标签分发协议虽然支持流量工程,但是配置复杂,不支持负载分担,需要大量协议报文维护路径正常工作;同时每台设备都是独立存在,只知道自己的状态,设备之间需要交互信令报文,也会浪费链路带宽及设备资源。
5.3Segment Routing转发
5.3.1Segment Routing简介
- 为解决传统IP转发和MPLS转发的问题,业界提出了SR (Segment Routing,分段路由)。SR的转发机制有很大改进,主要体现在以下几个方面:
- 基于现有协议进行扩展:
- 扩展后的IGP/BGP具有标签分发能力,因此网络中无需其他任何标签分发协议,实现协议简化。
- 引入源路由机制:
- 基于源路由机制,支持通过控制器进行集中算路。
- 由业务来定义网络:
- 业务驱动网络,由应用提出需求(时延、带宽、丢包率等),控制器收集网络拓扑、带宽利用率、时延等信息,根据业务需求计算显式路径。
- 基于现有协议进行扩展:
5.3.2Segment Routing转发原理
- SR将网络路径分成一个个的段(Segment),并且为这些段分配SID(Segment ID)。
- SID的分配对象有两种,转发节点或者链路。本例中转发节点SID 1600X,X为路由器编号;链路SID 160XX,XX表示链路两端的节点编号。
- SID用于标识Segment,它的格式取决于具体的技术实现,例如可以使用MPLS标签、MPLS标签空间中的索引、IPv6报文头部。例如使用MPLS标签被称为SR-MPLS,使用IPv6被称为SRv6。
- 链路和网络节点的SID有序排列形成段序列(Segment List),它代表一条转发路径。SR由源节点将段序列编码在数据包头部,随数据包传输。SR的本质是指令,指引报文去哪里和怎么去。
- 接收端收到数据包后,对段序列进行解析,如果段序列的顶部段标识是本节点时,则弹出该标识,然后进行下一步处理;如果不是本节点,则使用ECMP(Equal Cost Multiple Path)方式将数据包转发到下一节点。
5.3.3SR的部署方式
- SR的部署方式分可以以有无控制器配合区分。控制器配合方式由控制器收集信息,预留路径资源和计算路径,最后将结果下发到头结点,是更为推荐的部署方式。
- PCEP:Path Computation Element Communication Protocol,路径计算单元通信协议
- NETCONF:Network Configuration Protocol,网络配置协议
5.3.4Segment Routing的应用
- SR可以简易的指定的报文转发路径,在现网中可以为不同业务定义不同的路径。例如本例定义了数据下载、视频和语音三条显式路径,实现了业务驱动网络。设备由控制器纳管,支持路径实时快速发放。
6.本章总结
- 通过回顾早期广域网技术的类型和应用,介绍了广域网发展演进的历程,从开始的电路交换网络到后期IP化网络,再到MPLS标签交换网,最后引出SR网络,随着网络技术的不断的发展,网络也变得越来高效智能。
- 介绍PPP协议的工作原理,包括PPP链路建立的参数协商,认证协商以及网络层协商的过程。重点分析了PPP的两个认证协议PAP和CHAP,描述了它们的工作过程以及不同之处。
- PPP协议在当前最主要的应用是PPPoE,通过分析PPPoE会话的发现、协商、建立及拆除的过程,全面了解PPPoE的工作机制及配置。