Linux 在现实世界中

作者:Todd Lewis

自从几年前互联网向商业开发开放以来,许多人通过租用全球网络的连接、建立本地网络并挂牌成为互联网服务提供商 (ISP) 谋生。从强大的 MCI 到最简陋的夫妻店地下室组织,ISP 提供的服务完全相同——直接连接到互联网。小型企业主要通过调制解调器上的 PPP 连接来实现这一点,而大型 ISP 倾向于坚持租用线路专用连接。

虽然这乍一听可能令人望而生畏,但实际过程并非不可能,即使对于资源有限的个人来说也是如此。过去最紧迫的障碍是,提供类似 ISP 服务的资源——不仅仅是 PPP 连接,还包括电子邮件、Usenet 和 FTP/WWW 托管——只能以高端(和高成本)Unix 工作站的形式提供。这转化为新兴企业家相当大的成本。

另一个传统问题是,提供此类服务所需的系统和网络管理技能只能在这些高价工作站上获得,从而造成了先有鸡还是先有蛋的困境,即如果您没有通过工作或学校访问这些机器,您的主要资本投资将不得不闲置六个月到一年,同时您试图学习如何运行它。

基于 Intel-x86 的个人电脑的普及、其网络功能的强大以及最重要的是像 Linux 这样的免费操作系统结束了这种可悲的状况。凭借其自由放任的开发传统和完全免费的访问,Linux 为新兴 ISP 提供了两个基本品质。其中第一个是最低成本。第二个,也是更重要的,是在一个拒绝向您隐瞒任何秘密的操作系统上学习所有网络管理要领的能力。

Linux 的后一方面再怎么强调也不为过。作为独立的互联网服务提供商,您的工作是网络管理。如果您的机器没有正确路由流量,必须了解原因并能够修复它。如果您的 Usenet 订阅堵塞了您的系统,必须能够诊断问题并修复它。如果您的 DNS 没有正确地吐出 IP 号码,那是的问题,而且是您自己的问题。微软技术支持不会下来帮助您找出原因。Sprint 或 MCI 不会放下他们正在做的事情来帮助您,即使您是他们的客户。优秀的顾问(作者除外)众所周知很难找到,而且(包括作者)价格非常昂贵。

Linux 是 ISP 的首选操作系统,因为它满足了 ISP 操作系统最重要的要求。您必须能够诊断问题,并且您必须充分了解系统的运行情况,以便能够修复困扰您的问题,无论您选择什么操作系统。这,再加上 Linux 可用的海量软件,使其成为当之无愧的赢家。

这并不是说 Linux 是完美的,事实上,Linux 在 ISP 环境中存在一些问题。本文应该通过提供路线图来提供帮助,展示障碍和绕过方法,以帮助您完成旅程。它不提供关于如何连接到互联网的建议,而是专注于使用 Linux 提供 ISP 服务。

入门:硬件选择

您的第一步是决定硬件基础。您将运行什么样的机器?您将拥有多少台?您需要哪些外围设备?在购买任何硬件之前,您应该对所有这些问题都有很好的答案。

过去,平台决策很容易。如果您运行 Linux,您可以使用基于 Intel 或 Intel 克隆的 386 或更高版本的机器。随着最近 Linux 在 Sparc、MIPS 和 DEC Alpha 上的增强,这种选择变得有点模糊。Red Hat 和其他公司正在为这些更高性能的机器推出功能齐全的 CD-ROM 发行版。虽然这些都处于开发的早期阶段,我不推荐它们(目前),但这些机器的性价比优势,尤其是 DEC Alpha,意味着您应该将它们牢记在心,作为真正的选择,特别是用于将来升级您的系统。但对于初创公司来说,x86 机器通常是首选。

如果您要专注于拨号业务,您将需要调制解调器。调制解调器可能是您最糟糕的噩梦之一,您应该仔细选购。然而,调制解调器问题并非 Linux 特有的。随着 V.34 最终确定为一个完善的标准,大多数调制解调器都能胜任这项工作,许多人建议购买价格低廉的。尽管如此,通过阅读评论并在 Usenet 上征求反馈来做功课可能会获得丰厚的回报。试想一下,将数百人小时和数千美元投入到拒绝工作的调制解调器上,问问自己,额外的初始努力是否值得。

