Linux 的商业应用:巴基斯坦 On-Line 案例研究
巴基斯坦 On-Line (POL),http://www.pol.com.pk/,是一家在巴基斯坦主要城市运营的互联网服务提供商 (ISP)。其所有接入点 (POP) 均运行 Slackware Linux,每个站点的设置略有不同。ISP 的本地骨干网使用当地电信公司巴基斯坦电信有限公司的光纤电缆。每个 POP 都使用 Cisco 路由器来管理此骨干网。POL 有多个互联网连接,并使用路由算法来管理流量。
除了互联网接入服务外,该公司还提供网络设计、安装、Web 开发和托管、域名注册等服务。对于远程访问服务,POL 在主要 POP 使用 Cisco 和 Xyplex 接入服务,在较小站点使用带有 Rocketport 卡的 Linux。Linux 用于 HP Netserver 和 Compaq 机器上,以提供 SMTP、POP、DNS、WWW、FTP、Proxy 等互联网服务。用户身份验证通过在 Linux 机器上运行的 RADIUS 服务器完成。用户帐户和计费通过 RADIUS 为 Cisco 远程访问服务器完成,而使用 Xyplex 远程访问服务器时则通过 Syslogd 完成。帐户和计费流程也通过在 C 中开发的定制软件在 Linux 上进行。
为互联网运营选择网络操作系统是一个非常重要的决定。您需要确信整个系统的稳定性,因为该设置必须全天候为众多客户服务。没有人能承受服务中断,即使是几分钟。由于我们计划使用基于 Intel 的服务器,因此我们必须在 Windows NT 服务器和 Linux 之间做出选择。最重要的因素不是操作系统的成本,而是 ISP 设施的稳定性。我们选择操作系统的标准取决于以下因素。
以往经验: 我们在使用 Linux 方面有非常好的经验,因为我们已经构建了大型的基于 Linux 的网络。其中一些正在类似的环境中使用,另一些则在教育机构中使用。
稳定性: 我们的员工在多年不同性质的运营中对 Linux 的稳定性进行了充分的测试。我们非常有信心它不会给我们的运营带来任何问题。
成本: 虽然操作系统本身的成本不是主要因素,但当您加上 ISP 所需的其他实用程序和软件时,这就是需要考虑的因素。Linux 不仅是免费的,而且您还可以在互联网上找到 ISP 所需的所有软件,也完全免费。这包括邮件服务器、Web 服务器、FTP 和 DNS 服务器,它们与 Linux 捆绑在一起,使其成为完整的互联网解决方案。此外,如果任何可用的软件不能满足特定用途,您可以轻松尝试许多可用的替代方案之一。例如,如果您觉得 Sendmail 管理起来太复杂,并且有 UUCP 和 SMTP 服务的混合,您可以改用 Smail,它非常易于管理,并且是一个非常有用的 UUCP 到 SMTP 网关。
在互联网上易于管理、自定义和获得支持是另一个主要问题。如果您想要商业软件的支持,您必须定期付费给某人。Linux 可能是唯一一款您可以从世界各地众多专家那里获得全天候在线帮助而无需花费一分钱的产品。去 IRC 频道并加入讨论非常有趣。
尽管商业操作系统供应商试图将所有东西都捆绑在他们的产品中,但对于他们中的任何一个来说,提供与 Linux 上可用的实用程序数量相当的实用程序是不可能的。人们已经为 ISP 运营特别构建了许多工具和实用程序。例如,您可以找到许多工具来分析 Web 流量日志、监控互联网带宽的利用率、管理用户帐户、检查安全漏洞等等。
Linux 上可用的邮件服务器是无与伦比的。使用 Sendmail、qmail 或 Smail,您可以做任何您想做的事情。如果您想在混合 UUCP 和 SMTP 环境中追求易用性,请使用 Smail 3.2。如果您想要一个完整、经过全面测试的综合解决方案,请使用 Sendmail。如果您只想为 SMTP、IMAP、虚拟域名等提供支持,请使用 qmail 等等。您可以根据您的环境自由选择。
在 POL,我们从一开始就一直在使用 Apache。我们发现 Apache Web 服务器在稳定性和性能方面非常出色。我们在单个 Web 服务器上运行着许多虚拟域名,仅使用一个 IP 地址。Apache 的基本配置和虚拟主机非常简单。您还可以将 SSL、URL 缓存和受保护的用户目录与 Apache 一起使用。所有 POL 用户都有自己的网页,这些网页保存在他们在 Apache 服务器上的主目录中,并且可以随时自由更新这些页面。
Apache 服务器具有巨大的商业用途,因为您可以将其与数据库、ODBC 等一起使用。事实上,我们在巴基斯坦 On-Line 使用 mSQL、ODBC 和 MySQL 对其进行了测试。我们发现一些客户有兴趣将其数据库服务器托管在 POL 场所,并将其链接到 Apache 服务器以用于在线数据库。我们相信这将对我们在巴基斯坦的业务取得巨大成功。
巴基斯坦 On-Line 正在使用 Linux 内核功能进行防火墙、IP 地址伪装和透明代理。我们为一些企业客户安装了基于 Linux 的防火墙。我们测试了数据包过滤和基于代理的防火墙。对于基于代理的防火墙,我们使用了 Trusted Information Systems (TIS) Firewall Toolkit (FWTK),它在互联网上以源代码形式免费提供。
IP 地址伪装在 IP 地址非常稀缺的环境中非常有用。事实上,这种情况在大多数发展中国家都很普遍,我们在这些国家没有足够的 IP 地址供企业客户使用。在我们可以使用一台 Linux 机器通过单个合法 IP 地址支持几乎无限数量的计算机连接到互联网的情况下,IP 地址伪装起着非常重要的作用。
POL 的一些企业客户在其需要互联网访问的私有网络上拥有数十台计算机。我们很难为这些客户分配他们想要的那么多 IP。我们在运行 Linux 的计算机上使用 Linux IP 地址伪装功能,然后该计算机充当私有 LAN 的网关。现在,公司可以自由地在其私有 LAN 上添加任意数量的计算机,而无需一次又一次地咨询 ISP。
这种安排对我们非常有用,并使 POL 在此地的其他 ISP 中脱颖而出。其他 ISP 尝试基于 Windows NT Server 和 Microsoft Proxy Server 提供此类解决方案,这在硬件和软件方面都很昂贵。此外,基于 NT 的系统不像 Linux 那样透明地传递所有协议。
Linux 内核中的透明代理功能也非常有用。我们正在借助 Cisco 路由器使用透明代理功能,以强制所有 WWW 流量通过我们的代理服务器。在 Cisco 路由器上,我们扩展了访问列表,该列表将端口 80 上的所有出站流量重定向到通过 Linux 服务器。另一个软件包 tproxyd 也已被证明在我们的运营中非常有用。有关 tproxyd 的更多信息可以从其网站获得(请参阅“资源”)。一个可以完成这项工作的 Cisco 访问列表示例可能如下所示
interface Ethernet0 ip address 209.58.13.1 255.255.255.0 ip policy route-map proxy-redir ! access-list 101 permit tcp 209.58.13.0 0.0.0.255 any eq www route-map proxy-redir permit 20 match ip address 101 set ip default next-hop 209.58.13.6 !
现在,当路由器从本地网络 209.58.13.0/24 上的任何计算机收到目标端口等于 80 的 IP 数据包时,它会将此数据包重定向到 209.58.13.6,这是一台作为代理服务器运行的 Linux 服务器。然后使用 Linux ipfwadm 实用程序来管理此类流量。
就缓存而言,squid 仍然是我们的选择。它提供了非常好的性能和稳定性。这也与 Linux 的透明代理功能一起使用,以获得额外的优势。互联网上提供了许多用于 squid 的工具,这些工具可以分析性能并以图形格式扫描日志。
ISP 帐户和计费系统是最重要的,因为这是为 ISP 产生收入的过程。它需要非常准确和稳定。我们有三种类型的系统支持拨号用户
带有多端口卡的基于 Linux 的服务器。来自这些服务器的登录和注销信息通过 syslogd 获取。
Xyplex Max 1640 服务器,可以发送 RADIUS 和 syslogd 信息。我们正在使用 syslogd 信息进行计费。
Cisco 远程访问服务器,它们正在将帐户信息发送到 RADIUS 服务器。
我们用 C 开发了一个计费系统,该系统从所有三种类型的服务器获取信息并生成用户日志文件。任何用户都可以在需要时查看其计费信息。我们还在我们的计费系统中使用 shell 脚本来完成一些内务处理工作。事实证明,这是一个非常好的且用户友好的系统,现在另外两家小型 ISP 也使用了这个相同的计费系统。
当您计划一个非常小的 ISP 站点或具有少量拨号用户的企业网络时,部署 Linux 作为远程访问服务器可能很有用。这可以节省大量资金。我们为此目的正在使用带有 Comtrol Rocketport 多端口 PCI 适配器的 Linux。一个 Linux 系统最多可以支持四个适配器,每个适配器具有 32 个高速串行端口。因此,总共您可以在一台具有良好吞吐量的基于 Pentium 的计算机中使用 128 个端口。由于 Rocketport 卡具有板载智能处理器,因此它们不会对计算机造成太大负载。现在,只需对登录过程进行一些更改,您就可以配置许多内容。例如,您可以设置允许单个登录名同时登录的数量。
Linux 是一个非常有用且稳定的操作系统,适用于 ISP 服务。它提供了一个经济高效、用户友好、易于配置的环境。可用于 ISP 运营和支持的实用程序数量非常多。最大的优势在于它可以用于几乎任何环境,并为您的竞争对手提供优势。
Rafeeq ur Rehman (rehman@pol.com.pk) 分别从巴基斯坦拉合尔工程技术大学获得了电气工程和计算机工程的学士和硕士学位。他主要感兴趣的领域是计算机网络和分布式计算。自内核版本 0.0.99 以来,他一直在使用 Linux。