Настройка сетевых интерфейсов

We use cookies. Read the Privacy and Cookie Policy

Настройка сетевых интерфейсов

Загрузка драйвера — это лишь первое действие, которое надо выполнить, чтобы обеспечить доступ к сетевому интерфейсу. Для того чтобы интерфейс можно было использовать, ему необходимо присвоить IP-адрес и выполнить дополнительные настройки, например задать маску подсети. Для решения этой задачи используется утилита ifconfig, которая, в зависимости от способа ее вызова, либо отображает информацию об интерфейсе, либо изменяет его конфигурацию.

Использование ifconfig

Синтаксис ifconfig достаточно прост. Для вызова данной утилиты надо задать в командной строке следующее выражение:

ifconfig [интерфейс] [опции]

Набор передаваемых параметров определяет поведение ifconfig. Данная утилита может выполнять следующие действия.

• Если ifconfig вызывается без параметров, она возвращает информацию о состоянии всех активных сетевых интерфейсов, т.е. действует как инструмент диагностики.

• Если данной утилите передано только имя интерфейса (например, eth0 или tr1), то она возвращает информацию лишь о состоянии этого интерфейса.

• Если помимо имени интерфейса заданы некоторые опции, ifconfig модифицирует данный интерфейс в соответствии со значениями переданных опций. Чаще всего с помощью данной утилиты интерфейс активизируется либо переводится из активного в неактивное состояние.

Если вы собираетесь использовать ifconfig для настройки интерфейса, вам необходимо изучить назначение опций, которые передаются данной утилите. Список опций, которые приведены на страницах справочной системы, посвященных ifconfig, очень велик. Наиболее важные из них описаны ниже.

• up адрес. Данная опция активизирует интерфейс и связывает с новым интерфейсом указанный IP-адрес. Если в составе команды не указана маска подсети, используется маска, определяемая исходя из класса адреса (классы IP-адресов описаны в табл. 2.2). В большинстве случаев ключевое слово up можно не указывать; если при вызове ifconfig заданы имя интерфейса и IP-адрес, оно предполагается по умолчанию.

Таблица 2.2. Классы IP-адресов и соответствующие им маски подсети

Класс Диапазон адресов Адреса, предназначенные для внутреннего использования Маска подсети Class A 1.0.0.0-127.255.255.255 10.0.0.0-10.255.255.255 255.0.0.0 Class В 128.0.0.0-191.255.255.255 172.16.0.0-172.31.255.255 255.255.0.0 Class С 192.0.0.0-223.255.255.255 192.168.0.0-192.168.255.255 255.255.255.0

• down. Эта опция противоположна опции up, т.е. она делает интерфейс неактивным ("закрывает" его).

• netmask nm. Данная опция устанавливает маску подсети для интерфейса. Маска подсети определяет, какое число битов в составе IP-адреса выделяется для представления адреса сети; остальные биты адреса идентифицируют компьютер в составе сети. Если данная опция не указана, по умолчанию принимается маска подсети, определяемая на основании адреса (табл. 2.2). Маску подсети можно также задать с помощью опции up адрес как число бит, соответствующих адресу сети.

• [-]promisc. По умолчанию сетевая карта принимает только те пакеты, которые непосредственно адресованы ей. Данная опция включает (promisc) или отключает (-promisc) так называемый режим сбора пакетов, или режим прослушивания (promiscuous mode), в котором карта принимает все пакеты, передаваемые по сети. Режим сбора пакетов применяется для диагностики сети. (Этот режим часто используют хакеры для перехвата паролей, передаваемых в незакодированном виде.) Некоторые программы также могут включать режим сбора данных.

• mtu n. Данная опция устанавливает значение MTU (Maximim Transfer Unit — максимальный размер передаваемого блока), т.е. максимальный размер пакета нижнего уровня. Для сетей Ethernet значение MTU обычно принимается равным 1500, но при необходимости вы можете изменить его. (Ряд маршрутизаторов использует меньшее значение MTU, кроме того, некоторые протоколы накладывают ограничения на величину MTU. Если установленный в системе максимальный размер пакета превышает предельно допустимое значение для сети, это приводит к снижению производительности, так как перед передачей пакет разбивается на кадры меньшего размера.)

• add адрес/длина_префикса. Данная опция выполняет те же действия, что и опции up и netmask, но она ориентирована на протокол IPv6. (Протокол IPv6 представляет собой новый стандарт обмена данными в Internet.) Как было сказано в главе 1, IPv6 поддерживает значительно больше адресов, чем IPv4. На момент написания данной книги, т.е. в 2002 г., этот протокол еще использовался очень редко.

• del адрес/длина_префикса. Эта опция противоположна опции add, т.е. она отменяет IPv6-адрес, присвоенный ранее интерфейсу.

• media тип. Некоторые сетевые карты допускают подключение нескольких разъемов (например, 10Base-2 и 10Base-T). Данная опция позволяет определить, какой разъем должен использоваться (например, media 10Base-T). Подробную информацию о поддерживаемых типах разъемов можно найти в описании конкретного драйвера.

• hw класс адрес. Данная опция позволяет задавать аппаратный адрес сетевой карты. Если вам потребовалось заменить сетевую карту, но вы хотите, чтобы сервер DHCP продолжал выделять тот же IP-адрес, вам надо воспользоваться данной опцией и задать для новой карты аппаратный адрес, использовавшийся ранее. Бывают также случаи, когда разные производители выпускают карты с одинаковыми адресами. Такие устройства нельзя использовать в рамках одной локальной сети; в этом случае опция hw также может оказаться полезной. Данная опция предполагает два значения: класс сетевого устройства (например, ether для Ethernet или ARCnet для ARCnet) и аппаратный адрес. Заметьте, что на некоторые сетевые карты данная опция не оказывает влияния.

• txqueulen длина. Эта опция задает длину очереди, т. е. число пакетов, ожидающих передачи через определенный интерфейс. По умолчанию принимается значение 100, что в большинстве случаев обеспечивает нормальную работу сети. Уменьшая длину очереди, можно несколько увеличить скорость обмена посредством таких протоколов, как Telnet и SSH.

В большинстве случаев выполнение команды ifconfig обеспечивает активизацию интерфейса. Ниже приведен пример команды, которая активизирует Ethernet-карту и присваивает ей адрес 172.23.45.67.

# ifconfig eth0 172.23.45.67

Добавляя дополнительные параметры, можно уточнить конфигурацию интерфейса.

# ifconfig eth0 172.23.45.67 netmask 255.255.255.0 mtu 1420

Как было сказано выше, маска подсети определяет, какая часть IP-адреса должна представлять адрес сети, а какая — адрес компьютера в этой сети. Компьютер использует эту информацию для определения адресов назначения исходящих пакетов; если установить маску подсети неправильно, некоторые компьютеры будут не доступны. Если представить маску подсети в двоичном виде, нетрудно заметить, что она начинается последовательностью единиц, за которой следует последовательность нулей. Например, маска 255.255.255.0 состоит из 24 единиц и восьми нулей. Вместо указания маски можно задать в составе адреса число битов, используемых как адрес сети. Информация о числе битов, представляющих адрес подсети, отделяется от основной части IP-адреса косой чертой. Например, 172.23.45.67/24 соответствует адресу 172.23.45.67 и маске подсети 255.255.255.0. Такое выражение можно использовать при вызове утилиты ifconfig в составе опции up адрес; в этом случае опцию netmask nm можно не указывать.

Классы IP-адресов

В качестве примеров IP-адресов в данной книге используются зарезервированные адреса. предназначенные для организации работы внутренних сетей. Сделано это для того, чтобы неопытные читатели случайно не использовали адреса существующих узлов глобальной сети. Для внутренних сетей зарезервированы адреса 192.168.x.x (класс С), 172.16.0.0-172.31.255.255 (класс В) и 10.x.x.x (класс А). Узлы с такими адресами гарантированно отсутствуют в Internet.

В дополнение к классам А, В и С, описанным в табл. 2.2 существуют также классы адресов D и E. Адреса класса D применяются для группового вешания (передаваемый пакет адресуется сразу нескольким узлам), а адреса класса E зарезервированы для дальнейшего использования.

В табл. 2.2 приведены маски подсетей для различных классов адресов. С начала 1990-х этот стандарт стал претерпевать некоторые изменения. Дело в том, что, согласно традиционной схеме распределения IP-адресов, предусмотрено слишком много сетей класса А, каждая из которых может насчитывать больше десяти миллионов компьютеров, в то время как число сетей класса С оказывается недостаточным. Спецификация CIDR (Classless Inter-Domain Routing — бесклассовая междоменная маршрутизация) позволяет задавать произвольные диапазоны IP-адресов, используя для этого маски подсетей. Так, например, организации, которой требуются две сети класса С, могут быть предоставлены адреса 10.34.56.0/24 и 10.34.57.0/24. Благодаря такому принципу распределения адреса используются гораздо эффективнее, чем это позволяет сделать традиционная схема, предусматривающая классы А, В и С. Однако при этом администраторы сетей и пользователи должны внимательно следить за назначением масок подсетей. Если, например, вы предоставите утилите ifconfig возможность самостоятельно. назначить маску подсети для компьютера 10.34.56.78, то по умолчанию будет использована маска 255.0.0.0 и маршрутизация будет выполняться некорректно. Очевидно, что для сети 10.34.56.0/24 маска подсети должна иметь значение 255.255.255.0.

Настройка нескольких сетевых интерфейсов

Если компьютер содержит несколько сетевых интерфейсов, утилиту ifconfig надо вызвать для каждого из интерфейсов. Рассмотрим следующие команды:

# ifconfig eth0 up 192.168.1.1

# ifconfig eth1 up 172.23.45.67/24

В результате их выполнения с интерфейсом eth0 связывается адрес 192.168.1.1, интерфейсом eth1 — адрес 172.23.45.67; для eth1 будет использоваться маска подсети 255.255.255.0. Оба интерфейса работоспособны. Но как определить, через какой интерфейс следует передавать тот или иной пакет? Предположим, что прикладная программа, выполняющаяся на этом компьютере, должна установить соединение с узлом, имеющим адрес 10.9.8.7. Как узнать, на какой интерфейс надо передать пакет, предназначенный этому узлу? Для решения этой задачи (задачи маршрутизации) используются таблицы маршрутизации. Как вы вскоре увидите, задачу маршрутизации приходится решать, даже если на компьютере присутствует лишь один сетевой интерфейс.