《2022年linux环境下pppoe服务器搭建 .pdf》由会员分享,可在线阅读,更多相关《2022年linux环境下pppoe服务器搭建 .pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Linux 系统服务器配置文档PPPoE 篇一下文档来自 : http:/ 什么是PPPoE ?PPPoE 即 Point to Point Protocol over Ethernet 的简称,即基于以太网的点对点协议。最初由 IETF在的 RFC 2516中定义。 1998 年后期问世的以太网上点对点协议(PPP over Ethernet)技术是由 Redback 网络公司、客户端软件开发商RouterWare 公司以及 Worldcom 子公司 UUNET Technologies 公司在 IETF RFC 的基础上联合开发的。通过把最经济的局域网技术以太网和点对点协议的可扩展性及管理
2、控制功能结合在一起,网络服务提供商和电信运营商便可利用可靠和熟悉的技术来加速部署高速互联网业务。它使服务提供商在通过数字用户线、电缆调制解调器或无线连接等方式,提供支持多用户的宽带接入服务时更加简便易行。同时该技术亦简化了最终用户在动态地选择这些服务时的操作。1.2. PPPoE 应用PPPoE 基于以太网的点对点协议,当前的PPPOE 主要被ISP用于 xDSL 和 cable modems 与用户端的连接,他们几乎与以太网一样。PPPoE 是一种标准的点对点协议(PPP) , 他们之间只是传输上的差异:PPPoE 使用 modem 连接来代替普通的以太网。一般来说, PPPoE 是基于与用
3、户认证和通过分发IP 地址给客户端。一个PPPoE 连接由客户端和一个访问集线服务器组成,客户端可以是一个安装了PPPoE 协议的电脑。PPPoE 客户端和服务器能工作在任何以太网等级的网络接口上。除了应用于modem 与用户端的连接之外,也常用于在LAN接入方式的宽带环境中用户端接入。1.3. PPPoE 软件的选择PPPoE 实现包含两个主要的软件包:ppp-2.4.2-6.4.RHEL4 官方网站: urlftp:/ftp.samba.org/pub/ppp/url rp-pppoe-3.5-22 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
4、- - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - 官方网站: urlhttp:/ 为了使 PPPoE支持 mppe 加密方式的客端端接入,因此需加入mppe 支持。由于所使用系统内核并未支持mppe,因此加入动态模块支持:dkms-2.0.6-1.noarch.rpm kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm 软件包来源: urlhttp:/ dkms-2.0.6-1.noarch.rpm 和 kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm 包在建立支
5、持mppe 加密的 pptpd 方式的 VPN服务器环境中也需要用到,见其VPN 篇。二、配置环境2.1. 安装环境rootCentOS # 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:
6、85ff:fe93:3397/64 Scope:Link # 内核及加载模块为系统默认,未经任何编译。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - 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 p
7、rotocol 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 Ethe
8、rnet) 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 接入,在这
9、个包中还包含一个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 公司开的一个动态模组支持包
10、,用于将需要的模组在内核需要调用时动态加入。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - 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 an
11、d 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 地址,PPPo
12、E 进程在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 为 0 x09,SESSION_ID 值必须为0,负载部分必须只包含一个Service-Name 类型的TAG
13、表示请求的服务类型,另外可以包含其他TAG ,整个PPPOE 包不能超过1484 字节;Step 2: PADO 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - 服务器端PPPoE 进程在网络接口侦听到PADI 包后,发送主动发现提议包(PPPoEActive Discovery Offer, PADO),用来回应客户机的 PADI 包,以太头中的目的地址是客户机的MAC 地址,PPPOE 头中的CODE 为 0 x07, S
14、ESSION_ID 值必须为0,负载部分必须包含一个AC-Name 类型的TAG ,用来指示本AC 的名称,一个在PADI 包中指定的 Service- Name 的 TAG ,另外可以包含其他 Service-Name 的 TAG 。如果AC 不对该客户机提供服务,AC 就不回应PADO 包。Step 3: PADR PPPoE 客户端收到PADO 包后,在PADO 包中选择一个(可能有多个PPPoE 服务器,通常选取最快的一个)发送主动发现请求包( PPPoEActive Discovery Request ,PADR ) ,以太头中的目的地址是所选取的PADO 包的源以太头地址(即PPP
15、oE 服务器的MAC 地址),PPPOE 头中的CODE 为 0 x19,SESSION_ID 值必须为0,负载部分必须只包含一个Service-Name 类型的TAG 表示请求的服务类型,另外可以包含其他TAG 。Step 4: PADS MAC 地址匹配的PPPoE 服务器收到PADR 包后,发送主动发现会话确认包(PPPoE Active Discovery Session-confirmation, PADS),将产生一个SEESSION_ID 值用来标志本次PPP 会话,以 PADR 包方式发送给客户机。 以太头中的目的地址是客户机的MAC 地址,PPPOE 头中 的 CODE 为
16、0 x65, SESSION_ID 值必须为所生成的那个SESSION_ID , 负载部分必须只包含一个Service-Name 类型的 TAG , 表示该服务类型被PPPoE 服务器接受,另外可以包含其他TAG 。如果 PPPoE 服务器不接受PADR 中的Server-Name,PADS 中则包含一个Service-Name -Error 类型的TAG, 这时 SESSION_ID 设置为0。PPP Session 阶段: 当客户端与服务器端远成发现阶段之后,即进入会话阶段,在PPP 会话阶段, PPP 包被封装在PPPOE 以太帧中,以太包目的地址都是单一的,以太协议为0 x8864,P
17、PPOE 头的 CODE必须为 0,SESSION_ID 必须一直为发现阶段协商出的SEESION_ID 值,PPPOE的负载是整个PPP 包,PPP 包前是两字节的PPP 协议 ID 值。在 Session 阶段,主机或服务器任何一方都可发PADT (PPPoE Active Discovery Terminate )报文通知对方结束Session。PPPoE 的身份验证发生在会话(PPP Session )阶段。可以这样更解,rp-pppoe 包负责 Discovery 及会话终止PADT ,ppp 包负责会话阶段的数据传输。名师资料总结 - - -精品资料欢迎下载 - - - - - -
18、 - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - 3.2. 配置思路step 1 全局配置配置系统IP 包文转发,网络接口地址配置,添加动态加载模块。相关配置文件:/etc/sysctl.conf # 启用 IP 报文转发/etc/sysconfig/network-scripts/ifcfg-eth0|eth1 # 接口地址/etc/modprobe.conf # 动态加载模块step 2 配置 PPP Session 会话配置文件, /etc/ppp/options step 3 配置客
19、户账号和密钥,需修改配置文件/etc/ppp/pap-secrets#ppp 程序的 pap 认证密钥# PAP: password authentication protocol,密码认证协议3.3. 修改配置文件3.2.1. 全局配置文件3.2.1.1. 系统内核网络参数# 将“net.ipv4.ip_forwark”项值由 “0”改为“1” # 启用 IP 包转发名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - # 手动添
20、加以上行,对于保证连接的稳定性有重要意义;# 该参数通常用于使用拨号连接的情况,可以使系统动能够立即改变ip 包的源地址为该ip 地址,同时中断原有的 tcp 对话而用新地址重新发出一个syn 请求包,开始新的tcp 对话。在使用ip 欺骗时,该参数可以立即改变伪装地址为新的ip 地址。3.2.1.2. 网络接口地址# 侦听 PPPoE 报文的网络接口无需配置IP 地址3.2.1.3. 添加动态加载模块# 添加 ppp_mppe 模块,支持客户端mppe 加密;# 模块由kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm 包生成;# 允许内核动态调用pppoe 模块,
21、由rp-pppoe 包生成;3.2.2. PPP 会话配置文件/etc/ppp/options # 其中 plugin rp-pppoe.so 需要手动添加,见 /usr/share/doc/ppp-2.4.2 /README.pppoe # ms-dns 为指派给客户端的DNS 服务器地址,手动添加# 如果指定的客户端地址与内网地址处于同一网段,则需要proxyarp # 如需将日志另存为文件,可在options 添加 logfile /var/log/ppp/pppd.log 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
22、名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - # 其它为默认参数,详尽可man pppd # PPPoe Discovery 参数,默认设置即可,不用修改# 本例中使用pap 认证方式3.2.3. /etc/ppp/pap-secrets # 指定 PPPoE 客户端用户名和密码,# IP address 如果指定,则PPPoE 客户端将固定得到这个IP 地址;# 用户名必须要系统中存在,如不存在,将无法登陆如不对各配置文件参数不了解,可查看/usr/share/doc/ ppp-2.4.2 / 目录中的相关文件。3.2.4. 设置 p
23、ppd 程序的SUID 属性由于 pap-secrets 文件为root 用户可读写,在PPPoE 客户端用户登陆时需验证pap-secrets 文件,由于其他用他用户没有访问权限,因此会造成登陆失败。解决办法:可以使用设置pppd 进程的SUID 属性,让PPPoE 客户端登陆时具有读取pap-secrets 文件的权限。# 如上, chmod u+s /usr/sbin/pppd 指令也可3.4. 启动 PPPoE 服务名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共
24、11 页 - - - - - - - - - # 一个启动PPPoE Server 的 scripts,# 本在地址为192.168.2.193,远端地址为192.168.2.200,最大连接数为64 四、服务测试4.1. 建立 PPPoE 拔号连接在 windows xp 系统通过设置 -控制面板 -网络连接,创建一个新连接;输入所建立的用户名和密码,建立一个PPPoE 连接。PPPoE 端本地网卡无需设置IP 地址,确认物理连接无误后,即可拔号连接。ipconfig /all ,PPP 连接情况4.2. PPPoE Server 端相关记录# 可以看出PPP 连接成功,成功获取IP 地址#
25、 服务器端连接日志,可以清楚看到登陆、认证过程。4.3. 终端连接内网网关# 连接正常4.4. 测试 iptables 规则在本例拓朴结构中,PPPoE 服务器同时担任内网PPPoE 终端连接至外网的网关,因此需要在防火墙中添加规则:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 11 页 - - - - - - - - - 五、故障解决5.1. 案例 1-在 2 层防火墙环境中, PPPoE 服务器接入的路由设置在这个案例中,局域网中Route Server 服务器负责
26、接入internet ,同时提供非认证用户和PPPoE Server 的 eth0 的动态IP 地址分配, PPPoE Server 负责其下通过交换机连接的PPPoE 用户的认证和IP 地址分配。在一些特别的网络环境中,这种需求是存在的。比喻说企业中只对于特定的用户需经过认证才能上网,其他用户却不需要认证;或是在酒店的客房区域,入住客人需通过PPPoE 认证,计费上网,而内部员工却不需要,等等。在这种环境中, PPPoE Client 通过 PPPoE Server 将数据包转发至Route Server,PPPoE Server 同时提供PPPoE Client 的 ARP Proxy,设
27、置如下:step 1: 确认 PPPoE Server 核心中IP 包转发# 或是在 /etc/sysctl.conf 中将 net.ipv4.ip_forward 值设置为 “1” step 2 将 PPPoE Server 远端 IP 配置为内网IP 地址,并启用ProxyARP # 如远端IP 地址与PPPoE Server 的 eth0 地址为同一网段# 在/etc/ppp/options 中添加proxyarp,启用ARP 代理,# 这样透过PPPoE Server 的 eth0 与远端网关192.168.2.11 通讯# 在日志中可以发现pppd 使用 eth0 口用于ARP Proxy 。step 3 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 11 页 - - - - - - - - - 将 PPPoE Server 的防火墙的filter 表的 FORWARD 策略设置为ACCEPT名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 11 页 - - - - - - - - -