1. 寬頻pppoe協議
1. 前言
PPPOE(PPP over Ethernet, RFC2516,值得注意的是此RFC不是Standard而是Information類型的)定義了如何在乙太網上傳輸PPP數據包的方法,目前流行的寬頻類型
ADSL就是通過PPPoE實現的。
2. 通信過程概述
建立PPPOE通道(ADSL撥號卜前)分兩個階段:發現階段和PPP會話階段。
在發現階段,乙太網李宴上的客戶機要找到一個訪問集中器(AC,Access Concentrator),就是ADSL MODEM,一般家用時一般就只有一個AC;但如果是一個乙太網內可能會有多條ADSL,就會有多個AC,這時客戶機就從中選擇一個。發現階段完成後,客戶機和AC都得到要在乙太網上建立PPP通道的相關信息。
發現階段是無狀態的,也就是兩邊都不用保存以前的狀態信息;只有PPP會話開始後,雙方就要建立一個虛擬的PPP通信介面,具體在linux下會有ppp0網卡,在windows下網路連接中增加ADSL的介面。
3. 協議頭格式
3.1 協議值
PPPOE數據是直接哪弊銀在以太頭數據之上的,其等級和ARP、IP等是相同的,在以太頭的類型欄位中,用0x8863 表示是PPPOE發現階段數據,用0x8864表示PPP會話階段數據,如下所示。(類比:0x0800表示IP數據,0x0806表示ARP數據)
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DESTINATION_ADDR |
| (6 octets) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SOURCE_ADDR |
| (6 octets) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ETHER_TYPE (2 octets) |
| 0x8863 or 0x8864 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| PPPOE Header |
| (6 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ ~
~ payload ~
~ ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CHECKSUM |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3.2 PPPOE協議頭
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| VER | TYPE | CODE | SESSION_ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LENGTH | payload ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
PPPOE協議頭有6個位元組,正好和14位元組的以太頭實現了4位元組對齊,包括以下欄位:
VER:版本號,4位,必須為0x01TYPE:類型,4位,必須是0x01CODE:8位,在發現階段和PPP會話階段有不同的定義,表示PPPOE數據類型SESSION_ID:16位,用來定義一個PPP會話,在發現過程中定義。LENGTH:16位,表示負載長度,不包括以太頭和PPPOE頭。
4. 發現階段
PPPOE發現階段數據的以太類型是0x8863。
4.1 TAG
在發現階段用於交換客戶機和AC的信息,建立PPPOE通道,負載信息都是PPPOE信息,並沒有上層協議數據。
發現階段的負載稱為TAG,一個TAG信息格式如下,負載信息中可能會包含多個TAG:
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TAG_TYPE | TAG_LENGTH |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TAG_VALUE ... ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TAG_TYPE:16位,TAG類型TAG_LENGTH:16位,表示TAG_VALUE部分的長度TAG_VALUE:TAG值
TAG_TYPE可取以下值(注意第一位元組為2表示是錯誤信息):
0x0000 End-Of-List
0x0101 Service-Name
0x0102 AC-Name
0x0103 Host-Uniq
0x0104 AC-Cookie
0x0105 Vendor-Specific
0x0110 Relay-Session-Id
0x0201 Service-Name-Error
0x0202 AC-System-Error
0x0203 Generic-Error
4.2 PPPOE主動發現初始包
PPPOE主動發現初始包(PPPoE Active Discovery Initiation, PADI)由客戶機發出,以太頭中的目的地址是以太廣播地址FF:FF:FF:FF:FF:FF,PPPOE頭中的CODE為0x09,SESSION_ID值必須為0,負載部分必須只包含一個Service-Name類型的TAG表示請求的服務類型,另外可以包含其他TAG,整個PPPOE包不能超過1484位元組,這樣省出的16位元組可以由ADSL中繼設備添加中繼TAG。
一個PADI包的例子為:
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0xffffffff |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0xffff | Host_mac_addr |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Host_mac_addr (cont) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ETHER_TYPE = 0x8863 | v = 1 | t = 1 | CODE = 0x09 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SESSION_ID = 0x0000 | LENGTH = 0x0004 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TAG_TYPE = 0x0101 | TAG_LENGTH = 0x0000 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
4.3 PPPOE主動發現提議包
PPPOE主動發現提議包(PPPoE Active Discovery Offer, PADO)由AC發出,用來回應客戶機的PADI包,以太頭中的目的地址是客戶機的MAC地址,PPPOE頭中的CODE為0x07,SESSION_ID值必須為0,負載部分必須包含一個AC-Name類型的TAG,用來指示本AC的名稱,一個在PADI包中指定的Service-Name的TAG,另外可以包含其他Service-Name的TAG。如果AC不對該客戶機提供服務,AC就不回應PADO包。 一個PADO包的例子為:
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Host_mac_addr |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Host_mac_addr (cont) | Access_Concentrator_mac_addr |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Access_Concentrator_mac_addr (cont) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ETHER_TYPE = 0x8863 | v = 1 | t = 1 | CODE = 0x07 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SESSION_ID = 0x0000 | LENGTH = 0x0020 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TAG_TYPE = 0x0101 | TAG_LENGTH = 0x0000 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TAG_TYPE = 0x0102 | TAG_LENGTH = 0x0018 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0x47 | 0x6f | 0x20 | 0x52 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0x65 | 0x64 | 0x42 | 0x61 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0x63 | 0x6b | 0x20 | 0x2d |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0x20 | 0x65 | 0x73 | 0x68 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0x73 | 0x68 | 0x65 | 0x73 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0x68 | 0x6f | 0x6f | 0x74 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
4.4 PPPOE主動發現請求包
PPPOE主動發現請求包(PPPoE Active Discovery Request, PADR)由客戶機發出,因為可能會有多個AC對客戶機發出的PADI包回應了PADO包,客戶機從回應的PADO包中選擇一個AC發送PADR包,以太頭中的目的地址是該AC的MAC地址,PPPOE頭中的CODE為0x19,SESSION_ID值必須為0,負載部分必須只包含一個Service-Name類型的TAG表示請求的服務類型,另外可以包含其他TAG。
4.5 PPPOE主動發現會話確認包
PPPOE主動發現會話確認包(PPPoE Active Discovery Session-confirmation, PADS)由AC發出,收到客戶機的PADR包後,AC將產生一個SEESSION_ID值用來標志本次PPP會話,以PADR包方式發送給客戶機。以太頭中的目的地址是客戶機的MAC地址,PPPOE頭中的CODE為0x65,SESSION_ID值必須為所生成的那個SESSION_ID,負載部分必須只包含一個Service-Name類型的TAG,表示該服務類型被AC接受,另外可以包含其他TAG。如果AC不接受PADR中的Server-Name,PADS中則包含一個Service-Name-Error類型的TAG,這時SESSION_ID設置為0。
4.6 PPPOE主動發現停止包
PPPOE主動發現停止包(PPPoE Active Discovery Terminate, PADT)表示PPPOE會話過程的結束,AC和客戶機都可以主動發出。以太頭中的目的地址是對方的MAC地址,PPPOE頭中的CODE為0xa7,SESSION_ID值必須為PPPOE會話過程的SESSION_ID,不需要TAG。
5. PPP會話階段
在PPP會話階段,PPP包被封裝在PPPOE以太幀中,以太包目的地址都是單一的,以太協議為0x8864,PPPOE頭的CODE必須為0,SESSION_ID必須一直為發現階段協商出的SEESION_ID值,PPPOE的負載是整個PPP包,PPP包前是兩位元組的PPP協議ID值。
一個PPPOE會話過程包的例子為:
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Access_Concentrator_mac_addr |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Access_Concentrator_mac_addr(c)| Host_mac_addr |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Host_mac_addr (cont) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ETHER_TYPE = 0x8864 | v = 1 | t = 1 | CODE = 0x00 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SESSION_ID = 0x1234 | LENGTH = 0x???? |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PPP PROTOCOL = 0xc021 | PPP payload ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
注意:由於PPPOE頭是6位元組,PPP協議ID號兩個位元組,一共要佔用8個位元組,而乙太網的MTU值為1500,所以上層PPP負載數據不能超過1492位元組,所以PPP協商時協商的最大接收單元值不能超過1492位元組,也就是相當於在PPPOE環境下的MTU是1492位元組。
6. ADSL撥號過程簡述
客戶機啟動撥號程序,發送PADI包,ADSL MODEM回應PADO包,客戶機再發送PADR包,ADSL MODEM回應PADS包後建立PPPOE通道,隨後客戶機進行普通的PPP協議撥號過程,不過PPP數據包都是包裝進以太幀中的,撥號成功後客戶機和伺服器之間建立了PPP通道,ADSL MODEM起到將以太幀轉換為PPP包的作用。ADSL雖然是用電話線,但所用頻率不是通話用的頻率,所以ADSL撥號不影響打電話。通信結束後,會發送PADT斷開PPPOE通道。
7. 結論
由於ADSL的大面積使用,PPPOE也隨之應用,了解其通信協議和數據格式對於底層驅動的開發、協議分析、訪問控制等是必要的,現在不論在windows還是linux下都可以很好地支持PPPOE。
2. PPPOE+是什麼
PPPOE+是乙太網上的點對點協議。
PPPOE+是將點對點協議(搏悉坦PPP)封裝在乙太網(Ethernet)框架中的一種網路隧道協議。由於協議中集陸凱成PPP協議,所以實現出傳統乙太網不能提供的身份驗證、加密以及壓縮等功能。
也可用於纜線數據機(cable modem)和數字用戶線路(DSL)等以乙太網協議向用戶提供接入服務的協議體系。
(2)數據包是如何傳到pppoe擴展閱讀:
PPPOE+協議是為在同等單元之間傳輸數據包這樣的簡單鏈路設計的鏈路層協議。這種鏈路提供全雙工操作,並按照順序傳遞數據包。
最終設計目的主要是用來通過撥號或專線方式建立點對點連接發送數據,使其成為各種主機、網橋和路由器之間簡單連接基桐的一種共通的解決方案。
參考資料來源:網路——PPPOE
3. 數據包是如何在網路中傳輸的
我們電腦上的數據,是如何「走」到遠端的另一台電腦的呢?這是個最基礎的問題,可能很多人回答不上來,盡管我們每天都在使用網路。這里我們以一個最簡單的「ping」命令,來解釋一個數據包「旅程」。
假設:我的電腦A,向遠在外地的朋友電腦B傳輸數據,最簡單的就是「ping」一下,看看這個傢伙的那一端網路通不通。A與B之間只有一台路由器。(路由器可能放在學校,社區或者電信機房,無所謂,基本原理是一樣的)
具體過程如下------
1.「ping」命令所產生的數據包,我們歸類為ICMP協議。說白了就是向目的地發送一個數據包,然後等待回應,如果回應正常則目的地的網路就是通的。當我們輸入了「ping」命令之後,我們的機器(電腦A)就生成了一個包含ICMP協議域的數據包,姑且稱之為「小德」吧~~~~
2.「小德」已經將ICMP協議打包到數據段里了,可是還不能發送,因為一個數據要想向外面傳送,還得經過「有關部門」的批准------IP協議。IP要將你的「寫信人地址」和「收信人地址」寫到數據段上面,即:將數據的源IP地址和目的IP地址分別打包在「小德」的頭部和尾部,這樣一來,大家才知道你的數據是要送到哪裡。
3.准備工作還沒有完。接下來還有部門要審核------ARP。ARP屬於數據鏈路層協議,主要負責把IP地址對應到硬體地址。直接說吧,都怪交換機太「傻」,不能根據IP地址直接找到相應的計算機,只能根據硬體地址來找。於是,交換機就經常保留一張IP地址與硬體地址的對應表以便其查找目的地。而ARP就是用來生成這張表的。比如:當「小德」被送到ARP手裡之後,ARP就要在表裡面查找,看看「小德」的IP地址與交換機的哪個埠對應,然後轉發過去。如果沒找到,則發一個廣播給所有其他的交換機埠,問這是誰的IP地址,如果有人回答,就轉發給它。
4.經過一番折騰,「小德」終於要走出這個倒霉的區域網了。可在此之前,它們還沒忘給「小德」屁股後面蓋個「戳」,說是什麼CRC校驗值,怕「小德」在旅行途中缺胳膊少腿,還得麻煩它們重新發送。。。。。我靠~~~~註:很多人弄不清FCS和CRC。所謂的CRC是一種校驗方法,用來確保數據在傳輸過程中不會丟包,損壞等等,FCS是數據包(准確的說是frame)里的一個區域,用來存放CRC的計算結果的。到了目的地之後,目的計算機要檢查FCS里的CRC值,如果與原來的相同,則說明數據在途中沒有損壞。
5.在走出去之前,那些傢伙最後折磨了一次「小德」------把小德身上眾多的0和1,弄成了什麼「高電壓」「低電壓」,在雙絞線上傳送了出去。暈~~出趟門就這么麻煩嗎?
6.坐著雙絞線旅遊,爽!可當看到很多人坐著同軸電纜,還有坐光纖的時候,小德又感覺不是那麼爽了。就在這時,來到了旅途的中轉站------路由器。這地方可是高級場所,人家直接查看IP地址!剩下的一概不管,交給下面的人去做。夠牛吧?路由器的內部也有一張表,叫做路由表,裡面標識著哪一個網路的IP對應著路由器的哪一個埠。這個表也不是天生就有的,而是靠路由器之間互相「學習」之後生成的,當然也可以由管理員手工設定。這個「學習」的過程是依靠路由協議來完成的,比如RIP,EIGRP,OSPF等等。
7.當路由器查看了「小德」的IP地址以後,根據路由表知道了小德要去的網路,接著就把小德轉到了相應的埠了。至此,路由器的主要工作完成,下面又是打包,封裝成frame,轉換成電壓信號等一系列「折騰」的活,就由數據鏈路層和物理層的模塊去干吧。
8.小德從路由器的出口出來,便來到了目的地----電腦B----所屬的網路的默認網關。默認網關可以是路由器的一個埠,也可以是區域網里的各種伺服器。不管怎樣,下面的過程還是一樣的:到交換機里的ARP表查詢「小德」的IP地址,看看屬於哪個區域網段或埠,然後就轉發到B了。
9.進了B的網卡之後,還要層層「剝皮」,基本上和從A出來的程序是一樣的------電腦B先校驗一下CRC值,看看數據是否完整;然後檢查一下frame的封裝,看到是IP協議之後,就把「小德」交給IP「部門」了;IP協議一看目的地址,正確,再看看應用協議,是ICMP。於是知道了該怎麼做了------產生一個回應數據包,(可以命名為「回應小德」),並准備以同樣的順序向遠端的A發送。。至於剛剛收到的那個數據包就丟棄了。
10.「回應小德」這個數據包又開始了上述同樣的循環,只不過這次發送者是B而接收者是A了。
以上是一個最簡單的路由過程,任何復雜的網路都是在次基礎之上實現的。
4. 關於路由器的數據包轉發問題,懂原理的進!
兄弟啊,看你寫了這么多,但是表達的不是很清晰啊。作為一個技術人員,希望你養成畫圖的習慣,這樣可以直觀表達,讓跟你交流的人也能理解你的意思。
好了,言歸正傳。
你們所在的區域網使用了H3C的上網管理系統。這個系統是需要客戶端了。這點非常關鍵。有了這個客戶端,它就可以跟服務端的系租蠢啟統進行很多交流。所以,客戶端可以反饋你是否是windows系統,什麼版本,是否是雙網卡等等。所以,你使用路弊如由器如何撥號呢?
即便使用通用的pppoe方式撥號,那麼對方的系統無法跟客戶端進行信息交換,就不會通過策略,你還是出不去的。
直接使用路由器硬體檔擾是行不通的。但是如果為了共享上網,給你個提示,你可以使用VMware虛擬機。
5. PPPoE原理配置
數字用戶線路 DSL(Digital Subscriber Line)是以電話線為傳輸介質的傳輸數字信號的技術,人們通常把所有的DSL技術統稱為XDSL,X代表不同種類的數字用戶線路技術。目前比較流行的寬頻接入方式為ADSL,ADSL是非對稱DSL技術,使用的是 PPPoE( PPP over Ethernet)協議。
PPPoE協議通過在乙太網上提供點到點的連接,建立PPP會話,使得乙太網中的主機能夠連接到遠端的寬頻接入伺服器上。 PPPOE具有適用頌蘆范圍廣安全性高碧廳、計費方便等特點。
定義
PPP (Point-to-Point Protocol)協議是一種在點到點鏈路上傳輸、封裝網路層數據包的數據鏈路層協議。由於它能夠提供用戶認證、易於擴充,並且支持同/非同步通信,因而獲得廣泛應用。
PPPoE (PPP over Ethernet)屬於鏈路層協議,主要功能是在乙太網上提供點到點的連接,建立PPP會話,以及封裝PPP數據包的方法,是PPP協議在更廣范圍內應用的補充性協議。
各個欄位解釋如下:
介紹PPPoE的實現原理。
PPPoE協議採用Client/Server方式,它將PPP報文封裝在乙太網幀之內,在乙太網上提供點對點的連接。
PPPoE可分為三個階段,即 Discovery階段(發現階段)、Session階段(會話階段)、Terminate階段(會話終結階段) 。
Discovery階段 為PPPoE認證的PPPoE協商階段,由四個過程組成。
PPPoE Client廣播發送一個 PADI (PPPoE Active Discovery Initial)報文,在此報文中包含PPPoE Client想要得到的服務類型信息。
所有的PPPoE Server收到PADI報文之後,將其中請求的服務與自己能夠提供的服務進行比較,如果可以提供,則單播回復一個 PADO (PPPoE Active Discovery Offer)報文。
根據網路的野慧帶拓撲結構,PPPoE Client可能收到多個PPPoE Server發送的PADO報文,PPPoE Client選擇最先收到的PADO報文對應的PPPoE Server做為自己的PPPoE Server,並單播發送一個 PADR (PPPoE Active Discovery Request)報文。
PPPoE Server產生一個唯一的會話ID(Session ID),標識和PPPoE Client的這個會話,通過發送一個 PADS (PPPoE Active Discovery Session-confirmation)報文把會話ID發送給PPPoE Client,會話建立成功後便進入PPPoE Session階段。
完成之後通信雙方都會知道PPPoE的Session_ID以及對方乙太網地址,它們共同確定了唯一的PPPoE Session。
PPPoE Discovery階段的工作為PPPoE Client和PPPoE Server之間建立了Session,之後PPPoE便進入到Session階段,Session階段可劃分為兩部分,一是PPPoE認證的PPP協商階段,二是PPP報文傳輸階段。
PPPoE認證過程中的PPP協商和普通的PPP協商方式一致,分為LCP、認證、NCP三個階段。
實驗環境:
伺服器端
客戶端
如果不配置on-demand(有流量撥號沒流量不撥號)的話直接undo掉這些命令就可以
配置驗證:
1. display interface Dialer 1 ——查看撥號介面的配置
State是IDLE時PPPoE是沒有撥號成功的,UP時就說明撥號成功了。
6. 數據包是如何在網路中傳輸的
然後在命令行中輸入
arp
-a,會看見192.168.85.100
bb-bb-bb-bb-bb-bb
dynamic這樣的信息。這就是arp高速緩存中ip地址和mac地址的一個映射關系,談猜在乙太網中,數據傳遞靠的是mac,而並不是ip地址。其實在這背後就隱枝碧藏著arp的秘密。你一定會問,網路上這么多計算機,a是怎麼找到b的?那麼我們就來分析一下細節。首先a並不知道b在哪裡,那麼a首先就會發一個廣播的arp請求,即目的mac為ff-ff-ff-
ff-ff-ff,目的ip為b的192.168.85.100,再帶上自己的源ip,和源mac。那麼這個網段上的所有計算機都會接收到來自a的arp請求,由於每台計算機都有自己唯一的mac和ip,那麼它會分析目的ip即192.168.85.100是不是自己的ip?如果不是,網卡會自動丟棄數據包。如果b接收到了,經過分析,目的ip是自己的,於是更新自己的arp高速緩存,記錄下a的ip和mac。然後b就會回應a一個arp應答,就是把a的源ip,源mac變成現在目的ip,和目的mac,再帶上自己的源ip,源mac,發送給a。當a機接收到arp應答後,更新自己的arp高猛侍舉速緩存,即把arp應答中的b機的源ip,源mac的映射關系記錄在高速緩存中。那麼現在a機中有b的mac和ip,b機中也有a的mac和ip。arp請求和應答過程就結束了。由於arp高速緩存是會定時自動更新的,在沒有靜態綁定的情況下,ip和mac的映射關系會隨時間流逝自動消失。在以後的通信中,a在和b通信時,會首先察看arp高速緩存中有沒有b的ip和mac的映射關系,如果有,就直接取得mac地址,如果沒有就再發一次arp請求的廣播,b再應答即重復上面動作。
7. Pppoe是怎樣上網的,和用路由器上網的區別
1、網橋是二層設備,二層設備通訊用MAC地址就行,它不需要IP地址。HUB和普通的小交換機你什麼時候見過有IP地址的?
2、PPPoe撥號,是使用虛擬技術在你的計算機中虛擬了一個網卡,這個虛擬網卡通過你舉搏電腦上的物理網卡與其他設備連接而已,此時你可以將你的的物理網卡只提供網路介面。在邏輯上,在你的電腦中虛擬技術和物理的網路介面共同組成了一個新的設備,你撥號用的網卡是這個新設備,可你的物理網卡沒什麼關系(只要你的物理網卡不禁用)。你的本地連接設置的IP、網關、dns、之類的參數,與你撥號上網時的網路通訊沒有任何聯系。你隨便正帆祥設成什麼,或者不做任何設置都能上網轎州。在你建好pppoe撥號連接後,你就應該能在網路連接中看到有一個新的設備了。撥號後的網路通訊是和這個設備相關的。這個新設備的網路參數在你撥號成功後可以查到。
4、DHCP伺服器,只要你安裝了相應的服務協議,啟動是沒有問題的。