如何用Linux做PPPOE服务器

网络 网络管理
这里我们主要介绍的是Linux做PPPOE服务器的过程。通过对网络结构的分析,以及拓扑图的图示,我们可以结合代码来了解一下这个设置过程。

不少环境下,我们都需要用Linux做PPPOE服务器。那么与Win系统不同的,Linux系统更加强调命令行的使用。所以,这里我们就借助网络拓扑图的结构,来分析一下Linux做PPPOE服务器时,所涉及的命令代码的使用。

网络拓扑如图1所示

网络拓扑如图1所示

从上图看出,使用Linux做PPPOE服务器与使用routeros作PPPOE服务器在网络拓扑上是没有区别的,我们本次是使用Eth1网卡连接外网(为其设置IP地址、子网掩码、网关:10.70.10.15/255.255.0.0 10.70.0.1),Eth0网卡连接内网(为了安全起见,不设置IP地址等信息)。

Linux自身的网络设置

Linux做PPPOE服务器,在操作上虽然也可以在图形界面中是为网卡设置IP地址,但是真正实现网卡IP地址等信息的准确可靠,还是要在相应的文件中作设置,我们本次要设置两块网卡,编辑好的文件内容如下:

  1. [root@localhost network-scripts]# pwd  
  2. /etc/sysconfig/network-scripts  
  3. [root@localhost network-scripts]# more ifcfg-eth0  
  4. TYPE="Ethernet" 
  5. BOOTPROTO="static" 
  6. IPADDR="0.0.0.0" 
  7. DEVICE="lan" 
  8. HWADDR="00:0C:29:33:69:86" 
  9. ONBOOT="yes" 
  10. NETMASK="0.0.0.0" 
  11. [root@localhost network-scripts]# more ifcfg-eth1  
  12. TYPE="Ethernet" 
  13. BOOTPROTO="static" 
  14. IPADDR="10.70.10.11" 
  15. DEVICE="wan" 
  16. HWADDR="00:0C:29:33:69:90" 
  17. ONBOOT="yes" 
  18. NETMASK="255.255.0.0" 
  19. GATEWAY="10.70.0.1" 

Linux做PPPOE服务器的设置过程中,我们重点看一下ifcfg-eth1的配置文件,其中ONBOOT="yes"是必须的,可以保证系统启动网卡自动连接到网络上,网关的信息是我们手工添加进出去,保证有网关可以正常的访问外部网络,ifcfg-eth0文件中只要保证ONBOOT="yes"就可以了,当然象在routeros中一样,我们将外网口的名字定义为wan,将内网口的名字定义为lan。#p#

Linux做PPPOE服务器设置

一)检查本机有没有安装PPPOE服务

  1. [root@localhost network-scripts]# rpm -q rp-pppoe  
  2. rp-pppoe-3.5-35 

以上信息说明安装了

二)配置必要的参数

为了使Linux中的配置过程比较好理解,我们以routeros下的配置过程作为参考。

1、了解pppoe-server-options

这个文件有点类似于ROUTERS下的profile文件,在这个文件中定义了使用哪种验证方式:require-chap,为用户分配的DNS服务器地址是多少:

  1. ms-dns 219.146.0.130  
  2. ms-dns 222.175.169.91 

完整的pppoe-server-options文件如下所示

  1. [root@localhost ppp]# more pppoe-server-options  
  2. # PPP options for the PPPoE server  
  3. # LIC: GPL  
  4. require-chap  
  5. login  
  6. lcp-echo-interval 10  
  7. lcp-echo-failure 2  
  8. ms-dns 219.146.0.130  
  9. ms-dns 222.175.169.91 

2、添加用户名和密码

在相同的目录下有一个chap-secrets文件,在这里面可以添加用户名和密码

  1. [root@localhost ppp]# more chap-secrets  
  2. # Secrets for authentication using CHAP  
  3. # client        server secret                  IP addresses  
  4. abc          *      abc                        * 

3、允许本地验证

也就是修改options文件,将而来默认的lock改为local即可。

  1. [root@localhost ppp]# more options  
  2. #lock  
  3. local 

4、开启PPPOE服务

  1. [root@localhost ppp]# more pppstart  
  2. pppoe-server -I lan -L 192.168.0.1 -R 192.168.0.5 -N 10 

像以前一样,我将这条命令做成了一个脚本,这样操作测试其中的参数比较方便,我简单介绍一下Linux做PPPOE服务器当中这条命令中的各个参数的意思。

I:指定响应PPPOE请求的端口,本例中是在lan口上。

L:PPPOE服务器的IP地址,这是客户端所填的PPPOE服务器的地址。

R:这是分配给客户端的地址池起始地址,本例中从192.168.0.5开始

N:地址池的IP地址递增几个,本例中添增10,也就是从192.168.0.5开始,到192.168.0.14结束。

做完以上的设置,我们再梳理一下routeros下建立PPPOE服务的步骤

1、添加一个地址池

2、添加一个profile文件

3、添加拨号用户

4、启动pppoe服务

对照一下,可以看出我们在Linux中将以上步骤都完成了,也就是说PPPOE服务准备好了,客户端PPPOE拨号,顺利的话就可以拨号成功了。当然现在客户端还不能上网,设置Linux做PPPOE服务器的这个时候,还没有启用NAT,我们用IPTABLES软件来实现,写一个这样的脚本即可:

  1. echo "1" >> /proc/sys/net/ipv4/ip_forward  
  2. iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o wan -j SNAT --to 10.70.10.23 

***行的作用是启用IP转发,第二行是启动IPTABLES进行NAT转换,下面是对各个参数的解释

-t nat表示进行NAT转化

-s 192.168.0.0/24表示源地址为192.168.0.0/24这个网段

-j SNAT --to 10.70.10.23表示将源地址都转化成10.70.10.23这个外网地址

同样的,我们可以对照routeros系统里NAT的设置来理解这条命令。启动NAT以后,这台PPPOE服务器就功能完整了,客户端不仅可以拨通服务器,拨通后还可以上网。以上就是利用Linux服务器来架设PPPOE服务器的过程,功能一点不差,而且还是免费的,大家有兴趣可以试一下。

责任编辑:佟健 来源: IT实验室
相关推荐

2010-09-07 15:27:01

2010-09-06 17:08:23

2010-09-07 13:44:14

PPPOE服务器

2009-02-05 14:17:37

FTP服务器Java

2015-07-09 09:49:39

PHPSocket服务器

2010-09-07 14:36:43

架设PPPOE服务器

2012-05-21 10:16:53

2011-09-20 09:15:11

2009-02-11 00:09:00

2010-09-07 16:14:50

2023-03-20 07:27:43

2009-12-22 11:18:26

无线路由器

2020-06-07 11:54:34

Linux服务器命令

2019-06-13 17:15:30

监控Linux服务器

2010-05-24 13:18:30

VMware ESX备份脚本

2013-12-19 10:37:17

2010-08-05 09:15:04

路由器配置

2018-12-18 12:12:51

Python服务器Django

2010-10-09 21:51:30

2018-08-03 08:43:38

点赞
收藏

51CTO技术栈公众号