Родерик Смит - Сетевые средства Linux
• 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. Как узнать, на какой интерфейс надо передать пакет, предназначенный этому узлу? Для решения этой задачи (задачи маршрутизации) используются таблицы маршрутизации. Как вы вскоре увидите, задачу маршрутизации приходится решать, даже если на компьютере присутствует лишь один сетевой интерфейс.
Заполнение таблицы маршрутизации
Таблица маршрутизации выполняет две задачи. Во-первых, она сообщает системе, на какой из интерфейсов следует передавать информационные пакеты. На первый взгляд может показаться, что если на компьютере установлен лишь один сетевой интерфейс, то ответ на этот вопрос очевиден. На самом деле это не так. Дело в том, что на каждом из компьютеров, работающих под управлением системы Linux, поддерживается интерфейс обратной петли. Этот интерфейс соответствует сети 127.0.0.0/8, но реально при работе с ним используется лишь один IP-адрес 127.0.0.1. Поскольку этот интерфейс присутствует на всех компьютерах, многие программы используют его для взаимодействия с другими локальными программами. При этом обеспечивается более высокая скорость обмена, чем при использовании традиционных сетевых интерфейсов. Для того чтобы распределять трафик между интерфейсом локальной петли и обычными сетевыми интерфейсами, существуют специальные правила. Вторая задача, которую выполняет таблица маршрутизации, состоит в управлении трафиком, предназначенным для компьютеров в локальной сети. Для маршрутизации в локальной сети используется протокол ARP (Address Resolution Protocol — протокол преобразования адресов). Пакеты, предназначенные узлам локальной сети, непосредственно передаются соответствующим компьютерам, а пакеты, адресованные удаленным узлам, передаются посредством маршрутизатора, или шлюза. В большинстве случаев в таблице маршрутизации Linux указывается лишь один шлюз, но встречаются также более сложные конфигурации с несколькими шлюзами. Для заполнения таблицы маршрутизации используется команда route.
На заметкуВ Internet на пути от одного компьютера к другому может находиться большое число маршрутизаторов, но каждый компьютер должен знать адрес лишь одного маршрутизатора. Получив пакет, который должен быть передан по определенному адресу, маршрутизатор определяет адрес следующего маршрутизатора; этот процесс повторяется до тех пор, пока пакет не прибудет по назначению.
Структура таблицы маршрутизацииТаблица маршрутизации содержит набор записей, которые определяют, как должны обрабатываться пакеты, в зависимости от адреса их назначения. Когда программа передает пакет, предназначенный для передачи ядру, последнее сравнивает адрес назначения с адресами или диапазонами адресов, указанными в записях таблицы, начиная с наиболее конкретных адресов, т.е. с диапазона, определяющего сеть наименьшего размера. Если адрес назначения пакета соответствует очередному адресу или диапазону, для передачи пакета используется правило, указанное в таблице маршрутизации, в противном случае сравнение продолжается. Самое универсальное из правил носит название маршрута по умолчанию, оно определяет любой адрес Internet. Маршрут по умолчанию обычно направляет пакет через шлюз локальной сети.