默认配置

配置存放目录:/etc/ppp/pppoe.conf
ppp-pap密码存放目录:/etc/ppp/pap-secrets
ppp-chap密码存放目录:/etc/ppp/chap-secrets
PPP防火墙:/etc/ppp/firewall-standalone和/etc/ppp/firewall-masq
ppp网卡:文件/var/run/ppp0.pid

1.配置文件

配置文件(/etc/ppp/pppoe.conf)如其开头所述,只会用于pppoe-start, pppoe-stop, pppoe-connect和pppoe-status脚本,并不会被pppoe可执行文件使用。

内容解读

普通内容

  • ETH 连接到DSL调制器的网卡
  • USER 拨号用户名
  • DEMAND 进程守护间隔
  • DNSTYPE DNS设置方式,包括从服务器获取和自定义两种
  • PEERDNS 从同级(peer)中获取NDS服务器地址,仅对最近版本的pppd有效。改变到PEERDNS,在Red Hat中更具有兼容性
  • DNS1/DNS2 略
  • DEFAULTROUTE 让PPPoE连接到默认路由

专业内容

  • CONNECT_TIMEOUT 设置拨号最长等待时间,当值为0时,将会立即返回一个成功状态,单位秒。(注意:当在物理不可达的主机上PPPoE时,设置等待超时为0,可确保在调用pppoe-start后一直尝试连接)
  • CONNECT_POLL pppoe-start查询连接是否成功的频率,单位秒
  • ACNAME PPPOE接入器名称
  • SERVICENAME PPPOE服务器名称
  • PING 拨号连接等待显示字符
  • PIDFILE pppoe-connect脚本中存放进程ID文件的名字( P I D F I L E , PIDFILE, PIDFILE,PIDFILE.pppoe,$PIDFILE.pppd)
  • SYNCHRONOUS 是否使用同步的PPP。不使用,更安全;若使用,CPU消耗更低;
  • CLAMPMSS 是否固定MSS(Maxitu Segment Size,类似MTU),判断条件:若DSL调制器上只有单一的一台电脑,设置为"no";若你的电脑在一个LAN中作为网关,则设置为1412。1412对大多数情况来说都是适合的,但需要消耗更多CPU功耗
  • LCP_INTERVAL LCP回显间隔,默认值20
  • LCP_FAILURE LCP失败次数,默认值3
  • PPPOE_TIMEOUT 必须是 4 * LCP_INTERVAL
  • FIREWALL 防火墙等级,默认NONE
  • LINUX_PLUGIN pppd的Linux内核模块插件,若要使用设置为/etc/ppp/plugins/rp-pppoe.so
  • PPPOE_EXTRA 传递给pppoe的额外参数
  • PPPD_EXTRA 传递给pppd的额外参数

高级内容

  • OVERRIDE_PPPD_COMMAND 完全允许pppd调用,赋值"pppd call dsl"
  • RETRY_ON_FAILURE 当失去连接后,pppoe-connect退出

2.设置脚本

rp-pppoe中设置主要使用pppoe-setup脚本,用于设置拨号参数:帐号,密码,网口,DNS;

内容解读

1.检测必要文件是否存在,包括pppoe.conf,pppd,pppoe;
2.执行pppoe.conf,获取对应变量;
3.设置拨号帐号,密码,网口,DNS,是否后台守护(demand),防火墙级别;
4.将拨号帐号,网口,DNS,是否后台守护(demand),防火墙级别在pppoe.conf的的值进行修改保存;
5.将DNS在resolv.conf中进行设置保存;
6.将拨号密码在pap-secrets和chap-secrets脚本中进行设置保存;

3.开始脚本

rp-pppoe中设置主要使用pppoe-start脚本,用于启动拨号;
###内容解读

1.执行pppoe.conf,获取对应变量;
2.检测是否已经启动拨号,若启动则退出;(检测原理:kill -0 $PID)
3.启动连接,并检查是否建立连接

4.状态脚本

rp-pppoe中设置主要使用pppoe-status脚本,用于检测拨号状态;
###内容解读

