linux(centos)上搭建pppoe服务器

简介:

搭建pppoe,成功了的话,就觉得TM超级简单,在centos更是5步左右就能搞定

 

1、安装pppoe,安装完成后,会有pppoe-server命令

1
yum  install  rp-pppoe

 

2、安装完成后,会在动在/etc/ppp目录下生成pppoe-server-options文件,文件内容如下,照着改就可以了

写道

1
2
3
4
5
6
7
8
# PPP options for the PPPoE server
# LIC: GPL
require-pap
require-chap
login
lcp- echo -interval 10
lcp- echo -failure 2
logfile  /var/log/pppoe .log

 

3、添加用户名密码,修改/etc/chap-secrets文件,添加下列一行

写道

1
pppoe *  "123456"  *

 很通俗,用户名:pppoe,密码是:123456

 

4、添加防火墙规则,做nat转换

写道

1
2
3
4
iptables -A POSTROUTING -t nat -s 10.10.10.0 /24  -j MASQUERADE
iptables -A FORWARD -p tcp --syn -s 10.10.10.0 /24  -j TCPMSS -- set -mss 1256
echo  1 >  /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward=1

第一条是添加nat,转换来自10.10.10.0/24网段的ip

第二天是修改mtu,根据自身需求改了

第三条打开转发

第四条是修改转发文件

 

5、启动pppoe

写道

1
pppoe-server -I eth0 -L 10.10.10.1 -R 10.10.10.100-200

这条命令的作用是:-I eth0  在eth0端口上检测pppoe discover包

-L 10.10.10.1    虚拟网关的意思,就是pppoe服务器端虚拟网关ip

-R 10.10.10.100-200  分配虚拟IP,分别是10.10.10.100到10.10.10.200

还有一些其他的参数你可以参考一下,直接man pppoe-server自己看了,每个参数都有默认值

 

成功完成上述步骤,就完成了搭建pppoe服务器端了,下面就是windows验证了

我的是windows xp系统,win7或者路由器应该都没问题

不过要改下验证方式,在“属性”--》“安全”--》“高级--设置”--》将“数据加密”改为“可选加密”,然后勾选上chap或者pap验证就可以了

输入用户名密码,不可意外就可以连接成功了

 

不过只是局域网的,意义并不大。

 

顺带贴一下pppoe建立的原理过程

写道

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

PPPoE 客户端收到 PADO 包后,在 PADO 包中选择一个(可能有多个 PPPoE 服务器,通常选取最快的一个)发送主动发现请求包(PPPoEActive Discovery Request,PADR),以太头中的目的地址是所选取的 PADO 包的源以太头地址(即 PPPoE 服务器的 MAC 地址),PPPOE 头中的 CODE 为 0x19,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 为 0x65,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 以太帧中,以太包目的地址都是单一的,以太协议为 0x8864,PPPOE 头的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 包负责会话阶段的数据传输。




      本文转自灬落魄灬  51CTO博客,原文链接:http://blog.51cto.com/smoke520/1895400,如需转载请自行联系原作者




相关文章
|
15天前
|
Java Linux
Springboot 解决linux服务器下获取不到项目Resources下资源
Springboot 解决linux服务器下获取不到项目Resources下资源
|
18天前
|
Linux
linux下搭建tftp服务器教程
在Linux中搭建TFTP服务器,需安装`tftp-server`(如`tftpd-hpa`)。步骤包括:更新软件包列表,安装`tftpd-hpa`,启动并设置开机自启,配置服务器(编辑`/etc/default/tftpd-hpa`),添加选项,然后重启服务。完成后,可用`tftp`命令进行文件传输。例如,从IP`192.168.1.100`下载`file.txt`: ``` tftp 192.168.1.100 <<EOF binary put file.txt quit EOF ```
28 4
|
22天前
|
Linux
Linux中centos桌面消失网络图标
Linux中centos桌面消失网络图标
13 0
|
14天前
|
关系型数据库 MySQL Linux
linux CentOS 7.4下 mysql5.7.20 密码改简单的方法
linux CentOS 7.4下 mysql5.7.20 密码改简单的方法
19 0
|
4天前
|
网络协议 安全 Linux
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
|
10天前
|
Linux 数据安全/隐私保护
Linux基础与服务器架构综合小实践
【4月更文挑战第9天】Linux基础与服务器架构综合小实践
1233 8
|
12天前
|
Linux 数据安全/隐私保护
Linux设置PPPOE
请注意,以上步骤是基本的设置流程。具体步骤可能会因Linux发行版和版本的不同而有所差异,确保按照你所使用的系统来进行设置。如果使用图形界面,也可以在网络设置中配置PPPoE连接。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
20 0
|
14天前
|
缓存 Linux
linux centos7 挂载本地iso yum源
linux centos7 挂载本地iso yum源
64 0
|
22天前
|
Ubuntu Linux 虚拟化
【Linux】ubuntu安装samba服务器
【Linux】ubuntu安装samba服务器
|
23天前
|
Linux
Linux安装bind9搭建自己的域名服务器
Linux安装bind9搭建自己的域名服务器
11 0