PPPOE是宽带拨号上网协议,用户通过电脑宽带拨号功能可以快速访问Internet网络。

在IPv6没有盛行的前提下,PPPOE获取的地址一般都是私网地址,然后通过目的NAT出网,有的访问公网得经过多次NAT,也即NAT444(这样防火墙得支持NAT444功能)。

下面看看电脑拨号到拿到IP地址访问公网的PPPOE全过程抓包:

一、发现阶段

1、PADI(PPPoE Active Discovery Initiation):PPPOE发现初始报文

用户主机以广播形式去发送PADI数据包,请求建立链路。

wireshark抓包端口号是哪个(PPPOE拨号全过程Wireshark抓包报文解读)(1)

主机主动以广播形式发送PADI报文

2、PADO(PPPoE Active Discovery Offer):

访问集线器(AC)此处为xx-BRAS-06-QINQ(主备都会发),以单播的方式发送一个PADO数据包对主机的请求做出应答。目的地址为主机的mac地址。AC-tag包含了集线器(AC)的名字。

wireshark抓包端口号是哪个(PPPOE拨号全过程Wireshark抓包报文解读)(2)

BRAS回应PADO报文,带上自己的AC-name

3、PADR(PPPoE Active Discovery Request):

PADI数据包是广播的,主机不止收到一个PADO回应报文。主机收到PADO报文后,会根据AC-Name或者PADO提供的服务选择一个AC。之后主机向选中的AC单播一个PADR数据包,目的地址为AC的MAC地址。(主备AC看谁先做出响应)

wireshark抓包端口号是哪个(PPPOE拨号全过程Wireshark抓包报文解读)(3)

主机在收到PADO后,会向最先响应PADI报文的BRAS回个PADR请求报文。

wireshark抓包端口号是哪个(PPPOE拨号全过程Wireshark抓包报文解读)(4)

哪台BRAS响应快,主机就选这台。(竞争原则,但是一般响应时间都差不多的,不然就存在单边跑的节奏了。)

4、PADS(PPPoE Active Discovery Session-confirmation):

AC在收到PADR报文时,就准备开始一个PPP的会话了。它为pppoe会话创建一个唯一的会话ID并用单播一个PADS数据包来给主机做出响应。

wireshark抓包端口号是哪个(PPPOE拨号全过程Wireshark抓包报文解读)(5)

BRAS回应一个PADS,建立了唯一的session。

5、PADT(PPPoE Active Discovery Termination):  这个报文终结用户计算机与BRAS的连接,可由用户计算机或DSL-AC(也即BRAS)任意一方发送。

二、会话阶段

PPP会话建立必须要两端设备都发送LCP(Link Control Protocol)数据包来配置和测试数据通信链路。

wireshark抓包端口号是哪个(PPPOE拨号全过程Wireshark抓包报文解读)(6)

协商LCP的各项参数

认证阶段:会话双方通过LCP协商好的认证方式进行认证,通过后才进行网络层的协商。

两种认证方式:CHAP、PAP,为了秘钥的安全性,我们一般使用CHAP认证。(报文显示“Auth OK!”表示认证通过。)

wireshark抓包端口号是哪个(PPPOE拨号全过程Wireshark抓包报文解读)(7)

LCP协商成功并且认证通过。

wireshark抓包端口号是哪个(PPPOE拨号全过程Wireshark抓包报文解读)(8)

IPCC配置请求去获取IP地址。

上图为何有个NAK的非应答报文,设备不提供IPV6协议支持,所以重新申请。

三、访问互联网

wireshark抓包端口号是哪个(PPPOE拨号全过程Wireshark抓包报文解读)(9)

访问sina.com的报文,建立TCP链路,HTTP协议

以上就是用户拨号到访问互联网的整个过程,如有疑问的可在下发留言。

对网络技术感兴趣的可加关注,我会不定期分享相关的技术内容。

,