3. 配置 Linux

在您连接调制解调器并使其同步后,您就可以配置 Linux 并验证与 ISP 的连接了。虽然我将提及 Linux 系统,但您可以想象将任何类型的 10baseT 设备连接到调制解调器。这包括路由器、集线器、交换机、PC 或您希望使用的任何其他系统。我们在这里只介绍 Linux 方面。

Warning

在您连接到 ISP 之前,请确保您了解通过 DSL 直接连接到互联网的所有安全问题。根据您的 ISP,大多数外部用户都可以访问您的系统,您应该在将您的机器连接到互联网之前设置任何防火墙、禁用端口/服务以及设置任何密码。请参阅下面的 安全部分链接部分,以获取关于这个非常重要主题的更多信息。不要事后才考虑这个问题!做好准备。

3.1. 桥接与 PPPoX 网络

在我们深入安装和配置系统的最后阶段之前,让我们看看各种 DSL ISP 如何设置他们的网络。了解您的 ISP 如何做到这一点非常重要,因为存在多种可能性,并且每种可能性所涉及的步骤都大相径庭。这可能不是 ISP 正在宣传的那种东西,而且由于您没有使用 Windows,您可能无法访问 ISP 提供的安装盘。如果您不确定,请咨询 ISP 的技术支持人员,或者更好的是,找到同一服务的其他知识渊博的用户。

更令人困惑的是,一些 ISP 可能提供不止一种服务(除了各种比特率计划之外)。例如:Verizon(前身为 Bell Atlantic)最初提供具有桥接连接的静态 IP。现在所有新安装都使用具有动态 IP 的 PPPoE。出于安装和配置目的,这非常不同。

两种最常见的 DSL 网络实现是桥接/DHCP 和 PPPoX。两者都有获取 IP 地址和其他相关网络配置详细信息的机制,因此我们不必担心这个问题。但确实还有其他不太常见的连接方式。我们的工作是找到合适的客户端,并尽我们所能使其启动并运行。最常见的将在下面讨论。

重要提示!您需要预先了解您的 ISP 如何设置连接到其网络的。重申一下,两种主要可能性是桥接/DHCP 和 PPPoE。这些是互斥的实现方式。而且确实还有其他可能性。因此,您需要预先确切地知道这是什么。而且它必须是正确的,否则您将浪费大量时间和精力。您也不能选择哪一个。这取决于 ISP 如何构建其网络。请注意,PPPoE 可以通过桥接网络运行,因此仅仅知道您是否是桥接网络并不一定足够。如果您的提供商为您提供路由器,则路由器固件很可能会为您处理所有这些。

如果您在美国的 Baby Bells 之一订阅服务,您可以确定那是 PPPoE,因此您将需要一个 PPPoE 客户端。

下面的 链接部分 中有一些特定于提供商的常见问题解答和 HOWTO。

3.1.2. PPPoX

现在的主要替代方案是 PPPoX,意思是 PPPoE(以太网上的 PPP)或 PPPoA(ATM 上的 PPP,也称为 PPPoATM)。这两种相关协议目前都在部署中,但目前看来,PPPoE 是两者中更常见的。PPPoX 是一个相对较新的协议,顾名思义,它是专为 DSL 网络而调整的点对点协议的变体。

Linux 有几个 PPPoE 客户端(见下文)。PPPoX 模拟了拨号类型的环境。用户通过用户名和密码进行身份验证,用户名和密码会传递到 RADIUS 服务器,就像传统的拨号 PPP 一样。可路由的 IP 地址和其他相关信息将返回给客户端。当然,实际上没有发生拨号。处理方式的机制因客户端而异,因此最好仔细阅读 RTFM。通常,您将设置如下配置文件:pap-secrets, 等等。

值得注意的是,PPPoE 也适用于非以太网设备(如 USB),前提是安装了正确的驱动程序。

从 ISP 的角度来看,PPP 更容易维护和排除故障。从最终用户的角度来看,设置通常需要更多工作,通常使用更多 CPU,并且连接可能不如稳定。无论如何,这似乎是未来的趋势。世界上许多大型电信公司,尤其是美国的 RBOC(Baby Bells),已经承诺使用 PPPoX。设置 PPPoX 连接与设置桥接/DHCP 连接完全不同。

3.2. 配置 WAN 接口

