Ubuntu虚拟机上搭建PPPoE服务器并进行本地验证

  • 本地环境
  • 环境说明
  • 实验拓扑
  • 环境说明
  • 环境搭建
  • 对PPPoE服务器进行配置并验证
  • 全局配置
  • 关于PPPoE Server的配置
  • 添加测试用的账户
  • 启用forward状态
  • 启用PPPoE Server
  • 设置iptables并验证


本地环境

环境说明

在Ubuntu 14.04 LTS 系统上搭建 PPPoE 服务器,另外使用两台win7虚拟机作为客户机,从而完成本地认证。

实验拓扑

PPPOE服务器docker搭建_PPPOE服务器docker搭建

环境说明

Ubuntu虚拟机和物理主机之间采用桥接方式连接,此处桥接在物理主机的WiFi网卡(你用哪张网卡上网就桥接在哪张网卡上面)。

PPPOE服务器docker搭建_ubuntu_02


Ubuntu虚拟机和两个win7之间通过新增网络适配器,选择LAN区段进行连接,这样的好处是在没有进行PPPoE认证之前,win7客户机不会有IP地址,方便PPPoE服务器对其分配IP。

PPPOE服务器docker搭建_PPPOE服务器docker搭建_03

环境搭建

安装PPPoE server软件
(1).检查安装ppp

首先要检查安装ppp软件,因为PPPoE需要封装在ppp帧中,不过大部分情况下虚拟机都带有ppp,留意系统提示。
sudo apt-get install ppp

(2).安装rp-pppoe

wget -c  http://www.roaringpenguin.com/files/download/rp-pppoe-3.15.tar.gz

sudo tar zxvf rp-pppoe-3.15.tar.gz -C /opt/

sudo chown -R root:root /opt/rp-pppoe-3.15/

如果不能再虚拟机中直接进行下载,可以在物理主机中下载后拖入虚拟机中,双击压缩包后将文件夹拖入opt文件夹中,这也是上面代码的意义。

(3). 安装软件开发函数库

sudo apt-get install libc6-dev

(4). 生成所需的PPPoE程序

sudo /opt/rp-pppoe-3.15/go

过程中保持默认,防火墙会有0-2的选项,选择0:不需要。

对PPPoE服务器进行配置并验证

全局配置

首先我们需要对ppp进行全局配置

sudo gedit /etc/ppp/options
------------------/etc/ppp/options-----------------------------

ms-dns 114.114.114.114   //这是三家运营商都支持的一个公用DNS服务器
asyncmap     //异步字符映射
auth     //需要进行认证
crtscts      //使用硬件流量控制
local      //不使用调制解调器控制线。
lock         //启用UUCP样式的文件锁定
hide-password    //记录PAP报文内容时不展示密码modem #使用调制解调器控制线
-pap       //禁用PAP认证方式
+chap      //启用CHAP认证方式
proxyarp   //启用代理ARP协议
lcp-echo-interval 30      //每30秒发送一个LCP echo-request
lcp-echo-failure 4      //4次发送request后都没收到reply,则断开连接
noipx       //禁用ipxcp和ipx协议

ppp只是对PPPoE进行封装,所以PPPoE的具体细节要在下面的一个文件中配置。

关于PPPoE Server的配置

sudo gedit /etc/ppp/pppoe-server-options
----------------------/etc/ppp/pppoe-server-options-------------------

# PPP options for the PPPoE server

# LIC: GPL

require-chap//采用chap方式进行认证

auth

#login//如果启用login,那么要通过PPPoE认证的用户名需要和虚拟机中的一个用户名相同才能验证成功,否则会出现734错误

lcp-echo-interval 10

lcp-echo-failure 2

ms-dns 114.114.114.114

添加测试用的账户

sudo gedit /etc/ppp/chap-secrets
---------------/etc/ppp/chap-secrets------------------

# Secrets for authentication using CHAP

# client   server     secret     IP addresses

   name       *      "passwd"         *

   test       *       "123456"        *
# 最后的* 不能少,代表可用任意ip连接至任一服务器

启用forward状态

cd ..//回到主目录
sudo echo "1">/proc/sys/net/ipv4/ip_forward

或者修改文件,使其永久生效:

gedit /etc/sysctl.conf
---------------/etc/sysctl.conf------------------
# net.ipv4.ip_forward = 1//把前面的#删去,启用转发功能

退出文件,输入sysctl -p使配置生效。

启用PPPoE Server

sudo pppoe-server -I eth1 -L 192.168.11.233 -R 192.168.11.5 -N 20

其中eth1表示开启PPPoE服务的网卡,192.168.11.233代表PPPoE服务器的IP地址,此地址可以任意,-R后面的地址为地址池的起始地址,-N后写地址池中含有地址的数目,默认为64,最大为65534。

设置iptables并验证

sudo iptables -A POSTROUTING -t nat -s 192.168.11.0/24 -j MASQUERADE

开启NAT转发策略,注意要和PPPoE服务器的地址池相匹配。
接下来就可以在win7上进行宽带拨号,连接PPPoE服务器,并且可以上网,至此完成PPPoE服务器的搭建和本地验证。