21.6. Using PPP over ATM (PPPoA)

以下将介绍如何设置基于ATM的PPP(PPPoA). PPPoA是欧洲DSL提供商的普遍选择 .

21.6.1. 使用带有一个Alcatel SpeedTouch™USB的PPPoA

在FreeBSD中对这个设备的PPPoA支持是作为一个port 提供的.因为此设备的驱动程序是在 Alcatel的许可协议下发布的, 无法再在FreeBSD的基础系统中自由的重新发布.

要安装这个软件,只需使用ports collection. 安装 net/pppoaport,然后根据提供的指示操作.

如同大部分的USB设备, Alcatel SpeedTouch™ USB也需要从主机上 下载驱动程序以正常工作.可以在FreeBSD中自动完成这个过程(当每次设备被接入USB接口时,即完成传输). 加入到/etc/usbd.conf需要加入以下内容以启用自动化固件传输. root才有用户有权限编辑这个文件.

device "Alcatel SpeedTouch USB"
    devname "ugen[0-9]+"
    vendor 0x06b9
    product 0x4061
    attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o"

要启动USB守护进程usbd, 在/etc/rc.conf加入以下行:

usbd_enable="YES"

也可以将ppp设置成启动时拨号. 向 /etc/rc.conf加入以下这几行. 同样地您需要以root用户登录.

ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="adsl"

为了使其正常工作,您需要使用net/pppoa port提供的ppp.conf样例.

21.6.2. 使用mpd

您可以使用mpd连接多种服务 ,特别是PPTP服务.您能在ports collection中找到mpd (net/mpd).许多ADSL modem 需要在计算机和modem之间创建一个PPTP tunnel. Alcatel SpeedTouch Home就是这样的modem.

首先您必须安装这个port,然后您要配置 mpd以符合您的需要及提供商的设置.这个port把一系列编写 地很好的配置文件样例放在PREFIX/etc/mpd/目录中. 注意这里的 PREFIX指的是port安装的目录,默认的是 /usr/local/.port完成安装后,会有一份完整的mpd配置向导放在 PREFIX/share/doc/mpd/目录. 这里是一个使用mpd连接ADSL的样例配置信息. 配置分为两个文件 第一个是mpd.conf:

default:
    load adsl

adsl:
    new -i ng0 adsl adsl
    set bundle authname username (1)
    set bundle password password (2)
    set bundle disable multilink

    set link no pap acfcomp protocomp
    set link disable chap
    set link accept chap
    set link keep-alive 30 10

    set ipcp no vjcomp
    set ipcp ranges 0.0.0.0/0 0.0.0.0/0

    set iface route default
    set iface disable on-demand
    set iface enable proxy-arp
    set iface idle 0

    open
(1)
username用来向您的ISP进行验证.
(2)
password用来向您的ISP进行验证.

mpd.links包含连接的信息:

adsl:
    set link type pptp
    set pptp mode active
    set pptp enable originate outcall
    set pptp self 10.0.0.1 (1)
    set pptp peer 10.0.0.138 (2)
(1)
运行mpd的主机的IP地址.
(2)
ADSL modem的IP地址.Alcatel SpeedTouch Home 默认的是 10.0.0.138.

初始化连接:

# mpd -b adsl

您可以通过以下命令查看连接状态:

% ifconfig ng0
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500
     inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff

使用mpd连接ADSL服务是推荐的方式.

21.6.3. 使用pptpclient

也可以使用net/pptpclient连接其它的 PPPoA.

为了使用net/pptpclient连接 DSL服务,需要安装port或package并编辑/etc/ppp/ppp.conf.您需要有 root权限以进行这两项操作.以下是ppp.conf中的一个示例项. 参考ppp的联机手册ppp(8),以获取更多有关ppp.conf 选项的信息.

adsl:
 set log phase chat lcp ipcp ccp tun command
 set timeout 0
 enable dns
 set authname username (1)
 set authkey password (2)
 set ifaddr 0 0
 add default HISADDR
(1)
The username of your account with the DSL provider.
(2)
The password for your account.

Warning由于您必须将帐号密码以明文的方式放入ppp.conf 您应该确保没有任何人能看到此文件的内容.以下一系列命令将会确保此文件只对 root用户可读.参考chmod(1)chown(8) 的联机手册以获得更多信息.

# chown root:wheel /etc/ppp/ppp.conf
# chmod 600 /etc/ppp/ppp.conf

以下将为到DSL路由器的会话打开一个tunnel. 以太网DSL modem有一个设置的局域网IP地址. 以Alcatel SpeedTouch Home为例,这个地址是 10.0.0.138.路由器的文档应该会告诉您它使用地址.执行以下命令 以打开tunnel并开始会话:

# pptp address adsl

Tip: 您应该在命令的最后加上(“&”)号,否则 pptp 无法返回到命令行提示符.

要创建一个 tun虚拟设备用于进程pptpppp 之间的交互.一旦您返回到了命令行,或者 pptp 进程确认了一个连接,您可以这样检查tunnel设备:

% ifconfig tun0
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
        inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00
        Opened by PID 918

如果您无法连接,一般可以通过telnet或者web浏览器检查路由器(modem)的配置. 如果依旧无法连接,您应该检查pptp的输出及ppp的日志文件 /var/log/ppp.log 以获得线索.