发新话题
打印

关于Freebsd下构建pppoe 拨入服务器和用mpd 构建vpn接入服务器

关于Freebsd下构建pppoe 拨入服务器和用mpd 构建vpn接入服务器

我们单位的网络分内网和外网。内网为公务内网,由网通提供的mplsvpn构成自己的专网;外网与互联网相连,由网通的光纤接入。由于这些原因,很少去研究vpn和adsl拨号服务器。现由于单位拓展业务,内网需要与外地的部门内部网络互联,所以对mpd和pppoe做了点研究,现将试验中的体会贴出来,希望对对关注这方面应用的朋友有所帮助。
试验环境为:FreeBSD 6.2 + mpd (v3.18)
首先强调一点,无论是用pppoe做adsl拨入服务器还是用mpd做vpn接入服务器,FreeBSD 6.2的默认安装已经足够,不需对内核增加或删减任何选项,即不需要重新编译内核。这与网上许多朋友介绍的需要在内核增加与NETGRAPH 有关的若干选项,重新编译内核的做法是不一致的,看来FreeBSD 6.2对针对上述需要进行了预留,创建和谐社会先走了一步。
一、安装pppoe拨入服务器
FreeBSD自带的pppoe可以用作adsl拨出登录ISP,也可以做adsl的拨入服务器。应该说,用pppoe作adsl拨入服务器非常简单,只需以下四步:
1、修改/etc/ppp/ppp.conf

代码:
default:
set log Chat Command Phase
enable pap
enable chap
allow mode direct
enable proxy
disable ipv6cp
set mru 1492
set mtu 1492
set ifaddr 192.168.0.1  192.168.0.2-192.168.0.254
set speed sync
set timeout 0
enable lqr
accept dns

其中192.168.0.1是为adsl拨入用户指定的网关,192.168.0.2-192.168.0.254是地址池
2、修改/etc/ppp/ppp.secret
代码:
ljf331 123456 192.168.0.227p

你可以为adsl拨入用户指定ip。可能软件设计有BUG, 在ip号后必须多给一无意义字符,若直接给出192.168.0.227的话,用户得到的ip是192.168.0.22
3、在/etc/rc.conf添加如下内容
代码:
pppoed_enable="YES"
pppoed_flags="-d -P /var/run/pppoed.pid -a "server" -l "default" "
pppoed_interface="vr0"
重新启动服务器
4、在winxp下建个adsl客户端,拨入即可。

二、 安装pptp vpn拨入服务器
FreeBSD下用mpd安装pptp服务器更简单。亦只需不多的几步:
1、安装
代码:
cd /usr/ports/net/mpd
make install

2、配置mpd.conf文件
代码:
default:
        load pptp
pptp:
        new -i ng0 pptp pptp
        set iface disable on-demand
        set iface enable proxy-arp
        set iface idle 1800
        set iface enable tcpmssfix
        set bundle enable multilink
# enable TCP-Wrapper (hosts_access(5)) to block unfriendly clients
#       set bundle enable tcp-wrapper
# use RADIUS servers
#       load radius
        set link yes acfcomp protocomp
        set link no pap chap
        set link enable chap
        set link keep-alive 10 60
        set link mtu 1460
        set ipcp yes vjcomp
        set ipcp ranges 192.168.0.3/32 192.168.0.4/32
        set ipcp dns 211.90.8.129
#      set ipcp nbns 192.168.1.4
#
# The five lines below enable Microsoft Point-to-Point encryption
# (MPPE) using the ng_mppc(netgraph node type.
#
        set bundle enable compression
        set bundle enable encryption
        set ccp yes mppc
        set ccp yes mpp-e40
        set ccp yes mpp-e128
        set ccp yes mpp-stateless

对于mpd给出的示例文件,我只修改了三处,解释如下:
代码:
set ipcp ranges 192.168.0.3/32 192.168.0.4/32

其中是192.168.0.3是VPN的接入网关,192.168.0.4是vpn拨入后获得的ip号
代码:
set ipcp dns 211.90.8.129

其中211.90.8.129是我单位统一的外网dns
代码:
#      set ipcp nbns 192.168.1.4   

nbns对我无用,关闭
3、配置mpd.links文件
代码:
pptp:
        set link type pptp
        set pptp self 192.168.1.222
        set pptp enable incoming
        set pptp disable originate

其中192.168.1.222是mpd绑定用于监听的网址,一定要据实填写。
4、配置mpd.secret文件
代码:
MyLogin         MyPassword
PeerLogin       PeerPassword
ConsoleLogin    ConsolePassword
#fred            "fred-pw"
#joe             "foobar"        192.168.1.1
#bob             "\x34\"foo\n"   192.168.1.10/24
#sal             "yipee"         192.168.1.254
ljf331         "123456"

5、运行/usr/local/etc/rc.d/mpd start
当然为了开机自动运行,可以在/etc/rc.conf中增加以下内容
代码:
mpd_enable="YES"

6、在Windows XP建立vpn客户端拨入即可。

结论:
无论是adsl拨入还是vpn拨入,效果都是一样的,不用设什么网关和路由,类似直接挂接到局域网的主交换机。
相同配置下,mpd 较慢一些。这与网上说法,“pppoe基于用户模式,mpd基于内核模式,在大流量和多用户下mpd性能较好”不尽一致。
adsl拨入服务器适用于局域网,我看用于网吧抵御arp倒满合适。vpn虽适用于广域网,但属于单机接入,与我单位所谓的并网要求不符;性能上也不理想,看来mpd尚需优化。
“十一”假期想测试一下IPsec,如有心得将贴出来和大家共享。
各位老大,对我根据工作需要选定的什么样的并网方案,如有建议望不吝赐教。

TOP

没人关注?用用户模式的PPOE和用内核模式的PPTP,这不是一个量上的比较,本来pptp就是加密了,效率肯定比PPOE要低,这么测试不科学吧?不过我一直没有测试过,没有调查。

TOP

发新话题