天天看點

【HCIE-R&S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE

PPP

PPP:Point-to-Point Protocol點對點協定(資料鍊路層協定)

  • PPP二層不封裝MAC,無需ARP,兩端不同網段可通信

PPP優勢

        擴充性好(基于TLV)

        提供認證

        位址互推、位址擷取

        OSPF在PPP上不選舉DR,收斂快

PPP由三個協定族構成:LCP、NCP、CHAP/PAP

PPP鍊路路由表不關心Next_Hop,僅看出接口

  • 靜态路由也隻需要寫出接口

PPP鍊路兩端配置/31位址為宜,

如果掩碼<30,存在潛在環路且浪費位址。

PPP協定族

LCP鍊路控制協定:用于建鍊(鍊路層參數協商)、拆鍊、保活。

        協商    最大傳輸單元MRU、魔術字

                   工作方式:SP/MP(Single-link PPP/ Multilink PPP)、鍊路認證方式(PAP/CHAP)

NCP網絡控制協定:用于協商資料包(IP位址等)的格式

CHAP/PAP擴充協定族:用于身份認證

  • PPP不要求兩端IP同網段。因為在NCP協商時,IPCP雙方會通知對方自己的IP

PPP幀結構(TLV)

【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE

Protocol(Information使用的協定族):   0x值=    0021      IP封包

                                                                                8021       IPCP封包(位址互推)

                                                                                C021       LCP

                                                                                C023       PAP

                                                                                C223       CHAP

資訊域:PPP幀的載荷,可變長。最大接收單元MRU=1500Byte(Information長度)

LCP:建鍊(協商參數)、拆鍊、保活

【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE

code:   LCP封包類型

DATA:  TLV格式表示LCP協商的内容

【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE

Config-Reject不識别對方參數

  • 保活:10s周期發Echo-Request/Reply

魔術字(Magic-Number)

        作用:    PPP鍊路防環

                       打環測試鍊路通斷(耦合器/自環頭)

  • 每台裝置獨立(根據SN号、裝置MAC等)産生唯一的魔術字

        在LCP封包中攜帶(除了Terminate Request/ACK)

        收到LCP封包中攜帶了自己的魔術字,說明環路,發送Config-NAK

PPP建鍊過程(狀态機)

【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE
  • LCP除了建鍊、協商參數外,還會保活PPP。是以在拆鍊之前始終存在LCP封包。
  • LCP協商參數都是單向的,需要雙向都同意對方參數,才算協商成功。

PPP鍊路認證

  • PPP認證是單向的。一邊配置PAP、一邊配置CHAP,互相作為對方的認證方/被認證方是可以建立連接配接的

PAP(Password Authentication Protocol密碼認證協定)

【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE

CHAP(Challenge Handshake Authentication Protocol挑戰握手認證協定)

【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE

随機數作用           Hash因子、防重播攻擊

封包ID作用           Hash因子、辨別一次CHAP認證的封包(随機數每次都變)

  • 封包ID在challenge、response、success、failure封包都帶
  • 認證不通過時,

發3次           CHAP     3*【challenge、response、failure】

                     PAP        3*【au-request、au-nak】

認證方發Terminate-Request,被認證方Terminate-Ack,拆鍊。

30s後,重新發challenge、auth-request,重複認證過程

認證方接口下配置/不配置使用者名

認證方

         AAA中必須配置密碼

        接口下配置了使用者名,Challenge就會攜帶使用者名

        接口下沒配使用者名,Challenge就不帶。

被認證方

        接口下必須配置使用者名(在Response封包中攜帶)

        密碼可在接口or AAA中配置

  • 被認證方根據接口下ppp chap user admin判斷PAP/CHAP認證方式,如果被認證方接口下沒有配置使用者名,LCP協商就通不過
【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE
  • 被認證方接口必須配置使用者名(Response封包需要攜帶)

記憶:

鍊路上 使用者名+密碼≥2

NCP(IPCP):位址互推、位址擷取

認證通過後,PPP進入NCP階段。   協商網絡層協定(IP則用IPCP)

IPCP:位址互推、位址擷取。

IPCP封包(和LCP封包不同)

        Config-Request                  攜帶自己位址(不帶掩碼)

        Config-ACK                        确認收到,生成/32路由

        Config-NAK                        收到不合法位址0.0.0.0

        Terminate-Request             IPCP協商位址失敗      請求

        Terminate-ACK                   IPCP協商位址失敗      确認

靜态IP位址協商:位址互推

【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE

R1路由表      10.0.0.0/24     →    10.0.0.1          S0/0/0

                     10.0.0.1/32     →    127.0.0.1

                     10.0.0.2/32     →    10.0.0.2          S0/0/0

                     10.0.0.255/32  →    127.0.0.1

動态IP位址協商:位址擷取

NCP(IPCP)可以為遠端配置設定位址

【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE

[R1-S0/0/0]ip address ppp-negotiate              [R2-S0/0/0]    remote address x.x.x.x/pool

                                                                                                                       pool:還可以配置設定DNS

【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE
  • Termination封包僅表示IPCP失敗,不拆鍊(僅LCP拆鍊)

環路問題

掩碼=31位,僅PPP兩端位址

掩碼=30位,兩端位址+廣播位址+網絡号

掩碼<30位,出現潛在環路(R1-R2的10.0.0.0/24互指)

解決辦法:    1.     兩端配置不同網段

                      2.     配置30/31位掩碼

                      3.     配置       ip route-static 10.0.0.0 25 null0

                                            ip route-static 10.0.0.128 25 null0

還發現一個神奇的現象

PPP鍊路上,ping 網絡号

【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE

R1路由12.0.0.0 下一跳=12.0.0.1 出接口=S4/0/0,發出。

是以ping 網絡号會環路。

但是,12.0.0.1→12.0.0.0      TTL逾時後,對方會給我回複Echo Reply,ping網絡号可達。

  • 如果寫2條/25的黑洞,就不會有環路,且不可達。

PPP配置

[R-Serial/POS/ATM]     link-protocol ppp

CHAP加密配置

使用者名admin       密碼huawei

【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE

認證方(AAA必須)

[R1]        aaa

               local-user admin password cipher huawei

               local-user admin service-type ppp                         //指定該密碼用于PPP認證

[R1-S0/0/1]    ppp authentication-mode chap

被認證方(接口使用者名必須)

[R2-S0/0/1]    ppp chap user admin

                      ppp chap password cipher xxx(密碼也可在AAA中配置)

[R-G]      ppp peer hostroute-suppress            //抑制生成主機路由

[服務端-G]    ppp ipcp dns x.x.x.x                    //通過IPCP配置設定DNS

[用戶端-G]    ppp ipcp dns request

1.1.1.1/24 - 2.2.2.2/24 分析路由表

【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE

R1的路由表:

網段                              下一跳                   出接口                   類型

1.1.1.1/32       →           127.0.0.1               S0/0/0                   直連

1.1.1.255/32    →          127.0.0.1               S0/0/0                   直連

1.1.1.0/24       →           1.1.1.1                   S0/0/0                   直連

2.2.2.2/32       →           2.2.2.2                   S0/0/0                   直連              //位址互推得到

如果R1-R2建立了ospf鄰居,R1路由表中還會有一條:

2.2.2.0/24       →           2.2.2.2                   S0/0/0                   ospf(preference=10)

PPP鍊路上ospf的LSA1

上圖中R1-R2建立ospf鄰接關系,R1的lsdb中,以R1的LSA1為例

                      LINK-ID                 LINK DATA

P2P               R2的RID                R1接口IP=1.1.1.1

StubNet         網絡号1.1.1.0        掩碼=255.255.255.0

MP(Multi-Link PPP)

MP作用:     增加帶寬

                     可靠性、備援性

負載分擔(逐包)

利用分片降低延遲時間

實作方式:

1.        基于MP-Group接口

2.        基于虛拟接口模版VT(Virtual-Template)

        2.1        VT ←綁定→ PPP鍊路

        2.2        VT ←綁定→ 相同使用者名的PPP鍊路(需要通過認證)

基于MP-Group接口配置:

[R]   int Mp-Group 0/0/0                                        //建立Mp-Group接口

[R-S]       ppp mp Mp-Group 0/0/0                         //實體接口綁定Mp-Group接口

  • Mp-Group接口,僅能配置IP

認證在實體接口配置(每條和對端配置一緻即可,本端多條不一樣也行)

基于VT:

【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE

VT ←綁定→ PPP鍊路配置:

[R]       int virtual-template 1

[R-S]   ppp mp virtual-template 1                                                          重新開機接口

VT ←綁定→ 相同使用者名的PPP鍊路配置:

[R]       interface virtual-template 1

           ppp mp binding-mode authentication/descriptor/both

[R]       ppp mp user xxx bind virtual-template 1

[R-S]   ppp mp                                                                                      重新開機接口

VT、Bundle、PPP鍊路關系

