注:本记录适用于Debian系列Linux操作系统。在Ubuntu 14.10 以及 Linux Mint 17下验证成功。
在综合课程设计的搭建 PPPoE Server 环节中,本人以及组员碰到各种问题。在此总结,以备日后需要。
搭建过程
安装和配置PPPoE程序
PPPoE程序在Debian操作系统中应该是自带的。可以使用 pppoe-server -h
命令查看版本。可以使用 sudo apt-cache search pppoe
查找相关软件。
配置文件存放在 /etc/ppp
文件夹中。先设置 options
文件:
- 设置 ms-dns的值。要设置成一个可以使用的DNS服务器的IP地址,比如
114.114.114.114
这是Windows主机拨号连接时会分配的DNS地址。 - 注释掉+pap,取消-pap的注释,这表示不使用pap认证方式。同时,取消+chap的注释,表示使用chap认证方式。
接下来设置 chap-secrets
文件:
按照文件注释的内容,分别填入:用户名 服务器名 密码 IP地址,例如,在最后插入一行:
testing * password *
表示用户名为testing,服务器名为任意,密码为password,IP为任意的IP。
下来,编辑 pppoe-server-options
文件(如果没有,则新建一个1)
在pppoe-server-options里加入:
auth
require-chap
logfile /var/log/pppd.log
这样就配置完毕了。
设置系统的ip策略
开启ip转发功能
使用超级用户的身份,注意,必需是超级用户身份,sudo都没有这个权限,执行:
cat 1 > /proc/sys/net/ipv4/ip_forward
如果单单是执行这个命令,只会暂时开启IP转发功能。重启后会自动关闭。如果想一直打开,则应该编辑 /etc/sysctl.conf
文件,取消 net.ipv4.ip_forward=1
的注释,再执行 sudo sysctl -p
就可以永久打开IP转发功能了。
设置iptables的IP策略
以超级用户身份执行:
iptables -A POSTROUTING -t nat -s 10.10.10.0/24 -j MASQUERADE
注:-s 参数后面的网络地址是一会儿将要开启的pppoe-server设置的网络地址,这个地址可以根据需要自己设定,只要iptables和pppoe-server匹配就好。
运行PPPoE Server
输入:
sudo pppoe-server -I wlan0 -L 10.10.10.1 -R 10.10.10.100 -N 100
注:
- -I 参数用于指定监听哪个网络端口。可以使用ifconfig命令查看当前工作的端口名称。由于本人的笔记本电脑使用无线网络,所以是wlan0端口。
- -L 参数用于指定在一个PPP连接中,PPPoE服务器的IP地址。由于本人假设的以太网网络地址为10.10.10.0/24,所以就使用网络地址的第一个IP地址作为服务器的地址了。
- -R 参数用于指定当有客户连接到服务器上时,从哪个IP地址开始分配给客户。
- -N 参数用于指定至多可以有多少个客户同时连接到本服务器上。
如果一切顺利,在Windows上建立拨号连接,用户名和密码分别为testing和password,应该就可以连接到linux下的PPPoE Server上并且正常上网了。
PPPoE 协议过程分析
过程图解
PPPoE协议主要有以下几个过程: