PPPOE----基于以太网的点对点协议,那么既然是基于以太网的,也就是说是二层之间的通信,那么彼此就需要知道对端的mac地址,如果知道对端的mac地址呢,肯定是通过广播,因为以太网中,广播可以到达任何一个节点,那么对端接收到这个广播帧以后为何要做处理呢,他们之间肯定存在一种特殊的关系,这种关系可以理解为客户端(client)和服务器(server)的关系,那接下来通过一个pppoe客户端和用户端的配置用以理解pppoe拨号上网原理:

pppoe需要开启吗(原来PPPOE是这么玩的)(1)

网络拓扑

其中LIANTONG用手机USB数据线桥接模拟的外网,ip地址网关为192.168.42.129/24,路由器R1的e0/0接口ip地址为192.168.42.200/24,接下来在R1设备作为server端配置PPPOE:

server端配置:

R1(config)#username thinkmo password thinkmo----本地创建一个用户名和密码,用作pppoe认证

R1(config)#aaa new-model-------配置认证模式为aaa

R1(config)#aaa authentication ppp default local----本地认证方式验证pppoe

R1(config)#bba-group pppoe global---建立使用的bba组

R1(config-bba-group)#virtual-template 1----绑定到虚拟模板接口

R1(config-bba-group)#exit--退出

R1(config)#interface virtual-template 1---进入到虚拟模板接口

R1(config-if)#peer default ip address dhcp-pool pppoe---使用本地dhcp地址池为pppoe客户端分配ip地址

R1(config-if)#encapsulation ppp---封装为ppp

R1(config-if)#ppp authentication chap--设置认证类型为chap

R1(config-if)#mtu 1492--最大网络传输单元值为1492

pppoe需要开启吗(原来PPPOE是这么玩的)(2)

PPPOE

R1(config-if)#ppp ipcp dns 114.114.114.114---ppp客户端分配 DNS地址为114.114.114.114

R1(config-if)#ip unnumbered e0/1---借用接口e0/1的地址使用(节约ip地址,由于这里借用的接口没有ip地址,所以为0.0.0.0 )

R1(config-if)#exit----退出

R1(config)#int e0/1------进入接口下

R1(config-if)#pppoe enable---允许pppoe拨入

R1(config-if)#no sh--打开接口

server端配置dhcp地址池:

R1(config)#ip dhcp pool pppoe

netwoR1(dhcp-config)network 10.1.1.0 255.255.255.0

Client端配置:

GW(config)#interface dialer 1---进入虚拟拨号口

GW(config-if)#ip add negotiated---ip地址自动从服务器协商

GW(config-if)#encapsulation ppp---封装ppp

GW(config-if)#ppp chap hostname thinkmo---配置认证类型chap,用户名为thinkmo

GW(config-if)#ppp chap password thinkmo---配置认证类型chap,密码为thinkmo

GW(config-if)#dialer pool 1---配置拨号地址池

GW(config-if)#exit--退出

GW(config)#int e0/1--进入接口下

GW(config-if)#pppoe enable--允许pppoe拨出

GW(config-if)#pppoe-client dial-pool-number 1--在物理接口下将拨号池于该物理接口绑定(相当于使用物理接口拨号)

GW(config-if)#no sh--打开物理接口

GW(config-if)#exit--退出

验证客户端,查看是否获取到ip地址

pppoe需要开启吗(原来PPPOE是这么玩的)(3)

获取到ip地址10.1.1.1

说明拨号成功,并且成功获取到server端分配的ip地址

GW上做内网DHCP 地址池172.16.1.0/24网段,为PC分配ip地址:

GW(config)#do sh run | se dhcp

ip dhcp pool PC

network 172.16.1.0 255.255.255.0

default-router 172.16.1.1

dns-server 114.114.114.114

打开pc,查看是否能自动获取ip地址:

PC4> ip dhcp

DDORA IP 172.16.1.2/24 GW 172.16.1.1

PC5> ip dhcp

DDORA IP 172.16.1.3/24 GW 172.16.1.1

能够正常获取ip地址,没问题,然后在客户端上做nat将内网172.16.1.0/24网段的数据转换出去,首先客户端写一条默认出去:

GW(config)#ip route 0.0.0.0 0.0.0.0 dialer 1--默认路由通过拨号口出去

GW(config)#int dialer 1

GW(config-if)#ip nat outside

GW(config-if)#exit

--------------------------------------------定义拨号接口为外网口然后退出

GW(config)#int e0/0

GW(config-if)#ip nat inside

GW(config-if)#exit

---------------------------定义内网口

GW(config)#access-list 1 permit 172.16.1.0 0.0.0.255----------抓取感兴趣数据流

GW(config)#ip nat inside source list 1 interface dialer 1 overload------通过拨号口nat转换

最后一步服务端写默认路由,做nat:

R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.42.129--默认路由下一跳地址192.168.42.129

R1(config)#int e0/0进入外网口

R1(config-if)#ip nat outside--定义外网口

R1(config)#int virtual-template 1--------进入虚拟模板口

R1(config-if)#ip nat inside--定义为内网口

R1(config)#access-list 10 permit any--抓取感兴趣数据流所有

R1(config)#ip nat inside source list 10 interface e0/0 overload--做nat转换

最后测试:

pppoe需要开启吗(原来PPPOE是这么玩的)(4)

PC4

pppoe需要开启吗(原来PPPOE是这么玩的)(5)

PC5

可以看到,PC4和PC5都可以ping通外网的DNS服务器114.114.114.114,和8.8.8.8,pppoe测试成功,通过以上pppoe的配置,其实也可以发现,在本模拟环境可以看到经过了两次nat的转换,实际上在家用或者企业办公网络,我们使用的网络可能经过了多次nat的转换!

这就是pppoe--现网环境中的宽带拨号上网!

,