Вход/Регистрация
Сетевые средства Linux
вернуться

Смит Родерик В.

Шрифт:

• 

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. Маршрут по умолчанию обычно направляет пакет через шлюз локальной сети.

Для чтобы лучше понять, как используется таблица маршрутизации, рассмотрим пример такой таблицы. На рис. 2.2 показана таблица маршрутизации, которая отображается в результате выполнения команды

route -n
(более подробно команда route будет рассмотрена в следующем разделе). Записи таблицы, изображенной на рисунке, упорядочены так, что в начале расположены записи, определяющие наиболее конкретные правила обработки, а в конце таблицы находятся наиболее универсальные правила. В первой записи указан адрес назначения 255.255.255.255, т. е. широковещательный адрес. Широковещательные пакеты передаются через интерфейс
eth0
, при этом шлюз не используется. В последующих двух записях содержатся адреса назначения 10.92.68.0 и 192.168.1.0, которые представляют собой адреса локальных сетей; им соответствует маска подсети 255.255.255.0, которая указана в столбце Genmask. Эти две записи направляют трафик соответственно через интерфейсы
eth1
и
eth0
. Если компьютер содержит только один сетевой интерфейс, в таблице маршрутизации будет указана лишь одна подобная запись. Четвертая запись соответствует интерфейсу обратной петли (в некоторых разновидностях Linux, например в системе Debian, при выводе таблицы маршрутизации этот маршрут не отображается, но он учитывается при обработке пакетов). Обратите внимание, что этот интерфейс имеет имя
lo
(оно содержится в столбце Ifасе таблицы). Последняя запись, в которой указан адрес назначения 0.0.0.0, определяет маршрут по умолчанию. Этот адрес вместе с маской подсети 0.0.0.0 соответствует любому адресу, при сравнении которого с адресами, указанными в предыдущих правилах, был получен отрицательный результат. В этом случае трафик направляется через интерфейс
eth1
. Маршрут по умолчанию — единственный маршрут в таблице, для которого был указан шлюз (в данном случае 10.92.68.1).

Рис. 2.2. Для того чтобы определить маршрут пакета, надо сравнить его адрес назначения с адресом, указанным в столбце Destination, и учесть при этом маску подсети, значение которой отображается в столбце Genmask

При активизации интерфейса с помощью

ifconfig
эта утилита автоматически включает в таблицу маршрутизации запись, соответствующую активизированному интерфейсу. Эта запись определяет маршрут к сети, которая подключена через данный интерфейс. Сценарий, выполняющихся при загрузке Linux, добавляет в таблицу запись для интерфейса обратной петли. Запись, соответствующая широковещательному маршруту, не обязательна, но используется некоторыми утилитами. Во многих случаях единственной записью, которую приходится создавать вручную, остается маршрут по умолчанию.

  • Читать дальше
  • 1
  • ...
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: