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