19.PPPoE笔记

文章发布时间:

最后更新时间:

页面浏览: 加载中...

PPPoE

作用:把 PPP 数据封装在以太网数据帧上,实现灵活的组网,又能利用 PPP 实现用户的身份认证(授权、审计等功能)

1. PPPoE 发现阶段

  1. 通过广播发送 PADI 发现服务器,并请求相关的服务功能
  2. 服务器收到后,会响应客户的请求,并且回复一个 PADO(携带服务器能够提供的功能)
  3. 客户端收到 PADO(可能会有多个)客户端会采用第一份收到的 PADO
    • 会根据 PADO 的服务器 ID 进行回复(标识客户端选用的是那一台服务器)
    • 通过 PADR 进行响应,同时请求会话 ID
  4. 服务器收到 PADR 后,会查看报文内的服务器 ID 是否本服务器,如果是则响应 PADS(提供一个会话 ID)、如果不是本服务器(不做响应)

2. PPPoE 的会话阶段

参考 PPP 协商过程

  1. LCP 协商(协:魔术字、MRU、认证类型等)
  2. 认证阶段(PAP 或 CHAP 协商)
  3. NCP 协商(协商 IP 地址是否合法,分配 IP 地址及网段信息)
  • 补充:客户设备需要完成 1 和 2 的协商才能进行网络访问

3. PPPoE 会话终止阶段

当用户下线时才会进入会话终止,释放网络参数信息
1. 双方互相发送 PADT 请求,用于终止网络会话(释放 IP 地址、会话 ID 等信息)


配置命令

服务器配置

  1. 创建虚拟模板,用于绑定以太网接口使用
    1
    2
    3
    interface Virtual-Template0					// 创建 VT0 虚拟模板
    ppp authentication-mode pap // 开启 PAP 认证
    ip address 100.1.1.3 24 // 配置 PPPoE 服务器通信的 IP 地址
  2. 创建地址池,为拨号用户分配 IP
    1
    2
    3
    4
    5
    6
    ip pool client						// 创建地址池,client 为名称
    network 100.1.1.0 mask 24 // 分配的网段
    excluded-ip-address 100.1.1.3 // 排除服务器已经使用的 IP 地址

    interface Virtual-Template0 // 进入 VT0 虚拟模板
    remote address pool client // 调用地址池 client(名称不能错误)
  3. 进入 PPPoE 服务器的通信接口
    1
    2
    interface GigabitEthernet0/0/0
    pppoe-server bind Virtual-Template 0 // 调用 VT0 虚拟模板
  4. 服务器需要为不同的接入用户,创建账号
    1
    2
    3
    aaa
    local-user ar1 password cipher Huawei@123 // 创建账户
    local-user ar1 service-type ppp // 指定该账户的服务类型为:ppp

客户端配置

  1. 创建虚拟拨号接口 D0
    1
    2
    3
    4
    5
    6
    interface Dialer0						// 创建 D0 接口
    ppp pap local-user ar1 password simple Huawei@123 // 根据运营商分配的账户,配置相关的认证信息
    ip address ppp-negotiate // 通过认证后,向 PPPoE 服务器,获取 IP 地址

    dialer user ar1 // 指定虚拟拨号接口的名称(先配置名称,才能指定 ID)
    dialer bundle 1 // 指定虚拟拨号接口的 ID
  2. 进入客户端与运营商互联的物理接口
    1
    2
    interface G0/0/1						// 进入物理接口
    pppoe-client dial-bundle-number 1 // 根据 D0 的接口 ID 进行绑定
  3. 私网与公网互访配置
    1. 配置静态路由

      1
      ip route-static 0.0.0.0  0  Dialer0			// 下一跳接口,必须为虚拟的拨号接口
    2. NAT 转换

      1
      2
      3
      4
      5
      acl 2000 
      rule permit source any // 允许所有的数据包通过

      interface Dialer0
      nat outbound 2000 // 进入虚拟拨号的接口调用 NAT(物理接口的所有信息都通过虚拟接口映射)