28.6. 使用 ATM 上的 PPP (PPPoA)

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

28.6.1. 使用 Alcatel SpeedTouch™USB 的 PPPoA

针对这一设备的 PPPoA 支持, 在 FreeBSD 中是作为 port 提供的, 因为其固件使用了 阿尔卡特许可协议, 因而不能与 FreeBSD 的基本系统一起免费地再发布。

使用 Ports 套件 可以非常方便地安装 net/pppoa port, 之后按照它提供的指示操作就可以了。

和许多 USB 设备类似, 阿尔卡特的 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样例。

28.6.2. 使用mpd

可以使用 mpd 来连接多种类型的服务, 特别是 PPTP 服务。 您可以在 Ports Collection 中找到 mpd, 它的位置是 net/mpd。 许多 ADSL modem 需要在 modem 和计算机之间建立一条 PPTP 隧道, 而阿尔卡特 SpeedTouch™ Home 正是其中的一种。

首先需要从 port 完成安装, 然后才能配置 mpd 来满足您的需要, 并完成服务商的配置。 port 会把一系列包括了详细注解的配置文件实例放到 PREFIX/etc/mpd/。 注意, 这里的 PREFIX 表示 ports 安装的目录, 默认情况下, 应该是 /usr/local/。 关于配置 mpd 的完整说明, 会以 HTML 格式随 port 一起安装。 这些文件将放在 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服务是推荐的方式。

28.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

您在 DSL 服务提供商那里的用户名

2

您帐户的口令。

警告:

由于您必须将帐号密码以明文的方式放入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

提示:

您应该在命令的最后加上(&)号, 否则 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 以获得线索。

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.