ubuntu上搭建pppoeServer及报文简单分析
实验系统 :Server:ubuntu Client:winxp Software:pppoe
1.apt install pppoe
2.nano /etc/ppp/options
直接添加 ms-dns 8.8.8.8和+chap或者自己根据需要解除注释都可以,我这里采用的是chap
3.nano /etc/ppp/chap-secrets
修改这个文件 添加拨号所需要的账号密码
总共有四个参数可以设置 根据自己需求设置就好
4.pppoe-server-options 此文件不存在话就创建,添加以下内容:
nano /etc/ppp/pppoe-server-options
auth
require-chap
logfile /var/log/pppd.log
5.根据自己网卡ip开启服务
pppoe-server -I ens34 -L 192.168.100.1 -R 192.168.100.19 -N 10
同时配置转发规则
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -i ens34 -o ens33 -j ACCEPT
iptables -A FORWARD -i ens33 -o ens34 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE
然后去client上就可以成功拨号且正常上网了
ok 我们简单的抓个包分析下获取过程
过滤下pppoed我们可以看到下面四个报文
PADI,PADO,PADR,PADS
PADI报文:主机在以太网内广播一个PADI报文,此报文中包含主机想要获得的服务类型。
PADO报文:接入集中器收到在服务范围内的PADI 分组,发送PPPoE有效发现提供包分组, 以响应请求。
PADR报文:主机可能受到多个服务器的PADO报文,主机将依据PADO内容,从多个服务器中选择一个,就向他发回一个请求报文PADR。
PADS报文:服务器产生唯一的会话标识,标识和主机的这段pppoe会话并把此会话标识通过会话确认报文PADS发回给主机。会话标识就是报文里的session-id。
上面就是ppoe的发现阶段接下来就会进入会话阶段。
过滤下pppoes
PPP会话的建立,需要两端的设备都发送LCP数据包来配置和测试数据通信链路。用户主机与接入集中器根据在发现阶段所协商的PPP 会话连接参数进行PPP 会话。一旦PPPoE会话开始, PPP数据就可以以任何其他的PPP封装形式发送。
chap认证:三次握手, 密文传输口令。认证者向对端发送“challenge”消息。对端将“challenge”消息和一个共享**(通常由密码生成)用经过单向哈希函数计算出来的值做应答。认证者根据它自己计算的哈希值来检查应答,如果值匹配,认证得到承认;否则,连接应该终止。经过一定的随机间隔,认证者发送一个新的 challenge 给端点,重复步骤.
再然后就是ncp协商阶段了,NCP有很多种,如IPCP、BCP、IPv6CP,最为常用的是IPCP(Internet Protocol Control Protocol)协议。
上一篇: 关闭时才执行的javasciprt
下一篇: AJAX 请求简讯