linux下搭建pppoe服务器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
linux下搭建pppoe服务器
Linux 系统服务器配置文档—《PPPoE 篇》
一、简介
1.1. 什么是 PPPoE?
PPPoE 即Point to Point Protocol over Ethernet的简称,即基于以太网的点对点协议。
最初由IETF在的RFC 2516中定义。1998年后期问世的以太网上点对点协议(PPP over Ethernet)技术是由Redback 网络公司、客户端软件开发商RouterWare
公司以及Worldcom子公司UUNET Technologies公司在IETF RFC的基础上联合开发的。
通过把最经济的局域网技术以太网和点对点协议的可扩展性及管理控制功能结合在一起,网络服务提供商和电信运营商便可利用可靠和熟悉的技术来加速部署高速互联网业务。它使服务提供商在通过数字用户线、电缆调制解调器或无线连接等方式,提供支持多用户的宽带接入服务时更加简便易行。同时该技术亦简化了最终用户在动态地选择这些服务时的操作。
1.2. PPPoE 应用
PPPoE 基于以太网的点对点协议,当前的 PPPOE 主要被 ISP用于 xDSL 和cable modems 与用户端的连接,他们几乎与以太网一样。 PPPoE 是一种标准的点对点协议(PPP),他们之间只是传输上的差异:PPPoE 使用 modem 连接来代替普通的以太网。
一般来说, PPPoE 是基于与用户认证和通过分发 IP 地址给客户端。一个PPPoE 连接由客户端和一个访问集线服务器组成,客户端可以是一个安装了PPPoE协议的电脑。
PPPoE 客户端和服务器能工作在任何以太网等级的网络接口上。
除了应用于modem与用户端的连接之外,也常用于在LAN接入方式的宽带环境中用户端接入。
1.3. PPPoE 软件的选择
PPPoE 实现包含两个主要的软件包:
ppp-2.4.2-6.4.RHEL4
官方网站:
rp-pppoe-3.5-22
官方网站:/penguin/pppoe/
为了使PPPoE支持mppe加密方式的客端端接入,因此需加入mppe支持。由于所使用系统内核并未支持mppe,因此加入动态模块支持:
dkms-2.0.6-1.noarch.rpm
kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
软件包来源:
/project/showfiles.php?group_id=44827
dkms-2.0.6-1.noarch.rpm和kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm包
在建立支持mppe加密的pptpd方式的VPN服务器环境中也需要用到,见其VPN 篇。
二、配置环境
2.1. 安装环境
[root@CentOS ~]# uname -r ;ifconfig |grep -A1 'eth'
2.6.9-42.EL
eth0 Link encap:Ethernet HWaddr 00:0E:1F:50:E2:8C
inet addr:192.168.2.2 Bcast:192.168.2.255
Mask:255.255.255.0
--
eth1 Link encap:Ethernet HWaddr 00:14:85:93:33:97
inet6 addr: fe80::214:85ff:fe93:3397/64 Scope:Link # 内核及加载模块为系统默认,未经任何编译。
2.2. 软件包
ppp-2.4.2-6.4.RHEL4
# The ppp package contains the PPP (Point-to-Point Protocol) daemon and
documentation for PPP support. The PPP protocol provides a method for transmitting
datagrams over serial point-to-point links. PPP is usually used to dial in to an ISP
(Internet Service Provider) or other organization over a modem and phone line.
本软件包用于包含 PPP 协议的守护进程和文档用于对 PPP 协议的支持。
rp-pppoe-3.5-22
# PPPoE (Point-to-Point Protocol over Ethernet) is a protocol used by many ADSL
Internet Service Providers. This package contains the Roaring Penguin PPPoE client, a
user-mode program that does not require any kernel modifications. It is fully compliant
with RFC 2516,the official PPPoE specification.
PPPoE 是一个基于以太网的点对点协议被许多 ISP 用于 ADSL 接入,在这个包中还包含一个 Roaring Penguin PPPoE 客户端。在客户端程序方式下不需做任何编译内核的操作。完全相容于官方的 PPPoE 标准-RFC2516。
dkms-2.0.6-1.noarch.rpm
# This package contains the framework for the Dynamic Kernel Module Support (DKMS)
method for installing module RPMS as originally developed by the Dell Computer
Corporation.
Dell 公司开的一个动态模组支持包,用于将需要的模组在内核需要调用时动态加入。
kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
# This driver provides MPPE capability, necessary for implementing encryption for the
PPTP protocol. This driver supports 2.4.x and 2.6.x kernels.
本驱动使 kernel 2.4.x 与 2.6.x 下 PPTP 协议的支持 mppe 加密。
由于 kernel-2.6.9 内核默认并不支持 mppe – Microsoft point to point encryption (微软公司的点到点加密协议,windows 平台的客户端连接 VPN 服务器均使用此协议),因此需要在内核中加入 mppe 的支持。
2.3. 网络拓朴
局域网中的实验环境,PPPoE Server 安装有 2 块网卡,其中 eth0 的 IP 地址为192.168.1.10/24 连接至 ADSL modem,eth1 端口未指定 IP 地址,PPPoE 进程在 eth1 端口侦听;
三、配置过程
3.1. PPPoE 的验证过程
PPPoE 的验证过程包括 2 个阶段,Discovery 阶段和 PPP Session 阶段。Discovery 阶段,包含 4 个步骤:
Step 1: PADI
PPPoE 客户端发送主动发现初始包(PPPoE Active Discovery Initiation,PADI),以太头中的目的地址是以太广播地址 FF:FF:FF:FF:FF:FF,PPPOE 头中的 CODE 为 0x09,SESSION_ID 值必须为 0,负载部分必须只包含一个 Service-Name 类型的 TAG 表示请求的服务类型,另外可以包含其他 TAG,整个 PPPOE 包不能超过 1484 字节;
Step 2: PADO
服务器端 PPPoE 进程在网络接口侦听到 PADI 包后,发送主动发现提议包(PPPoEActive Discovery Offer, PADO),用来回应客户机的 PADI 包,以太头中的目的地址是客户机的MAC 地址,PPPOE 头中的 CODE 为 0x07, SESSION_ID 值必须为 0,负载部分必须包含一个 AC-Name 类型的 TAG,用来指示本 AC 的
名称,一个在 PADI 包中指定的Service- Name 的 TAG,另外可以包含其他Service-Name 的 TAG。如果 AC 不对该客户机提供服务,AC 就不回应 PADO 包。 Step 3: PADR