日常我们配置家用路由器的时候,习惯用 WEB 页面。Web 的背后是命令行,今天我们用命令行实现配置,揭露 web 背后的故事。
本次实验用两台路由器,一台为 PPPOE 客户端,另外一台为 PPPOE 服务端,在服务端配置一个环回口,模拟公网。
一、拓扑
二、配置
2.1 基本配置
2.1.1 客户端
system-view
[Huawei]sysname Client
[Client]
2.1.2 服务器端
system-view
[Huawei]sysname Server
[Server]
给服务器端配置一个环回接口,来模拟公网地址,具体环回接口在我发的微头条中有介绍。
[Server]interface LoopBack 0
[Server-LoopBack0]ip address 100.100.100.100 32
[Server-LoopBack0]
查看路由表
disp ip routing-table
2.2 PPPOE 服务器端配置
2.2.1 创建地址池
地址池类似于 DHCP,是服务器给远程用户分配\”pppoe\”地址池中的 IP 地址所需,
[Server]ip pool pppoe
给客户端分配的 ip 地址的范围是 200.1.1.1 到 200.1.1.254
[Server-ip-pool-pppoe]network 200.1.1.0 mask 24
给客户端分配网关
[Server-ip-pool-pppoe]gateway-list 200.1.1.1
给客户端分配的 dns 地址
[Server-ip-pool-pppoe]dns-list 218.30.19.40 61.134.1.4
2.2.2 配置虚拟模板
以太网接口上不能配置地址,因为现在的以太网物理接口已经默认封装了以太网协议,无法再封装其他的广域网协议,所以才需要 Virtual-Template 来模拟一个(WAN)ppp 接口,然后封装其他协议如 ppp,最后再把虚拟模板(Virtual-Template)绑定到物理接口,实现 ppp 和以太网协议的嵌套。Virtual-Template 模板就是为了让一条链路上可以封装多种同层协议的虚拟接口。
创建虚拟模板接口编号,随意,这里是 1
[Server]interface Virtual-Template 1
配置 ppp 采用 chap 方式认证(具有加密功能)
[Server-Virtual-Template1]ppp authentication-mode chap
配置本端 Virtual-Template 接口的 ip 地址为 200.1.1.1
[Server-Virtual-Template1]ip address 200.1.1.1 24
为远程 pppoe 客户端分配 ip 池\”pppoe\”中的 ip 地址(刚才创建的地址池叫 pppoe)
[Server-Virtual-Template1]remote address pool pppoe
查看
[Server-Virtual-Template1]dis th
2.2.3 配置 aaa 认证用户
进入 aaa 本地用户数据库
[Server]aaa
定义 ppp 认证的用户名\”huawei\”和 123456(相当于运营商给的 pppoe 的账号和密码)
[Server-aaa]local-user huawei password cipher 123456
定义用户\”huawei\”的用途是做 ppp 认证
[Server-aaa]local-user huawei service-type ppp
2.2.4 物理接口调用虚拟接口,实现 pppoe 协议的封装
[Server]interface g0/0/0
将 GE0/0/0 接口与虚拟接口 1 进行绑定
[Server-GigabitEthernet0/0/0]pppoe-server bind virtual-template 1
2.3PPPOE 客户端配置
配置拨号规则
客户端
由于 PPPOE 是靠拨号完成,需要创建虚拟拨号接口(dialer)并配置,在这个接口下配置封装协议、ppp 认证、ip 地址自动获得、dialer 接口拨号使用的用户名、pppoe 连接建立的等待时间、dialer 所属的组、指定 dialer 接口的编号(这个编号是用来和物理接口绑定时候用到的编号)、nat 地址转换等等的配置,所以该拨号虚拟接口功能强大,承载任务重。
2.3.1 配置拨号规则 dialer-rule
进入 dialer-rule 视图,用来匹配允许 pppoe 拨号连接的流量
[Client]dialer-rule
只要有 ip 流量就进行拨号
[Client-dialer-rule]dialer-rule 1 ip permit
2.3.2 配置拨号虚拟接口
创建拨号 dialer 0 虚拟接口
[Client]interface Dialer 0
创建一个用户名(非拨号用户名), 该用户名不用于认证,是标识作用以及和 dialer 绑定
[Client-Dialer0]dialer user hcna
dialer 接口加入 dialer-group 组中(每个 dialer 只能加入一个组)
[Client-Dialer0]dialer-group 1
绑定拨号组号 1,用于和物理接口绑定
[Client-Dialer0]dialer bundle 1
配置拨号失败时将 dialer 接口状态转换为 Down
上面这条配置是个坑,如果不配置这条,有可能 PPP 协议不能启动,在物理接口 g0/0/0 上是 down 的状态,dialer0 也不会获得 IP 地址。
2.3.3 配置 ppp 协议
封装 ppp 协议
[Client-Dialer0]link-protocol ppp
配置 ppp 的 chap 认证,用户名为 huawei(对应在服务器端配置)
[Client-Dialer0]ppp chap user huawei
[Client-Dialer0]ppp chap password simple 123456
设置 pppoe 客户端自动获取 ip 地址
[Client-Dialer0]ip address ppp-negotiate
查看
[Client-Dialer0]dis th
2.3.4 物理接口与 dialer 接口绑定
[Client]interface g0/0/0
[Client-GigabitEthernet0/0/0]
物理接口与 dialer0 接口进行绑定, on-demand 参数用于指定该 pppoe 拨号连接是按需拨号连接(需要第 2 步中的 dialer-rule 来定义按需允许的流量)
[Client-GigabitEthernet0/0/0]pppoe-client dial-bundle-number 1 on-demand
查看
[Client-GigabitEthernet0/0/0]dis th
查看 IP 接口
[Client]dis ip int b
由上图知悉,dialer 口已经拨号成功,并且获得到一个 IP 地址 200.1.1.254/24
2.3.5 配置默认路由
为了让路由器可以与其背后的 loopback 接口通信,相当于连接互联网,在客户端做一条默认路由,
[Client]ip route-static 0.0.0.0 0.0.0.0 Dialer 0
三、验证
[Client]disp ip routing-table
[Client]ping 100.100.100.100
配置完成,验证成功。