1.检测是否已启动拨号
2.若已经启动,则打印网口信息(/sbin/ifconfig $IF)
3.根据(/etc/ppp/ppp*.pid和/var/run/ppp*.pid)可获取新生成的ppp名称

5.连接脚本

rp-pppoe中设置主要使用pppoe-connect脚本,用于拨号连接;

5.1.内容解读

1.执行pppoe.conf,获取对应变量;
2.检测变量的有效性
3.若在linux系统,将对应网口的MTU设置为1500,并加载ppp_generic,ppp_async,ppp_synctty模块;
4.若在linux系统,若设置了$LINUX_PLUGIN,加载pppox和pppoe模块
5.若使用同步的PPP,则设置相关变量;
6.设置PPPOE接入器名称(ACNAME)和PPPOE服务器名称(SERVICENAMEOPT)
7.设置MSS参数
8.设置DNS获取方式
9.若使用后台守护,则qiyong
10.开启PPP防火墙
11.实际执行命令:/usr/bin/setsid /usr/sbin/pppd pty '/usr/sbin/pppoe -p /var/run/pppoe.conf-eth0_pppoe.pid.pppoe -I eth0 -T 80 -U  -m 1412' noipdefault noauth default-asyncmap defaultroute hide-password nodetach usepeerdns mtu 1492 mru 1492 noaccomp nodeflate nopcomp novj novjccomp user sugao_pppoe2 lcp-echo-interval 20 lcp-echo-failure 3 debug

5.2.命令分析

/usr/bin/setsid /usr/sbin/pppd pty ‘/usr/sbin/pppoe -p /var/run/pppoe.conf-eth1_pppoe.pid.pppoe -I eth1 -T 80 -U -m 1412’ noipdefault noauth default-asyncmap defaultroute hide-password nodetach usepeerdns mtu 1492 mru 1492 noaccomp nodeflate nopcomp novj novjccomp user sugao_pppoe2 lcp-echo-interval 20 lcp-echo-failure 3 debug

5.2.1.拨号成功信息

