LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 5129|回复: 6

架设PPPOE服务器

[复制链接]
发表于 2006-7-17 14:25:53 | 显示全部楼层 |阅读模式
[color="Blue"]     之前已经有luojiangming兄弟写的"架设PPPOE服务器跟我来"的精华贴,为什么我要重新写一篇呢?有下面的原因:
       luojiangming兄弟写的东西在操作上说得不是很细,像我这种菜鸟按照那篇文档就是没有做了PPPOE服务器来,所以想写一个功能简单,但操作步骤详细些的文档出来。
       因为公司的产品经常需要PPPOE测试,有时候ADSL线路又不可用(其他部门使用或者电信问题了),挺不方便的,于是想做个PPPOE服务器,在网上找了很多中文方面的资料,找来找去就那两个版本(一份为luojiangming写的版本,一份是BSD的设置版本),但安装过程说得不是很清楚,这给没有架设过该服务器的用户在重现上造成了很大的难度。像我利用这两个版本的中文资料来在ubuntu 5.10上就无法实现得了(也不一定是这些资料上存在着问题,有可能仅仅是我这一系统版本上的ppp和rp-pppoe这两个静态包在编译的时候没有考虑当使用pppoe-server这个应用程序时它们之间需要的关联性)。后来终于找到一份在debian的woody版本上使用源码包架设pppoe服务器的文档,终于在我的ubuntu上成功地架设了这一服务器。
    注:当我没有使用源码包来编译安装这两个程序时,使用该文档的设置方法也是无法成功搭建服务器的,看来真的有可能是ubuntu的这两个软件被编译成不适合做pppoe服务器的。
    所以我把自己做实验的过程写成文档,方便中文用户阅读,并以源码包的方式来安装和使用,这样基本上可以适应所有的linux发行版了。这篇文档假设读者已经掌握如编译内核、linux系统管理基础(如tar命令的使用)等知识,如果您还不清楚这些知识,不建议阅读这篇文档。
一、准备工作:重新编译内核,并做好设备和模块配置准备。
    确保您的内核配置文件.config中的下面几行是选择为y的,如下:
    CONFIG_PPP=y
    CONFIG_PPP_ASYNC=y
    CONFIG_PPP_SYNC_TTY=y
    CONFIG_PPP_DEFLATE=y
    CONFIG_PPP_BSDCOMP=y
    CONFIG_PPPOE=y
    CONFIG_SERIAL_NONSTANDARD=y
    CONFIG_N_HDLC=y
    如果是使用make menuconfig来编译内核配置文件时,请按下面的说明来更改:
    到这个位置下:
-> Device Drivers
    -> Network device support
    确保下面的几个选项已经选中:
