|
|
|||
|
wm-help.net -> Электронная библиотека -> UNIX/Linux -> Руководство Сетевого Администратора Linux -> Configuring the Networking HardwareConfiguring the Networking Hardware
Глава 3. Настройка сетевого оборудованияДо сих пор мы мало говорили относительно сетевых интерфейсов и общих проблем TCP/IP и не говорили о том, что происходит, когда сетевой код в ядре обращается к аппаратным средствам. Для этого мы должны немного поговорить о концепциях интерфейсов и драйверов. Во-первых, конечно, имеются непосредственно аппаратные средства, например, Ethernet-карта: пластина из эпоксидной смолы, усыпанная большим количеством крошечных чипов с номерами на них, и воткнутая в слот Вашего компьютера. Это то, что мы обычно называем устройством. Для того чтобы использовать Ethernet-карту, необходимы специальные функции, расположенные в ядре Linux, которые знают, как работать с этим устройством. Это так называемые драйверы устройств. Например, Linux имеет драйверы устройства для нескольких марок плат Ethernet, которые очень похожи по выполняемым функциям. Они известны как "Becker Series Drivers", и называются так по имени их автора, Donald Becker. Другой пример: драйвер D-link, который работает с адаптером пакетов D-link, присоединяемым к параллельному порту. Linux имет драйверы для разных интерфейсов сетевых карт: ISA, PCI, MCA, EISA, Parallel port, PCMCIA, не так давно появились и адаптеры на USB. Но что мы подразумиваем, когда говорим, что драйвер управляет устройством? Давайте вернемся к плате Ethernet, которую мы уже упоминали. Драйвер должен быть способен работать с переферией этой платы: он должен посылать команды и данные плате, в то время как плата должна передавать полученные данные драйверу. В PC-компьютерах эта связь устанавливается через область памяти ввода-вывода, которая является отображением регистров платы и т.п. Все команды и данные, которые ядро посылает плате, проходят через эти регистры. Память ввода-вывода описывается указанием начального адреса (base address). Типичные основные адреса для Ethernet-плат 0x280 или 0x300. Сетевые карты на интерфейсе PCI обычно получают адрес ввода-вывода автоматически. Обычно можно не беспокоиться о проблемах аппаратных средств, типа адреса ввода-вывода потому, что ядро делает попытку во время загрузки обнаружить местоположение платы. Это называется autoprobing (автопоиск), который означает, что ядро во время загрузки считывает несколько участков памяти и сравнивает считанные данные с теми, которые должны быть получены, если установлена плата Ethernet. Однако, существуют Ethernet-платы, которые ядро не может автоматически обнаружить. Это часто случается с дешевыми картами Ethernet. Другой параметр, который Вы могли бы сообщить ядру, interrupt request channel (канал запроса прерывания). Компоненты аппаратных средств обычно прерывают ядро, когда они нуждаются во внимании, например, когда прибыли данные или произошли другие события. В PC прерывание может происходить на одном из каналов (0, 1, 3 и до 15). Номер прерывания, назначенный компоненту аппаратных средств называется interrupt request number или IRQ. Как описано в главе 2, ядро обращается к устройствам через так называемый интерфейс. Интерфейсы предлагают абстрактный набор функций, которые являются стандартными для всех типов аппаратных средств, типа посылки или получения пакетов данных. Интерфейсы идентифицируются посредством имен. Эти имена определены внутри ядра, это файлы устройств в каталоге /dev. Если ввести команду ls -las /dev/, Вы увидите много файлов. В колонке прав доступа Вы увидите, что первым символом прав доступа здесь является не такой символ, как для обычных имен файлов. Он показывает тип интерфейса. Символ b задает блочное (block) устройство. Символ c задает символьное (character) устройство, которое обрабатывает данные посимвольно, а не блоками. В поле длины файла Вы увидите два числа, которые называются старшим и младшим номерами устройства. Каждый драйвер имеет уникальный старший номер в ядре. Каждая копия драйвера (по одной на устройство) имеет свой младший номер. Интерфейсы tty с именами /dev/tty* являются символьными, и имеют первый символ в правах доступа c”, все они имеют общий старший номер 4, но младшие номера у каждого свои: /dev/tty1 имеет младший номер 1 и /dev/tty2 имеет 2. Наиболее типичные имена перечислены в разделе "Обзор сетевых устройств в Linux". Типичные имена для интерфейсов Ethernet: eth0, eth1 и т.д. Назначение интерфейсов для определенных устройств обычно зависит от способа, которым устройства сконфигурированы. Например, первая установленная Ethernet-плата станет eth0, следующая eth1 и так далее. Исключение из этого правила: интерфейсы SLIP, которые назначаются динамически, То есть: всякий раз, когда устанавливается SLIP-связь, последовательному порту назначается интерфейс. При загрузке ядро показывает, какие интерфейсы установлены и устройства найдены. Вот образец типичного сообщения при загрузке:
Этот пример показывает, что ядро построено с поддержкой сетевого протокола TCP/IP и включает драйверы для SLIP, CSLIP и PPP. Третья строка снизу говорит об обнаружении платы 3C509 Ethernet и установке ее интерфейса eth0. Если у Вас другой тип сетевой карты, будет выведена соответствующая строка, обычно с ее названием. Например, для адаптера D-Link используется имя dl0. А вот если сетевая карта есть, а сообщения о ней нет, тогда плохо дело. Ядро не нашло карту при загрузке. Эта ситуация будет рассмотрена позже. Настройка ядраВсе дистрибутивы Linux имеют загрузочный диск, рассчитанный на все мыслимое оборудование. Но такое ядро занимает уйму места, а драйверы в нем по большей части не понадобятся. Вывод: надо перестроить ядро, чтобы убрать из него все лишнее и оптимизировать использование памяти. В любом случае при работе с Linux-системой Вы должны быть знакомы с формированием ядра. Это не так сложно! В данном руководстве рассмотрены только параметры конфигурации, которые воздействуют на работу с сетями. Очень важна версия ядра. Ядра Linux нумеруются по следущей схеме: 2.2.14. Первая цифра показывает старший номер версии. Эта цифра изменяется, когда вносятся значительные изменения. Старший номер версии сменился с 1 на 2, когда ядро было перенесено на другие платформы (не Intel). Второе число определяет младший номер версии. Разработчики Linux договорились о том, что четный младший номер версии показывает production (готовую) или stable (стабильную) версию ядра, а нечетный показывает development (разрабатываемую) или unstable (нестабильную) версию. Вы должны использовать на машине, которая является важной, стабильные ядра потому, что они надежны настолько, насколько вообще может быть надежна программа. Можно использовать нестабильные ядра, если нужны некоторые экспериментальные возможности Linux, но они не отлажены до конца. Они надежней, чем Windows, но все же ниже того минимума, который позволителен в Linux. Третье число показывает номер редакции версии ядра. Система развивается, в ней устраняются небольшие ошибки, появляются новые возможности, что и отражается этим номером. При запуске программы make menuconfig Вы получите текстовое меню с опциями настройки ядра. На вопрос о поддержке сетей TCP/IP надо ответить "y" для ее включения. Опции ядра в Linux 2.0 и вышеЗдесь в главном меню задаются параметры для основных возможностей системы, например, поддержки SCSI или звуковых карт. Вы можете нажать ? для получения подробного описания опции. Чтобы включить поддержку некой возможности в ядро постоянно, надо ответить y. Можно ответить m, тогда соответствующий драйвер будет включен в ядро как модуль и загружаться по мере необходимости. При всем своем удобстве модули не могут загружаться при начальной инициализации ядра, так что все необходимое для его загрузки должно быть встроено прямо в ядро без модулей. Наконец, если некая возможность не нужна, от нее можно отказаться ответом n. Меню настройки имеет иерархический вид. Например, чтобы настроить сеть, Вам сначала нужно подвердить, что Вы вообще включаете ее поддержку, и только потом будут заданы вопросы о том, в чем именно эта поддержка должна выражаться. В ядрах серий 2.0 и 2.1 первый вопрос о сети такой:
Вы должны ответить y, чтобы использовать любые типы сетевых интерфейсов: Ethernet, SLIP, PPP или другие. При ответе y поддержка устройств Ethernet включается автоматически. После этого система проведет опрос о конкретных возможностях:
Эти вопросы касаются различных протоколов уровня связи, которые Linux поддерживает. PPP и SLIP позволяют Вам передавать пакеты IP по последовательной линии связи. PPP не ограничен передачей пакетов TCP/IP, он может передавать пакеты IPX. Если Вы отвечаете y или m на вопрос о поддержке SLIP, Вам придется ответить на три вопроса, которые появляются после этого. Опция "CSLIP compressed headers" позволяет сжимать заголовки пакетов TCP/IP. Заметьте, что эта опция лишь обеспечивает возможность работы с такими заголовками, но не заставляет работать с ними в обязательном порядке! Опция Keepalive and linefill заставляет поддержку SLIP периодически генерировать действия на линии SLIP, чтобы таймер неактивности не разрывал соединение. Опция Six bit SLIP encapsulation позволяет Вам выполнять SLIP на линиях, которые не способны к передаче 8-битных данных в чистом виде. PLIP обеспечивает способ послать IP-пакеты через параллельный порт. Это обычно используется, чтобы связаться с машинами, работающими в DOS. На типичных аппаратных средствах PLIP может быть быстрее, чем PPP или SLIP, но он требует намного большей нагрузки на CPU. Следующие вопросы касаются драйверов для разных сетевых карт. Можно задать не один драйвер, а несколько, если машина имеет несколько сетевых карт разных фирм:
Наконец, в секции файловых систем, Вас спросят о необходимости поддержки сетевой файловой системы NFS. NFS позволяет обращаться по сети к дискам и каталогам удаленной машины, как к своим собственным:
Сетевые опции в ядре Linux 2.2.0 и вышеLinux 2.2.0 отмечена серьезными изменениями в сетевой части ядра. Появилось много новых опций, а также поддержка протокола IPX. Большая часть этих опций нужна только в особых конфигурациях, так что я их не описываю. Подробно с ними можно ознакомиться в Networking HOWTO. Я перечислю наиболее часто используемые опции:
|
|
| бодибилдинг | Строим Домик | RU-домены за 170 рублей | Copyright © "В помощь Веб-Мастеру" (Alexander D. Belyaev) 2005-2008. При перепечатке любого материала видимая ссылка на источник "В помощь Веб-Мастеру" и все имена, ссылки авторов обязательны! Время генерации страницы: 0.070 |