当然,标准的 PC 最多只能处理一对调制解调器。您如何将所有这些调制解调器连接到您的 PC?答案是通过市场上提供的众多端口服务器(也称为终端服务器)之一。端口服务器使用内置的串行端口连接到您的调制解调器,并在它们和您的计算机之间来回转发数据,通常通过网络。或者,您可以使用“智能串行板”,将调制解调器直接连接到 PC。关于智能串行板的良好评论可以在 1995 年 6 月的 Linux Journal 第 46 页找到。请记住在您的计划中包括端口服务器或智能串行板。

然后是您自己的网络。除非您计划用一台机器满足您的所有需求(通常不是一个好主意),否则您将需要一个网络来连接您的机器。虽然快速以太网、FDDI 和 ATM 都是可选的,但普通的 10 Mbps 以太网通常是首选。我推荐 10-base-T(双绞线 4 芯电缆,带集线器)而不是 10-base-2(同轴电缆,带 T 型连接器和终端器)。10b2 的可靠性不足以避免在您从网络中移除机器、通过扩展重新排列网络以及绊倒网线时导致服务中断。如果您决定采用 10bT 路线,请记住为您的所有机器配备以太网卡(每张 30 美元到 300 美元不等)并购买以太网集线器(400 美元到 1500 美元之间)。NET-2-HOWTO 包含了关于各种以太网卡的优点的精彩讨论;ISA 总线 ne2000 克隆提供了一种简单且非常廉价的解决方案。

据推测,您已经安排了互联网连接,可以通过 Sprint、MCI 和 ANS 等全国性服务,或者通过另一个区域 ISP。传统上,这种连接是通过专用路由器完成的。Cisco Systems 制造了最好的高速路由器,但对于 T1 速度或更低速度的连接来说,它们通常是过度的。Livingston 路由器是 Linux 社区特别喜欢的,并且还存在其他选择。越来越流行的选择是用基于 Linux 的 PC 制作您自己的路由器,使用来自 Enhanced Technologies 等制造商的 T1 接口卡。如果您有 ISDN 连接,那么您也可以通过来自 3COM、Boca、Motorola 等公司的 ISDN 终端适配器将您的 Linux 盒子用作路由器。

最后,您必须决定您需要多少台 Linux 机器。这完全取决于您如何设计您的网络。人们常犯两个大错误。一方面,有些人认为每个小的网络功能都需要一个专用服务器。“我们必须有一个专用的 DNS、一个专用的 Web 服务器、一个专用的 FTP 服务器、一个专用的邮件服务器……”这可能会变得非常昂贵,而且非常迅速,而且没有必要。另一方面,我见过有人犯过将新闻、邮件、PPP 和 Web 服务全部塞在一台机器上的错误,这台机器太慢了,以至于他们的客户来得快,走得也快。

您将需要哪些硬件以及应该如何连接?它会花费多少钱?在本文的其余部分中,我们将了解您可以作为 ISP 提供的服务以及您需要什么样的设置来提供它。

让我们 Linux 起来!

Linux 内核仅提供操作系统的基本功能。您必须选择众多 Linux 发行版之一在您的系统上使用。ISP 有许多特定问题可能与普通用户不一致,其中最重要的是可升级性一致性网络完整性

可升级性对于 ISP 至关重要,因为它有两个相互竞争的需求。首先,您需要提供最新和最出色的解决方案。互联网协议服务套件在不断发展,我们首先拥有发行版的原因是为了我们所有人不必自己移植、清理和安装系统上的各种软件包。其次,您的服务必须可靠。这意味着当您确实想要升级系统时,将其关闭、格式化硬盘并安装新的发行版不是一个非常好的选择。

我所说的一致性是指您系统的各个组件如何良好地协同工作。例如,安装 Wietse Venema 的 TCP wrapper (/sbin/tcpd) 不是一项简单的练习,主要是因为您必须将其与网络守护程序的各种奇怪功能协调起来。Slackware 和大多数其他 Linux 发行版都内置了 tcpd 并准备就绪。一个连贯的 Linux 发行版为您节省了很多精力,因为您不需要修复发行版中的错误。

最后,您将依靠网络功能的质量来生存或死亡。网络实用程序的草率和/或错误编译、无法运行的守护程序或通常较差的网络服务在您的发行版中是不可接受的。

新发行版通常会受到后两个问题的困扰,Red Hat 的早期版本就是这种情况。然而,Red Hat 非常容易升级,并且一直在稳步提高其产品的总体质量。此外,如果您足够勇敢地尝试在 Sparc 或 Alpha 上使用 Linux,那么 Red Hat 可能是最佳选择。

