驶入快车道
随着有线调制解调器和 xDSL(数字用户线路)技术等技术的出现,个人现在可以拥有连接到互联网的适度到极快的持续连接,而不是通常的基于模拟电话线的调制解调器。这些新技术使用不同的硬件,有时,就像有线电视的情况一样,使用不同的传输介质。
在本文中,我将描述如何设置带有局域网 (LAN) 的有线调制解调器,以提供与外部世界的快速连接。但是,您不需要拥有有线调制解调器即可从本文中受益,只需与互联网建立快速且持续/半持续的连接即可,例如 ISDN 或帧中继。设置程序几乎相同,只是您的硬件可能需要特殊的驱动程序。有关支持的详细信息,请联系制造商。
目前市场上有三种类型的有线调制解调器。一种是静态类型,始终处于启动和连接状态。这种类型通常很昂贵,并且具有静态 IP 地址。它还提供双向通信,用于下载和上传。这是运行 Web、FTP 或 TELNET 服务器的最佳调制解调器类型。第二种类型的调制解调器是动态有线调制解调器,它也提供双向通信,但具有登录程序,每次您希望使用它时都会分配一个动态 IP 地址。此类调制解调器使用 DHCP 客户端从前端服务器获取动态 IP 地址。市场上第三种也是最便宜的调制解调器类型要求您使用电话线上传信息(例如网页请求),并使用有线电视下载信息(例如网页)。这种类型的服务通常价格低廉,但延迟极高。这不是用于设置服务器的调制解调器类型,因为上行连接速度太慢。但是,这种类型的下载速度非常快。
本文将重点介绍第一种类型的调制解调器,因为这些是最常见的。关于所有类型的调制解调器,都有优秀的在线资源。关于动态调制解调器的优秀页面是 http://home.neo.lrun.com/rrlinux。此页面链接到所需的软件,例如 DHCP 客户端和 RoadRunner 调制解调器客户的登录程序。关于如何为有线调制解调器正确设置 DHCP 的良好资源可以在 http://elycion.geology.ualberta.ca/~dkimmel/cablemodem.html 找到。第三种类型的调制解调器,即使用电话线上传数据的有线调制解调器,几乎完全由专有软件和硬件控制。这些解决方案的实施是因为为现有有线电视设备配备双向通信的成本很高,而双向通信是有线调制解调器理论的基本组成部分。此类解决方案需要在 Linux 端使用笨拙、临时的软件解决方案。必须混合使用 DHCP 和 PPP 才能使路由正常工作,但在完成后,它会非常快。有关正确配置模拟调制解调器的帮助,请查阅 PPP HOWTO。对于有线调制解调器部分,请按照此处或上述网页上显示的说明进行操作。DHCP 应该以相同的方式工作。
使用基于同轴电缆的互联网接入,在许多英里内都不会发生信号衰减。目前,由于可靠性因素,有线电视是家庭和中小型企业首选的高速、低成本连接方法。有线互联网接入的可用性每天都在扩展到更多地区。
有线调制解调器套餐通常包括调制解调器租赁或购买费以及服务费。租赁费通常在 15 到 20 美元之间,服务费每月 35 到 70 美元不等,具体取决于地点。速度因服务而异。例如,@Home 和 RoadRunner 提供的速度非常快,相当于多个 T1 在上传和下载方面的性能。然而,诸如 GTE 之类的服务收费是其两倍,但速度仅能与双 ISDN 竞争,双 ISDN 的传输速度为每秒 128 千比特,大约为每秒 15 到 16 千字节。这一切都取决于您的提供商。
xDSL 技术使用数十年来一直使用的相同铜线,两端都有硬件来加速数据传输。这种方法的一个缺点是必须在沿途使用中继器和/或放大器,以防止信号衰减。xDSL 仍然未经测试,并且在服务和硬件方面极其昂贵。事实上,xDSL 技术目前仍被认为处于测试阶段(2 月),因此我将在本文中重点介绍有线电视技术。
xDSL 技术是电话公司对有线调制解调器技术的响应,可能会更昂贵。由于整个技术仍处于早期阶段,因此没有平均价格。您预计每月支付的价格从有线调制解调器价格到数百美元不等才能获得这项服务。然而,对于传输介质而言,该服务的速度是惊人的。您获得的速度取决于您的电话公司和地点。
有了这两项新技术,Linux 用户应该如何充分利用它们?很简单。只需几个简单的软件,您就可以拥有一个完整的内部网络,其中包含一个简单的防火墙,能够通过每台计算机进行万维网浏览、互联网中继聊天以及连接到外部世界(通过 FTP)。诸如 CU-SeeMe(视频会议程序)之类的软件具有 IP 伪装模块,以便在此环境中工作。请注意,IP 伪装不允许与客户端计算机建立传入连接,因此客户端计算机是真正的客户端计算机。
所有较新的 Linux 内核都包含对 IP 伪装的支持,这允许网络上的一组计算机使用指定的计算机的 Internet 地址访问 Internet。来自计算机的所有连接都必须通过指定的 IP 伪装“主机”或服务器。此服务器充当网关机器,如果您设置 DNS 服务器,则可以用作 DNS 机器。使用 route 和 ipfwadm,您可以设置一个简单但有效的数据包路由方案,将数据包传递到适当的客户端计算机。此类设置的先决条件如下
一台 Linux 服务器
运行支持网络的操作系统的客户端计算机
一或两个以太网卡,具体取决于您的路由器类型
标准的 Linux 网络软件包;有关详细信息,请参阅您的发行版文档。
我假设您已经为客户端计算机提供了以太网支持。如果您的客户端计算机是 Linux 并且您尚未设置以太网卡,请阅读文档并进行设置——所有驱动程序很可能已经可以工作了。
对于服务器,设置网络的第一个步骤是设置以太网硬件。这相对简单:重新编译内核或编译模块以包含对您的网卡的支持。如果您的网卡受到 Linux 内核的支持,请以 root 身份在 Linux 源代码树的顶部键入 make menuconfig,并使用菜单配置支持,从而将支持编译到内核中。有关如何重新编译内核的更多信息,请访问 Linux Kernel HOWTO,网址为 http://sunsite.unc.edu/linux/HOWTO/Kernel-HOWTO.html。
在内核设置程序中,在“代码成熟度级别选项”下,选中“提示开发和/或不完整的代码/驱动程序”框,以便您可以选择使用 IP 伪装。此外,在“网络选项”部分中,选中以下各项:网络防火墙、网络别名、TCP/IP 网络、IP 转发/网关、IP 多播、IP 防火墙、IP 记帐、IP 伪装和 IP 隧道。虽然 IP 伪装是实验性的,但它相当稳定,并且必须包含在内。
如果您的网卡(例如 Intel 的 EtherExpress Pro 10 PCI 网卡)在内核中不受支持或支持已损坏,您可以下载并为您的网卡制作一个模块。关于 Linux 上以太网卡信息的绝佳资源是 Linux Ethernet HOWTO,网址为 http://sunsite.unc.edu/linux/HOWTO/Ethernet-HOWTO.html。在 Ethernet HOWTO 中,您应该找到关于您的网卡的完整信息以及如何在 Linux 下使用它。另一个很棒的资源是 Donald Becker 的以太网驱动程序页面,网址为 http://cesdis.gsfc.nasa.gov/pub/linux/linux.html。此页面包含许多网卡的驱动程序(许多由 Becker 先生编写),包括一些处于 alpha 阶段的驱动程序。请注意,许多 alpha 驱动程序是完全可用的,而许多是完全不可用的。要了解这一点,请查看 Ethernet HOWTO 以获取支持状态。您还可以阅读模块的实际源代码,其中应在顶部或底部附近包含有关安装和编译的说明。将以太网卡模块安装到 /lib/modules/2.0.xx/net 文件中,并将以下行放入您的一个启动脚本中
depmod -a modprobe drivername
请注意,modprobe drivername 不包括文件名末尾的“.o”。这不是必需的,所以您不应该将其放入;modprobe 知道如何处理模块的加载。要查看是否已将模块加载到内存中,请在提示符下键入 lsmod。如果您看到您的网卡的列表,则该模块已加载。故障排除步骤也可以在 Linux Ethernet HOWTO 中找到。这是一个极好的资源,在设置以太网卡时绝不应错过。
如果您的有线调制解调器或其他高带宽设备不支持插入集线器或同轴网络,则简单的解决方案是为该设备购买一个便宜的 NE2000 克隆卡,并使其与其他网络部分分开。是的,没错,您的服务器计算机中将有两个以太网卡。关于多以太网卡支持的首要问题是网卡被检测到的顺序。这很重要,因为 Linux 根据启动过程中检测到的顺序按数字顺序寻址以太网卡。如果您知道以太网卡的 IRQ 或 I/O 地址(它可能在板上或通过软件设置),您可以将此行添加到 lilo.conf 文件的顶部
append = "ether=irq,ioadd,eth0 ether=irq,ioadd,eth1"
此行告诉内核将哪些以太网设备分配给哪些 I/O 或 irq 组合。例如,如果您在 irq 10 和内存地址 0x300 上有一个 3Com 3c509b,并且您希望该网卡为 eth0,则将此行添加到 lilo.conf 文件的最顶部
append = "ether=10,0x300,eth0"对于额外的以太网卡,您只需在 append 引号内第一个以太网卡之后添加另一个 ether=x,x,ethx,如前面的示例所示。这是让内核将正确的设备分配给正确的网卡的最简单方法。所有现代以太网卡都附带软件或跳线,可让您设置 irq 和内存地址。如果它们没有,请查看计算机的 BIOS,或者如果您有另一个操作系统(例如 Win95),请在系统设置中查找映射的地址。要检查以太网卡是否被正确检测到,只需键入 cat /proc/interrupts 并查看您的网卡是否在那里列出。
现在您已经设置好网卡,继续启动进入 Linux。首先,以 root 身份登录或 su,然后运行命令 ifconfig。您将获得一些段落的信息,说明您的网络接口的状态。此时,您的以太网接口(eth0、eth1)将不会列出,因为您尚未配置它们。列出的唯一接口应该是环回接口,以及您已设置的任何其他接口。
我们现在想要做的是设置每个接口。对于单以太网卡系统,发出以下命令
ifconfig eth0
将 x.x.x.x 替换为您指定的 IP 地址。此号码由您的 ISP(互联网服务提供商)提供。还要将 eth0 更改为您希望将地址映射到的任何接口。现在,以 root 身份运行 ifconfig。您将看到 eth0 接口列出,其中包含所有网卡详细信息和传输统计信息。如果您有第二张网卡,请发出相同的命令,这次使用 eth1 而不是 eth0 和内部网络 IP 地址。对于您的内部网络,地址应采用 192.168.0.0 的形式,其中 192.168.1.1 是将托管连接的机器。换句话说,您的所有其他机器都应分配 192.168.1.1、192.168.1.2、192.168.1.3 等。这些 IP 地址未在互联网上公开路由,并且不应干扰外部世界。
设置好接口后,就该设置路由了。这听起来可能很复杂,但一旦您熟悉 route 命令,它就非常容易了。此命令控制所有网络接口之间的数据流。route 手册页提供了有关此命令的所有复杂性的完整详细信息。现在,使用以下一系列命令来配置路由
route add route add default gw route add -net 192.168.1.0 eth1
将 gateway_address 标志替换为您的实际网关机器地址,该地址也由您的 ISP 提供。前两个命令告诉机器可以通过 eth0 接口直接访问主机 gateway_address。第三个命令表示默认路由(0.0.0.0,任何机器)应通过网关 gateway_address 访问。最后一行指示可以通过接口 eth1 访问网络 192.168.1.0 中的任何机器。将这三行和上面的 ifconfig 行放入启动脚本中,该脚本通常在 Slackware 中位于 /etc/rc.d,在 Red Hat 中位于 /etc/rc.d/rc.init。查看您的发行版文档以获取相关信息。
现在,通过编辑 /etc/resolv.conf 文件来设置 DNS 解析,以包含以下行
domain isp.com nameserver nameserver
将 isp.com 替换为您的 ISP 的域名,并将 x.x.x.x 替换为您的 ISP 的主域名服务器,并将 y.y.y.y 替换为您的 ISP 的辅助域名服务器。如果您没有辅助域名服务器,请不要担心,实际上只需要一个。添加这些行后,保存文件并重新启动。
当您的计算机重新联机后,您将能够在主机上使用有线调制解调器执行常规 Internet 功能,例如 FTP、TELNET 和访问 WWW。
为了在计算机之间有效地共享带宽,而无需每台计算机的实际 IP 地址,请使用如上所述的内部 IP 地址。伪装服务器将来自每台客户端计算机的数据包转发到 Internet,并将数据包中继回客户端计算机。这样做非常有效,对服务器的负载几乎不明显。一个名为 ipfwadm 的工具用于设置 IP 转发和拒绝的“规则”。以下命令也应添加到您的一个启动脚本中(请参阅 列表 1),在 ifconfig 和 route 部分之后
ipfwadm -F -p deny ipfwadm -F -a M -S 192.168.1.0/24 -D 0.0.0.0/0
第一个命令告诉 ipfwadm 将 IP 防火墙的策略更改为拒绝。第二个命令稍微复杂一些;它指示 ipfwadm 追加以下命令,在本例中为 M、-S 和 -D 标志。M 添加一个伪装规则,该规则声明接受所有源地址为 192.168.1.0 且目标地址为 0.0.0.0(基本上意味着任何主机)的数据包。/24 指定子网掩码中设置的位数。请记住,在二进制中,您只能有一个设置位或未设置位,并且在子网掩码中,该值始终为 255 或二进制中的 11111111。您也可以将 24 替换为实际子网掩码,在本例中为 255.255.255.0。-D 规则中的零仅表示允许任何子网掩码。有关更多详细信息,请参阅 ipfwadm 的手册页。
此时,最好重新启动,运行所有脚本并加载所有模块。如果您不想关闭机器,可以重新运行启动脚本并抱最好的希望。
现在最困难的部分已经结束,是时候设置将使用 IP 伪装来访问互联网的客户端计算机了。在大多数主要操作系统中,有效使用互联网需要子网掩码、IP 地址、网关和 DNS 服务器的值。此外,必须在 UNIX 机器中指定路由。Win95 中的路由设置更加透明,尽管有一个 route 命令。
在 Win95 或 Macintosh 机器上,第一步是安装网络硬件,这很可能是以太网卡。这些平台得到了很好的支持,硬件应附带完整的文档和安装软件。阅读操作系统文档,了解如何设置网络设置。一旦您知道如何设置网络,请使用 192.168.1.x 作为 IP 地址,其中 x 小于 255 但大于 1。不要为同一网络上的两台计算机分配相同的网络地址。对于网关地址,请使用 192.168.1.1,如果您按照我的示例进行操作,这将对应于您的服务器计算机。对于 DNS 服务器搜索顺序或 DNS 服务器,输入用于服务器计算机的相同 DNS 服务器。或者,如果您的服务器计算机上运行了 DNS 服务器,您可以将其指定为 DNS 机器。不要启用任何奇怪的 WINS 设置;将接口设置为默认接口。在 Win95 中,这可以在“高级”选项卡下找到。在其他操作系统中,您应该可以使用诸如 route 之类的命令来指定它。在 Macintosh 系统上,您不必担心这一点,除非您有多张以太网卡,这不太可能。此外,在 Macintosh 系统上,网关地址可能被称为“路由器地址”。将其视为与“网关地址”术语相同。
您的操作系统在设置上可能有所不同,但您使用的值是普遍相同的。阅读您的操作系统文档以获取有关如何设置这些值的更多信息。
如果您尚未测试您的设置,那么现在是测试您的设置的时候了。确保您的服务器机器正在运行,并且所有软件都已正确配置。然后,打开一台客户端计算机并在 Win95 的命令提示符或“运行”窗口中键入 ping 192.168.1.1。您应该每秒左右获得一堆数字。这意味着网络正在运行。按 CTRL-C 停止 ping 命令的 ping 操作。接下来,打开一个客户端软件,例如 FTP 程序或 Web 浏览器,并打开您最喜欢的 WWW 站点。如果站点出现,则您的设置工作正常。如果不是,那么您应该检查设置并重试。请记住,通过 IP 伪装显示网站可能比通过常规连接花费更长的时间。
如果您想与我讨论任何这些内容,请随时给我发送电子邮件。
