1. PPP实验点这里(拓扑+代码)
2. PPPoE配置实验点这里(拓扑+代码)
目录
- 一、广域网
- 二、PPP协议
- 三、PPP链路建立过程1-LCP(链路协商)
- 四、PPP链路建立过程2-PAP/CHAP(认证协商,可选)
- 五、PPP链路建立过程3-NCP(网络协商)
- 六、PPP 配置命令
- 七、PPPoE(以太网承载PPP协议)
- 八、PPPoE会话阶段(重点)
- 九、PPPoE基础配置
- 十、广域网技术的发展(了解)
一、广域网
-
什么是广域网?
广域网是连接不同地区局域网的网络,通常所覆盖的范围从几十公里到几千公里。它能连接多个地区、城市和国家,或横跨几个洲提供远距离通信,形成国际性的远程网络。 ※ 广域网与局域网是相对的概念。
-
早期的广域网技术
早期广域网与局域网的区别在于数据链路层和物理层的差异性,在TCP/IP参考模型中,其他各层无差异。
TCP/IP参考模型 | LAN技术 | WAN技术 |
---|---|---|
数据链路层 | IEEE802.3/4/5/11 | PPP、HDLC、FR(帧中继)、ATM |
物理层 | IEEE802.3/4/5/11 | RS-232、V.24、V.35、G.703 |
- 广域网络设备角色介绍
设备 | 描述 |
---|---|
CE(Customer Edge,用户边缘设备) | 用户端连接服务提供商的边缘设备(PE)。CE连接一个或多个PE,实现用户接入。 |
PE(Provider Edge,服务提供商边缘设备) | 服务提供商连接CE的边缘设备。PE同时连接CE和P设备,是重要的网络节点。 |
P(Provider ,服务提供商设备) | 服务提供商不连接任何CE的设备。 |
-
早期广域网技术的应用
早期的广域网技术主要是针对不同的物理链路类型,在数据链路层进行不同的二层封装。 在CE与PE之间常用的广域网封装协议有PPP/HDLC/FR等,用于解决用户接入广域网的长距离传输问题。 在ISP(运营商)内部常用的广域网协议主要是ATM,它用于解决骨干网高速转发的问题。
二、PPP协议
-
PPP协议概述
PPP(Point-to-Point Protocol,点到点协议)是一种常见的“广域网数据链路层协议”,主要用于在全双工的链路上进行点到点的数据传输封装。 PPP提供了安全“认证”协议族: ① PAP(Password Authentication Protocol,密码验证协议) ② CHAP(ChallengeHandshake Authentication Protocol,挑战握手认证协议)。 ※ 二者都为链路层的认证协议 PPP协议具有良好的扩展性,例如,当需要在以太网链路上承载PPP协议时,PPP可以扩展为PPPoE。 PPP协议提供LCP(Link Control Protocol,链路控制协议),用于各种链路层参数的协商,例如最大接收单元,认证模式等。 PPP协议提供各种NCP(Network Control Protocol,网络控制协议),如IPCP(IP Control Protocol ,IP控制协议),用于各网络层参数的协商,更好地支持了网络层协议。
-
PPP链路建立流程
PPP链路的建立有三个阶段的协商过程,链路层协商、认证协商(可选)和网络层协商。 ① 链路层协商(LCP):通过LCP报文进行链路参数协商,建立链路层连接。 ② 认证协商(可选PAP或CHAP):通过链路建立阶段协商的认证方式进行链路认证。 ③ 网络层协商(NCP) :通过NCP协商来选择和配置一个网络层协议并进行网络层参数协商。
三、PPP链路建立过程1-LCP(链路协商)
-
LCP报文格式
PPP报文可由Protocol字段标识不同类型的PPP报文。例如,当Protocol字段为0xC021时,代表是LCP报文。此时又由Code字段标识不同类型LCP报文。 LCP主要用来协商链路层的参数,这些参数使用TLV(Type Length Value)结构封装,例如MRU、认证协议、魔术字(用于防环)等。
-
LCP协商过程 - 正常协商
LCP协商由不同的LCP报文交互完成。协商由任意一方发送Configure-Request报文发起。如果对端接收此报文且参数匹配,则通过回复Configure-Ack响应协商成功。 步骤: ① R1发送Configure-Request请求(携带本端参数,链路层参数:如MRU=1500;Auth_Type=PAP;Magic_Num=a)给R2,R2确认参数合法后,回发一个Configure-Ack报文给R1响应协商成功。 ② R2紧接着再发一个携带自己参数的Configure-Request报文,等待R1回复Configure-Ack响应。 ③ R1最后回复一个Configure-Ack报文,LCP协商过程结束 ※ 也就是说,双方都需要发送携带自己参数的请求报文 ※ 注意,如果双方的MRU大小不一致,如R1为1500、R2为2000,则双方都会协商为1500
-
LCP协商过程 - 参数不匹配
在LCP报文交互中出现LCP参数不匹配时,接收方回复Configure-Nak响应告知对端修改参数然后重新协商。 步骤: ① R1发送配置请求,携带本端参数(Configure-Request) ② R2发现R1的参数不合法,回复一个Configure-Nak报文,进行参数协商。 ③ 重新发起配置请求,携带协商后参数。
-
LCP协商过程 - 参数不识别
在LCP报文交互中出现LCP参数不识别时,接收方回复Configure-Reject响应告知对端删除不识别的参数然后重新协商。
四、PPP链路建立过程2-PAP/CHAP(认证协商,可选)
链路协商成功后,进行认证协商(此过程可选)。认证协商有两种模式,PAP和CHAP。
-
PPP认证模式 - PAP
PAP认证双方有两次握手。协商报文以“明文”的形式在链路上传输。 步骤: ① LCP链路协商成功,确定认证方式为PAP ② 被认证方(企业)发起认证,发送Authenticate-Request报文(携带用户名与密码) ③ 认证方(运营商)将请求报文中的用户名和密码与本端数据库中进行比对,若匹配成功,则发送Authenticate-Ack给被认证方(认证协商过程结束) ※ PAP认证模式不安全,密码为明文传输。 ※ 认证方在本地数据库中配置用户名和密码。
-
PPP认证模式 - CHAP
CHAP认证双方有三次握手。协商报文被加密后再在链路上传输。 步骤: ① LCP链路协商成功,确定认证方式为CHAP ② 第一次握手:认证方发起challenge报文(携带ID、随机数Random)给被认证方,同时认证方本地会记录自己发送的随机数与ID ③ 第二次握手:被认证方收到challenge报文后,会将报文中的ID、随机数结合本地接口配置的密码,使用HASH算法生成MD5结果。随后将MD5结果与用户名等参数封装成Response报文,发送给认证方(进行认证) ④ 认证方自己也将自己本地的密码结合随机数、ID使用HASH算法生成MD5结果。 ⑤ 第三次握手:认证方收到被认证方发送的response报文后,会将双方的MD5结果进行比对,若匹配一致,则代表认证成功,随后回复一个Success报文给被认证方(认证协商过程结束) ※ 随机数用于防重放攻击 ※ CHAP认证情况下:网络中传输的不是密码,而是通过密码等参数生成的MD5结果,因此安全。
五、PPP链路建立过程3-NCP(网络协商)
PPP认证协商后,双方进入NCP协商阶段,协商在数据链路上所传输的数据包的格式与类型。
以常见的IPCP(网络控制协议)为例,它分为静态IP地址协商和动态IP地址协商。
-
静态IP地址协商(检测双方的IP地址是否冲突)
静态IP地址协商需要手动在链路两端配置IP地址。 步骤: ① R1发送配置请求,携带本端配置的IP地址(Configure-Request报文,IP:10.1.1.1) ② R2收到后,确认对端地址合法,回复给R1一个Configure-Ack进行确认 ③ 随后R2会发送Configure-Request报文(10.1.1.2,R2的IP地址)给R1 ④ 最后R1回复确认报文Configure-Ack到R2(此时NCP协商结束)
-
动态IP地址协商
动态IP地址协商支持PPP链路一端为对端配置IP地址(推送IP地址) 步骤: ① R1发送配置请求报文Configure-Request (0.0.0.0)给R2。 ※ R1本地没有IP地址,因此请求报文中的地址为0.0.0.0 ② R2接收到R1的请求报文后,发现报文中的地址不合法,回复一个协商IP地址报文(Configure-Nak,IP:10.1.1.1)给R1 ※ 上述Configure-Nak中的IP地址(10.1.1.1)为R2推送给R1的(可以理解为R2给R1分配的) ③ R1收到R2推送的IP地址后,将其配置在自己的接口下,然后重新发送Configure-Request (10.1.1.1)报文给R2 ※ 此处报文中的IP地址为R2给R1分配的 ④ R2接收到新的请求报文后,检查发现R1的地址合法了,因此回复Configure-Ack报文给R1进行确认 ⑤ R2随后发送Configure-Request(10.1.1.2)报文,携带自己的IP地址,给R1进行协商 ⑥ R1接收到后,确认R2的地址合法(IP地址正确且和自己不冲突),最后发送Configure-Ack报文给R2确认协商成功(此时NCP协商结束)
六、PPP 配置命令
/* ppp 基础配置命令 */
[Huawei-Serial0/0/0] link-protocol ppp // 配置当前接口封装PPP协议
※ 华为串行接口默认封装协议为ppp
[Huawei-Serial0/0/0] ppp timer negotiate 10 // 单位为秒
※ 在PPP LCP协商过程中,本端设备会向对端设备发送LCP协商报文,如果在指定协商时间间隔内没有收到对端的应答报文,则重新发送。
/* PAP 认证配置命令 */
/* 1,认证方(运营商) */
步骤:配置验证方以PAP方式认证对端,首先需要通过AAA将被验证方的用户名和密码加入本地用户列表,然后选择认证模式。
[R1] aaa // 进入aaa认证,添加待认证用户信息
[R1-aaa] local-user aa password cipher Huawei@123 // 配置用户名与密码(密文显示)
[R1-aaa] local-user aa service-type ppp // 指定用户aa业务类型为ppp
[R1-aaa]int s4/0/0 // 进入串口s4/0/0
[R1-Serial4/0/0] ppp authentication-mode pap // 指定ppp认证模式为pap
/* 2,被认证方(企业客户) */
[R2] int s4/0/0 // 进入串口s4/0/0
[R2-Serial4/0/0] ppp pap local-user aa password cipher Huawei@123 // 添加PPP认证的用户信息
/* CHAP 认证配置命令*/
/* 1,认证方(运营商) */
[R1] aaa // 进入aaa认证,添加待认证用户信息
[R1-aaa] local-user aa password cipher Huawei@123 // 配置用户名与密码(密文显示)
[R1-aaa] local-user aa service-type ppp // 指定用户aa业务类型为ppp
[R1-aaa]int s4/0/0 // 进入串口s4/0/0
[R1-Serial4/0/0] ppp authentication-mode chap // 配置ppp认证方式为chap(pap与chap认证在配置方面,仅有此处略有不同)
/* 2,被认证方(企业客户) */
[R2] int s4/0/0 // 进入串口s4/0/0
[R2-Serial4/0/0] ppp chap user aa // 配置chap认证时的用户名
[R2-Serial4/0/0] ppp chap password cipher Huawei@123 // 配置chap认证时的密码(密文显示)
/* PPP 动态地址协商(分配IP地址)配置 */
/* 1,被分配方(无IP地址,等待对方分配) */
[R1]int s4/0/0 // 进入串口s4/0/0
[R1-Serial4/0/0] ip address ppp-negotiate // 配置IP地址为ppp动态协商(自动获取)
/* 2,分配方(有IP地址,给对方推送IP地址) */
[R2] int s4/0/0 // 进入串口
[R2-Serial4/0/0] int add 2.2.2.2 // 添加本端接口的IP地址
[R2-Serial4/0/0] remote address 1.1.1.1 // 给对端接口(R1)推送一个IP地址(分配)
※ 两端的IP地址可以不是一个网段的
七、PPPoE(以太网承载PPP协议)
-
什么是PPPoE?
PPPoE(PPP over Ethernet,以太网承载PPP协议)是一种把PPP帧封装到以太网帧中的链路层协议。PPPoE可以使以太网网络中的多台主机连接到远端的宽带接入服务器。 PPPoE集中了“PPP和Ethernet”两个技术的优点。既有以太网的组网灵活优势,又可以利用PPP协议实现认证、计费等功能。
-
PPPoE应用场景
PPPoE实现了在以太网上提供点到点的连接。PPPoE客户端与PPPoE服务器端之间建立PPP会话,封装PPP数据报文,为以太网上的主机提供接入服务,实现用户控制和计费,在企业网络与运营商网络中应用广泛。 PPPoE的常见应用场景有家庭用户拨号上网、企业用户拨号上网等。 ※ 所有主机安装PPPoE客户端拨号软件,每个主机都是一个PPPoE客户端,分别与PPPoE服务器端建立一个PPPoE会话。每个主机单独使用一个账号,方便运营商对用户进行计费和控制。
-
PPPoE会话建立
PPPoE的会话建立有三个阶段,PPPoE发现阶段、PPPoE会话阶段和PPPoE终结阶段。 ① PPPoE发现阶段:PPPoE协商(用户接入,创建PPPoE虚拟链路) ② PPPoE会话阶段:PPP协商(包括LCP协商、PAP/CHAP认证、NCP协商等阶段) ③ PPPoE终结阶段:PPPoE断开(用户下线,客户端断开连接或者服务器端断开连接)
八、PPPoE会话阶段(重点)
- PPPoE报文
Code | 名称 | 内容 |
---|---|---|
0x09 | PADI | PPPoE Active Discovery Initiation,PPPoE激活发现起始报文 |
0x07 | PADO | PPPoE Active Discovery Offer,PPPoE激活发现服务报文 |
0x19 | PADR | PPPoE Active Discovery Request,PPPoE激活发现请求报文 |
0x65 | PADS | PPPoE Active Discovery Session-confirmation,PPPoE激活发现会话确认报文 |
0xa7 | PADT | PPPoE Active Discovery Terminate,PPPoE激活发现终止报文 |
-
PPPoE发现阶段(重点)
PPPoE协议发现有四个步骤:客户端发送请求、服务端响应请求、客户端确认响应和建立会话。 ① 客户端发送请求:客户端广播请求需要的服务(PADI) ② 服务端响应请求:可能会有多个服务器能够提供客户端服务(PADO) ③ 客户端确认响应:客户端优选最先收到的服务响应并发送服务请求(PADR) ④ 建立会话:服务器端通过分配Session ID给客户端确定会话建立(PADS)
-
PPPoE会话阶段(重点)
PPPoE会话阶段会进行PPP协商,分为LCP协商、认证协商、NCP协商三个阶段 ※ 在整个会话阶段,由PPPoE服务器端分配的Session ID值保持不变。
-
PPPoE终结阶段(重点)
当PPPoE客户端希望关闭连接时,会向PPPoE服务器端发送一个PADT报文,用于关闭连接。 同样,如果PPPoE服务器端希望关闭连接时,也会向PPPoE客户端发送一个PADT报文。 ※ PADT中通过携带Session ID值来标识需要关闭的会话
九、PPPoE基础配置
PPPoE配置实验点这里(拓扑+代码)
十、广域网技术的发展(了解)
-
广域网技术的历史演进
早期广域网常用的数据链路层协议包括PPP、HDLC和ATM等。后期随着全网IP化的演进,基于IP技术的Internet快速普及,但基于最长匹配算法的IP技术必须使用软件查找路由,转发性能低下,因此IP技术的转发性能成为当时限制网络发展的瓶颈。 MPLS(Multiprotocol Label Switching,多协议标记交换)最初是为了提高路由器的转发速度而提出的。与传统IP路由方式相比,它在数据转发时,只在网络边缘解析IP报文头,后续节点只基于标签转发,而不用在每一跳都解析IP报文头,减少软件处理流程节约了处理时间。 随着路由器性能的提升,路由查找速度已经不是阻碍网络发展的瓶颈。这使得MPLS在提高转发速度方面不再具备明显的优势。但是MPLS支持多层标签和转发平面面向连接的特性,使其在VPN(Virtual PrivateNetwork,虚拟专用网)、TE(Traffic Engineering,流量工程)、QoS(Quality of Service,服务质量)等方面得到广泛应用。
-
传统IP路由转发
传统的IP转发采用的是逐跳转发。数据报文经过每一台路由器,都要被解封装查看报文网络层信息,然后根据路由最长匹配原则查找路由表指导报文转发。各路由器重复进行解封装查找路由表和再封装的过程,所以转发性能低。 传统IP路由转发的特点: ① 所有路由器需要知道全网的路由 ② 传统IP转发是面向无连接的,无法提供较好的端到端QoS保证。
-
MPLS标签转发
MPLS是一种IP骨干网技术。 MPLS是一种隧道技术,在IP路由和控制协议的基础上,向网络层提供面向连接的交换。能够提供较好的QoS保证。 MPLS标签指导报文转发的过程中,使用本地标签查找替代传统IP转发的路由查找,大大提高转发效率。 MPLS转发过程中使用的标签,既可以通过手工静态配置,又可以通过动态标签分发协议分配
-
MPLS转发存在的问题
MPLS的标签分发有静态和动态两种方式,均面临着不同的问题: ① 静态标签分发为手工配置。随着网络规模不断的扩大,网络拓扑易变化,静态手工配置标签不适应大型网络需求。 ② 动态标签分发的问题,一方面在于部分动态标签协议本身并无算路能力,需依赖IGP进行路径计算,同时控制面协议复杂,设备之间需要发送大量的消息来维持邻居及路径状态,浪费了链路带宽及设备资源。另一方面部分标签分发协议虽然支持流量工程,但是配置复杂,不支持负载分担,需要大量协议报文维护路径正常工作;同时每台设备都是独立存在,只知道自己的状态,设备之间需要交互信令报文,也会浪费链路带宽及设备资源。
-
Segment Routing简介
为解决传统IP转发和MPLS转发的问题,业界提出了SR (Segment Routing,分段路由)。SR的转发机制有很大改进,主要体现在以下几个方面: ① 基于现有协议进行扩展:扩展后的IGP/BGP具有标签分发能力,因此网络中无需其他任何标签分发协议,实现协议简化。 ② 引入源路由机制:基于源路由机制,支持通过控制器进行集中算路(SDN的思想) ③ 业务驱动网络,由应用提出需求(时延、带宽、丢包率等),控制器收集网络拓扑、带宽利用率、时延等信息,根据业务需求计算显式路径。 SR将网络路径分成一个个的段(Segment),并且为这些段分配SID(Segment ID)。 SID的分配对象有两种,转发节点或者邻接链路。 邻接链路和网络节点的SID有序排列形成段序列(Segment List),它代表一条转发路径。SR由源节点将段序列编码在数据包头部,随数据包传输。SR的本质是指令,指引报文去哪里和怎么去
-
SR的部署方式
SR部署分为有控制器部署和无控制器部署。控制器配合方式由控制器收集信息,预留路径资源和计算路径,最后将结果下发到头结点,是更为推荐的部署方式。
-
Segment Routing的应用
SR可以简易的指定的报文转发路径,在现网中可以为不同业务定义不同的路径。 例如本例定义了数据下载、视频和语音三条显式路径,实现了业务驱动网络。设备由控制器纳管,支持路径实时快速发放。