PPPoE简介
定义
PPPoE(PPP over Ethernet)协议是一种把PPP帧封装到以太网帧中的链路层协议。PPPoE可以使以太网网络中的多台主机连接到远端的宽带接入服务器。
目的
运营商希望把一个站点上的多台主机连接到同一台远程接入设备,同时接入设备能够提供与拨号上网类似的访问控制和计费功能。在众多的接入技术中,把多个主机连接到接入设备的最经济的方法就是以太网,而PPP协议可以提供良好的访问控制和计费功能,于是产生了在以太网上传输PPP报文的技术,即PPPoE。
PPPoE利用以太网将大量主机组成网络,通过一个远端接入设备连入因特网,并运用PPP协议对接入的每个主机进行控制,具有适用范围广、安全性高、计费方便的特点。
组网需求
如图1所示,FW作为出口网关,为局域网内PC提供接入Internet出口。公司网络规划如下:
- 局域网内所有PC都部署在10.3.0.1/24网段,均通过DHCP方式动态获得IP地址。
- 下行链路:连接公司内的所有PC。
- 上行链路:向运营商申请Internet接入服务。运营商提供的Internet接入服务使用PPPoE协议。
根据以上情况,需要将FW作为PPPoE Client,向PPPoE Server(运营商设备)拨号获得IP地址、DNS地址后,实现接入Internet。
本举例中假设某企业从运营商获取了如下信息,这些信息仅供举例使用,实际配置时请从当地运营商获取。
数据 | 说明 |
---|---|
接口号:GigabitEthernet 1/0/1 安全区域:untrust | 通过拨号向PPPoE Server(运营商设备)拨号获得IP地址、DNS地址。
|
接口号:GigabitEthernet 1/0/3 IP地址:10.3.0.1/24 安全区域:trust | 通过DHCP,给局域网内PC动态分配IP地址。 |
PPPoE拨号的工作原理
PPPoE拨号可分为三个阶段,即Discovery阶段、Session阶段和Terminate阶段。
Discovery阶段
Discovery阶段由四个过程组成。
-
PPPoE Client广播发送一个PADI(PPPoE Active Discovery Initial)报文,在此报文中包含PPPoE Client想要得到的服务类型信息。
-
所有的PPPoE Server收到PADI报文之后,将其中请求的服务与自己能够提供的服务进行比较,如果可以提供,则单播回复一个PADO(PPPoE Active Discovery Offer)报文。
-
根据网络的拓扑结构,PPPoE Client可能收到多个PPPoE Server发送的PADO报文,PPPoE Client选择最先收到的PADO报文对应的PPPoE Server做为自己的PPPoE Server,并单播发送一个PADR(PPPoE Active Discovery Request)报文。
-
PPPoE Server产生一个唯一的会话ID(Session ID),标识和PPPoE Client的这个会话,通过发送一个PADS(PPPoE Active Discovery Session-confirmation)报文把会话ID发送给PPPoE Client,会话建立成功后便进入PPPoE Session阶段。
完成之后通信双方都会知道PPPoE的Session_ID以及对方的以太网地址,它们共同确定了唯一的PPPoE Session。
Session阶段
PPPoE Session阶段可划分为两部分,一是PPP协商阶段,二是PPP数据传输阶段。
PPPoE Session上的PPP协商和普通的PPP协商方式一致,分为LCP、认证、NCP三个阶段。
-
LCP阶段主要完成建立、配置和检测数据链路连接。
-
LCP协商成功后,开始进行认证,认证协议类型由LCP协商结果(CHAP或者PAP)决定。
-
认证成功后,PPP进入NCP阶段。NCP是一个协议族,用于配置不同的网络层协议,常用的是IP控制协议(IPCP),它主要负责协商用户的IP地址和DNS服务器地址。
PPPoE Session的PPP协商成功后,就可以承载PPP数据报文。
在PPPoE Session阶段所有的以太网数据包都是单播发送的。
Terminate阶段
PPP通信双方可以使用PPP协议自身来结束PPPoE会话,当无法使用PPP协议结束会话时可以使用PADT(PPPoE Active Discovery Terminate)报文。
进入PPPoE Session阶段后,PPPoE Client和PPPoE Server都可以通过发送PADT报文的方式来结束PPPoE连接。PADT数据包可以在会话建立以后的任意时刻单播发送。在发送或接收到PADT后,就不允许再使用该会话发送PPP流量了。
实验拓扑 ![](https://img-blog.csdnimg.cn/0c397af1d299400cb09e469338743f71.png)
1、配置接口IP地址并加入到相应的安全区域
[FW] interface GigabitEthernet 1/0/3
[FW-GigabitEthernet1/0/3] ip address 10.3.0.1 255.255.255.0
[FW-GigabitEthernet1/0/3] quit
[FW] firewall zone untrust
[FW-zone-untrust] add interface GigabitEthernet 1/0/1
[FW-zone-untrust] quit
[FW] firewall zone trust
[FW-zone-trust] add interface GigabitEthernet 1/0/3
[FW-zone-trust] quit
2、 配置设备为dhcp server并创建接口地址池,为内网PC配置网关地址并指定DNS Server。
[FW] interface GigabitEthernet 1/0/3
[FW-GigabitEthernet1/0/3]dhcp select interface
[FW-GigabitEthernet1/0/3]dhcp server ip-range 10.3.0.1 10.3.0.254
[FW-GigabitEthernet1/0/3]dhcp server dns-list 9.9.9.9
[FW-GigabitEthernet1/0/3]dhcp server gateway-list 10.3.0.1
3、 配置接口GigabitEthernet 1/0/1,采用PPPoE方式获得IP地址和DNS Server地址
[FW] dialer-rule 1 ip permit
[FW] interface Dialer 1
[FW-Dialer1]link-protocol ppp
[FW-Dialer1]dialer user user
[FW-Dialer1]ip address ppp-negotiate
[FW-Dialer1]ppp ipcp dns admit-any
[FW-Dialer1]dialer-group 1
[FW-Dialer1]dialer bundle 1
[FW-Dialer1]ppp pap local-user user password cipher password
[FW-Dialer1]quit
[FW] firewall zone untrust
[FW-zone-untrust]add interface Dialer 1
[FW-zone-untrust]q
[FW] interface GigabitEthernet 1/0/1
[FW-GigabitEthernet1/0/1]pppoe-client dial-bundle-number 1 ipv4
[FW-GigabitEthernet1/0/1]q
4、 配置安全策略,允许内部网络中的PC访问Internet
[FW] security-policy
[FW-security-policy] rule name t>un
[FW-security-policy-policy_sec_1]source-address 10.3.0.0 mask 255.255.255.0
[FW-security-policy-policy_sec_1]source-zone trust
[FW-security-policy-policy_sec_1]destination-zone untrust
[FW-security-policy-policy_sec_1]action permit
[FW-security-policy-policy_sec_1]q
5、 配置NAT策略,允许内网用户访问Internet,并配置缺省路由
[FW]nat-policy
[FW-policy-nat] rule name nat1
[FW-policy-nat-rule-policy_nat_1]source-address 10.3.0.0 mask 255.255.255.0
[FW-policy-nat-rule-policy_nat_1]source-zone trust
[FW-policy-nat-rule-policy_nat_1]egress-interface dialer 1
[FW-policy-nat-rule-policy_nat_1]action source-nat easy-ip
[FW-policy-nat-rule-policy_nat_1]q
[FW] ip route-static 0.0.0.0 0.0.0.0 Dialer 1
6、 R1配置全局地址池pool1
[Router]ip pool pool1
[Router-ip-pool-pool1]network 192.168.10.0 mask 255.255.255.0
[Router-ip-pool-pool1]gateway-list 192.168.10.1
[Router-ip-pool-pool1]q
7、 配置PPPoE认证用户
[Router]aaa
[Router-aaa]authentication-scheme system_a
[Router-aaa-authen-system_a]authentication-mode local
[Router-aaa-authen-system_a]quit
[Router-aaa]authorization-scheme system_a
[Router-aaa-author-system_a]quit
[Router-aaa]domain system
[Router-aaa-domain-system]authentication-scheme system_a
[Router-aaa-domain-system]authorization-scheme system_a
[Router-aaa-domain-system]quit
[Router-aaa]local-user user1@system password
[Router-aaa]local-user user1@system service-type ppp
[Router-aaa]q
8、创建并配置VT 在接口上启动PPPoE server功能
[Router]interface virtual-template 1
[Router-Virtual-Template1]ppp authentication-mode chap domain system
[Router-Virtual-Template1]ip address 192.168.10.1 255.255.255.0
[Router-Virtual-Template1]remote address pool pool1
[Router-Virtual-Template1]ppp ipcp dns 10.10.10.10 10.10.10.11
[Router-Virtual-Template1]quit
[Router]interface gigabitethernet 1/0/0
[Router-GigabitEthernet1/0/0]pppoe-server bind virtual-template 1
[Router-GigabitEthernet1/0/0]quit
实验结果验证
查看FW上的Dialer 1接口已经分配到IP地址。分配到IP地址说明FW已经成功接入Internet
内网pc1能够ping通外网R1的LookBack接口0