關於PPPoE協議

2021-08-20 01:53:08 字數 1353 閱讀 3867

pppoe英語:point-to-point protocol over ethernet),乙太網上的點對點協議,是將點對點協議(ppp)封裝在乙太網(ethernet)框架中的一種網路隧道協議。本質上,它是乙個允許在乙太網

廣播域中的兩個乙太網介面間建立點對點隧道的協議。

pppoe是一種用於將多個客戶端連線到遠端場點的規範。pppoe協議在2023年發布在rfc2516中規範。

pppoe包含兩個階段:發現階段,會話階段。

pppoe報頭定義的結構體為pppoe_hdr,

位於檔案

include/uapi/linux/if_pppox.h,定義如下

struct

pppoe_hdr __packed;

報頭結構體如下:

pppoe初始化由方法pppoe_init完成,註冊兩個pppoe協議處理程式,乙個用於處理pppoe發現資料報,另乙個用於處理pppoe會話資料報。

static

int__init pppoe_init(

void

)static

struct

packet_type 

pppoes_ptype

__read_mostly = ;

static

struct

packet_type pppoed_ptype __read_mostly = ;

static

struct

pernet_operations pppoe_net_ops = ;

其中pppoe_disc_rcv是發現資料報處理程式,pppoe_rcv是會話資料報處理程式。

pppoe模組匯出了乙個procfs條目/proc/net/pppoe。

register_netdevice_notifier(&pppoe_notifier)

函式註冊了乙個通知鏈。

static

struct

notifier_block pppoe_notifier = ;

pppox套接字用結構pppox_sock表示,位於include/linux/if_pppox.h

,實現了乙個通用ppp封裝套接字簇。除了pppoe外,ppp第2層隧道協議l2tp也是用這種套接字。

struct

pppox_sock proto;

__be16                  num;

};其中pppoe_opt包含乙個名為pa的成員,是乙個pppoe_addr結構例項,表示會話id,遠端對等體的mac位址以及使用的網路裝置名稱。

PPPOE協議分析

pppoe 建立在乙太網上的ppp協議。在乙個共享的乙太網上的多台主機,可以通過乙個或多個簡單的橋接 入裝置,與遠端接入集中器進行多個ppp會話。使用這種模型,每個主機使用它自己的ppp協議棧,並且 提供給使用者乙個熟悉的使用者介面。接入控制 計費和服務型別能夠基於每個使用者,而不是每個站點來處 理...

PPPOE協議介紹

pppoe,全稱point to point protocol over ethernet,它工作在osi的資料鏈路層,pppoe協議提供了在廣播式的網路 如乙太網 中多台主機連線到遠端的訪問集中器 我們對目前能完成上述功能的裝置為寬頻接入伺服器 上的一種標準。pppoe協議共包括兩個階段,即ppp...

PPPoE協議知識以及配置

pppoe point to point protocol over ethernet 乙太網上的點對點協議,是將點對點協議 ppp 封裝在乙太網 ethernet 框架中的一種網路隧道協議。由於協議中整合了ppp協議,所以實現了傳統乙太網不能提供的身份驗證 加密以及壓縮等功能,也可用於纜線數據機 ...