Point-to-Point Protocol Over Ethernet協議,以太網上的點對點協議,是將點對點協議(PPP)封裝在以太網(Ethernet)框架中的一種網絡隧道協議。服務器
可使用ros 軟路由在虛擬機中搭建PPPoE服務器網絡
PPPOE發現階段和會話階段。
打開wireshark,選擇要目標網卡->設置路由器的上網方式PPPoE,設置帳號密碼。接下來抓包分析協議:session
該階段目標:客戶端和服務器確認彼此的Mac地址,創建PPPoE的Session_ID框架
發現階段主要四個過程:PADI,PADO,PADR,PADS:3d
wireshark抓包查看發現階段:調試
發送廣播PADI報文,請求創建連接。blog
若是服務器端配置了service name,服務器端配置的service name和PADI報文中的service name相同則進行下一步交互,不然交互終止。ip
服務器對請求給出響應。路由
選擇一個AC,發送PADR報文,請求與該服務器創建連接。虛擬機
目標服務器建立Seesion Id,單播給該客戶端做爲響應。發現階段完成。
客戶端和服務器互相發送LCP Request以確認發送的最大傳輸單元,認證方式等,協商的內容寫在option字段中,會話階段的SESSION ID必須是發現階段分配的ID。
協商階段的報文分爲如下幾種:
服務器->客戶端: Configuration Request 認證方式
客戶端->服務器:Configuration Request 最大傳輸單元
服務器->客戶端:Configuration Ack 最大傳輸單元
服務器->客戶端: Configuration Request 認證方式
客戶端->服務器:Configuration Ack 認證方式
認證方式有4種:
上面協商的爲 MS-CHAP-2
響應報文有如下幾種:
以上只演示了ACK報文
chap認證
wireshark查看
challenge:
response:
success:
包括動態分配IP,DNS功能,也會進行屢次協商,若是不一樣意就會出現NAK或者Reject報文。
過程:
客戶端->服務器ACK確認ip
最後服務器->客戶端ACK確認了分配的IP 和 DNS,網關等:
客戶端發送Echo Request進行PPPoE心跳保活,若3次未獲得服務器的響應,則客戶端主動釋放地址。發LCP Echo Request 的時候,Magic Number字段要和以前的Configure Request使用的Configure Request一致。
客戶端->服務器:Echo Request
服務端->客戶端:Echo Reply
發送PADT(PPPOE Active Discovery Terminate)請求和響應。