Using interface ppp0
Connect: ppp0 <--> /dev/pts/2
sent [LCP ConfReq id=0x1 <mru 1492> <magic 0x6fad76e4>]
rcvd [LCP ConfReq id=0x1 <mru 1492> <auth chap MD5> <magic 0x8bd60b9>]
sent [LCP ConfAck id=0x1 <mru 1492> <auth chap MD5> <magic 0x8bd60b9>]
rcvd [LCP ConfAck id=0x1 <mru 1492> <magic 0x6fad76e4>]
sent [LCP EchoReq id=0x0 magic=0x6fad76e4]
rcvd [LCP EchoReq id=0x0 magic=0x8bd60b9]
sent [LCP EchoRep id=0x0 magic=0x6fad76e4]
rcvd [CHAP Challenge id=0xbf <4b949d6c532d4ab15d6bea52cf9293103edeedab3a>, name = "dexin"]
Warning - secret file /etc/ppp/chap-secrets has world and/or group access
sent [CHAP Response id=0xbf <fcfa00e0d14dd08ca7a50330e165899a>, name = "sugao_pppoe2"]
rcvd [LCP EchoRep id=0x0 magic=0x8bd60b9]
rcvd [CHAP Success id=0xbf "Access granted"]
CHAP authentication succeeded: Access granted
CHAP authentication succeeded
sent [CCP ConfReq id=0x1 <bsd v1 15>]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
rcvd [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
sent [CCP ConfRej id=0x1 <deflate 15> <deflate(old#) 15>]
rcvd [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 172.168.10.2>]
sent [IPCP ConfRej id=0x1 <compress VJ 0f 01>]
rcvd [CCP ConfAck id=0x1 <bsd v1 15>]
rcvd [IPCP ConfNak id=0x1 <addr 182.168.8.33> <ms-dns1 192.168.58.1> <ms-dns2 172.10.1.2>]
sent [IPCP ConfReq id=0x2 <addr 182.168.8.33> <ms-dns1 192.168.58.1> <ms-dns2 172.10.1.2>]
rcvd [CCP ConfReq id=0x2 <bsd v1 15>]
sent [CCP ConfAck id=0x2 <bsd v1 15>]
BSD-Compress (15) compression enabled
rcvd [IPCP ConfReq id=0x2 <addr 172.168.10.2>]
sent [IPCP ConfAck id=0x2 <addr 172.168.10.2>]
rcvd [IPCP ConfAck id=0x2 <addr 182.168.8.33> <ms-dns1 192.168.58.1> <ms-dns2 172.10.1.2>]
not replacing default route to eth0 [192.168.1.1]
local  IP address 182.168.8.33
remote IP address 172.168.10.2
primary   DNS address 192.168.58.1
secondary DNS address 172.10.1.2
Script /etc/ppp/ip-up started (pid 26799)
Script /etc/ppp/ip-up finished (pid 26799), status = 0x0

5.2.2.拨号失败信息

Using interface ppp0
Connect: ppp0 <--> /dev/pts/2
sent [LCP ConfReq id=0x1 <mru 1492> <magic 0x5ac6f784>]root@msos:/home/sugao/mscore/extern/src/ppp# sent [LCP ConfReq id=0x1 <mru 1492> <magic 0x5ac6f784>]
sent [LCP ConfReq id=0x1 <mru 1492> <magic 0x5ac6f784>]
sent [LCP ConfReq id=0x1 <mru 1492> <magic 0x5ac6f784>]
sent [LCP ConfReq id=0x1 <mru 1492> <magic 0x5ac6f784>]
sent [LCP ConfReq id=0x1 <mru 1492> <magic 0x5ac6f784>]
sent [LCP ConfReq id=0x1 <mru 1492> <magic 0x5ac6f784>]
sent [LCP ConfReq id=0x1 <mru 1492> <magic 0x5ac6f784>]
sent [LCP ConfReq id=0x1 <mru 1492> <magic 0x5ac6f784>]
sent [LCP ConfReq id=0x1 <mru 1492> <magic 0x5ac6f784>]
LCP: timeout sending Config-Requests
Connection terminated.
Modem hangup
Waiting for 1 child processes...script /usr/sbin/pppoe -p /var/run/pppoe.conf-eth0_pppoe.pid.pppoe -I eth0 -T 80 -U  -m 1412, pid 27249
pppoe: Timeout waiting for PADO packets
Script /usr/sbin/pppoe -p /var/run/pppoe.conf-eth0_pppoe.pid.pppoe -I eth0 -T 80 -U  -m 1412 finished (pid 27249), status = 0x1

5.2.3.结束拨号连接信息

Script /usr/sbin/pppoe -p /var/run/pppoe.conf-eth0_pppoe.pid.pppoe -I eth1 -T 80 -U  -m 1412 finished (pid 26788), status = 0x89
Modem hangup
Connect time 2.0 minutes.
Sent 0 bytes, received 0 bytes.
Script /etc/ppp/ip-down started (pid 26960)
Connection terminated.
Script /etc/ppp/ip-down finished (pid 26960), status = 0x0

pppd参考文档

6.断开脚本

rp-pppoe中设置主要使用pppoe-stop脚本,用于断开拨号连接,主要原理是根据生成的pidfile中的pid进行杀死进程,主要包括pppd和pppoe-connect进程。

[PPPOE]RP-PPPOE脚本分析相关推荐

  1. 【Android 高性能音频】hello-oboe 示例解析 ( Oboe 源代码依赖 | CMakeList.txt 构建脚本分析 | Oboe 源代码构建脚本分析 )

    文章目录 一.Oboe 源码路径 二.阅读 CMakeList.txt 查看依赖 三.hello-oboe 中 NDK 的 CMakeList.txt 构建脚本 四.Oboe 源码 的 CMakeLi ...

  2. build/envsetup.sh脚本分析

    1. Android编译系统分析 编译脚本及系统变量 build/envsetup.sh脚本分析 在编译源代码之前通常需要在android源代码顶层目录执行 . ./build/envsetup.sh ...

  3. 【Tiny4412】Tiny4412烧写uboot脚本分析

    00. 目录 文章目录 00. 目录 01. sd_fusing.sh脚本分析 02. 附录 01. sd_fusing.sh脚本分析 # # Copyright (C) 2011 Samsung E ...

  4. busybox rootfs 启动脚本分析(一)

    imx6文件系统启动脚本分析.开机运行/sbin/init,读取/etc/inittab文件,进行初始化. 参考链接 http://blog.163.com/wghbeyond@126/blog/st ...

  5. tomcatSupplement(1)tomcat启动脚本分析(以Windows平台为例)

    [0]README 1)本文部分文字描述转自:"深入剖析tomcat",旨在学习"tomcat启动脚本分析"的相关知识: 2)for tomcat4 start ...

  6. 发一个自己写的抓包软件,支持插件化脚本分析

    市场上的抓包工具已经足够多,轻量级的,重量级的都有,典型的wireshark,smartsniff等, 各有优缺点,PowerSniff是为程序员准备的一款抓包工具,目标是使协议解析插件编写更简单.文 ...

  7. 实用防火墙(Iptables)脚本分析

    实用防火墙(Iptables)脚本分析 --Redhat,CentOS,Ubuntu等常见Linux发行版中都会预装Iptables防火墙,大多数初学者设置起来由于对这款软件比较陌生,设置起来比较困难 ...

  8. Spark配置启动脚本分析

    2019独角兽企业重金招聘Python工程师标准>>> 今天想停止spark集群,发现执行stop-all.sh的时候spark的相关进程都无法停止.提示: no org.apach ...

  9. android adb 分析,android adb shell常用脚本分析课件.ppt

    android adb shell常用脚本分析课件 ADB概要 Android 调试系统是一个面对客户服务系统,包括三个组成部分: 电脑上运行的客户端. 在你用于开发的机器上作为后台进程运行的服务器. ...

  10. 第一章 Hadoop启动Shell启动脚本分析--基于hadoop-0.20.2-cdh3u1

    我的新浪微博:http://weibo.com/freshairbrucewoo. 欢迎大家相互交流,共同提高技术. 第一章 Hadoop启动Shell启动脚本分析 第一节 start-all.sh脚 ...

最新文章

  1. 资源跳转--response重定向和request转发
  2. 人终究要活出自己对于这个世界的看法和自己的处事方式,并且由内而外的生成自信
  3. Redis数据结构详解之Set(三)
  4. 一个显示页码用的helper。。。
  5. 安装Python 3.6 在Ubuntu 16.04 LTS 版本
  6. OJ1066: 字符分类统计
  7. Spring IoC,Spring Bean示例教程
  8. Java基础之ArrayList与LinkedList、Vector,以及HashMap与HashTable的区别
  9. python如何安装pipwindows_如何在Windows上使用python 2.6安装pip
  10. 沁恒CH348 USB转8串口芯片
  11. IPv6技术精要--第1章 IPv6简介
  12. 原码一位乘、补码一位乘(校正法、布斯法)、补码两位乘
  13. layui table动态选中_ODME与动态交通分配——DTALite使用测评
  14. 威锋VIA VL150 e-marker芯片
  15. 今天用上了xmail管理器
  16. 人生成功的生活经典治理名言
  17. 记录一次微信小程序总是闪退的问题
  18. HLK-V40 TTS语音模块使用说明
  19. 微软顶级华人代码女神是怎样炼成的?今晚直播!
  20. 适合医院、诊所、乡镇卫生院使用的门诊管理系统

热门文章

  1. 如何免费下载qq音乐 ----ctf学习之php漏洞
  2. java 读取浏览器_JAVA读取文件流,设置浏览器下载或直接预览操作
  3. anaconda查看环境中安装的包及具体位置查找
  4. dango 自带的用户认证
  5. java计算机毕业设计基于ssm的协同过滤算法的电影推荐系统(源代码+数据库+Lw文档)
  6. iPhone信号强度显示----信号格与数字之间的相互切换
  7. [Obsidian]懒人必备插件附使用教程
  8. 苹果cms程序,播放页跳转的修补方法
  9. 力扣每日一题2021-09-17有效的数独
  10. 2008-2020年800+商业银行财务面板数据