公共服务领域的Linux
我是JCICNet的系统管理员,这是一家为俄勒冈州南部提供公共互联网接入服务的互联网服务提供商 (ISP)。本文解释了我们为什么使用 Linux,并描述了我们作为 ISP 使用它的一些经验。
如今,一个热门话题似乎是将 Linux 用作公共互联网系统的基础。对于许多 ISP 来说,Linux 是首选操作系统,原因有很多。
当我们的 ISP 首次决定为当地提供互联网接入时,我的首要任务是确定需要什么样的硬件。该系统的基本要求是:
它必须能流畅地处理多个拨号用户,
它必须与 TCP/IP 互联网协议无缝集成,
它必须易于扩展,并且易于根据我们的各种需求进行修改,并且
它必须非常便宜(我们是一家相对较小的 ISP)。
对我来说,前三个问题的答案很明显——Unix。 第四个要求规定硬件必须是 PC 克隆机。 但是哪个版本的 Unix 呢?
我听说过 Linux,但最大的问题是:如果它是免费的,它的可靠性到底有多高? 只有一种方法可以找出答案。 我阅读了常见问题解答、HOWTO 以及 comp.os.linux 新闻组。 虽然我真的不知道新闻组中讨论的是什么,但我开始提问。 我从未收到任何关于其可靠性的负面评价,所以我认为即使它不适合,至少我们不会损失任何钱,所以 Linux 获得了批准。
我们最终确定了以下配置:
DX4/100 配备 16mb 内存
Buslogic SCSI 适配器
Quantum EMPIRE-1080S 1 GB SCSI 硬盘
东芝 XM-3401TA SCSI CD-ROM
QIC-117 兼容磁带驱动器
BOCA Board 2016(16 端口串行卡,不包含线缆!)
Supra 28.8k 和 AT&T Paradyne 14.4k 调制解调器
我们的网络提供商向我们出售了以下设备:
Morningstar Express 路由器
BAT Technologies 56k CSU/DSU
总而言之,硬件总成本接近 10,000 美元。
我们的 Linux 发行版是 Infomagic 2-CD 套件,我们从中安装了 Slackware。 安装相对简单; 一切都是菜单驱动的,几乎不需要猜测。 在几个小时内,我们完成了完整的安装,并开始运行。 非常令人印象深刻。
由于菜单驱动的安装,网络已全部配置完毕。 我从不需要接触配置文件。 我们只是配置了我们的路由器,然后我们就上网了。
接下来是 BOCA 串行板。 使用 setserial 和 /etc/rc.d/rc.serial,配置非常轻松。 我只是取消注释了一些现有行,BOCA 就会在启动时自动配置。 我安装了 mgetty,在一个小时内,我们就有了可以使用的拨号连接。
最后是用户必须处理的前端。 由于大多数用户没有 shell 的经验,我使用了 Dialog 软件包(记录在 Linux Journal 第 5 期中),使用 shell 脚本制作了一个漂亮的菜单系统。
一直以来,我都对一切都如此简单感到惊讶,Linux 拼图的所有部分都整齐地组合在一起。 我过去曾使用过各种 Unix 系统,而 Linux 是迄今为止最容易掌握的。 软件包只需插入即可开始工作,几乎不需要配置。 我将此归功于 Linux 的 FSSTND(文件系统标准)——这对于系统管理员来说尤其是一大福音。
一切配置完毕后,我们非常有信心按下开关,让用户涌入。 我密切关注系统几个小时,一直期望这个“免费操作系统”会爆炸成一百万块碎片,将我们的硬件和订户带到 /dev/null 中。
几周后,我停止了担心。 在最初的几周里,系统的运行比我预期的还要顺利。 没有内核崩溃,也没有奇怪的文件系统问题。 它并非完美无缺,但没有任何问题是无法克服或灾难性的。 对于一个免费的操作系统,我对 Linux 非常满意。
我遇到的第一个实际问题是挂起的进程。 我们遇到了一个奇怪的问题,如果有人在没有干净注销的情况下断开连接,进程就会挂在“con”上。 登录并发现系统负载为 26.0 左右,这可能会非常令人不安! 这花了大约一周的时间来追踪。 我在新闻组和 IRC 上提出了各种问题。 我最终在 IRC 上遇到了另一位系统管理员,他遇到了完全相同的问题。 我们将其缩小到 bash 的 POSIX 行为; 用 zsh 替换 bash 解决了这个问题。
我们遇到的第二个问题是我们的 Supra 调制解调器偶尔会崩溃,(谢天谢地!)这不是 Linux 问题。 我必须重新启动调制解调器才能再次唤醒它们。 在多次致电 Supra 技术支持后,得知如果调制解调器在硬重置(通过“ATZ”或 DTR 下降)过程中收到字符,它可能会崩溃。 快速更改初始化字符串后,调制解调器恢复正常。
我们的第三个问题是 mgetty 中的一个错误。 事实证明,mgetty 会很乐意将“+”字符回显到您的调制解调器。 如果有人登录并连续发送三个“+”字符,mgetty 会将这些字符回显到本地调制解调器,当然,这会使调制解调器进入命令模式。 然后,mgetty 会很高兴地坐在那里,在与调制解调器的聊天循环中喋喋不休。 对 mgetty 进行小的单行修改(如果没有免费提供的源代码,这是不可能的!)解决了这个问题。
我们的最后一个问题是 smail。 它根本不会发送到 Internet 上在其域名服务器 (DNS) 记录中具有 MX 指针的主机。 我最终发现 Slackware 发行版的 smail 没有编译 bind 驱动程序。 我从 ftp.uu.net 下载了较新版本的 smail,它运行完美。
从那时起,系统的管理就相对轻松了。 当我们的网络提供商的 DNS 服务器开始出现故障时,在来自伊利诺伊州的友好 Linux 管理员 Douglas Rabe (darabe@templar.fgi.net) 的帮助下,我一个小时内启动了自己的 DNS 服务器。 (他还主动担任我们的 DNS 辅助服务器)。
网上的支持非常棒。 comp.os.linux.* 新闻组携带了大量信息。 IRC 很好,但有一些酸葡萄:在 IRC 上看到有人用 alias tar `rm -rf' 回答新手的问题“如何解压缩文件?”,然后输入 tar filename,这可能会非常令人失望。 对我来说,由于某人的蹩脚笑话,这又是一个永远关闭 Linux 的人。 没有人说新手必须问愚蠢的问题,但也没有人说聪明人必须回答这些问题。
Linux 的软件支持非常出色。 似乎任何新的软件包,无论我从哪里 FTP 下载,都有一个针对 Linux 的特定 makefile 配置。 并且由于 FSSTND,它的大部分都可以直接插入。
我个人更喜欢 Linux 的原因有很多。 由于一切的源代码都是可用的,如果出现问题,我可以自己解决它——而不是花几个小时的时间与软件供应商保持联系,他们可能无法解决我的问题(甚至无法理解我在说什么!)。 您是否曾经花几个小时的时间与供应商保持联系,却得到一个随时准备帮助您解决 VMS 问题的支持人员?
Linux 的另一个主要优点是用户许可证不是问题——在使用其他商业操作系统时,这个问题不断出现并困扰着我们。 用户许可证问题对于 Internet 服务提供商来说应该非常重要。
在家里,我使用我自己的 Linux 机器(还有什么?)管理主要的拨号系统。 自从我从硬盘驱动器中删除 DOS 和 Windows 并安装 Linux 以来,我从未对我的 PC 感到如此满意。
Daniel Hollis 是 Pharmacy Computer Services 的系统程序员,他在那里试图找到将一些 Linux 机器嵌入工作场所的方法。 他也是 jcic.org 域的系统管理员,目前参与编写 Linux-Public-Access-HOWTO。 可以通过电子邮件联系他,地址是 dhollis@hq.jcic.org。