PPPOE是寬帶撥號上網協議,用戶通過電腦寬帶撥號功能可以快速訪問Internet網絡。
在IPv6沒有盛行的前提下,PPPOE獲取的地址一般都是私網地址,然後通過目的NAT出網,有的訪問公網得經過多次NAT,也即NAT444(這樣防火牆得支持NAT444功能)。
下面看看電腦撥號到拿到IP地址訪問公網的PPPOE全過程抓包:
一、發現階段
1、PADI(PPPoE Active Discovery Initiation):PPPOE發現初始報文
用戶主機以廣播形式去發送PADI數據包,請求建立鏈路。
2、PADO(PPPoE Active Discovery Offer):
訪問集線器(AC)此處為xx-BRAS-06-QINQ(主備都會發),以單播的方式發送一個PADO數據包對主機的請求做出應答。目的地址為主機的mac地址。AC-tag包含了集線器(AC)的名字。
3、PADR(PPPoE Active Discovery Request):
PADI數據包是廣播的,主機不止收到一個PADO回應報文。主機收到PADO報文後,會根據AC-Name或者PADO提供的服務選擇一個AC。之後主機向選中的AC單播一個PADR數據包,目的地址為AC的MAC地址。(主備AC看誰先做出響應)
4、PADS(PPPoE Active Discovery Session-confirmation):
AC在收到PADR報文時,就準備開始一個PPP的會話了。它為pppoe會話創建一個唯一的會話ID並用單播一個PADS數據包來給主機做出響應。
5、PADT(PPPoE Active Discovery Termination):
這個報文終結用戶計算機與BRAS的連接,可由用戶計算機或DSL-AC(也即BRAS)任意一方發送。
二、會話階段
PPP會話建立必須要兩端設備都發送LCP(Link Control Protocol)數據包來配置和測試數據通信鏈路。
- LCP協商出最大傳輸單元,是否進行認證和採取的認證方式等。
認證階段:會話雙方通過LCP協商好的認證方式進行認證,通過後才進行網絡層的協商。
兩種認證方式:CHAP、PAP,為了秘鑰的安全性,我們一般使用CHAP認證。(報文顯示“Auth OK!”表示認證通過。)
- 拿IP 階段–> IPCP(IP控制協議)協商
上圖為何有個NAK的非應答報文,設備不提供IPV6協議支持,所以重新申請。
三、訪問互聯網
以上就是用戶撥號到訪問互聯網的整個過程,如有疑問的可在下發留言。
對網絡技術感興趣的可加關注,我會不定期分享相關的技術內容。