![]() | 在您连接到 ISP 之前,请确保您了解通过 DSL 直接连接到互联网的所有安全问题。根据您的 ISP,大多数外部用户都可以访问您的系统,您应该在将您的机器连接到互联网之前设置任何防火墙、禁用端口/服务以及设置任何密码。请参阅下面的 安全部分 和 链接部分,以获取关于这个非常重要主题的更多信息。不要事后才考虑这个问题!做好准备。 |
如果您在美国的 Baby Bells 之一订阅服务,您可以确定那是 PPPoE,因此您将需要一个 PPPoE 客户端。
下面的 链接部分 中有一些特定于提供商的常见问题解答和 HOWTO。
Linux 有几个 PPPoE 客户端(见下文)。PPPoX 模拟了拨号类型的环境。用户通过用户名和密码进行身份验证,用户名和密码会传递到 RADIUS 服务器,就像传统的拨号 PPP 一样。可路由的 IP 地址和其他相关信息将返回给客户端。当然,实际上没有发生拨号。处理方式的机制因客户端而异,因此最好仔细阅读 RTFM。通常,您将设置如下配置文件:pap-secrets, 等等。
值得注意的是,PPPoE 也适用于非以太网设备(如 USB),前提是安装了正确的驱动程序。
从 ISP 的角度来看,PPP 更容易维护和排除故障。从最终用户的角度来看,设置通常需要更多工作,通常使用更多 CPU,并且连接可能不如稳定。无论如何,这似乎是未来的趋势。世界上许多大型电信公司,尤其是美国的 RBOC(Baby Bells),已经承诺使用 PPPoX。设置 PPPoX 连接与设置桥接/DHCP 连接完全不同。
由于从 DSLAM 到调制解调器的线路上的流量通常是 ATM,因此原始 ATM 连接似乎是合理的。虽然有可能,但在美国却很少见(如果存在的话),并且除了 PCI ATM 卡(例如 Efficient Networks 3010)之外还需要一个调制解调器。最近的 2.4 内核确实支持 ATM。(有关更多信息,请参阅 链接部分。)
这在某些时候可能是一个可行的解决方案,但它只是还没有 “到位”,主要是因为它的实施成本更高。
最常见的配置是 “桥接” 模式下的 DSL 调制解调器。PPPoX 和 DHCP 都可以使用此设置。在这种情况下,WAN 接口通常意味着您的 NIC。这是您的系统与外部世界连接的地方。(如果您有路由器,请参阅下面的 路由器特定说明。)因此,本质上我们将配置 NIC,通常是 “eth0”,因为它是一个以太网接口。
使用 PPPoX,一旦连接建立,就会有一个 “ppp0” 或类似的接口,就像拨号一样。一旦与 PPP 服务器的连接建立,这将成为 WAN 接口,但出于配置目的,我们最初将关注 “eth0”。
ISP 可能有多种方式来设置您的 IP 连接
静态 IP。
通过 DHCP 在桥接网络上的动态 IP。
通过 PPPoX 的动态 IP。
通过 PPPoX 的静态 IP。
让我们分别看一下这些。
根据 ISP 提供的信息配置 IP 地址、子网掩码、默认网关和 DNS 服务器信息。每个 Linux 发行版(Redhat、Debian、Slackware、SuSE 等)都有不同的方法来执行此操作,因此请查看您的发行版的文档。每个发行版都可能有自己的工具来执行此操作。例如,Redhat 有 netcfg。您也可以使用 ifconfig 和 route 命令手动执行此操作。有关更多信息和具体细节,请参阅这些命令的手册页或 Net HOWTO。这是一个使用虚假 IP 的快速命令行示例:
# ifconfig eth0 111.222.333.444 up netmask 255.255.255.0 # route add default gw 111.222.333.1 dev eth0 |
请务必在以下位置添加正确的名称服务器:/etc/resolv.conf.
![]() | 注意 |
---|---|
如果您的 ISP 使用 MAC 地址身份验证,并且您更改了网络设备(例如 NIC),则您需要向 ISP 注册新地址,否则您将无法连接。 |
PPPoE(以太网上的 PPP)是 ISP 控制您的连接的另一种方式,并且在 ISP 中越来越受欢迎。设置它与上面的静态 IP 或 DHCP 非常不同,并且可能需要更多工作。最近的发行版现在都附带了 PPPoE 客户端。如果您的发行版没有,那么您将必须下载一个。查看任何 Linux 存档站点,如 http://freshmeat.net 等,或查看下面。
一些当前可用的 GPL PPPoE 客户端
Roaring Penguin (rp-pppoe):http://www.roaringpenguin.com/pppoe/,作者 David F. Skoll。据报道非常容易设置和上手。由于其易于安装的声誉,这是一个流行的 Linux PPPoE 客户端,现在已与某些发行版捆绑在一起。rp-pppoe 在 2.0 和 2.2 内核上作为用户模式客户端工作,在 2.4 内核上以内核模式工作。
PPPoEd: http://www.davin.ottawa.on.ca/pppoe/,作者 Jamal Hadi Salim,是另一个流行的 Linux 客户端,也与某些发行版捆绑在一起。这是一个基于内核的 2.2 内核实现。现在包含了一个设置脚本,因此不需要打补丁,使安装快速而简单。此外,与 rp-pppoe(2.0/2.2 内核)等用户空间替代方案相比,CPU 密集程度更低。
PPPoE Redirector: http://www.ecf.toronto.edu/~stras/pppoe.html。这是一个重定向器,允许将 PPPoE 与 pppd-2.3.7 或更高版本一起使用。不需要重新编译其他系统组件。它旨在作为 2.4.x 系列之前的临时解决方案,该系列将包括对 PPPoE/A 的内核支持。(此时似乎没有积极开发。)
2.4.x 内核包括本机 PPPoE 支持。2.4 的 PPPoE 页面是 http://www.shoshin.uwaterloo.ca/~mostrows [链接已失效,抱歉,找不到新页面],作者是 Michal Ostrowski,内核 PPPoE 的维护者。这包括安装和配置内核模式 PPPoE 的详细说明。
EnterNet 是 NTS 的非 GPL PPPoE 客户端,http://www.nts.com,一些 ISP 正在将其作为 Linux 客户端分发。它确实附带源代码,但无法免费下载。(我没有找到任何人对这个印象深刻。)
根据您选择的客户端,只需按照INSTALL说明和该软件包中包含的其他文档(README, FAQ, 等等)。
一旦 PPPoE 客户端连接,您的连接应该看起来像下面 Roaring Penguin 的示例,其中 “eth0” 连接到调制解调器
$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.254 * 255.255.255.255 UH 0 0 0 eth1 208.61.124.1 * 255.255.255.255 UH 0 0 0 ppp0 192.168.0.0 * 255.255.255.0 U 0 0 0 eth1 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default 208.61.124.1 0.0.0.0 UG 0 0 0 ppp0 $ ifconfig eth0 Link encap:Ethernet HWaddr 00:A0:CC:33:74:EB UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:297581 errors:0 dropped:0 overruns:0 frame:0 TX packets:266104 errors:1 dropped:0 overruns:0 carrier:2 collisions:79 txqueuelen:100 Interrupt:10 Base address:0x1300 eth1 Link encap:Ethernet HWaddr 00:A0:CC:33:8E:84 inet addr:192.168.0.254 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:608075 errors:0 dropped:0 overruns:0 frame:0 TX packets:578065 errors:0 dropped:0 overruns:0 carrier:0 collisions:105408 txqueuelen:100 Interrupt:9 Base address:0x1200 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:3924 Metric:1 RX packets:1855 errors:0 dropped:0 overruns:0 frame:0 TX packets:1855 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 ppp0 Link encap:Point-to-Point Protocol inet addr:208.61.124.28 P-t-P:208.61.124.1 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1 RX packets:297579 errors:0 dropped:0 overruns:0 frame:0 TX packets:266102 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:10 |
![]() | 注意 |
---|---|
PPPoE 向以太网帧添加了 8 个字节的额外开销,ppp0 接口 MTU 的正确初始最大设置为 1492。如果 MTU 设置得太高,可能会导致数据包分片场景混乱,称为路径 MTU 发现黑洞,其中连接的两端无法通信。一个典型的症状是某些网页无法正确加载,以及可能出现的其他烦人的问题。您可能还需要将任何伪装 LAN 连接上的接口 MTU 设置为 1452。这不适用于 PPPoA、桥接或路由配置,仅适用于 PPPoE!有关技术说明,请参阅 rfc2923。 |
实际上,对于 PPPoE,实际设置应至少比您和最终目的地之间的任何接口少 8 个字节(额外的 PPPoE 协议开销)。所有路由器通常都设置为 1500,因此从您的角度来看,1492 是正确的。但是,可能在某个地方路由器配置为较低的设置,这可能会导致问题,尤其是网页加载和其他流量故障。测试此问题的方法是不断降低 MTU,直到一切“正常工作”。
PPPoA 要么完全在硬件中完成,要么作为设备特定的驱动程序实现。没有像 PPPoE 那样的通用 PPPoA 软件客户端。2.2 内核有一个 ATM 补丁,2.4.x 内核支持 ATM,以及一个基于 Efficient Networks 3010 以及其他 ATM 卡的项目。Linux 上的 ATM 首页在这里: http://linux-atm.sourceforge.net/。更多信息请访问 http://www.sfgoth.com/~mitch/linux/atm/pppoatm/,来自该项目的内核开发人员。现有的 PPPoA 实现是基于硬件/驱动程序的,并且 Linux PPPoA 调制解调器驱动程序目前非常稀缺。上述调制解调器似乎无法通过正常的零售渠道获得。如果这是 ISP 提供的唯一协议,并且不支持 PPPoA 的外部调制解调器不可用,这可能会成为一个问题。
如果 PPPoA 是您的 ISP 的唯一选择,您不妨考虑使用可以处理 PPPoA 连接的路由器/调制解调器之一,并让硬件处理一切。
Alcatel SpeedTouch Home 以太网调制解调器(取代了 Alcatel 1000)支持桥接和 PPPoA 连接。调制解调器本身在内部处理 PPPoA 协议。当处于 PPTP/PPPoA 模式(与 RFC1483 桥接模式相反)时,Linux 将通过 PPTP(MS VPN)连接到调制解调器。Linux PPTP 首页是 http://cag.lcs.mit.edu/~cananian/Projects/PPTP/,并且与此调制解调器配合良好。除了安装 pptp 之外,您的内核还必须支持 PPP。
调制解调器具有内部配置页面,可以通过将浏览器指向默认 IP 地址 http://10.0.0.138 来访问。(当然,您必须将 NIC 设置为 10.0.0.0 网络,并具有类似的 IP,例如 10.0.0.1,才能访问调制解调器的配置页面。)对于 PPPoA,连接类型为“PPTP”。如果默认设置不起作用,您将必须从提供商处获取其他设置。诸如“VPI/VCI”和“封装”之类的设置可能因提供商而异。当然,如果调制解调器来自您的提供商,则所有这些都应该已经配置好了。
下一步是配置 pptp,这通过配置 pppd 文件来完成/etc/ppp/pap-secrets(或chap-secrets)和/etc/ppp/options。这是输入用户名和密码的地方。例如
/etc/ppp/pap-secrets:
# 客户端 密钥 服务器 IP 地址
login@isp.com * my_password_here *
和/etc/ppp/options:
name "login@isp.com"
noauth
noipdefault
defaultroute
一旦一切配置正确,就应该只是启动 pptp,将其指向调制解调器的地址的问题了
#pptp 10.0.0.138 |
![]() | 注意 |
---|---|
Alcatel 提供这些调制解调器的许多子型号。这些功能可能并非在所有型号上都可用,或者可能与默认值有所不同。如果购买二手调制解调器,则需要注意这一点。 此调制解调器仅支持一个并发 PPTP 连接。 |
# ifconfig eth0 10.0.0.2 up netmask 255.0.0.0 # route add -net 10.0.0.0 $ ping 10.0.0.1 |
![]() | 一些制造商可能会将这些路由器宣传为具有 “防火墙” 功能。在某些情况下,这仅仅相当于基本的 NAT(网络地址转换或伪装)。按照大多数标准,这不是一个完整的、真正的防火墙。在购买之前,请务必仔细阅读细则,并确保您知道其中包含多少真正的防火墙功能。 |