• 【HCIA】广域网技术


    目录

    一、PPP

            1.链路层协商

            2.协议协商

                    PAP

                    CHAP

            3.网络层协商

                    静态 IP 地址协商

                    动态 IP 地址协商

    二、PPPoE

            1.报文结构

            2.会话建立

            3.配置案例


    一、PPP(点到点协议)

    不支持在以太网链路传输。

    点到点:一对一传输,IP 地址不冲突且合法即可通信,无需同一网段。

    PPP 链路建立由「链路层协商」「协议协商」「网络层协商」三个阶段组成。

            1.链路层协商

    完成 2 次双向 LCP 协商。

    LCP 协商(不携带源目 IP):

    向对方发送 Configure - Request,若其中参数与对方全部匹配,对方回复 Configure - Ask 表示协商成功,并且发送自己的 Configure - Request 进行相同协商。

    若没收到 Configure - Request,则每隔 3 秒重发一次 Configure - Request,若连续 10 次未收到回复,则认为对端不可用,停止发送。

    参数不匹配

    当收到的 Configure - Request 中参数与自己不匹配,则回复 Configure - Nak(只包含不匹配参数,且将此参数改为自己可匹配的范围),对方收到 Configure - Nak 后,则按照其中参数修改本地配置,重新发送 Configure - Request。

    参数不识别

    当收到的 Configure - Request 中有不可识别的参数,则回复 Configure - Reject(只包含不可识别的参数,不做修改),收到 Configure - Reject 后,重新发送 Configure - Request(不包含 Configure - Rejct 中的参数)

            2.协议协商(可选)

    分为「PPP」「CHAP」两种模式。

    需区分「认证方」「被认证方」。

    认证方:设置账号密码

    被认证方:输入账号密码

                    PAP(明文)

    由被认证方主动发起

    1、被认证方向认证方发送 Authentication - Request(携带账号密码)

    2、若认证方检验通过,则回复 Authentication - Request。

    配置案例

    1. [R1]int s 1/0/0
    2. [R1-Serial1/0/0]ip add 1.1.1.1 24
    3. [R1-Serial1/0/0]aaa !进入创建账户页面
    4. [R1-aaa]local-user abc password cipher 123 !创建账户
    5. [R1-aaa]local-user abc service-type ppp !将账户设置为作PPP认证用途
    6. [R1-aaa]int s 1/0/0
    7. [R1-Serial1/0/0]link-protocol ppp !启用ppp认证
    8. [R1-Serial1/0/0]ppp authentication-mode pap !在接口启用pap模式认证
    9. !只有认证方需要在端口开启pap认证,被认证方不用 !
    10. [R2]int s 1/0/0
    11. [R2-Serial1/0/0]ip add 2.2.2.2 24
    12. [R2]int s 1/0/0
    13. [R2-Serial1/0/0]link-protocol ppp !启用ppp认证
    14. [R2-Serial1/0/0]ppp pap local-user abc password cipher 123 !发送账号密码

                    CHAP(密文)

    由认证方主动发起

    1、认证方发送 Challenge(含 ID、随机数)。

    2、被认证方发送 Response(含原 ID、账号、MD5 运算结果)。

    3、按照账号查找密码进行 MD5 运算,若结果一致,则发送 Success(表示通过认证)。

    MD5 运算公式:MD5 { ID + 随机数 + 密码 },意思为:将 ID、随机数、密码相加,最后做运算得出结果(MD5 运算结果不可逆算出原来值)。

    配置案例

    1. [R1]int s 1/0/0
    2. [R1-Serial1/0/0]ip add 1.1.1.1 24
    3. [R1-Serial1/0/0]aaa !进入创建账户页面
    4. [R1-aaa]local-user abc password cipher 123 !创建账户
    5. [R1-aaa]local-user abc service-type ppp !将账户设置为作PPP认证用途
    6. [R1-aaa]int s 1/0/0
    7. [R1-Serial1/0/0]link-protocol ppp !启用ppp认证
    8. [R1-Serial1/0/0]ppp authentication-mode chap !在接口启用pap模式认证
    9. !只有认证方需要在端口开启pap认证,被认证方不用 !
    10. [R2]int s 1/0/0
    11. [R2-Serial1/0/0]ip add 2.2.2.2 24
    12. [R2]int s 1/0/0
    13. [R2-Serial1/0/0]link-protocol ppp !启用ppp认证
    14. [R2-Serial1/0/0]ppp chap user abc password cipher 123 !发送账号
    15. [R2-Serial1/0/0]ppp chap password cipher 123 !发送密码

            3.网络层协商

    通过 NCP 协商传输数据格式(例:IPCP 协商)。

    IPCP 分为「静态 IP 地址协商」「动态 IP 地址协商」。

                    静态 IP 地址协商

    需要手动在两端设备配置 IP 地址。

    双方向对端发送 Configure - Request(携带本机 IP 地址,无掩码),对方收到并确认合法后回复 Configure - Ask,最后学习收到的 IP 地址(32 位主机位)。

                    动态 IP 地址协商

    有 IP 设备可以为无 IP 设备分配 IP 地址。

    当收到的 Configure - Request 中未携带 IP 地址,则回复 Configure - Nak(包含为对方分配的 IP),对方收到后再次发送 Configure - Request(携带此 IP)进行认证。

    二、PPPoE

    将 PPP 帧封装进以太网帧,从而能够在以太网链路传输。

            1.报文结构

    PPPoE 报文由「Version」「Type」「Code」「Session ID」「Length」组成。

    其中 Code 由「PADI」「PADO」「PADR」「PADS」「PADT」组成。

            2.会话建立

    PPPoE 的会话建立由「发现阶段」「会话阶段」「终结阶段」。

    发现阶段

    客户端广播 PADI(含所需服务信息)。

    服务端若可提供此服务,则回复 PADO。

    客户端选择收到的第一个 PADO,回复此服务端 PADR。

    服务端收到 PADR 后产生唯一的 Session ID 用来标记和客户端的会话。

    会话阶段

    采用 PPP 协商。

    会话终结阶段

    想要关闭会话的一端发送 PADT 给对方,用于关闭连接。

            3.配置案例

     

    1. [R3]aaa
    2. [R3-aaa]local-user abc pass cipher 123
    3. [R3-aaa]local-user abc service-t ppp
    4. [R3-aaa]ip pool 1
    5. [R3-ip-pool-1]net 10.1.1.0 mask 24
    6. [R3-ip-pool-1]gate 10.1.1.254
    7. [R3-ip-pool-1]int virtual 1 !创建虚拟模板接口并进入
    8. [R3-Virtual-Template1]ip add 10.1.1.254 24
    9. [R3-Virtual-Template1]ppp authenticat chap
    10. [R3-Virtual-Template1]remote add pool 1 !使用地址池「1」来分配地址
    11. [R3-Virtual-Template1]int g 0/0/0
    12. [R3-GigabitEthernet0/0/0]pppoe-ser bind virtual 1
    13. !配置该接口为PPPoE服务端并和虚拟模板接口「1」绑定
    14. [R1]dialer-rule !进入拨号视图
    15. [R1-dialer-rule]dial 1 ip permit
    16. !创建拨号规则「1」:允许使用IP进行PPPoE拨号
    17. [R1-dialer-rule]int d 1 !创建并进入虚拟拨号接口
    18. [R1-Dialer1]dial user 1 !创建拨号用户(无实际意义)
    19. [R1-Dialer1]dialer-g 1 !创建拨号组(需与拨号规则号一致)
    20. [R1-Dialer1]dial bundl 1 !用于与物理端口进行绑定的编号
    21. [R1-Dialer1]ppp chap user abc
    22. [R1-Dialer1]ppp chap pass ci 123
    23. [R1-Dialer1]ip add ppp-ne !设置该接口通过PPP自动获取地址
    24. [R1-Dialer1]int g 0/0/1
    25. [R1-GigabitEthernet0/0/1]pppoe-cli dial-bundle-number 1
    26. !!配置该接口为PPPoE客户端并和虚拟模板接口「1」绑定
    27. [R1]ip route-static 0.0.0.0 0.0.0.0 dialer 1
    28. [R1]dhcp enable
    29. [R1]int g 0/0/0
    30. [R1-GigabitEthernet0/0/0]ip add 1.1.1.254 24
    31. [R1-GigabitEthernet0/0/0]dhcp select inter
    32. [R1-GigabitEthernet0/0/0]acl 2000
    33. [R1-acl-basic-2000]rule permit source 1.1.1.0 0.0.0.255
    34. [R1-acl-basic-2000]int d 1
    35. [R1-Dialer1]nat out 2000
    36. [R2]dialer-rule
    37. [R2-dialer-rule]dial 1 ip permit
    38. [R2-dialer-rule]int d 1
    39. [R2-Dialer1]dial user 1
    40. [R2-Dialer1]dialer-g 1
    41. [R2-Dialer1]dial bundl 1
    42. [R2-Dialer1]ppp chap user abc
    43. [R2-Dialer1]ppp chap pass ci 123
    44. [R2-Dialer1]ip add ppp-ne
    45. [R2-Dialer1]int g 0/0/1
    46. [R2-GigabitEthernet0/0/1]pppoe-cli dial-bundle-number 1
    47. [R2]ip route-static 0.0.0.0 0.0.0.0 dialer 1
    48. [R2]dhcp enable
    49. [R2]int g 0/0/0
    50. [R2-GigabitEthernet0/0/0]ip add 1.1.1.254 24
    51. [R2-GigabitEthernet0/0/0]dhcp select inter
    52. [R2-GigabitEthernet0/0/0]acl 2000
    53. [R2-acl-basic-2000]rule permit source 1.1.1.0 0.0.0.255
    54. [R2-acl-basic-2000]int d 1
    55. [R2-Dialer1]nat out 2000

  • 相关阅读:
    在 Linux 程序中使用 breakpad
    数据库SQL语句:给表添加外键的四种方式
    Macs Fan Control 1.5.16 Pro for mac风扇调节软件
    JAVA毕业设计古惠农产品线上销售系统计算机源码+lw文档+系统+调试部署+数据库
    微信小程序实现音乐搜索页面
    39 | selenium基础架构,UI测试架构
    Linux高性能服务器编程 学习笔记 第九章 IO复用
    避免踩坑的Github学生认证申请教程
    Re:从零开始的C++世界——类和对象(中)
    解决微信小程序滚动条卡顿的问题
  • 原文地址:https://blog.csdn.net/Domeecky/article/details/125562520