3.1.0 广域网(简介、PPP、PAP、CHAP、PPPOE)
观前温馨提示:
篇幅较大,本章主要有以下大点,可通过目录与右侧导航跳转观看:
(1)广域网基本概念
(2)PPP协议介绍
(3)PAP与CHAP认证
(4)PPPOE介绍与配置
文章目录
- 观前温馨提示:
- 简介
- 广域网组网
- 广域网中的路由角色(PE/CE/P)概念
- PPP协议
- PPP协议的优势
- 1、支持LCP协商:链路层参数协商
- 2、支持NCP协商:网络层参数协商
- 3、支持用户认证:PAP、CHAP
- 4、支持扩展:ppp可扩展的支持低层链路
- PPP协议之用户认证
- PAP认证
- CHAP认证
- PPP协议之地址下发
- PPP协议的详细建立过程
- 1、LCP协商
- 2、pap/chap认证协商
- 3、NCP协商
- 4、建立完成之后,通过Echo Request、Echo Replay保活
- 5、建立chap认证方式的建立全过程抓包信息:
- PPP协议建立的状态机
- PPPOE
- PPPOE简介
- PPP的帧结构
- PPPOE的会话建立大致过程
- 1、PPPOE会话发现
- 1-PPPOE PADI 查找开始
- 2-PPPOE PADO 提供信息
- 3-PPPOE PADR 请求信息
- 4-PPPOE PADS 会话确认
- 5-华为的PPPOE会话发现逻辑示意图
- 2、PPPOE会话阶段
- 华为的PPPOE会话阶段逻辑示意图
- 3、PPPOE会话终结
- 华为的PPPOE会话终结逻辑示意图
- PPPOE的配置
- 环境介绍:
简介
广域网组网
-
广域网早期组网的
X.25
只能提供64Kbit/s的带宽 -
其后
DDN(Digital Data Network)
数据网和FR(Frame Relay)帧中继
提供的带宽提高到2Mbit/s -
SDH(Synchronous Digital Hierachy)同步数字结构
和ATM(Asynnchronous Transfer Mode)异步传输模式
,进下一步把提升到了10Gbit/s -
最后发展到当前以IP为基础的10Gbit/s甚至更高带宽的广域网络
广域网中的路由角色(PE/CE/P)概念
- CE(CustomerEdge):用户的边缘设备,服务提供商所连接的用户端路由器。
- CE路由器通过连接一个或多个PE路由器,为用户提供多点服务接入。
- CE路由器通常是一台IP路由器,它与连接的PE路由器建立邻接关系。
- PE(ProviderEdge):运营商的边缘设备,Provide的边缘设备,服务提供商骨干网的边缘路由器,它相当于标签边缘路由器(LER)。
- PE路由器连接CE路由器和P路由器,是最重要的网络节点。
- 用户的流量通过PE路由器流入用户网络,或者通过PE路由器流到组网骨干网。
- P(Provider):运营商的内部核心层设备,提供商路由器,服务提供商是不连接任何CE路由器的骨干网路由设备,它相当于标签交换路由器(LSR)。
PPP协议
ppp 端对端/点对点 协议(Peer-Peer Protocol)
ppp有什么用?用来干嘛的?
答:PPP是一种点到点链路层协议,主要用于在全双工的同异步链路上[Serial串行接口]
进行点到点的数据传输。
PPP协议的优势
1、支持LCP协商:链路层参数协商
2、支持NCP协商:网络层参数协商
3、支持用户认证:PAP、CHAP
4、支持扩展:ppp可扩展的支持低层链路
- 以太网网络,PPP可扩展为PPPOE
- ATM网络,PPP可扩展为PPPOA
PPP协议之用户认证
PAP认证
-
PAP密码认证协议(Password Authentication Protocol)
-
PAP是明文交互认证
-
PAP的简要认证过程
-
1、认证方(服务器)上创建认证的账号密码,被认证方(客户端)上设置好用于认证的账号密码
-
2、由被认证方向认证方发送认证信息(账号密码),认证方检查账号密码,匹配成功则回复认证成功否则回复认证失败。
-
【客户端】》主动认证》【服务器】
-
CHAP认证
-
CHAP 挑战握手认证协议(Challenge Handshake Authentication Protocol )
-
CHAP是密文交互认证
-
CHAP的简要认证过程:
-
1、认证方(服务器)上创建认证的账号密码,被认证方(客户端)上设置好用于认证的账号密码
-
2、认证方主动向被认证方发送挑战报文
-
含有:(接口认证账号、认证序号A、认证方随机数)
-
在单向chap认证中,认证方的接口认证账号可有可无。
-
-
3、被认证方收到挑战报文,查看接口是否存在chap账号密码:
- 存在,则回复答复报文:报文序号A、接口认证账号、HASH值
- HASH值(认证序号A、认证方随机数、接口认证的密码,三者进行MD5加密得出HASH值)
- 报文序号从始至终都是认证方发送的报文序号。
- 不存在,则不回复信息,默认认证失败。
- 存在,则回复答复报文:报文序号A、接口认证账号、HASH值
-
4、认证方收到答复报文:
- (1)对收到的账号在账号数据库中检索出“密码”
- (2)基于报文序号,取出之前产生的“随机数”
- (3)进行(报文序号A+认证方随机数+账号对应密码)三者进行MD5加密得到一个HASH值
-
5、两个HASH值对比,一样则说明认证成功,否则失败。
-
PPP协议之地址下发
在PPP协议中,可以只在一端上配置地址实现将指定地址下发给对端。
[AR1]int s4/0/0
[AR1-Serial4/0/0]ip add 192.168.1.1 24
[AR1-Serial4/0/0]remote address 192.168.1.2 # 指定对端使用的地址
[AR2]int s4/0/0
[AR2-Serial4/0/0]ip add ppp-negotiate # 通过邻居获取地址
Dec 19 2022 18:28:38-08:00 Huawei %%01IFNET/4/LINK_STATE(l)[63]:The line protoco
l PPP IPCP on the interface Serial1/0/0 has entered the UP state.
# 出现该提示说明成功获取到地址
PPP协议的详细建立过程
1、LCP协商
-
主动发送Request报文给AR2进行链路层参数的协商。
-
request报文内容:
MRU
、认证协议
、MP-Group
、魔术字
- MRU最大传输单元:保障双向传输数据过程中不会因为MRU不同导致丢包现象。
- 认证协议:为下一个阶段做铺垫,表明是否需要认证。
- MP-Group:表明是否存在链路聚合。
- 魔术字:随机产生,起到防止环路现象,如果在接口收到自己所发送的魔术字,则直接丢弃。
-
对端收到发送的Request报文进行报文内的参数协商:
-
1、如果协商的参数内容都是正常的,则向对端回复
ACK报文
,协商成功。 -
2、如果协商的参数内容都识别,但存在不认可的参数,则回复
NAK报文
,NAK中携带自己认可的参数。- 收到NAK后的源将再次发送Request报文同时填充使用NAK报文内的参数。
-
3、如果协商的参数有不识别的内容,则回复
Reject报文
,要求源重新协商,源将去除目标不识别的内容进行剔除再发送Request。
-
-
LCP协商完成之后,则周期发送
Echo-Request
、Echo-Replay
维护链路状态
2、pap/chap认证协商
-
如果没有配置ppp authentication-mode,即没有设置认证,则直接跳过该阶段。
-
pap认证协商
-
被认证《主动向》认证方发送
Request报文
进行参数协商:(携带认证账号、明文密码) -
认证方收到
Request报文
,将报文内的认证账号+密码和自身数据库中的认证账号+密码进行对比:- ①对比结果相同,回复
ACK报文
,认证通过 - ②对比结果不同,回复
NAK报文
,认证失败
- ①对比结果相同,回复
-
-
chap认证协商
- 认证方《主动向》被认证方,发送的
Chalenge信息
(接口认证账号<非必要>、认证序号ID、认证方随机数 ) - 被认证方,查看接口是否存在chap账号密码:
- 存在,则回复的
response报文
:报文序号A、接口认证账号、HASH值- HASH值(认证序号A、认证方随机数、接口认证的密码,三者进行MD5加密得到一个HASH值)
- 报文序号从始至终都是认证方发送的报文序号。
- 不存在,则不回复信息,默认认证失败。
- 存在,则回复的
- 认证方,收到回复的
response报文
:- (1)对收到的认证账号,在账号数据库中检索出“密码”
- (2)基于报文序号,取出之前产生的“认证方随机数”
- (3)进行(报文序号A+随机数+账号对应密码)三者进行MD5加密得到一个HASH值
- 认证方两个HASH值对比,一样则说明认证成功
Success
,否则失败Failure
。
- 认证方《主动向》被认证方,发送的
3、NCP协商
- 最常见的NCP协议是IPCP,用来协商IP参数。
- 如果该阶段没有协商成功》
display ip interface brief
,查看接口状态时会看到Protocol字段处于down状态
- 认证方《主动向》被认证方,发送的
Request信息
,携带 本端接口IP地址。 - 被认证方收到
Request报文
:- 如果参数不存在问题(地址没有冲突、合法)则回复
ACK报文
- 如果参数存在问题(地址有冲突或不合规)则回复
NAK报文
- NCP协商并不看你地址是否相同网段,而是看你的地址信息是否有误。
- 如果参数不存在问题(地址没有冲突、合法)则回复
- 当认证方收到ACK报文,表示协商成功,双方将建立一条直连路由。这也是为什么ppp链路中不同段地址也能互通的原因。
4、建立完成之后,通过Echo Request、Echo Replay保活
5、建立chap认证方式的建立全过程抓包信息:
Chap认证建立会话抓包信息下载(Wireshark 3.6.6 )
PPP协议建立的状态机
- 1.通信双方开始建立PPP链路时,先进入到
Establish阶段
。 - 2.在
Establish阶段
,进行LCP协商:协商通信双方的MRU(Maximum Receive Unit,最大接收单元)
、认证方式
和魔术字(Magic Number)
等选项。- 协商成功后进入
Opened状态
,表示底层链路已建立。
- 协商成功后进入
- 3.如果配置了认证,将进入
Authenticate阶段
。否则直接进入Network阶段
。 - 4.在
Authenticate阶段
,会根据连接建立阶段协商的认证方式进行链路认证。- 认证方式有两种:PAP和CHAP。
- 如果认证成功,进入
Network阶段
,否则进入Terminate阶段
,拆除链路,LCP状态转为Down
。
- 5.在
Network阶段
,PPP链路进行NCP协商。- 通过NCP协商来选择和配置一个网络层协议并进行网络层参数协商。(选择一个IP地址进行网络层参数协商)
- 最常见的NCP协议是IPCP,用来协商IP参数。
- 6.在
Terminate阶段
,如果所有的资源都被释放,通信双方将回到Dead阶段
。
PPPOE
PPPOE简介
PPPOE(PPP Over Ethernet)以太网承载PPP协议
1、PPPOE实现以太网上提供点到点的连接,PPPOE客户端与PPPOE服务器之间建立PPP进行传输数据。
2、使用PPP数据封装的同时,为以太网上的主机提供接入服务,实现用户连接控制和计费,在企业网络与运营商网络中应用广泛。
PPP的帧结构
目前HCIA阶段,简要观看即可。
PPPOE的会话建立大致过程
参考华为HCIA-Datacom V1.0 培训教材.pdf (116.68MB)【章节:17 广域网】
下载地址:https://e.huawei.com/cn/talent/#/resources 搜索下载:hcia-datacom v1.0
1、PPPOE会话发现
提前给你打个预防针,其实挺像DHCP的报文交互的…
1-PPPOE PADI 查找开始
-
1、PPPoE客户端在本地以太网中广播一个
PPPOED PADI报文
,此PADI报文中包含了客户端需要的服务信息。[类似于DHCP的Discover报文]
》
PADI报文
的目的MAC地址是一个广播地址,Code字段为0x09,Session ID字段为0x0000。》所有PPPoE服务器端收到PADI报文之后,会将报文中所请求的服务与自己能够提供的服务进行比较。
2-PPPOE PADO 提供信息
-
2、如果服务器端可以提供客户端请求的服务,就会回复一个
PADO报文
。[类似于DHCP的Offer报文]
》PADO报文的目的地址是发送PADI报文的客户端MAC地址,Code字段为0x07,Session ID字段为0x0000。
3-PPPOE PADR 请求信息
-
3、客户端可能会收到多个
PADO报文[就像DHCP可以收到多个Offer报文]
,此时将选择最先收到的PADO报文对应的PPPoE服务器端,并发送一个PADR报文
给这个服务器端。》PADR报文的目的地址是选中的服务器端的MAC地址,Code字段为0x19,Session ID字段为0x0000。
4-PPPOE PADS 会话确认
-
4、PPPoE服务器端收到
PADR报文
后,会生成一个唯一的Session ID来标识和PPPoE客户端的会话,并发送PADS报文
。》PADS报文的目的地址是PPPoE客户端的MAC地址,Code字段为0x65,Session ID字段是PPPoE服务器端为本PPPoE会话产生的Session ID。
5-华为的PPPOE会话发现逻辑示意图
2、PPPOE会话阶段
PPPoE会话阶段会进行PPP协商,分为LCP协商、认证协商、NCP协商三个阶段。
华为的PPPOE会话阶段逻辑示意图
3、PPPOE会话终结
当PPPoE客户端希望关闭连接时,会向PPPoE服务器端发送一个PADT报文
,用于关闭连接。
同样,如果PPPoE服务器端希望关闭连接时,也会向PPPoE客户端发送一个PADT报文
。
在客户端上进行会话断开:
<Client>reset pppoe-client all
<Client>
Dec 19 2022 23:23:27-08:00 Client %%01PPP/4/PHYSICALDOWN(l)[0]:On the interface
Dialer1:0, PPP link was closed because the status of the physical layer was Down
.
<Client>
Dec 19 2022 23:23:27-08:00 Client %%01IFNET/4/LINK_STATE(l)[1]:The line protocol
PPP on the interface Dialer1:0 has entered the DOWN state.
<Client>
Dec 19 2022 23:23:27-08:00 Client %%01IFNET/4/LINK_STATE(l)[2]:The line protocol
PPP IPCP on the interface Dialer1:0 has entered the DOWN state.
华为的PPPOE会话终结逻辑示意图
PPPOE的配置
环境介绍:
-
PPPOE服务器拨号地址为192.168.1.254、地址池为192.168.1.0/24、拨号虚拟模板序号1、使用chap认证、账号密码均是pppoe。
-
PPPOE客户端使用拨号数字10与PPPOE服务器进行建立会话。
-
PPPOE建立会话过程抓包信息(Wireshark 3.6.6)
服务器:
# 1、创建DHCP地址池,给PPPOE拨号用户下发地址
[Server]dhcp enable
[Server]ip pool ppp
[Server-ip-pool-ppp]network 192.168.1.0 mask 24
[Server-ip-pool-ppp]gateway-list 192.168.1.254
[Server-ip-pool-ppp]q
# 2、配置PPPOE服务端使用chap认证,利用PPP的NCP协商给客户端下发地址
[Server]interface Virtual-Template 1
[Server-Virtual-Template1]ppp authen chap
[Server-Virtual-Template1]ip add 192.168.1.254 24
[Server-Virtual-Template1]remote add pool ppp
[Server-Virtual-Template1]q
# 3、配置chap认证的账号密码(命令有所缩写)
[Server]aaa
[Server-aaa]local pppoe pa cip pppoe
[Server-aaa]local pppoe ser ppp
[Server-aaa]q
# 4、接口应用PPPOE拨号模板
[Server]int g0/0/0
[Server-GigabitEthernet0/0/0]pppoe-server bind virtual-template 1
# 你可能会有的疑惑:
# 1、接口不需要配置地址的吗?
# 【拨号模板中已经设置有了,应用模板也相当于应用了地址】
# 2、客户端不需地址吗?
# 【客户端会通过发送PADI、PADO、PADR、PADS等报文协助PPPOE的建立】
# 上面的PPPOE会话建立过程有所提到
客户端:
[Client]interface Dialer 1
[Client-Dialer1]lin ppp
[Client-Dialer1]ppp chap user pppoe
[Client-Dialer1]ppp chap password ci pppoe
[Client-Dialer1]ip add ppp-negotiate
[Client-Dialer1]dialer user client1
[Client-Dialer1]dialer bundle 10
[Client-Dialer1]q
[Client]int g0/0/0
[Client-GigabitEthernet0/0/0]pppoe-client dial-bundle-number 10
# PPPOE自动拨号成功提示
[Client]
Dec 19 2022 22:14:50-08:00 Client %%01IFNET/4/LINK_STATE(l)[1]:The line protocol
PPP on the interface Dialer1:0 has entered the UP state.
[Client]
Dec 19 2022 22:14:50-08:00 Client %%01IFNET/4/LINK_STATE(l)[2]:The line protocol
PPP IPCP on the interface Dialer1:0 has entered the UP state.
[Client]