【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE

一邊MP、一邊SP,LCP能否協商成功?

【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE

LCP協商是雙向的

左邊請求MP方式被NAK(實際Reject)

然後雙方以2條SP-SP方式進行通信

PPPoE

PPPoE:PPP over Ethernet,以太網上層的PPP

PPP支援              認證                                          友善計費

                            位址擷取                                   省去DHCP伺服器

Ethernet支援       點對多點                                   多使用者接入ISP

                            支援廣播                                   用來尋找PPPoE伺服器

  • PPPoE結合二者優點
【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE

PPPoE封包格式

Ethernet + PPPoE + PPP

【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE
  • PPP DATA ≤ 1500 - 6(PPPoE頭)- 2(PPP頭)= 1492 Byte

Ethernet Type :    Discover階段封包 =0x8863

                               Session階段封包  =0x8864

PPPoE:

Code:   PPPoE Active Discovery          Init                 ​​​​​​​        ​​​​​​​        PADI      =0x09

                                                                Offer                     ​​​​​​​         PADO     =0x07

                                                                Request                ​​​​​​​        ​​​​​​​ PADR     =0x19

                                                                Session-confirmation     PADS     =0x65

                                                                Terminate        ​​​​​​​        ​​​​​​​       PADT     =0xA7

Session-ID:PPPoE Server配置設定,Session ID + S/D MAC辨別一個PPPoE會話

  • 營運商通過Session-ID用于區分不同家庭使用者,計費

PPPoE工作過程

【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE

Discover階段封包       Eth + PPPoE

Session階段封包         Eth + PPPoE + PPP + DATA

  • Session-ID配置設定完後,始終不變。除非PADT拆鍊重建。

        Session-ID + S/D MAC唯一辨別PPPoE會話

  • PADO提供AC-Name後,PADR、PADS都會攜帶
  • PADR是單點傳播發送,和DHCP Request廣播發送區分。

                因為DHCP廣播是為了告訴其他伺服器:“我已經使用了這個位址,你們為我配置設定的位址可以收回”

                PPPoE PADO并沒有提供位址(後續NCP IPCP提供),是以單點傳播。

PPPoE的Client端除了自己配置IP、位址擷取,還可以Radius擷取位址

  • discover階段,C-S學習到對方MAC位址

        儲存在dis pppoe-client/server session summary dial-bundle-number 1表中

        以供後續PPPoE資料封包封裝目的MAC位址

PPPoE拆鍊

PPP拆鍊              Terminate-Request

                            Terminate-ACK

PPPoE拆鍊           PADT

PPPoE上PPP拆   先拆PPP               Terminate-Request、Terminate-ACK

                             再拆PPPoE           PADT

PPP認證失敗

        PAP失敗       3*【Au-Request、Au-NAK】

        CHAP失敗    3*【Challenge、Response、Failure】

3次認證失敗後,Terminate-Request、Terminate-ACK拆鍊,30s後重複認證過程。

PPPoE上PPP認證失敗

        PAP失敗       3*【Au-Request、Au-NAK】

        CHAP失敗    3*【Challenge、Response、Failure】

        3次認證失敗後,Terminate-Request、Terminate-ACK拆鍊,PADT拆PPPoE

        30s後重複認證過程:

        PADI

        PADO

        PADR

        PADS

        LCP

        認證*3

        Terminate-Request、Terminate-ACK

        PADT

循環

PPPoE撥号上網配置示例

【HCIE-R&amp;S 天梯路】PPPPPPMP(Multi-Link PPP)PPPoE

PPP鍊路:           Dialer——VT,配置IP、認證

Ethernet鍊路:    實體接口綁定邏輯接口

  • NAT在Dialer接口做
  • Dialer接口可以配置多個bundle,bundle需配置user

[C]   int Dialer1

        ppp chap user admin

        ppp chap password simple 123

        ip address ppp-negotiate

        dialer user admin

        dialer bundle 1

        nat outbound 2000

[C-G0/0/0]     pppoe-client dial-bundle-number 1

[C]   ip route-static 0.0.0.0 0 dialer 1

[S-AAA]  local-user admin password cipher 123

               local-user admin service-type ppp

[S]    ip pool POOL

        gateway-list 10.0.0.254

        network 10.0.0.0 mask 255.255.255.0

[S]   int Virtual-Template 1

        ppp authentication-mode chap

        remote address pool POOL

        ip address 10.0.0.254 24

[S-G0/0/0]     pppoe-server bind Virtual-Template 1

繼續閱讀