网络基础——PPP和PPPOE

前言:在二层中,还有一个息息相关的协议,那就是PPP,而用以太网封装的就是PPPOE,是从事运营商网络最为常见的业务之一,也是必不可少的协议之一

背景

PPP是服务于广域网的技术,但是随着以太网的大范围使用,于是PPPOE诞生了,在PPP协议的基础上封装着以太网

相关名词

PPP:点到点协议,是广域网二层协议,是用于全双工的链路上进行点到点数据传输

PPPOE:以太网承载PPP协议,以太网中的多台主句连接到远端的宽带接入服务器

PAP:密码验证协议,是配置验证的一种方式

CHAP:挑战握手认证协议,配置协议认证的一种方式

LCP:链路控制协议,协商链路层参数

NCP:网络控制协议,,用于网络层参数的协商,最常见的是IPCP

链路层协商:通过LCP来进行链路层的协商

网络层协商:通NCP来进行网络层的协商,例如使用什么协议

认证协商:这个是可以选择的,一般有两种方式,分别是CHAP和PAP

原理

状态机
  • dead:最开始的状态,没有什么,如果在terminate,全部的资源释放,那么就会回到这个状态
  • establish:开始进行LCP协商,主要协商的参数有MTU、魔术字等
  • opened:LCP协商成功,那么就进入到这个状态,表示底层链路建立成功
  • authentication:如果配置了认证,那么就进入到这个状态,并且开始进行认证
  • network:认证成功,那么就进入到该状态,
  • terminate:认证失败,那么就进入到该状态,表示链路拆除
报文格式

LCP报文格式

封装在protocol字段

  • configure-request:配置请求报文,当开始进行协商时会发送该报文,code是0×01
  • configure-ack:配置确认报文,如果收到配置请求报文,并且协商成功,那么就会发送该报文,code是0×02
  • configure-nak:配置参数需协商,如果当两端携带的参数不一样,那么就要发送该报文,从而进行参数的协商,code是0×03
  • configure-reject:配置参数不识别,当收到携带不识别的参数,那么就会发送该报文,code是0×04
认证模式

PAP:密码认证,就是两次握手,同时是明文封装,如果使用抓包工具,可以把密码和详细的信息抓出来,使用authentication-request和authentication-ack、authentication-nak进行交互,一发一收

CHAP:挑战握手认证,三次握手,密文封装,使用challenge报文和response报文来进行交互,challenge报文里面包含随机数和ID,进行MD5进行加密

地址协商分为静态地址和动态地址,区别是静态需要在两端进行IP地址的配置,而动态就是只需要在一端进行地址的配置,另一端自动获取IP地址

PPPOE报文(封装在PPPOE头部)

  1. PADI:PPPOE激活发现起始报文,发送方式是广播
  2. PADO:PPPOE激活发现服务报文,发送方式是广播
  3. PADR:PPPOE激活发现请求报文,发送方式是单播
  4. PADS:PPPOE激活发现会话确认报文,发送方式是单播
  5. PADT:PPPOE激活发现终止报文,发送方式是单播
PPPOE阶段

PPPOE发现

  1. PPPoE Client广播发送一个PADI(里面包含PPPOE client想要得到的服务信息)
  2. PPPOE sever收到后,会将自己能够提供的服务与需要的服务进行比较,如果可以提供,则会单播回复一个PADO报文
  3. 可以会收到多个PPPOE sever 发送来的PADO报文,会选择最先收到的那个作为自己的服务器,并且单播发送PADR报文
  4. 服务器会发送PADS,里面包含唯一的会话ID
  5. 这个阶段结束后,它们共同确定了唯一的PPPoE Session

PPPOE会话

就要就是进行LCP、NCP协商,认证协商,其中的IPCP主要就是负责协商IP地址和DNS服务器地址

PPPOE终结

这里主要就是使用PADT报文进行会话的终结,结束PPPOE的会话

实验

PPP实验拓扑(左边为服务器,右边位客户端)

PPPOE实验拓扑(二者的区别就是使用的线缆不同)

代码

PPP实验命令

服务器

aaa

local-user kekekuli password cipher %$%$.VKqVLXrF-'#m\/%Qob)o9d8%$%$//创建用户并且配置密码
 local-user kekekuli service-type ppp//配置服务协议是PPP

interface Serial  4/0/0//进入串口
link-protocol ppp//配置链路封装的协议
 ppp authentication-mode chap //配置认证模式为chap,如果是PAP,那么就配置为PAP
 ip address 20.1.1.1 255.255.255.0//配置IP地址

客户端

interface Serial4/0/0//进入串口
 link-protocol ppp//配置链路封装的协议
 ppp authentication-mode chap //配置认证的模式,需要和服务器配置的一样
 ppp chap user kekekuli//配置用户,需要和服务器的AAA用户一样,PAP不需要
 ppp chap password cipher %$%$3r-rCP\de4!fl/DaSjh;,">l%$%$//配置密码,需要一致,PAP不需要

ppp pap local-user kekekuli password cipher %$%$:,"<<|s+]0:~y"7Kmfl<,.>&%$%$//PAP需要配置这条命令,用来代替上面的两条命令
 ip address 20.1.1.2 255.255.255.0 //配置IP地址


PPPOE实验

客户端

interface Dialer1//配置拨号组
 link-protocol ppp//配置链路协议
 ppp chap user kekekuli//配置用户,需要和对端的相同
 ppp chap password cipher %$%$JX]AOU+640n!HyN"dz&A,.Qi%$%$//配置密码
 ip address ppp-negotiate//配置地址自协商
 dialer user kekekuli//配置拨号用户,需要和对端对应
 dialer bundle 1//配置绑定的接口
 dialer-group 1//创建对端拨号组
interface GigabitEthernet0/0/0//进入接口
 pppoe-client dial-bundle-number 1 //配置PPPOE会话对应的dial bundle
dialer-rule//配置拨号规则
 dialer-rule 1 ip permit//配置规则编号动作
ip route-static 0.0.0.0 0.0.0.0 Dialer1//配置静态路由
服务器

ip pool 1//创建地址池
 gateway-list 192.168.1.254 //创建网关
 network 192.168.1.0 mask 255.255.255.0//创建网段

aaa//进入AAA视图

local-user kekekuli password cipher %$%$3~0x&V-V%D|;VD&a[/%<rGmN%$%$//创建用户,需要对应
 local-user kekekuli service-type ppp//创建服务的协议

interface Virtual-Template1//创建并且进入虚拟模板
 ppp authentication-mode chap //配置认证模式
 remote address pool 1//配置远端地址池
 ip address 192.168.1.254 255.255.255.0 //配置IP地址

interface GigabitEthernet0/0/0//进入对应的接口视图
 pppoe-server bind Virtual-Template 1//绑定虚拟模板
 

  • 29
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值