Linux WAN 路由器

作者:Tony Mancill

每次我为公司部署 Linux 系统时,“Linux 在生产环境中?这绝不可能发生,”这句话仍然在我脑海中回响。在以前的雇主那里,这是对我所有关于何时可以在我们的产品评估实验室中试用 Linux 的疑问的固定答案。此后,我有机会使用 Linux 解决实际问题,我准备报告——“这每天都在发生!”

本文将讨论基于 Linux 的 WAN 路由器在总拥有成本方面的优势。虽然许多技术人员可能会觉得这种方法令人不悦(它当然不符合我内心的理想主义者),但事实是,大多数财务部门很少对他们 IT 部门的技术优雅或卓越感兴趣。在那些签署支票的人眼中,价值更为重要。成本不仅包括硬件和软件,还包括所有相关的人员和维护成本。

在当今精打细算的 корпоративном 环境中,技术人员需要意识到,许多公司提供路由即服务,这(至少在纸面上)可能看起来比您的工资和设备便宜。因此,网络管理员保持对自己为雇主提供的价值的意识是有道理的。如果您是解决方案提供商,本文可能会帮助您增加利润。对于那些预算有限的人来说,部署 Linux 路由器可能是连接站点之间或连接到互联网的唯一选择。

撇开成本不谈,在我看来,Linux 路由器确实具有技术上的优雅和卓越性。我将重点关注这个平台的功能性“优点”——以及一些日常经验。对于已经熟悉 Linux 的人来说,看看它如何在 24x7 生产环境中使用可能会很有趣。对于那些尚未使用 Linux 的人来说,本文将让您了解这个通用且稳定的平台的一些可能应用。

Linux WAN Routers

图 1. WANPIPE S508/FT1 卡

从现在开始,“Linux 路由器”一词将用于指代运行 Debian/GNU Linux 并配备 Sangoma WANPIPE S508 路由器卡(图 1)的基于 x86 的 PC。在将这个平台作为“大品牌”传统路由器的替代品用于帧中继和互联网路由器超过 18 个月后,我强烈支持这个解决方案。

成本

Linux 路由器在硬成本和提供路由基础设施相关的隐藏成本方面都很经济。这些成本包括

  • 电信接入(+ 适用时按使用量计费)

  • 路由器硬件

  • 路由器软件、升级和支持

  • 人员成本,包括工资、培训以及在日常操作中维护路由器以进行故障排除和升级

  • 由于停机时间造成的生产力损失和收入损失——在公司管理的整体视角中,通常非常昂贵

对于基于使用量的访问方法(例如,大多数类型的 ISDN),每月成本取决于连接时间。在这种情况下,控制何时以及出于何种原因启动连接是有益的。许多路由器根本无法提供这种控制;Linux 路由器配备了调度程序和脚本语言。

路由器硬件成本可能差异很大,具体取决于接口类型和速度、支持的协议、提供的功能(例如数据包过滤)和交换速度。使用 Linux 路由器,您可以以低于支持 V.35 接口的最便宜的传统路由器的成本获得同等的连接性,并具有卓越的功能和可支持性。

使用数字电路(ISDN 除外)时容易被忽视的一个成本是 CSU/DSU,它用于将您的路由器连接到您的电信接入。这个设备理解数字接入线(例如 T-1)上的信号,并将其转换为 V.35 接口上的比特流。它们可能很昂贵。Sangoma S508 提供集成的 CSU/DSU,这节省了资金并使布线和安装更容易。

路由器软件、硬件和软件升级的成本,以及路由器硬件和软件的年度支持协议的成本可能非常高。(传统支持通常占硬件新价格的每年 10% 到 15% 或更多。)对于 Linux 路由器解决方案,这些成本接近于零。操作系统,包括工具和升级,是免费的。PC 硬件价格低廉,而且由于要求不高,通常可以从其他试图升级桌面以获得更高性能的人那里继承。(我的所有系统都是“二手货”。)

比基本硬件成本更重要的是,Linux 路由器提供投资保护,因为您对路由器的所有方面都有清晰的升级路径。可以添加额外的链路,只需增加另一块 Sangoma 卡的成本。混合链路和介质类型既简单又便宜。例如,如果您希望将 LAN 主干网升级到 100Mbps 或 ATM,我们的大品牌路由器的适配器每个成本约为 4000.00 美元,但对于 Linux,任何像样的 100Mbps 以太网卡都可以正常工作。更快的交换仅仅是主板/CPU 升级。