最常见的配置是 “桥接” 模式下的 DSL 调制解调器。PPPoX 和 DHCP 都可以使用此设置。在这种情况下,WAN 接口通常意味着您的 NIC。这是您的系统与外部世界连接的地方。(如果您有路由器,请参阅下面的 路由器特定说明。)因此,本质上我们将配置 NIC,通常是 “eth0”,因为它是一个以太网接口。

使用 PPPoX,一旦连接建立,就会有一个 “ppp0” 或类似的接口,就像拨号一样。一旦与 PPP 服务器的连接建立,这将成为 WAN 接口,但出于配置目的,我们最初将关注 “eth0”

ISP 可能有多种方式来设置您的 IP 连接

让我们分别看一下这些。

3.2.2. 桥接/DHCP 配置

拥有桥接网络的 ISP 通常使用 DHCP 来分配 IP 地址并验证用户身份。所有发行版都带有一个或多个 DHCP 客户端。 dhcpcd 似乎是最常见的。 pump 随 Redhat 6.0 及更高版本的 Redhat 发行版一起提供。DHCP 客户端将从 ISP 的服务器获取 IP “租约” 以及其他相关信息:网关地址、DNS 服务器和网络掩码。租约将根据 ISP 的配置定期 “续订”

您会希望 DHCP 客户端在启动时启动,因此请使用您的发行版的方法来执行此操作。DHCP 通常没有什么需要配置的,因为它相当简单易用。如果 NIC 不是 “eth0”,您可能需要告诉它要监听哪个接口。您也可以从命令行启动它以开始使用。有关更多信息,请参阅各自的手册页。

除非您有静态 IP,否则 ISP 需要某种方式来了解您在连接时是谁。通过 DHCP 完成此身份验证过程有两种方法。第一种也是最常见的方法是通过网络设备的 MAC(或硬件)地址。通常这将是 NIC。MAC 地址是一个唯一的标识符,可以在启动消息中找到,也可以使用 ifconfig 找到,它看起来像这样:00:50:04:C2:19:BC。您需要在首次连接之前将 MAC 地址提供给 ISP。

另一种 DHCP 身份验证方法是通过分配的主机名。在这种情况下,ISP 将为您提供此信息。您的 DHCP 客户端需要将此信息传递给服务器,以便您连接。 dhcpcdpump 都接受为此目的的 “-h” 命令行选项。有关详细信息,请参阅客户端的手册页或发行版的文档。

Note注意
 

如果您的 ISP 使用 MAC 地址身份验证,并且您更改了网络设备(例如 NIC),则您需要向 ISP 注册新地址,否则您将无法连接。

3.2.3. PPPoE 配置

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

 

Note注意
 

PPPoE 向以太网帧添加了 8 个字节的额外开销,ppp0 接口 MTU 的正确初始最大设置为 1492。如果 MTU 设置得太高,可能会导致数据包分片场景混乱,称为路径 MTU 发现黑洞,其中连接的两端无法通信。一个典型的症状是某些网页无法正确加载,以及可能出现的其他烦人的问题。您可能还需要将任何伪装 LAN 连接上的接口 MTU 设置为 1452。这不适用于 PPPoA、桥接或路由配置,仅适用于 PPPoE!有关技术说明,请参阅 rfc2923。

实际上,对于 PPPoE,实际设置应至少比您和最终目的地之间的任何接口少 8 个字节(额外的 PPPoE 协议开销)。所有路由器通常都设置为 1500,因此从您的角度来看,1492 是正确的。但是,可能在某个地方路由器配置为较低的设置,这可能会导致问题,尤其是网页加载和其他流量故障。测试此问题的方法是不断降低 MTU,直到一切“正常工作”。

3.2.4. PPPoA

PPPoA(PPPoATM 或 ATM 上的 PPP)比 PPPoE 更简洁,因为大部分工作都在硬件中完成,并且原始 DSL 流量是 ATM。与 PPPoE 不同,不需要用户空间客户端来管理连接,并且不需要额外的以太网协议层。身份验证仍然相同:用户名和密码连接,但机制不同,因为没有发生以太网封装。

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 连接的路由器/调制解调器之一,并让硬件处理一切。

3.2.5. 带有 Alcatel 以太网调制解调器的 PPTP/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

 

Note注意
 

Alcatel 提供这些调制解调器的许多子型号。这些功能可能并非在所有型号上都可用,或者可能与默认值有所不同。如果购买二手调制解调器,则需要注意这一点。

