搭建PPPoe Server

搭建PPPoe Server

1.安装rp-pppoe

测试环境:

  • PPPoe Server:Ubuntu 16.04.5
  • PPPoe Client:Windows 10
  • 测试网络环境:Vmware虚拟网络

首先,我们先安装PPPoe服务器,我们需要下载rp-pppoe的源码,然后自行编译安装,本次编译的环境是Ubuntu 16.04.5。

wget https://dianne.skoll.ca/projects/rp-pppoe/download/rp-pppoe-3.12.tar.gz
tar xvzf rp-pppoe-3.12.tar.gz
cd rp-pppoe-3.12
./configure
make
sudo make install

在编译源码的时候,需要使用gcc编译器,所以要预先安装好gcc编译器。

2.PPPoe Server设置

打开/etc/ppp/pppoe-server-options,然后将里面的配置修改为:

# PPP options for the PPPoE server
# LIC: GPL
+chap
#login
auth
lcp-echo-interval 10
lcp-echo-failure 2
ms-dns 192.168.1.254
logfile /var/log/pppd.log
 
plugin /etc/ppp/plugins/rp-pppoe.so

主要选项:

+chap:表示使用chap方式认证

auth:表示要认证才能登录

lcp-echo-interval:表示LCP-Echo数据包发送的时间间隔

lcp-echo-failure:表示LCP-Echo失败尝试的次数

ms-dns:表示客户端windows系统下DNS的地址

logfile:日志系统的位置

plugin:加载rp-pppoe.so插件

因为我们在/etc/ppp/pppoe-server-options中使用的认证方式是chap,所以在/etc/ppp/chap-secrets中添加我们的拨号账户和密码,如图:

chap-secrets中添加了用户名"user1"和密码"123456"。

3.网络设置

3.1 基本网络设置

本次测试使用了Vmware虚拟机,我们在“虚拟网络编辑器”中设置一个新的网卡,该网卡不开启DHCP*功能,专门用于PPPoe Client 和 PPPoe Server的通信。

图中的Vmnet5就是本次测试的专用网络。同时,我们将PPPoe Server和PPPoe Client的虚拟机都加入到Vmnet5中:

PPPoe Server的设置如下:

其中“网络适配器”用于外网的访问,“网络适配器2”用于PPPoe测试。

PPPoe Client的设置如下:

3.2 NAT转发设置

目前,PPPoe Server含有两张网卡,如图:

  • ens33:访问外网的网卡
  • ens38:用于PPPoe连接
3.2.1 打开IP转发功能

首先,要打开数据转发功能:

echo 1 > /proc/sys/net/ipv4/ip_forward

注意:这样的修改只是临时的,重启后上述设置将恢复原状。如果要实现持久的设置,请使用如下方法:

方法一:

vim /etc/sysctl.conf

然后将net.ipv4.ip_forward=1的注释取消,如图:

方法二:将echo 1 > /proc/sys/net/ipv4/ip_forward写入系统启动脚本。

3.2.2 配置iptables

我们可以使用下面的命令实现NAT转发功能:

sudo iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE

注意:这个设置在系统重启后会失效,因此最好将其写入启动脚本。

查看iptables中的nat表:

sudo iptables -t nat -S

输入如下:

我们可以看到了刚刚设置的NAT规则。

可以使用iptables-save和iptables-restore实现iptables规则的持久化,在此略过。

4.启动PPPoe Server

使用下面命令启动PPPoe Server:

sudo pppoe-server -I ens38 -L 192.168.61.128 -R 192.168.61.129 -N 1000

参数:

-I:指定PPPoe Server使用网卡

-L:指定PPPoe Server使用的IP地址

-R:指定给PPPoe Client分配的IP的起始地址

-N:指定PPPoe Server可以接受的最大客户端数量

PPPoe Server启动后,我们可以在/var/log/pppd.log查看日志输出,包括用户的认证日志。

5.拨号

此时,只需要在Windows 10中进行拨号,系统就可以实现和PPPoe Server的连接,通过认证后就可以访问互联网。

注意:由于PPP(Point-to-Point Protocol)协议是点对点的协议,它工作在链路层。PPPoe(Point-to-Point Protocol Over Ethernet)协议只是在以太网上面进行点对点通信,由于是点对点通信,所以PPPoe Client获得的子网掩码是255.255.255.255,如图:

6.写成脚本文件

上面的设置步骤繁多,而且有些设置是非持久化的,所以我们最好还是写成脚本来实现上述功能。

我们使用下面的脚本进行PPPoe Server的启动和NAT网络设置:

#!/bin/bash

# Enable IP Forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# Start PPPoE Server
pppoe-server -I ens38 -L 192.168.61.128 -R 192.168.61.129 -N 1000

# Set Firewall rules
iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE

将上述脚本保存为pppoe_start,保存在/etc/ppp/pppoe_start,然后我们在/etc/network/interfaces中添加启动项:

post-up /etc/ppp/pppoe_start

pppoe_start脚本在网卡启动后就会执行。

转载于:https://my.oschina.net/cloes/blog/2252064

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值