立即注册 登录
返回首页

uid:268858的个人空间

日志

Pppoe服务器搭建

已有 824 次阅读2017-12-29 16:47 |个人分类:Linux

1.安装pppoe

下载rp-pppoe-3.12.tar.gz,解压,进入src中执行:

./configure;make;make install;

 

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

写道

# 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

ms-dns 202.96.128.166

ms-dns 202.96.128.8

 

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

写道

pppoe * "123456" *

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

 

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

写道

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

写道

pppoe-server -I eth5 -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.10010.10.10.200

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

 

试验的话可以在Windows下链接宽带

 

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

写道

PPPoE 的验证过程

PPPoE 的验证过程包括 2 个阶段,Discovery 阶段和 PPP Session 阶段。

Discovery 阶段,包含 4 个步骤:

Step 1: PADI

PPPoE 客户端发送主动发现初始包(PPPoE Active Discovery InitiationPADI),以太头中的目的地址是以太广播地址 FF:FF:FF:FF:FF:FFPPPOE 头中的 CODE 0x09SESSION_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 RequestPADR),以太头中的目的地址是所选取的 PADO 包的源以太头地址(即 PPPoE 服务器的 MAC 地址),PPPOE 头中的 CODE 0x19SESSION_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 0x65SESSION_ID 值必须为所生成的那个SESSION_ID,负载部分必须只包含一个 Service-Name 类型的 TAG 表示该服务类型被 PPPoE 服务器接受,另外可以包含其他 TAG。如果 PPPoE 服务器不接受 PADR 中的

 

Server-NamePADS 中则包含一个 Service-Name -Error 类型的 TAG,这时 SESSION_ID 设置为 0

 

 

PPP Session 阶段:

当客户端与服务器端远成发现阶段之后,即进入会话阶段,在 PPP 会话阶段,PPP 包被封装在 PPPOE 以太帧中,以太包目的地址都是单一的,以太协议为 0x8864PPPOE 头的CODE必须为0SESSION_ID必须一直为发现阶段协商出的SEESION_ID值,PPPOE的负载是整个 PPP 包,PPP 包前是两字节的 PPP 协议 ID 值。

Session 阶段,主机或服务器任何一方都可发 PADTPPPoE Active Discovery Terminate)报文通知对方结束 Session

 

 

PPPoE 的身份验证发生在会话(PPP Session)阶段。可以这样更解,rp-pppoe 包负责Discovery 及会话终止 PADTppp 包负责会话阶段的数据传输。

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

返回顶部