一致性和网络服务的强度始终使 Slackware 成为我的特别喜爱,我从中获得了很大的好处。因此,令我悲伤的是,发行版中错误的持续存在,以及最重要的是,升级 Slackware 系统的不可能性,正在导致它失宠。

我自己的赌注押在 Debian 上,Debian 是一个像内核一样维护的软件包——由互联网上的一群人维护。Debian 仍在发展壮大,它的一个 CD-ROM 版本也存在问题,但我认为它最有希望。

说到 CD-ROM 问题,准备好迎接它们吧。很多次我遇到过使用 Slackware CD-ROM 版本遇到网络问题的人,我建议他们从互联网来源重新安装“N”部分(网络)。超过 90% 的时间,这解决了问题。我们有 T1 连接到互联网,虽然我们出于安全原因保留了 Linux 的 CD-ROM 版本,但我更喜欢直接从网络安装,因为如果某个供应商的 Slackware CD-ROM 版本坏了,只有他们的客户会知道,但如果 SunSITE 的 Slackware 副本坏了,全世界都会开始大喊大叫。

实际上,选择发行版更多地取决于您熟悉什么,而不是其他任何事情。例如,如果您有 Red Hat 的经验,您会想要认真考虑是否选择不同的发行版,因为学习新发行版的痛苦可能大于获得的优势。

网络——重要的不是你认识谁,而是你知道什么

安装新发行版后,您的主要任务是设置您的网络并让数据包流动起来。这不是另一篇文章的主题——这是一本完整书籍的主题!幸运的是,Linux 社区对其客户(即自身)的需求非常敏感,而使用 Linux 的主要原因之一是因为文档。您应该至少阅读 Net-2-HOWTO,并且 Olaf Kirch 的 Linux 网络管理员指南(“NAG”)的副本应该放在您触手可及的桌子上。

当然,让数据包流动只是您建立网络的首要考虑因素。您应该考虑 6 个主要主题:连接客户、DNS、邮件、新闻、Web/FTP 和网络安全。我们将依次检查这些主题。

PPP 还是 SLIP?可口可乐还是 Shasta?

串行线路互联网协议 (SLIP) 是计算领域的一项突破性发展。再说一遍,Apple II 也是如此。虽然 SLIP 在某些圈子里仍然受欢迎,但它已经死了,应该被认为是这样。它的继任者,点对点协议 (PPP) 是未来的潮流。(好吧,它是一年前的潮流,但你明白了。)

由于以下几个原因,SLIP 牢固地占据了 PPP 的第二位。首先,SLIP 只能服务于 IP 流量,而您几乎可以在 PPP 链路上运行任何东西,包括 IP、AppleTalk、IPX 和其他。其次,PPP 的链路质量管理 (LQM) 功能通过以适当的速度运行它,无论电气干扰或其他线路噪声如何,都能为您提供可靠的连接。最后,较新版本的 PPP 将具有世界一流的身份验证、增强的 LQM 和其他功能,因此 PPP 在质量方面将继续超越 SLIP。

Linux 内置了 SLIP 和 PPP。您的内核需要编译为同时支持 SLIP 和 PPP。在安装系统时请记住这一点,否则当您尝试使用缺少的那个时,您会绞尽脑汁也想不通为什么其中一个不工作。

您会想要阅读 PPP-HOWTO,因为它对于理解如何使 PPP 工作非常宝贵。您将需要决定许多事情,例如是否为客户提供 shell 以从中调用 PPP,或者使 PPP 成为他们的默认登录程序。

此外,您将如何计算他们的在线时间?前一个问题的答案可能会影响这一个。Adam McKee 的 BBS-Util 可能会有所帮助,其他一些软件包也可能有所帮助。四处询问,四处看看,或者做我们所做的——自己编写一个。

让 PPP/SLIP 工作是一项中等规模的工作,您会想要通过调制解调器使用尽可能多的不同操作系统来测试您的设置。Win 3.11、Win95、OS/2 和 OS/2 warp 系统需要能够拨入,您需要测试所有这些系统以确保您可以向您的客户解释如何操作。为您测试的每个操作系统编写一个 HOWTO 是一个好主意。并且不要忘记您的 Macintosh 客户!他们和 MS Windows 用户一样遭受霸权的压迫性统治,他们通常是好的客户,因为他们愿意为有效的产品支付高价。

一个好的决定可能是将您的 PPP 客户放在与您的邮件服务器相同的机器上,从而更容易为整个操作仅维护一个 /etc/passwd 文件。pppd 将使用 /etc/passwd 文件中的用户名/密码对,因此请扔掉 pap-secrets 文件!