<*> PPP (point-to-point protocol) support
  • PPP multilink support (EXPERIMENTAL)
    <*> PPP support for async serial ports
    <*> PPP support for sync tty ports
    <*> PPP Deflate compression
    <*> PPP BSD-Compress compression
    <*> PPP over Ethernet (EXPERIMENTAL)
        到这个位置下:
    -> Device Drivers
        -> Character devices
        确保下面的几个选项已经选中:
  • Non-standard serial port support
    <*> HDLC line discipline support
    把这几个内核选项简单地介绍一下:
    CONFIG_PPP=y:使系统支持PPP协议。
    CONFIG_PPP_ASYNC=y:使系统支持PPP协议的异步模式(关于异步和同步模式有什么不同我就不是很清楚了)。
    CONFIG_PPP_SYNC_TTY=y:使系统支持PPP协议的同步模式。
    CONFIG_PPP_DEFLATE=y:使系统支持PPP协议的Deflate压缩算法(和gzip一样的压缩算法)。
    CONFIG_PPP_BSDCOMP=y:使系统支持PPP协议的BSD-Compress压缩算法。
    CONFIG_PPPOE=y:使系统支持PPPOE协议。
    CONFIG_SERIAL_NONSTANDARD=y:使系统支持多个串行口来允许多个终端的拨号连接。
    CONFIG_N_HDLC=y:使用系统支持同步HDLC通信。
        不管是什么方法设置了内核配置文件后,都要重新编译内核并更改menu.lst(grub.conf)文件,之后重启系统,使用上新编译的内核。
        如果你的系统没有/dev/ppp,那么可以通过下面的方法来创建一个:
    #mknod --mode=664 /dev/ppp c 108 0
       修改系统的模块配置文件,这个文件的名字和位置还真不好说,大家如果找不到请通过其他途径了解一下,debian系统请到/etc/modules.conf里添加,ubuntu系统请到/etc/modprobe.d/aliases里面添加下面的内容:
    alias char-major-108 ppp_generic
    alias tty-ldisc-3 ppp_async
    alias tty-ldisc-13 n_hdlc
    alias tty-ldisc-14 ppp_synctty
    alias net-pf-24 pppoe

    二、下载pppd和rp-pppoe。
        目前可以下载到ppp-2.4.4.tar.gz和rp-pppoe-3.8.tar.gz或者更新的版本,本文就以这两个版本的软件为例来架设服务器。
    三、安装。
    1、把pppd和rp-pppoe解压缩到/usr/local/src中。
    2、安装pppd
    cd /usr/local/src/ppp-2.4.4
    ./configure --prefix=/usr/local/ppp
    make
    make install install-etcppp
    3、安装rp-pppoe
    cd /usr/local/src/rp-pppo-3.8/src
    PATH=$PATH:/usr/local/ppp/sbin ./configure --prefix=/usr/local/ppp --enable-plugin=/usr/local/src/ppp-2.4.4
    make
    make install
    4、拷贝rp-pppoe.so到/etc/ppp/plugins(这一步应该也可以不用,因为原文档介绍的rp-pppoe的版本为3.5,当我使用3.8时,发现/etc/ppp/plugins里面已经有rp-pppoe.so了,不过再拷贝一次也没有问题)
    cp /usr/local/ppp/lib/pppd/2.4.3/rp-pppoe.so /etc/ppp/plugins

    四、配置和使用。
    1、修改/etc/ppp/options,让它的内容如下(下面的所有文件都一样,如果你的系统中找不到,则创建一个就是了):
    lock
    crtscts
    nobsdcomp
    nodeflate
    nopcomp
    2、修改/etc/ppp/pppoe-server-options文件,让这的内容如下:
    auth
    #使用chap认证方式,如果想用pap认证方法则用require-pap
    require-chap
    default-mru
    default-asyncmap
    lcp-echo-interval 60
    lcp-echo-failure 5
    #这两条ms-dns参数是设置给PPPOE客户端分配的DNS服务器地址
    ms-dns 1.1.1.1
    ms-dns 2.2.2.2
    noipdefault
    noipx
    nodefaultroute
    #如果您想让PPPOE客户端机器可以通过PPPOE服务器上网,则得通过这个参数开开启PPPOE服务器的arp proxy功能
    proxyarp
    noktune
    netmask 255.255.255.255
    logfile /var/log/pppd.log
    3、添加客户端的用户名和密码文件,如果使用chap认证方式请更改/etc/ppp/chap-secrets文件,如果使用pap认证方式请更改/etc/ppp/chap-secrets文件,采用下面的格式:
    “test" * "123456" *
    每一行由四个字段构成,第一个字段为帐户名称,例子中设置为test,第二个字段为服务器,保持为*不做限制就是,第三个字段为用户密码,例子中设置为123456,第四个字段为允许从那个IP来拨号,设置为*不作限制就可以了。
    4、启动PPPOE服务器。
    /usr/local/ppp/sbin/pppoe-server -k -I eth0 -L 192.168.1.1 -R 192.168.1.10-200
    上面命令在启动PPPOE服务器时指定了本地接口的IP为192.168.1.1,给客户端分配的IP地址范围是192.168.1.10-192.168.1.200。
  • 发表于 2006-7-20 11:19:12 | 显示全部楼层
    这个贴写得这么好,怎么没人顶?
    回复 支持 反对

    使用道具 举报

    发表于 2006-7-20 14:31:28 | 显示全部楼层
    建议加上radius认证的,这样功能更丰富,管理更方便
    回复 支持 反对

    使用道具 举报

    发表于 2006-11-23 11:48:46 | 显示全部楼层
    Post by kevin.tan
    这个贴写得这么好,怎么没人顶?

    同上,同上,同上,同上
    回复 支持 反对

    使用道具 举报

    发表于 2006-11-29 11:48:19 | 显示全部楼层

    請教一下,xp怎麼撥接上來,

    能不能講一下設備是什麼接的,服務器和客戶端都需要MODEN嗎
    回复 支持 反对

    使用道具 举报

    发表于 2008-1-3 15:36:16 | 显示全部楼层
    ding   顶顶
    回复 支持 反对

    使用道具 举报

    发表于 2008-1-10 15:25:56 | 显示全部楼层
    谢谢!!!楼主了。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表