此调制解调器仅支持一个并发 PPTP 连接。

3.2.6. 调制解调器/路由器配置

一些 ISP 正在提供 “路由器” 作为连接设备。本质上,这些是带有内置调制解调器的迷你路由器。这些也都是基于以太网的设备,因此 Linux 应该也可以在这里正常工作。同样,兼容的、工作的 NIC 应该是使其工作所需的全部。

“路由器” 有许多优点。更好的路由器可以处理连接管理、IP 封装和身份验证,以及提供将您的 LAN 与外部流量隔离的方法,以及可能的其他功能。简而言之,它们可以完成所有工作。一个很大的优势是它们可以处理您的 ISP 连接所需的所有协议。

如果 ISP 要求使用 PPPoX,那么这将使生活变得轻松一些,因为您不必安装或配置任何其他软件即可使用他们的网络。调制解调器的固件将处理此问题。缺点是,这些路由器中的大多数都不像 Linux 路由器或其他软件解决方案那样灵活。当然,您可以在路由器后面设置一个 Linux 路由器,并兼得两者之长。具有更多更好功能的路由器也将花费更多。

虽然路由器的物理安装与调制解调器的安装非常相似(见上文),但路由器配置本身是不同的,因为您的第一个 “跳” 将是路由器的接口,而不是 ISP 的网关。路由器实际上将有两个接口——一个是从 LAN 侧连接的接口,另一个是连接到 ISP 的 WAN 侧的接口。您在这里的暴露点是路由器的 WAN 接口。

路由器还将具有一个预配置的私有 IP 地址,您将从 LAN 侧连接到该地址。这将是您的网关。公共 IP 地址将分配给 WAN 侧接口。通常,这些设备也充当 LAN 侧的 DHCP 服务器。因此,您可能只需启动一个 DHCP 客户端,例如 dhcpcdpump(基于 Redhat 的发行版)即可启动并运行。只需确保调制解调器/路由器首先同步。适当的步骤和配置应在用户手册中,或可从您的提供商处获得。

如果您是 PPPoX 客户,并且路由器正在处理连接的这一部分,那么您至少必须在连接之前配置您的用户名和密码。如果是桥接/DHCP 客户,您只需在路由器上激活 DHCP,并可能向您的提供商注册路由器的 MAC(硬件地址)。一些路由器具有 “MAC 克隆”,这意味着它们将报告所连接 NIC 的 MAC 地址。如果是静态 IP,那么您也必须配置它。

如果您需要直接访问路由器,您将需要知道制造商关于其 IP 地址的默认设置。请参阅用户手册,或咨询您的提供商。然后,您必须将 NIC 的接口设置为与路由器相同的网络。例如,如果路由器的 IP 为 10.0.0.1,请将您的接口地址设置为 10.0.0.2(通常为 eth0),并将网络掩码设置为 255.0.0.0。

 # ifconfig eth0 10.0.0.2 up netmask 255.0.0.0
 # route add -net 10.0.0.0
 $ ping 10.0.0.1

 

如果一切都正常工作,路由器应该响应 ping。如何永久配置它将因发行版而异。因此,请查看您的发行版的文档。现在您应该能够 ping 调制解调器/路由器,如果一切顺利,还可以 ping 更远的地方。然后使用 telnet 或 Web 浏览器对路由器进行任何进一步的配置。

即使 ISP 没有提供任何路由器选项,也有很多来自第三方制造商(如 Netgear、Linksys、Cisco、Zyxel、Cayman、Alcatel 等)的路由器可用。这些路由器将具有所有已提及的功能,甚至更多。只需确保它与您的提供商的 DSL 匹配。这是绕过 PPPoX 难题的一种好方法。

Caution

一些制造商可能会将这些路由器宣传为具有 “防火墙” 功能。在某些情况下,这仅仅相当于基本的 NAT(网络地址转换或伪装)。按照大多数标准,这不是一个完整的、真正的防火墙。在购买之前,请务必仔细阅读细则,并确保您知道其中包含多少真正的防火墙功能。

3.3. 连接

现在一切都应该到位了。您可能已经测试了您的连接。您应该看到到 ISP 网关的 ping 往返时间为 10-75 毫秒。如果出现问题并且您无法连接,请重新检查上述步骤,或参阅下面的 故障排除部分