一、环境搭建

查看是否安装所需要的包。

[root@MASTER ~]# rpm -qa |grep rp-pppoe

rp-pppoe-3.5-32.1

配置文件目录在/etc/ppp下

[root@MASTER ppp]# ls

chap-secrets         ioptions         ip-up          ipv6-up      peers

firewall-masq        ip-down          ip-up.ipv6to4  options      pppoe-server-options

firewall-standalone  ip-down.ipv6to4  ipv6-down      pap-secrets

修改配置文件

[root@MASTER ppp]# vi pppoe-server-options

# PPP options for the PPPoE server

# LIC: GPL

#require-pap

require-chap     #验证方式

login

lcp-echo-interval 10

lcp-echo-failure 2

ms-dns 202.106.0.20

ms-dns 8.8.8.8

添加用户

[root@MASTER ppp]# vi chap-secrets

# Secrets for authentication using CHAP

# client        server  secret                  IP addresses

####### redhat-config-network will overwrite this part!!! (begin) ##########

####### redhat-config-network will overwrite this part!!! (end) ############

zhaoyun           *      zhaoyun                  *

开启ip转发

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

或者修改/etc/sysctl.conf 

[root@MASTER ~]# sysctl -p

net.ipv4.ip_forward = 1

配置iptables

[root@MASTER ppp]# iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.255 -o eth1 -j MASQUERADE

eth1为出口的网卡,就是可以和外网连通的那块。

启动pppoe服务

[root@MASTER ppp]# pppoe-server -I eth0 -L 192.168.1.151 -R 192.168.1.2 -N 20

I:指定响应PPPOE请求的端口,现在使用的eth0,也就是内网的

L:PPPOE服务器的IP地址,客户端连接可以看到的服务器地址

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

N:地址池的IP地址递增几个,本例中添增10,也就是从192.168.1.2开始分配,一 共 

     分 配20个IP地址

到现在这个pppoe服务器就可以工作了。

找个客户端,建立一个拨号连接

 

 

可以看到已经连接上

 

上网测试

 

打个网页。


注意:centos5.0有个bug,必须把syslogd这个进程终止后,pppoe才能拨号成功

二、总结:

1.启动pppoe服务器的命令如下:
pppoe-server -I eth1 -L 192.168.1.1 -R 192.168.1.2 -N 20
其中-I参数指定工作网卡接口,-L指定服务器端IP地址,-R参数指定分配给客户端的起始IP地址,-N参数为最大pppoe会话数(进程数,也是IP数)
2.pppoe-sever会创建一个pppoe子进程,然后由pppoe子进程调用 pppd进程进行ppp会话,pppoe子进程创建pppd进程时默认会指定pppd读取/etc/ppp/pppoe-server- options(可以通过pppoe-server的-O选项另外指定),因此有些教程说要修改/etc/ppp/options文件的相关pppd参 数,我觉得参数应该都加在/etc/ppp/pppoe-server-options中。 
3./etc/ppp/pppoe-server-options中不要包含login选项,因为该选项表示用系统密码数据库中的密码进行验证(我觉得就是用linux中的账户和密码来验证) 
4.可以通过在/etc/ppp/pppoe-server-options中指定ms-dns选项指定dns服务器,有关pppd的相关选项可以通过man pppd查询 
5.pap的账户和密码在/etc/ppp/pap-secrets文件中设定,chap的账户和密码在/etc/ppp/chap-secrets中设定 
6.默认/etc/ppp/pap-secrets和/etc/ppp/chap-secrets文件只有root用户可以读取,可以通过给pppd程序加上setuid权限使其能够读写,命令如下:
chmod u+s /usr/sbin/pppd 
7.另发现pppoe与syslogd服务有冲突,必须关闭syslogd服务后启用pppoe-server服务,这样客户端才能连接成功,网上查与pppd版本有关,2.4.3-2.4.4版本有问题,升级到2.4.5版本后就没有问题了。

Logo

更多推荐