PPP
PPPoE = PPP Over Ethernet
满足不同宽带上网设备(拨号、无线、有线电视等)
实现PPP在以太网上的传输
实质是在共享介质的网络中提供一条逻辑上的点到点链路(Session ID);
PPPoE主要协议标准:RFC2516;
PPPoE结构:C/S结构,
客户端:拨号软件
服务器端:电信端,集中访问控制器
PPPoE分成两个阶段:
-
1.PPPoE( Discovery )发现阶段;
-
2.PPPoE会话阶段;
-
3.PPPOE会话终止;
PPPOE发现阶段数据报文
PADI(PPPOE发现初始报文)
PADO(PPPOE发现提供报文)
PADR(PPPOE发现请求报文)
PADS(PPPOE发现会话确认报文)
PADT(PPPOE发现终止报文)
PPPOE发现阶段数据报文
-
客户端广播一PADI(I = Initiation)请求,查找网络中的服务器;
-
器端响应一PADO(O = Offer),将自己的一些信息告知客户端;
-
客户端向此服务器发送一PADR(R = Request),请求会话号;
-
服务器端响应一PADS(S = Session-confirmation),将分配的会话号告知对方。
至此,PPPoE会话建立。后续可以进行PPP的协商了
PPPOE帧结构
•PPPOE帧结构
–Discovery阶段:以太网帧的ETHER_TYPE域都设置为0x8863。
–PPP会话阶段: 以太网帧的ETHER_TYPE域都设置为0x8864。
–PPPoE的payload部分包含0个或多个TAG,一个TAG是一个TLV(type-length-value)结构,TAG_TYPE域为16位值(网络字节序)
更详细的PPPOE的介绍:看另一篇笔记
实验
上图是一张完整的拓扑,分为本地ppp认证服务(左)和AAA+PPPOE远程认证(右)
本地PPP认证服务
现在这两台客户端没有IP地址,无法上网,需要进行PPPOE拨号连接到PPPOE服务器,有服务器下发IP地址,转发流量
流量的走向如下
配置的步骤
-
创建bba-group,设置拨号组,拨号虚拟接口;
-
创建virtual-template,拨号用户地址池,数据封装方式,
-
拨号接入物理接口开启pppoe并指定用户所属拨号组
-
创建用于PPPOE接入本地用户账号、密码;
-
创建用于PPPOE接入用户IP地址池;
-
设置外网路由;
//创建bba-group,设置拨号组
Router(config)# bba-group pppoe wxit
//拨号虚拟接口
Router(config-bba-group)# virtual-template 1
//创建virtual-template 虚拟访问接口(以太网仿真拨号)
Router(config)# interface virtual-template 1
Router(config-if)# ip unnumbered interface fa 0/0
//pppoe接入口
Router(config-if)#ppp authentication chap
Router(config-if)# peer default ip address pool pppoe
//创建用于PPPOE接入用户IP地址池
Router(config)# ip local pool pppoe 172.16.1.1 172.16.1.100
//集中访问控制器内网接口开启PPPOE功能
Router(config)#interface fa 0/0
Router(config-if)#pppoe enable group wxit
//创建用于PPPOE接入本地用户账号、密码
Router(config-if)# username username password 0 pwd
//设置认证需要的用户名和密码
//设置外网路由
Router(config)#ip route 0.0.0.0 0.0.0.0 172.16.1.250
关于默认路由的配置:
这里不能配置指向接口的默认路由,因为数据包从fa0/0发出后依然到达不到目的地,有3条路径可以选择。
验证
PPPOE的配置和接口的IP
username swl password 0 123456
!
bba-group pppoe swl_pppoe
virtual-template 1
!
interface Virtual-Template1
peer default ip address pool pppoe
ppp authentication chap
ip unnumbered FastEthernet0/0
encapsulation ppp
ppp authentication chap
!
interface FastEthernet0/0
ip address 172.16.1.254 255.255.255.0
pppoe enable group swl_pppoe
duplex auto
speed auto
ip local pool pppoe 172.16.1.1 172.16.1.100
ip route 0.0.0.0 0.0.0.0 172.16.1.250
E-PPPOE-Server#show ip interface brief
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 172.16.1.254 YES manual up up
FastEthernet0/1 unassigned YES unset administratively down down
Virtual-Template1 172.16.1.254 YES unset down down
Virtual-Access1 unassigned YES unset up up
Virtual-Access2 unassigned YES unset down down
Vlan1 unassigned YES unset administratively down down
终端开始PPPOE拨号
终端为拨号前:
拨号后:
终端可以访问外网
思考:
配置完毕后,集中访问控制器会自动产生一条指向边界路由器内网接口的静态路由,思考,虚拟接口的IP地址是否必须与物理接口地址处于同一网段。
我觉得不需要,因为对比终端前后两次的ipconfig
,发现终端上多了三个连接,
-
Dialer1 Connection:有地址
-
Virtual-Access1 Connection:没有地址
-
Virtual-ccess2 Connection:没地址
所以猜测虚拟接口的IP地址不是同一网段也可以与终端建立连接
AAA+PPPOE远程认证
有关AAA的内容,查看另一篇笔记
2811这台设备对上连接Server-PT作为AAA的客户端,对下连接WRT300N路由器作为PPPOE的服务器
AAA+PPPOE的拨号,Server-PT作为AAA服务器,上面有拨号用户和密码。当WRT300N发出PPPOE的请求后,PPPOE的客户端2811接收,进行PPPOE认证,但是账户不在本地,还需要通过AAA认证连接到Server-PT,得到用户来完成认证
因为终端连接的是无线路由器,只需要无线路由器拨号就行了
Server-PT的配置内容
无线路由的配置
2811配置PPPOE服务器
//创建bba-group,设置拨号组
Router(config)# bba-group pppoe wxit02
//拨号虚拟接口
Router(config-bba-group)# virtual-template 1
//创建virtual-template 虚拟访问接口(以太网仿真拨号)
Router(config)# interface virtual-template 1
Router(config-if)# ip unnumbered interface fa 0/0
//pppoe接入口
Router(config-if)#ppp authentication chap
Router(config-if)# peer default ip address pool pppoe
//创建用于PPPOE接入用户IP地址池
Router(config)# ip local pool pppoe 10.35.1.1 10.35.1.150
//集中访问控制器内网接口开启PPPOE功能
Router(config)#interface fa 0/0
Router(config-if)#pppoe enable group wxit02
//默认路由已经配置好了,不需要配置,用户和密码在远端,配置AAA
AAA的配置:
//AAA配置
Router(config)# aaa new-model
Router(config)# aaa authentication ppp default group radius
Router(config)# aaa authentication login default group radius
Router(config)# aaa authorization network default group radius
//注意这里和前面的authentication不一样,我就是看错了
Router(config)# radius-server 210.1.1.254 ip key wxit
//查看Server-pt就可以知道key了
AAA连接成功后就可以了
检验
配置:
aaa new-model
!
aaa authentication ppp default group radius
aaa authentication login default group radius
!
aaa authorization network default group radius
bba-group pppoe wxit02
virtual-template 1
!
interface Virtual-Template1
peer default ip address pool pppoe
ppp authentication chap
ip unnumbered FastEthernet0/0
encapsulation ppp
ppp authentication chap
!
interface FastEthernet0/0
ip address 10.35.1.254 255.255.255.0
pppoe enable group wxit02
duplex auto
speed auto
ip local pool pppoe 10.35.1.1 10.35.1.150
ip classless
ip route 0.0.0.0 0.0.0.0 Serial0/3/0
ip route 0.0.0.0 0.0.0.0 200.1.1.2
!
ip flow-export version 9
!
radius-server host 210.1.1.254 auth-port 1645 key wxit
!
!
WireLess-PPPOE-Server#show ip interface br
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 10.35.1.254 YES manual up up
FastEthernet0/1 unassigned YES unset administratively down down
Serial0/3/0 200.1.1.1 YES manual up up
Virtual-Template1 10.35.1.254 YES unset down down
Virtual-Access1 unassigned YES unset up up
Virtual-Access2 unassigned YES unset down down
Virtual-Access1.1 10.35.1.254 YES manual up up
Vlan1 unassigned YES unset administratively down down