现在时不时有人会嘲笑说 PC 不够快,不能作为 WAN 路由器。我认为这种说法表明缺乏想象力。如果这是真的,那么拥有 100Mbps 以太网卡就毫无意义了。当您的桌面无法读取+发送以 1/100 的速率到达的数据包时,您怎么能期望它以 100Mbps 的速度发送或接收数据包呢?

数据包过滤、地址转换(IP 伪装)和代理通常是传统路由器的附加组件。相比之下,向 Linux 路由器添加此功能是免费的,并且更易于安装和管理。

大品牌路由器软件升级可能非常耗时。除非您有备用的大品牌路由器,否则练习升级不是一个选项。当您同时拥有“大品牌 X”和“大品牌 Y”路由器时,情况会更糟。不同的程序,不同的问题,以及对它们的电话支持可能会很昂贵。拥有多个封闭系统路由器供应商也意味着更多的培训费用和支持人员技能组合的“碎片化”。您拥有的不是三位有能力的多面手,而是有一位接受过 X 培训的人,一位接受过 Y 培训的人,还有第三位试图跟上进度的人。

这引出了提供路由服务的另一个成本部分。让人们照顾环境需要多少成本?工资、培训、花在配置、开发报告、升级和故障排除上的时间都是总拥有成本的一部分。我会说这是认真考虑将 Linux 作为路由器平台的最重要原因。首先,越来越多的人才拥有 Linux 经验。这使支持人员的工资保持在合理水平。(试图找到足够的钱来雇用一位大品牌专家。)即使是经验丰富的 UNIX 管理员在 Linux 系统上也感到宾至如归,再次增加了资源池,提供后备支持并 облегчая IT 部门内的交叉培训。这种共通性要素怎么强调都不为过。其次,配置 Linux 路由器使用的工具与配置任何 UNIX 系统上的网卡相同。任何对 shell 提示符感到舒适并理解 TCP/IP 的人都可能成为资源。这很重要,因为在某些时候,您的环境将需要支持。

WAN 网络的维护往往不频繁但强度很大。问题往往发生在您上次接触大品牌路由器六个月后的凌晨 2:00。(您很可能在家,穿着睡袍坐在那里,拨号连接到您的办公室。您手边有手册的几率有多大?)相比之下,Linux 路由器使用许多您每天使用的相同工具,并且您以手册页或文本文件的形式拥有所有在线文档。您可能有一段时间没有使用路由器,但您每天都使用 ifconfig 并查看 /var/log/messages。即使是特定于硬件的工具也往往功能更全面且更易于使用。例如,图 2 是一个屏幕,显示了从连接的工作站监控的 Linux PPP 统计信息。

Linux WAN Routers

图 2. 连接的工作站上的 Linux PPP 监控截图

对于日常故障排除,您可以使用一整套工具来解决问题。并且由于这些工具很熟悉,因此您的解决问题的时间更短。keep-alive ping 脚本可能不是最漂亮的解决方案,但它会让您摆脱被动模式,有足够的时间来研究真正的问题。当我年轻且非常天真时,我相信当您从大品牌购买硬件或软件时,它已经完全调试过了。这太荒谬了——所有代码都有错误。真正的问题是——您有哪些选择来处理这些错误?

Linux 在生产环境中的应用

Linux 路由器的另一个优点是它们可以运行额外的服务和程序。您可以随意使用整个操作系统家族的服务和应用程序,这些服务和应用程序经过 20 多年的调试和微调。由于 UNIX 始终提倡工具箱哲学,因此您的路由器可以提供的其他服务的唯一真正限制是您的想象力。以下是一些想法

  • 部署辅助服务以获得更高的冗余度。例如,路由器可以充当辅助 DNS 服务器或辅助 SMTP 网关。

  • 将远程站点的路由器配置为充当从 DNS 和缓存 HTTP 代理——甚至可能是 Samba,用于文件和打印服务。

  • 部署“一站式”互联网路由器——将同一台机器用于外部 DNS 名称服务器、SMTP 邮件交换器、站点的 NTP 服务器和互联网防火墙。

Linux 还提供灵活的数据包过滤、SOCKS、代理解决方案、PPTP 和 IP 伪装。对于那些有特殊需求的人,可以使用模块来塑造流量模式(限制某些类型的流量或给定主机之间流量的带宽)。

部署多用途系统在可靠性方面也很有意义。拥有更少的集中故障点通常会增加办公室的平均正常运行时间,因为硬件故障的可能性等于各个组件故障可能性的总和。因此,较少的多用途系统应导致较低的整体故障几率。但请注意:将服务捆绑在一起意味着多个服务将同时宕机。您应该始终考虑您要组合的服务的交互作用,并尝试组合那些在路由器发生故障时无论如何都将无用的服务。

对于路由平台而言,可靠性的重要性怎么强调都不为过。不可靠的系统不仅会花费金钱:它们还会彻底扼杀您的业务。更糟糕的是,它们可能会导致您在与工作无关的活动(如睡觉)期间被呼叫。

在生产环境中运行 Linux 的技巧

您可能会发现以下一些技巧很有帮助。其中许多都是在吃亏后才学到的。

  • 定期备份您的系统。(我在使用 EST Software 的 BRU 时运气不错。)

  • /var 应该是一个单独的分区,因为它将保存您的所有假脱机文件和日志文件。

  • 制作一套救援软盘。我的救援软盘包括 Debian 救援盘、带有以太网卡配置实用程序的可引导 DOS 盘以及带有 Sangoma snooper.exe(其通信卡的嗅探器实用程序)的可引导 DOS 盘。

  • 将您的所有系统脚本保存在一个公共位置,例如 /us/local/bin 或 ~sysacct/bin,并为您的所有脚本使用一个通用的标头格式,其中包括更改历史记录。这通过提醒您您做了什么以及何时做的来节省您的时间,并帮助可能继承或需要修改您的脚本的其他人。当多人可以访问您的环境时,前 2 个字母的字段包含首字母缩写。我的所有脚本都像这样开始

     #!/usr/bin/ksh
     # name_of_script [cmdline args]
     # [description of script, if needed]
     # modification history:
     # tm970612initial release
     # ls970923added functionality X
     # tm980115most recent edit
     MAIL_TO="tmancill@us.lhsgroup.com"
  • 保持安全意识。定期更改密码,并使用 ssh 或类似的程序来防止内部 TCP/IP 嗅探器。使用 PGP 或类似的程序与他人共享敏感信息。

  • 准备好备用组件。Linux 对更换硬件具有容忍度,因此您可以毫无问题地将硬盘驱动器移动到不同的系统。备用通信适配器和一个加载了基本操作系统加上内核源代码的 IDE 硬盘应该就足够了。

  • 在任何(重大)配置更改后重新启动您的系统,例如,对启动脚本中指定的路由表进行更改。如果不能立即完成,请安排时间执行此操作。建议这样做不是因为 Linux 需要重新启动才能使更改生效,而是更多的是因为它运行时间太长而不需要重新启动。“重启测试”提供了一些针对墨菲定律的保险。否则,您的系统很可能会在您不在时被重新启动,NT 管理员在您对系统进行任何更改后六个月尝试使用 CTRL-ALT-DEL 登录。如果它无法在没有干预的情况下重新启动,NT 管理员将在您的系统上乱搞,直到您出现并对系统行为异常感到困惑,因为您不记得您上次做了哪些更改。

  • 理解 TCP/IP——端口、路由、可变子网划分、DNS、TCP 和 UDP 之间的差异等。这一点怎么强调都不为过。大型生产环境的停机时间统计数据令人震惊,因为它们通常表明人为错误是故障的首要原因。(Linux 测试平台很便宜;在备用系统上练习。由于 Linux 下的通信适配器的工作方式与以太网设备完全相同,因此您可以使用额外的以太网卡和单独的以太网段来模拟您的 WAN 环境。)

  • 保留关于您的系统的文档。不必太多——只需记下每个系统与基本操作系统负载的不同之处即可。

  • 当事情变得忙碌时保持冷静。

开放系统的其他优势

人们有时告诉我,GPL 软件因为是免费的,所以没有质量成为生产环境的一部分。这就像说只有与出版社签订合同的作者才能写出好的诗歌。当我听到这句话时,我总是想知道这些人是否曾经使用过 GPL 软件,或者知道每次他们浏览网络或从互联网接收电子邮件时,他们有多么依赖它。

源代码可用性对于网络管理员来说具有一些非常明显的优势。随着互联网以及协议、安全措施和资源节约技术的不断发展,路由器将不得不跟上。

五年前,IPv4 的缺点以及协议加密和封装的必要性可能还是遥不可及的想法,只适合 IETF 大师们的头脑。今天,您每次使用 IP 伪装或 PPTP 时都会处理它们。由于其开放性和丰富的工具集,Linux 成为了开发和测试这些协议扩展(例如,IPv6 和 ENSKIP)的理想平台。作为在 Linux 上运行的网络管理员,您通常可以比在商业实现中更早地获得这些工具。它们将由不仅希望看到软件工作,而且自己也使用该软件的人编写;而不是由试图赶上编码截止日期的人编写。由于 Linux 不参与商业竞争,因此重点是互操作性,而不是专有协议扩展。展望未来,很难说我们在 2005 年会运行什么。但是,我确实认为在健壮的开放式操作系统中开发这些工具肯定比在工具和支持更有限的专有架构上开发更容易。因此,我感觉得到了更好的支持。

良好的支持和供应商稳定性是任何大型 IT 投资的重要方面。我从不担心 Linux 会倒闭或被另一家公司收购然后被停止使用。至于 Linux 系统的 WAN 路由硬件,我感觉只要有市场,它就会一直存在。如果我的通信硬件供应商真的倒闭了,我也不会像使用传统路由器那样被晾在一边。我拥有驱动程序的源代码,并且可以继续进行调整和增强,只要它在功能上和经济上都是可行的。

仅仅因为您为支持付费并不意味着您会得到它。关于“我们不能使用 Linux,因为我们无法获得支持”的论点是有缺陷的。通常,这些论点是由不相信员工有能力胜任其工作的管理层提出的。我在供应商支持方面的大部分经验可以归为以下几种方式之一

  1. 完全浪费时间试图向一个不知道我在说什么的人解释问题。

  2. “您是否尝试过我们最新的补丁/重新加载软件?”

  3. “听起来这与我们的系统/软件无关。”

排除 IT 问题可能很困难且耗时,而且没有人能够负担得起用他们顶级的程序员和故障排除人员来配备他们的帮助台。因此,既然您将不得不自己排除大部分问题,为什么要为支持付费呢?

Linux 作为生产环境中的路由器

我的公司在美国、欧洲和亚洲设有办事处。作为一家国际公司,WAN 连接是基础设施的重要组成部分。由于我们站点之间的时区差异,拥有稳定的路由平台至关重要;一个地点的午夜是另一个地点的中午,因此维护窗口很小。与任何其他公司一样,我们都注意成本。为了实现这些目标,我们使用 Linux/Sangoma 路由器用于

  • 512Kbps 连接到互联网

  • 1.5Mbps 帧中继

  • 56Kbps 互联网备份链路

我们计划今年再部署三台 Linux/Sangoma 帧中继路由器。此外,我们将 Linux 用作 LAN 路由器、所有标准 TCP/IP 服务(DNS、FTP、HTTP、数据包过滤、IP 伪装、代理、SMTP、NTP、NNTP 等)的服务器平台,当然也用作桌面。

我们的 Linux 帧中继路由器的实际配置是 GNU/Debian Linux(版本 1.2),运行在配备 8MB RAM、850MB IDE 硬盘驱动器、Sangoma WANPIPE S508 路由器卡和 SpellCaster DataCommute ISDN 卡的 486/66 上。ISDN 卡用作备份,以防帧中继失败。这个系统已经运行了 160 多天,然后被一位可悲地搞错的 NT 管理员重新启动,他试图登录到另一台共享同一键盘和显示器的系统。

如果您想知道我为什么要费力写一篇关于使用 Linux 作为路由器的文章,也许下面的轶事会有助于解释这一点。

很久以前,我们的互联网链路是用一台大品牌路由器连接的。有一天,这台路由器决定坏掉。总共花了一个小时左右才联系到大品牌的技术人员;我们浪费时间四处寻找我们的支持 ID,浏览“如果您想使用我们的传真回复服务器,请按 6”菜单,等待接听,并抵挡疯狂用户的请求。在简短地讨论了我的配置终端程序的能力(夹杂着一些关于访问控制台需要哪种白痴电缆的简洁评论)之后,技术人员认为我们需要一块新的主板。由于我们为我们的支持合同付出了巨额费用,一块新的主板将在第二天到达。我们告知了我们的用户情况,并热切地等待着我们的包裹。一个包裹确实在第二天按承诺的时间准时到达了。然而,令我们非常失望的是,我们收到了一个新的电源和机箱——没有主板。

现在我们遇到麻烦了。大品牌将要寄给我们零件,但这至少意味着另外 24 小时的停机时间。根据我们在 Linux 帧中继路由器上的经验,我们决定为这个链路试用我们的备用 Sangoma S508 卡。我们大约在一个小时内加载了 Linux 并配置了软件。我们启动了 WANPIPE 软件,但什么也没发生。使用 Sangoma 产品附带的 ppipemon 实用程序,我们能够判断链路在 LCP 协商阶段失败。也就是说,我们的路由器正在与 ISP 的路由器通信,但他们无法就链路的操作参数集达成一致。幸运的是,我们有这些工具。我们的 ISP 告诉我们,他们非常确定我们根本没有连接到线路的路由硬件。尽管事实上我们可以告诉他们我们从他们的路由器接收到的确切数据流。

绝望之下,我们致电 Sangoma,看看他们是否熟悉这种行为。他们不熟悉,但表示愿意查看数据跟踪的输出。我们收集了几秒钟的失败协商序列,并通过邮件发送给了 Sangoma。不到四个小时后,我接到了 Sangoma 一位工程师的电话,他告诉我 PPP RFC 中有一个模糊的部分,我们的 ISP 的端口多路复用器已经实现了该部分。最棒的是,Sangoma 已经将补丁放在他们的 FTP 服务器上了。十五分钟后,我们恢复运行了。虽然主板确实从大品牌那里运来了,但我们再也没有回去。这台路由器作为我们备份的备份存放在仓库中。回顾事件的经过,我对以下几点印象深刻

  • 我们比我们的 ISP 更配备了故障排除工具。也许我们只是更有动力,但我不得不质疑技术人员或工具的完整性,当我在列出 LCP 数据包序列时被打断,并被问到“您确定路由器已通电并连接到 CSU/DSU 吗?”

  • 我们能够在不到一天的时间内获得补丁。

  • 我们能够将至少 48 小时的停机时间缩短到不到 30 小时,如果我们更快地考虑使用 Linux 路由器,时间甚至会更短。(在力求达到 99.5% 可用性的生产环境中,您每年有 43.8 小时的维护和停机时间。)

结论

本文的目的不是说 Linux 路由器将使传统路由硬件过时。在考虑路由硬件时,请确保工具适合手头的工作。如果您有一条 T-3 连接到互联网,或者想要将远程站点与 ATM 连接起来,您可能需要购买专门设计用于以这些速度交换和路由数据包的设备。同样,当您只需要路由 128Kbps 甚至 1.5Mbps 时,为什么要额外花费费用和麻烦来部署专用硬件以及随之而来的所有不便呢?

由于没有人可以预见到将对他们的路由环境提出的所有要求,因此灵活性和可扩展性在任何解决方案中都是理想的。Linux 内核正在迅速支持越来越复杂的流量整形和数据包监控类型。路由硬件,包括处理器,可以经济高效地升级。此外,这种相同的硬件可以提供额外的功能。最后,Linux 路由器配备了一整套熟悉的工具,用于监控和自定义。

只需最少的硬件和时间投入,您就可以为新链路试用 Linux 路由器,或将其用作当前链路的备份。如果您是数据通信新手或需要支持,您更有可能找到一位可以阅读的 Linux 黑客(这对于运行 Sangoma 卡来说就足够了),而不是找到一位大品牌路由器大师。通常,Linux 人士非常友好且乐于助人。毕竟,有些东西就是很棒。对于商业环境而言,Linux 人才的可用性正在增加,并且这种环境的培训成本远低于封闭系统。由于 Linux 是开放的,因此您在时间和资本方面的投资得到了更好的保护。不妨试一试。您不会后悔的!

词汇表

Linux WAN Routers
Tony Mancill 花费了大量时间学习电气工程,然后才从佐治亚理工学院毕业,最终却整天与计算机打交道。当他不为 LHS Communications Systems 工作时,他将时间分配在打鼓、自酿啤酒和试图教他的狗新把戏之间。他最近自愿加入 GNU/Debian Linux 项目,担任 wanpipe 包的维护者。您可以通过电子邮件 tmancill@lhsgroup.com 与他联系。
加载 Disqus 评论