PPPOE撥號全過程Wireshark抓包報文解讀

PPPOE是寬帶撥號上網協議,用戶通過電腦寬帶撥號功能可以快速訪問Internet網絡。

在IPv6沒有盛行的前提下,PPPOE獲取的地址一般都是私網地址,然後通過目的NAT出網,有的訪問公網得經過多次NAT,也即NAT444(這樣防火牆得支持NAT444功能)。

下面看看電腦撥號到拿到IP地址訪問公網的PPPOE全過程抓包:

一、發現階段


1、PADI(PPPoE Active Discovery Initiation):PPPOE發現初始報文

用戶主機以廣播形式去發送PADI數據包,請求建立鏈路。

PPPOE撥號全過程Wireshark抓包報文解讀

主機主動以廣播形式發送PADI報文

2、PADO(PPPoE Active Discovery Offer):

訪問集線器(AC)此處為xx-BRAS-06-QINQ(主備都會發),以單播的方式發送一個PADO數據包對主機的請求做出應答。目的地址為主機的mac地址。AC-tag包含了集線器(AC)的名字。

PPPOE撥號全過程Wireshark抓包報文解讀

BRAS回應PADO報文,帶上自己的AC-name

3、PADR(PPPoE Active Discovery Request):

PADI數據包是廣播的,主機不止收到一個PADO回應報文。主機收到PADO報文後,會根據AC-Name或者PADO提供的服務選擇一個AC。之後主機向選中的AC單播一個PADR數據包,目的地址為AC的MAC地址。(主備AC看誰先做出響應)

PPPOE撥號全過程Wireshark抓包報文解讀

主機在收到PADO後,會向最先響應PADI報文的BRAS回個PADR請求報文。

PPPOE撥號全過程Wireshark抓包報文解讀

哪臺BRAS響應快,主機就選這臺。(競爭原則,但是一般響應時間都差不多的,不然就存在單邊跑的節奏了。)

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

AC在收到PADR報文時,就準備開始一個PPP的會話了。它為pppoe會話創建一個唯一的會話ID並用單播一個PADS數據包來給主機做出響應。

PPPOE撥號全過程Wireshark抓包報文解讀

BRAS回應一個PADS,建立了唯一的session。

5、PADT(PPPoE Active Discovery Termination):
  這個報文終結用戶計算機與BRAS的連接,可由用戶計算機或DSL-AC(也即BRAS)任意一方發送。

二、會話階段

PPP會話建立必須要兩端設備都發送LCP(Link Control Protocol)數據包來配置和測試數據通信鏈路。

PPPOE撥號全過程Wireshark抓包報文解讀

協商LCP的各項參數

  • LCP協商出最大傳輸單元,是否進行認證和採取的認證方式等。

認證階段:會話雙方通過LCP協商好的認證方式進行認證,通過後才進行網絡層的協商。

兩種認證方式:CHAP、PAP,為了秘鑰的安全性,我們一般使用CHAP認證。(報文顯示“Auth OK!”表示認證通過。)

PPPOE撥號全過程Wireshark抓包報文解讀

LCP協商成功並且認證通過。

  • 拿IP 階段–> IPCP(IP控制協議)協商
PPPOE撥號全過程Wireshark抓包報文解讀

IPCC配置請求去獲取IP地址。

上圖為何有個NAK的非應答報文,設備不提供IPV6協議支持,所以重新申請。

三、訪問互聯網

PPPOE撥號全過程Wireshark抓包報文解讀

訪問sina.com的報文,建立TCP鏈路,HTTP協議

以上就是用戶撥號到訪問互聯網的整個過程,如有疑問的可在下發留言。

對網絡技術感興趣的可加關注,我會不定期分享相關的技術內容。


分享到:


相關文章: