date: 22 февраля 1999

Быстрая установка двух сетевых карт в Линуксе

Если у Вас RedHat www.redhat.com, то попробуйте для начала команду netconf: Зайдите в меню Basic Host Information и измените подразделы Adaptor1, Adaptor2...

Если у вас не получилось, или у вас не RedHat, то выбирите один из двух возможных случаев, подходящих под вашу конфигурацию. Первый случай - когда у вас две одинаковые сетевые карты, а второй - когда разные.

В первом случае мы вынуждены использовать один модуль для двух сетевых карт. Так, например, для карт NE2000 мы должны использовать модуль ne. (На сетевые модули и модули к сетевым картам можете полюбоваться в директории: /lib/modules/'версия_системы'/net/ )
Во втором случае все очень просто.
 

Файл конфигурации модулей лежит в директории /etc и называется conf.modules. Собственно его мы и будем редактировать.
 

СЛУЧАЙ 1

Первый способ:

Предположим, что у вас уже стоит одна сетевая карта (для примера я взял NE2000), тогда часть файла conf.modules выглядит примерно так:
   #--------------------
   alias eth0 ne
   options ne io=0x280 irq=3
   #--------------------
где 0x280 - адрес, а 3 - прерывание карты. Теперь мы хотим добавить в систему еще одну карту NE2000. Для этого добавляем в файл conf.modules строку alias eth1 ne, а в строку options ne io=0x280 irq=3 после каждого параметра, через запятую, вписываем адрес и, соответственно, прерывание второй сетевой карточки. В результате мы получим:
   #--------------------
   alias eth0 ne
   alias eth1 ne
   options ne io=0x280,0x300 irq=3,15
   #--------------------
где 0x280 и 0x300 соответственно адреса первой и второй сетевых карт, а 3 и 15, соответственно, их прерывания. Т.е. первая сетевая карта имеет адрес 0x280 и прерывание 3, а вторая адрес 0x300 и 15-ое прерывание. Причем первая карта будет привязана к eth0, а вторая к eth1.
 

Второй способ:

Пусть, для примера, у вас уже установлена сетевая карта NE2000-Compatible. До нашего вмешательста, часть файла conf.modules, в которой записаны опции для стоящей карточки, выглядит также как и в предыдущем способе:
   #--------------------
   alias eth0 ne
   options ne io=0x280 irq=3
   #--------------------
Давайте опять добавим строчку alias eth1 ne для привязывания модуля ne к устройству eth0, а между словом options и последующей строчкой напишем eth0 -o, что значит, что следующее слово после -o будет псевдоименем, а к ne припишем единицу, чтобы оно отличалось от ne. Теперь ne1 - это псевдоимя ne. После этих изменений файл будет выглядеть так:
   #--------------------
   alias eth0 ne
   alias eth1 ne
   options eth0 -o ne1 io=0x280 irq=3
   #--------------------
где 0x280 и 3 адрес и прерывание соответственно. А теперь просто добавим анологичную строку options для eth1:
   #--------------------
   alias eth0 ne
   alias eth1 ne
   options eth0 -o ne1 io=0x280 irq=3
   options eth1 -o ne2 io=0x300 irq=15
   #--------------------
Здесь слова ne1 и ne2 ничего не значат, вместо них можно написать буквы a и b, например. Главное, чтобы они отличались друг от друга и не совпадали с именами других модулей. Это объясняется тем, что ядро не может отличить ne от ne, а ne1 от ne2 может. Чтобы понять что же это значит, после перезапуска системы запустите команду lsmod, которая сообщит о подсоединенных к ядру модулях:
   [AZZ:/etc]# lsmod
   Module         Pages    Used by
   ne1                2            1 (autoclean)
   ne0                2            1 (autoclean)
   8390               2    [ne1 ne0]       0 (autoclean)
  .........
Советую убрать из файла /etc/rc.d/rc.modules строку(и) для модуля(ей) которые прописаны в файле /etc/conf.modules.
 

СЛУЧАЙ 2.

Рассмотрим вариант, когда у вас имеются две разных сетевых карты, такие, что Вы не можете использовать один модуль для обеих карт, и не можете поступить как описано выше. Собственно, здесь все совсем просто. Нужно просто добавить две строки в файл /etc/conf.modules, аналогичные строкам для первой карты. Если у вас было:
   #--------------------
   alias eth0 имя_модуля_для_первой_карты
   options имя_модуля_для_первой_карты io=0x280 irq=3
   #--------------------
то теперь станет:
   #--------------------
   alias eth0 имя_модуля_для_первой_карты
   options имя_модуля_для_первой_карты io=0x280 irq=3
   alias eth1 имя_модуля_для_второй_карты
   options имя_модуля_для_второй_карты io=0x300 irq=15
   #--------------------
где 0x280 и 0x300 соответственно адреса первой и второй сетевых карт, а 3 и 15, соответственно, их прерывания.

Вот собственно и все. Перезапускаете систему и следите за тем, что пишет система при запузке. Если все нормально, то Вы увидите как загружаются модули (будет написано версия, имя модуля, автор и т.д.). В случае если система напишет что-то похожее на delaying eth1 initialization, ну или что-то аналогичное, тогда ищите ошибку...

PS Для привязывания IP адресов к сетевым картам используется команда ifconfig.


[оглавление]
составление: Андрей Зайцев-Зотов
1999