PPP 的设置非常耗时,如果您决定提供非 IP 服务,这也需要时间。但是,通常一旦启动,它就启动了,您可以继续处理其他问题。只需确保您有备份!

DNS:名称的意义?

虽然计算机理解 32 位 IP 地址,但您和我都不理解。我的电子邮件是 tlewis@cheney.net,而不是 tlewis@204.214.16.150(尽管这也可以)。域名系统是将域名和 IP 号码粘合在一起的粘合剂。

您确实有一个互联网域名,不是吗?您将需要一个,一旦您拥有它,您将需要一个域名服务器 (DNS) 才能使用它。DNS 设置非常简单,我已经写了一个关于这个主题的迷你 HOWTO,当您阅读本文时,它将可以从 LDP 档案中获得。[FIXME:更多信息即将到来]

DNS 对机器的负载非常轻,您的 DNS 服务器也可以在其他方面发挥作用。有些人将其放在他们的 PPP 服务器上,有些人将其放在他们的新闻服务器上。我们有两个:一个在我们的 WWW 服务器上,另一个在专用于 DNS 的 386-40 上。各有所好。

电子邮件:它使世界运转

电子邮件可能是互联网最有用但最不受重视的方面。一旦您厌倦了 WWW 的漂亮图片并想完成一些工作,电子邮件就是首选工具。尽管如此,人们常常忽视它,以至于危及自身。

如果您的新闻服务器宕机,您会收到一些抱怨,如果您的 Web 服务器宕机,您会收到一些电话,但如果邮件宕机,那就糟糕了!您的 POP 服务器(让客户使用像 Eudora 这样的程序来读取邮件的程序)通常可以开箱即用,但您的 SMTP 守护程序(例如 sendmail)才是真正承担重任的程序,而这正是您努力的方向。

NAG 包括一个关于邮件的好章节,Mail-HOWTO 也是一个好的起点。邮件是另一项服务,一旦您让它正常工作,您的问题就结束了,但您将花费时间使其正常工作。如果客户想要 UUCP、邮件机器人或邮件列表支持,这意味着额外的工作,您应该在下意识地回答“当然,我们可以做到!”之前考虑额外的工作量。

新闻:一言以蔽之... ARRGGHH!

Usenet,全球电子新闻系统,主要通过互联网分发,尽管某些 UUCP 网络和其他网络也提供它。简而言之,任何人、在任何地方撰写并提交到公共 Usenet 群组(1000、4000、10000——有多少个?)的任何消息都将最终出现在地球上的每个 Usenet 服务器上。我上次听说,一个完整的 Usenet 订阅(即接受每个群组)每天运行大约 400MB,因此您可能不希望通过您的 56kbps 连接接收完整的 Usenet 订阅。

News-HOWTO 介绍了新闻服务器的各种选项(接受交付、组织文章并在客户请求时将其吐回的程序)。选择一个,学习它,并坚持下去。每天 400MB,新闻本质上是一件危险的事情,有点像将自来水管道连接到您的水槽,如果您不付出很多努力,您可能会失去对新闻服务器的控制,填满磁盘并毁掉您的一天。

新闻也对服务它的机器造成沉重负担,消耗大量 RAM、CPU 周期和磁盘空间。至少,您会希望将您的 /var/spool/news 目录放在单独的物理磁盘上。通常,最好有一个单独的新闻服务器,它也可能充当 DNS。我们的 486-DX66 在完整的 News 订阅下略有呻吟,Pentium 可能是一个不错的选择。再说一遍,您可能不想运行完整的 News 订阅,在这种情况下,486DX-33 可能会奏效。

Web 和 FTP:有趣的东西

Slackware 和大多数其他发行版都内置了华盛顿大学的 wu-ftpd 匿名 FTP 服务器,预先配置好并准备就绪。转到 /home/ftp/pub,开始在那里扔东西,您就可以开始使用了。如果您的客户希望能够在您的服务器上放置文件以进行 FTP,那么您可能有一些工作要做。

WWW,尽管有所有的炒作,但实施起来也并不特别困难。Apache,NCSA 的 httpd 的衍生产品,是 Linux 最喜欢的工具,并附带了大量简洁的小工具。几乎所有的 Web 服务器都能够从用户主目录中的 public_html 目录提供信息,可以作为 www.foobar.com/~username/ 访问。如果您决定这样做,您会希望将您的 Web 守护程序放在与您的用户主目录相同的机器上,这也可能是您的邮件机器。如果这与 PPP 一起太多了,请分离出您的 PPP 服务器并将邮件和 Web 留在同一台机器上。此外,您可以让用户通过多个 PPP 服务器(甚至通过您更大的都会区域内的多个远程 PPP 服务器)访问这台中央机器,而不是让每台服务器复制这些功能。

