觀前溫馨提示:
篇幅較大,本章主要有以下大點,可通過目錄與右側導航跳轉觀看:
(1)廣域網基本概念
(2)PPP協定介紹
(3)PAP與CHAP認證
(4)PPPOE介紹與配置
簡介
廣域網組網
- 廣域網早期組網的X.25隻能提供64Kbit/s的帶寬
- 其後DDN(Digital Data Network)資料網和FR(Frame Relay)幀中繼提供的帶寬提高到2Mbit/s
- SDH(Synchronous Digital Hierachy)同步數字結構和ATM(Asynnchronous Transfer Mode)異步傳輸模式,進下一步把提升到了10Gbit/s
- 最後發展到目前以IP為基礎的10Gbit/s甚至更高帶寬的廣域網絡
廣域網中的路由角色(PE/CE/P)概念
- CE(CustomerEdge):使用者的邊緣裝置,服務提供商所連接配接的使用者端路由器。
CE路由器通過連接配接一個或多個PE路由器,為使用者提供多點服務接入。
CE路由器通常是一台IP路由器,它與連接配接的PE路由器建立鄰接關系。
- PE(ProviderEdge):營運商的邊緣裝置,Provide的邊緣裝置,服務提供商骨幹網的邊緣路由器,它相當于标簽邊緣路由器(LER)。
PE路由器連接配接CE路由器和P路由器,是最重要的網絡節點。
使用者的流量通過PE路由器流入使用者網絡,或者通過PE路由器流到組網骨幹網。
- P(Provider):營運商的内部核心層裝置,提供商路由器,服務提供商是不連接配接任何CE路由器的骨幹網路由裝置,它相當于标簽交換路由器(LSR)。
PPP協定
ppp 端對端/點對點 協定(Peer-Peer Protocol)
ppp有什麼用?用來幹嘛的?
答:PPP是一種點到點鍊路層協定,主要用于在全雙工的同異步鍊路上[Serial串行接口]進行點到點的資料傳輸。
PPP協定的優勢
1、支援LCP協商:鍊路層參數協商
2、支援NCP協商:網絡層參數協商
3、支援使用者認證:PAP、CHAP
4、支援擴充:ppp可擴充的支援低層鍊路
- 以太網網絡,PPP可擴充為PPPOE
- ATM網絡,PPP可擴充為PPPOA
PPP協定之使用者認證
PAP認證
- PAP密碼認證協定(Password Authentication Protocol)
- PAP是明文互動認證
- PAP的簡要認證過程
- 1、認證方(伺服器)上建立認證的賬号密碼,被認證方(用戶端)上設定好用于認證的賬号密碼
- 2、由被認證方向認證方發送認證資訊(賬号密碼),認證方檢查賬号密碼,比對成功則回複認證成功否則回複認證失敗。
- 【用戶端】》主動認證》【伺服器】
CHAP認證
- CHAP 挑戰握手認證協定(Challenge Handshake Authentication Protocol )
- CHAP是密文互動認證
- CHAP的簡要認證過程:
1、認證方(伺服器)上建立認證的賬号密碼,被認證方(用戶端)上設定好用于認證的賬号密碼
2、認證方主動向被認證方發送挑戰封包
含有:(接口認證賬号、認證序号A、認證方随機數)
在單向chap認證中,認證方的接口認證賬号可有可無。
3、被認證方收到挑戰封包,檢視接口是否存在chap賬号密碼:
存在,則回複答複封包:封包序号A、接口認證賬号、HASH值 HASH值(認證序号A、認證方随機數、接口認證的密碼,三者進行MD5加密得出HASH值)封包序号從始至終都是認證方發送的封包序号。
不存在,則不回複資訊,預設認證失敗。
4、認證方收到答複封包:
(1)對收到的賬号在賬号資料庫中檢索出“密碼”
(2)基于封包序号,取出之前産生的“随機數”
(3)進行(封包序号A+認證方随機數+賬号對應密碼)三者進行MD5加密得到一個HASH值
5、兩個HASH值對比,一樣則說明認證成功,否則失敗。
PPP協定之位址下發
在PPP協定中,可以隻在一端上配置位址實作将指定位址下發給對端。
[AR1]int s4/0/0
[AR1-Serial4/0/0]ip add 192.168.1.1 24
[AR1-Serial4/0/0]remote address 192.168.1.2 # 指定對端使用的位址
[AR2]int s4/0/0
[AR2-Serial4/0/0]ip add ppp-negotiate # 通過鄰居擷取位址
Dec 19 2022 18:28:38-08:00 Huawei %%01IFNET/4/LINK_STATE(l)[63]:The line protoco
l PPP IPCP on the interface Serial1/0/0 has entered the UP state.
# 出現該提示說明成功擷取到位址
PPP協定的詳細建立過程
1、LCP協商
- 主動發送Request封包給AR2進行鍊路層參數的協商。
- request封包内容:MRU、認證協定、MP-Group、魔術字
- MRU最大傳輸單元:保障雙向傳輸資料過程中不會因為MRU不同導緻丢包現象。
- 認證協定:為下一個階段做鋪墊,表明是否需要認證。
- MP-Group:表明是否存在鍊路聚合。
- 魔術字:随機産生,起到防止環路現象,如果在接口收到自己所發送的魔術字,則直接丢棄。
對端收到發送的Request封包進行封包内的參數協商:
- 1、如果協商的參數内容都是正常的,則向對端回複ACK封包,協商成功。
- 2、如果協商的參數内容都識别,但存在不認可的參數,則回複NAK封包,NAK中攜帶自己認可的參數。
- 收到NAK後的源将再次發送Request封包同時填充使用NAK封包内的參數。
- 3、如果協商的參數有不識别的内容,則回複Reject封包,要求源重新協商,源将去除目标不識别的内容進行剔除再發送Request。
LCP協商完成之後,則周期發送Echo-Request、Echo-Replay維護鍊路狀态
2、pap/chap認證協商
如果沒有配置ppp authentication-mode,即沒有設定認證,則直接跳過該階段。
pap認證協商
- 被認證《主動向》認證方發送Request封包進行參數協商:(攜帶認證賬号、明文密碼)
- 認證方收到Request封包,将封包内的認證賬号+密碼和自身資料庫中的認證賬号+密碼進行對比:
- ①對比結果相同,回複ACK封包,認證通過
- ②對比結果不同,回複NAK封包,認證失敗
chap認證協商
- 認證方《主動向》被認證方,發送的Chalenge資訊(接口認證賬号<非必要>、認證序号ID、認證方随機數 )
- 被認證方,檢視接口是否存在chap賬号密碼:
存在,則回複的response封包:封包序号A、接口認證賬号、HASH值 HASH值(認證序号A、認證方随機數、接口認證的密碼,三者進行MD5加密得到一個HASH值)封包序号從始至終都是認證方發送的封包序号。
不存在,則不回複資訊,預設認證失敗。
- 認證方,收到回複的response封包:
(1)對收到的認證賬号,在賬号資料庫中檢索出“密碼”
(2)基于封包序号,取出之前産生的“認證方随機數”
(3)進行(封包序号A+随機數+賬号對應密碼)三者進行MD5加密得到一個HASH值
- 認證方兩個HASH值對比,一樣則說明認證成功Success,否則失敗Failure。
3、NCP協商
- 最常見的NCP協定是IPCP,用來協商IP參數。
- 如果該階段沒有協商成功》display ip interface brief,檢視接口狀态時會看到Protocol字段處于down狀态
- 認證方《主動向》被認證方,發送的Request資訊,攜帶 本端接口IP位址。
- 被認證方收到Request封包:
如果參數不存在問題(位址沒有沖突、合法)則回複ACK封包如果參數存在問題(位址有沖突或不合規)則回複NAK封包NCP協商并不看你位址是否相同網段,而是看你的位址資訊是否有誤。
- 當認證方收到ACK封包,表示協商成功,雙方将建立一條直連路由。這也是為什麼ppp鍊路中不同段位址也能互通的原因。
4、建立完成之後,通過Echo Request、Echo Replay保活
5、建立chap認證方式的建立全過程抓包資訊:
Chap認證建立會話抓包資訊下載下傳(Wireshark 3.6.6 )下載下傳連結:https://download.csdn.net/download/qq_45443704/87320707
PPP協定建立的狀态機
1.通信雙方開始建立PPP鍊路時,先進入到Establish階段。
2.在Establish階段,進行LCP協商:協商通信雙方的MRU(Maximum Receive Unit,最大接收單元)、認證方式和魔術字(Magic Number)等選項。 協商成功後進入Opened狀态,表示底層鍊路已建立。
3.如果配置了認證,将進入Authenticate階段。否則直接進入Network階段。
4.在Authenticate階段,會根據連接配接建立階段協商的認證方式進行鍊路認證。 認證方式有兩種:PAP和CHAP。如果認證成功,進入Network階段,否則進入Terminate階段,拆除鍊路,LCP狀态轉為Down。
5.在Network階段,PPP鍊路進行NCP協商。 通過NCP協商來選擇和配置一個網絡層協定并進行網絡層參數協商。(選擇一個IP位址進行網絡層參數協商)最常見的NCP協定是IPCP,用來協商IP參數。
6.在Terminate階段,如果所有的資源都被釋放,通信雙方将回到Dead階段。
PPPOE
PPPOE簡介
PPPOE(PPP Over Ethernet)以太網承載PPP協定
1、PPPOE實作以太網上提供點到點的連接配接,PPPOE用戶端與PPPOE伺服器之間建立PPP進行傳輸資料。
2、使用PPP資料封裝的同時,為以太網上的主機提供接入服務,實作使用者連接配接控制和計費,在企業網絡與營運商網絡中應用廣泛。
PPP的幀結構
目前HCIA階段,簡要觀看即可。
PPPOE的會話建立大緻過程
參考華為HCIA-Datacom V1.0 教育訓練教材.pdf (116.68MB)【章節:17 廣域網】
下載下傳位址:https://e.huawei.com/cn/talent/#/resources 搜尋下載下傳:hcia-datacom v1.0
1、PPPOE會話發現
提前給你打個預防針,其實挺像DHCP的封包互動的…
1-PPPOE PADI 查找開始
1、PPPoE用戶端在本地以太網中廣播一個PPPOED PADI封包,此PADI封包中包含了用戶端需要的服務資訊。[類似于DHCP的Discover封包]
》PADI封包的目的MAC位址是一個廣播位址,Code字段為0x09,Session ID字段為0x0000。
》所有PPPoE伺服器端收到PADI封包之後,會将封包中所請求的服務與自己能夠提供的服務進行比較。
2-PPPOE PADO 提供資訊
2、如果伺服器端可以提供用戶端請求的服務,就會回複一個PADO封包。[類似于DHCP的Offer封包]
》PADO封包的目的位址是發送PADI封包的用戶端MAC位址,Code字段為0x07,Session ID字段為0x0000。
3-PPPOE PADR 請求資訊
3、用戶端可能會收到多個PADO封包[就像DHCP可以收到多個Offer封包],此時将選擇最先收到的PADO封包對應的PPPoE伺服器端,并發送一個PADR封包給這個伺服器端。
》PADR封包的目的位址是選中的伺服器端的MAC位址,Code字段為0x19,Session ID字段為0x0000。
4-PPPOE PADS 會話确認
4、PPPoE伺服器端收到PADR封包後,會生成一個唯一的Session ID來辨別和PPPoE用戶端的會話,并發送PADS封包。
》PADS封包的目的位址是PPPoE用戶端的MAC位址,Code字段為0x65,Session ID字段是PPPoE伺服器端為本PPPoE會話産生的Session ID。
5-華為的PPPOE會話發現邏輯示意圖
2、PPPOE會話階段
PPPoE會話階段會進行PPP協商,分為LCP協商、認證協商、NCP協商三個階段。
華為的PPPOE會話階段邏輯示意圖
3、PPPOE會話終結
當PPPoE用戶端希望關閉連接配接時,會向PPPoE伺服器端發送一個PADT封包,用于關閉連接配接。
同樣,如果PPPoE伺服器端希望關閉連接配接時,也會向PPPoE用戶端發送一個PADT封包。
在用戶端上進行會話斷開:
<Client>reset pppoe-client all
<Client>
Dec 19 2022 23:23:27-08:00 Client %%01PPP/4/PHYSICALDOWN(l)[0]:On the interface
Dialer1:0, PPP link was closed because the status of the physical layer was Down
.
<Client>
Dec 19 2022 23:23:27-08:00 Client %%01IFNET/4/LINK_STATE(l)[1]:The line protocol
PPP on the interface Dialer1:0 has entered the DOWN state.
<Client>
Dec 19 2022 23:23:27-08:00 Client %%01IFNET/4/LINK_STATE(l)[2]:The line protocol
PPP IPCP on the interface Dialer1:0 has entered the DOWN state.
華為的PPPOE會話終結邏輯示意圖
PPPOE的配置
環境介紹:
- PPPOE伺服器撥号位址為192.168.1.254、位址池為192.168.1.0/24、撥号虛拟模闆序号1、使用chap認證、賬号密碼均是pppoe。
- PPPOE用戶端使用撥号數字10與PPPOE伺服器進行建立會話。
- PPPOE建立會話過程抓包資訊(Wireshark 3.6.6)下載下傳連結:https://download.csdn.net/download/qq_45443704/87320944
伺服器:
# 1、建立DHCP位址池,給PPPOE撥号使用者下發位址
[Server]dhcp enable
[Server]ip pool ppp
[Server-ip-pool-ppp]network 192.168.1.0 mask 24
[Server-ip-pool-ppp]gateway-list 192.168.1.254
[Server-ip-pool-ppp]q
# 2、配置PPPOE服務端使用chap認證,利用PPP的NCP協商給用戶端下發位址
[Server]interface Virtual-Template 1
[Server-Virtual-Template1]ppp authen chap
[Server-Virtual-Template1]ip add 192.168.1.254 24
[Server-Virtual-Template1]remote add pool ppp
[Server-Virtual-Template1]q
# 3、配置chap認證的賬号密碼(指令有所縮寫)
[Server]aaa
[Server-aaa]local pppoe pa cip pppoe
[Server-aaa]local pppoe ser ppp
[Server-aaa]q
# 4、接口應用PPPOE撥号模闆
[Server]int g0/0/0
[Server-GigabitEthernet0/0/0]pppoe-server bind virtual-template 1
# 你可能會有的疑惑:
# 1、接口不需要配置位址的嗎?
# 【撥号模闆中已經設定有了,應用模闆也相當于應用了位址】
# 2、用戶端不需位址嗎?
# 【用戶端會通過發送PADI、PADO、PADR、PADS等封包協助PPPOE的建立】
# 上面的PPPOE會話建立過程有所提到
用戶端:
[Client]interface Dialer 1
[Client-Dialer1]lin ppp
[Client-Dialer1]ppp chap user pppoe
[Client-Dialer1]ppp chap password ci pppoe
[Client-Dialer1]ip add ppp-negotiate
[Client-Dialer1]dialer user client1
[Client-Dialer1]dialer bundle 10
[Client-Dialer1]q
[Client]int g0/0/0
[Client-GigabitEthernet0/0/0]pppoe-client dial-bundle-number 10
# PPPOE自動撥号成功提示
[Client]
Dec 19 2022 22:14:50-08:00 Client %%01IFNET/4/LINK_STATE(l)[1]:The line protocol
PPP on the interface Dialer1:0 has entered the UP state.
[Client]
Dec 19 2022 22:14:50-08:00 Client %%01IFNET/4/LINK_STATE(l)[2]:The line protocol
PPP IPCP on the interface Dialer1:0 has entered the UP state.
[Client]