8.1. 每台机器多张以太网卡

你可以使用 Linux 作为两个以太网网络之间的网关。在这种情况下,你的服务器上可能有多张以太网卡。为了消除启动时的问题,Linux 内核不会自动检测多张网卡。如果你碰巧有两张或更多网卡,你应该在以下文件中指定网卡的参数lilo.conf文件(用于单内核)或在conf.modules文件(用于模块化内核)。以下是你可能遇到的网卡问题。

问题 1. 如果网卡的驱动程序被用作可加载模块模块化内核,对于 PCI 驱动程序,模块通常会自动检测所有已安装的卡。对于 ISA 卡,你需要提供卡的I/O基地址,以便模块知道在哪里查找。此信息存储在文件/etc/conf.modules.

示例 8-1. 两张 ISA 以太网卡

假设我们有两张 ISA3c509卡,一张在I/O 0x300,另一张在I/O 0x320。对于 ISA 卡,编辑conf.modules文件,vi/etc/conf.modules并添加
             alias eth0 3c509
             alias eth1 3c509
             options 3c509 io=0x300,0x320
             
这表示3c509驱动程序应该为eth0eth1别名eth0, eth1加载,并且应该使用选项io=0x300,0x320加载,以便驱动程序知道在哪里查找卡。请注意0x很重要,像300h这样在 DOS 世界中常用的写法是行不通的。

对于 PCI 卡,你通常只需要别名行将ethN接口与适当的驱动程序名称关联起来,因为 PCI 卡的I/O基地址可以安全地检测到。对于 PCI 卡,编辑conf.modules文件 vi/etc/conf.modules并添加
             alias eth0 3c509
             alias eth1 3c509
             

问题 2. 如果网卡的驱动程序被编译到内核中 -单内核PCI 探测器将自动找到所有相关的卡。ISA 卡也会自动找到所有相关的卡,但在某些情况下,ISA 卡仍然需要执行以下操作。此信息存储在文件/etc/lilo.conf中。方法是将启动时参数传递给内核,这通常通过LILO。对于 ISA 卡,编辑lilo.conf文件,vi/etc/lilo.conf并添加
             append=ether=0,0,eth1
             

Important: 首先在lilo.conf文件中测试你的 ISA 卡,不使用启动时参数,如果失败,则使用启动时参数。

在这种情况下eth0eth1将按照启动时找到卡的顺序分配。由于我们已经重新编译了内核,我们必须使用第二种方法。如果驱动程序被编译到内核中以安装我们的第二张以太网卡到系统中。请记住,这仅在某些情况下对于 ISA 卡是必需的,PCI 卡将被自动找到。