网络安全:我可以告诉你,但那样我就不得不杀了你

ISP 向他们通常从未见过的人提供对其网络的访问权限。因此,您需要不断关注系统的安全方面。从网络安全的良好介绍开始,例如 Cheswick 和 Bellovin 的 防火墙和互联网安全,它是我对一般网络的介绍。

一个好的起点是在连接您到互联网的路由器上使用数据包过滤器。良好的数据包过滤器和仔细的密码管理是两个小步骤,可以消除您 90% 的安全担忧。您可以采取的最重要的互联网安全步骤是理解它并使用您可用的工具(如 TCP wrapper 和数据包过滤器)。

结论

以上描述涵盖了您在使用 Linux 开展 ISP 业务时将面临的所有问题的高潮。这可行的;我们 Cheney Communications 和无数其他 ISP 就是活生生的例子。

您的网络会遇到问题。您现在应该习惯这个事实。幸运的是,Usenet 上 comp.os.linux.networking 中的好人(包括我自己)总是乐于助人。Linux 文档项目是解决问题时非常宝贵的资源。在问题出现之前,它甚至更有用!

到现在您应该对开始提供 IP 服务所需的设备有一个很好的了解。您是否要为一些企业提供有限的 Usenet 和电子邮件?ISDN 连接和一对 486DX-66 应该可以解决问题。您是否要为拨号和租用线路服务启动一个全方位服务的 ISP,提供完整的 News 订阅和商业 Web 托管?三台 Pentium(专用新闻服务器、专用 PPP 服务器和一台邮件/WWW 机器)和一个路由器可能是一个好的开始。

您需要确保您在业务运营方面已做好充分准备。您将如何跟踪账单?您将向您的客户收取多少费用?您将对哪些服务额外收费?

Linux 是适合您的操作系统吗?如果您有 Berkeley 风格系统的经验,那么 NetBSD 在短期内可能是更好的选择。如果您在企业环境中,并且正在为您的业务设置网络,那么您也许可以花更多的钱来获得 Solaris 或 SCO 的技术支持。再说一遍,在我看来,Linux 比 BSD 具有更好的服务范围,并且 Linux 的技术支持可以从 SSC 和其他公司获得,包括几家 LJ 广告商。您不必被锁定在一个供应商的技术支持中,而是有选择。而且,谁会运行 SCO 呢?

您不应该抱有成为 ISP 很容易的幻想。如果您不是专家,新闻会一次又一次地失控(您将成为专家,否则就会死)。在不同地区,业务可能非常具有竞争力,您对财富和浮华书呆子统治的梦想可能会因工作过多和收入过少而惨死。

在投入时间和金钱开始 ISP 业务之前,您应该确定自己有能力做到这一点。如果在阅读上述文档时,您难以理解并且对自己的能力没有信心,那么直接跳进去可能不是最好的决定。再次,Linux 来解救了。您可以从另一个 ISP 获得拨号帐户,并在家中的 PC 上设置试用系统。如果您无法处理部分 News 订阅、您自己的邮件服务器、DNS 和 Web 守护程序,请继续破解它们,直到您可以,然后再重新考虑启动。我想不出比在您不知道自己在做什么的情况下被判处运行网络更糟糕的死亡了,特别是如果您的毕生积蓄都押在上面。

最后,对于所有创业 ISP,我祝您好运。凭借技能和辛勤工作,这可能是一项有益的事业,您可以获得结识有趣客户并将他们介绍给互联网的满足感。凭借 Linux 提供的工具,没有理由您不能构建一流的网络(希望本文也能有所帮助)。只需意识到您在 ISP 市场中并不孤单,您的竞争对手将始终在您身后紧追不舍。我们可能就是其中之一。

Linux 使用愉快!

Todd Graham Lewis (tlewis@cheney.net) 是阿拉巴马州伯明翰 Cheney Communications Company 的网络副总裁,该公司是一家 ISP。在他的业余时间,他阅读 19 世纪的文学作品和 Linux 文档。他正在撰写另一篇 HOWTO 和陀思妥耶夫斯基的 卡拉马佐夫兄弟

加载 Disqus 评论