感谢您的关注。让攻城狮们一起不断成长!
宗旨:本公众号唯一的宗旨就是分享价值,分享知识,分享经验,共同参与讨论,共同成长!三人行,必有我师焉!致力于帮助网络工程师的疑难解答,让这里成为网络工程师智慧互相碰撞的聚集地。
最近收到粉丝的私信,在问pppoe:
白天好久没在宅家写文章了,只能现在晚上,动手做个实验写一下,对各位对我自己多少都说有好处的,至少都复习一下以往的知识点。
实验拓扑图
本期环境很简单,就两台路由器而已。
配置
服务器端配置:
1、配置了个地址池、和认证(用户名along88和密码along1234)
2、虚拟接口模板VT,创建后,须与物理口进行绑定。
3、将虚拟接口模板VT与物理口绑定。
至此,服务器端就配置完了。
用路由器模块客户端配置:
1、配置一个拨号口,并配置好用户名和密码,须与服务端对应。这样认证才能通过。
2、将拨号口与物理口绑定:
3、配置完后,就开始进行拨号了,此时同时抓包,观察拨号过程:
状态查看
可在服务端查看拨号情况:
由此可见,拨号成功了,里面的RemMAC是客户端接口的mac地址:
原理回顾
记住,PPPoE分为三个阶段,discovery阶段、session阶段、terminate阶段。
刚刚我已抓了个pppoe账号密码是什么,现在我们来看看,他们之间发的数据包,是不是符合这个三个阶段。
首先,先看发现阶段:
发现阶段,没错,发了四个数据包进行协商,
Discovery阶段由四个过程组成。
PPPoE Client广播发送一个PADI(PPPoE Active Discovery Initial)报文,在此报文中包含PPPoE Client想要得到的服务类型信息。
所有的PPPoE Server收到PADI报文之后,将其中请求的服务与自己能够提供的服务进行比较pppoe账号密码是什么,如果可以提供,则单播回复一个PADO(PPPoE Active Discovery Offer)报文。
根据网络的拓扑结构,PPPoE Client可能收到多个PPPoE Server发送的PADO报文,PPPoE Client选择最先收到的PADO报文对应的PPPoE Server做为自己的PPPoE Server,并单播发送一个PADR(PPPoE Active Discovery Request)报文。
PPPoE Server产生一个唯一的会话ID(Session ID),标识和PPPoE Client的这个会话,通过发送一个PADS(PPPoE Active Discovery Session-confirmation)报文把会话ID发送给PPPoE Client,会话建立成功后便进入PPPoE Session阶段。
完成之后通信双方都会知道PPPoE的Session_ID以及对方的以太网地址,它们共同确定了唯一的PPPoE Session。
在这个阶段,阿龙要提醒一个重点,就是这个阶段报文的以太网类型有两个值:
当值为0x8863时表示Discovery阶段或Terminate阶段。
当值为0x8864时表示Session阶段。
不信?那我抓包给你看。
session阶段,具体过程,跟PPP一模一样。
Terminate阶段
PPP通信双方可以使用PPP协议自身来结束PPPoE会话,当无法使用PPP协议结束会话时可以使用PADT(PPPoE Active Discovery Terminate)报文。
进入PPPoE Session阶段后,PPPoE Client和PPPoE Server都可以通过发送PADT报文的方式来结束PPPoE连接。PADT数据包可以在会话建立以后的任意时刻单播发送。在发送或接收到PADT后,就不允许再使用该会话发送PPP流量了。
在看看路由:
客户端会收到一条32位的路由,这里由于是路由器模拟客户端,如果是window系统,在pppoe服务器端,pool配置了下发网关,pc是可以收到网关,有了网关和ip地址就能上网了,当然了也要配下发DNS。路由器这里只能看到这个网关地址,但不能生产默认路由,如果需要,只能手工写一条静态路由了。
PPPoe的基本原理,大概就这些,这基本原理掌握的,剩下的要去深入研究就只能靠自己了。so,IT男们继续宅起来吧!一起讨论,一起成长!
往期精彩文章
1、本站资源针对会员完全免费,站点中所有资源大部分为投稿作者付费教程,切勿轻易添加教程上除本站信息外的任何联系方式,谨防被割,如有疑问请随时联系客服。
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。