Настройка и обслуживание сетевых соединений
Классы сетей
Самой крупной IP-сетью в мире является глобальная сеть Internet. Ее адресное пространство разделено на диапазоны адресов, которые называются "сетями". Сети разделены на классы. Адреса сетевых интерфейсов компьютеров в сети, как правило, относятся к классам A, B или С.
Разделение сетей на классы определяется в RFC 950 и ряде других RFC 2RFC - Request For Comments - стандарты, используемые в сети Интернет. Текст стандартов можно бесплатно получить на сайте www.ripn.net . Кроме сетей A, B, С есть и другие сети. Они представляют собой меньшие по размеру блоки сетей, которые используются для различных служебных надобностей.
Сети классов от A до С отличаются значением первого байта IP-адреса. Значение первого байта сети класса А находится в диапазоне от 1 до 126, класса B - от 128 до 191, класса C - от 192 до 223. классы сетей, в адресах которых первый байт имеет значение от 224 до 254, именуются от D до F. Они имеют служебное назначение и их адреса не используются обычными сетевыми интерфейсами.
Предполагается, что в сетях класса A номер сети занимает первый байт, а остальные три - это номер компьютера (точнее, номер сетевого интерфейса ). Таким образом, в сети класса А может быть до 16777214 интерфейсов. В сети класса В номер сети занимает два байта адреса, максимальное число интерфейсов в такой сети - 65534. В сети класса С номер сети занимает три байта, номер компьютера - один, максимальное число интерфейсов в такой сети - 254.
Зарезервированные сетевые адреса
Надо иметь в виду, что один компьютер может иметь несколько сетевых интерфейсов, а каждый интерфейс может иметь несколько адресов. Некоторые адреса в каждой сети являются зарезервированными и не могут использоваться для адресации какого-либо интерфейса. Так, IP-адрес, в котором поле номера компьютера заполнено двоичными нулями, используется в качестве номера данной сети в целом. Например, адрес 131.45.0.0 обозначает целую сеть класса B. IP-адрес, в котором поле номера компьютера заполнено двоичными единицами, является широковещательным адресом сети (broadcast address) и используется для одновременной рассылки пакета всем компьютерам данной сети. Получив пакет с адресом получателя 131.45.255.255, каждый компьютер сети 131.45.0.0 (класс B) воспримет этот пакет как предназначенный ему. Эти зарезервированные адреса используются, например, в целях управления маршрутизацией.
Существуют и другие зарезервированные адреса. Адрес 127.0.0.1, всегда указывающий на локальный внутренний интерфейс системы "127.0.0.1", обозначает для системы то же самое, что для человека - слово "я". Этот локальный внутренний интерфейс требуется для того, чтобы одна программа (клиент) могла обратиться к другой программе (серверу), работающей на том же компьютере, стандартным образом. Например, можно обратиться из браузера на вашем компьютере к web-серверу на вашем же компьютере. Локальный интерфейс обычно называется lo или lo0 (от слова loopback - петля).
Адрес 0.0.0.0 используется для обозначения всех интерфейсов в сети вообще.
Основной шлюз
Адрес 0.0.0.0 зарезервирован для указания "всех остальных адресатов". Если пакет не удается соотнести с конкретной строкой таблицы маршрутизации, он отправляется в шлюз согласно указывающей на него строке таблицы маршрутизации. Например, таблица маршрутизации нашего хоста выглядит так:
# netstat -rn Routing Table: IPv4 Destination Gateway Flags Ref Use Interface 192.168.5.0 192.168.5.33 U 1 2 elxl0 224.0.0.0 192.168.5.33 U 1 0 elxl0 default 192.168.5.1 UG 1 0 127.0.0.1 127.0.0.1 UH 61 1013 lo0
Адрес нашего компьютера в этой сети - 192.168.5.33. Предположим, нам надо отправить пакет по адресу 192.168.5.30. Для этого система посмотрит в таблицу маршрутизации и обнаружит там маршрут 192.168.5.0, для которого указан шлюз (gateway) 192.168.5.33 - наш собственный интерфейс. Стало быть, компьютер 192.168.5.30 находится в непосредственно присоединенной к нам сети и ему надо послать пакет напрямую.
Ситуация изменится, если адресатом будет, скажем, компьютер 192.168.10.1. Тогда в таблице маршрутизации вначале не найдется подходящего маршрута - ведь там нет отдельной строки для сети 192.168.10.1, верно? Тогда пакет будет отправлен в основной шлюз, "шлюз по умолчанию", тот, что в выводе netstat обозначен словом default. Адрес назначения пакетов "во все остальные сети", тех самых, которые отправляются в шлюз, в таблице маршрутизации в ядре обозначается как 0.0.0.0.
Пакеты, предназначенные для отправки "всем остальным", направляются в основной шлюз. Основной шлюз (default gateway) - это такое место, куда любой компьютер сети отправляет пакет, если не знает, в какую сторону его лучше отправить. Действие такого шлюза подобно действию почтальона. Если вы хотите сделать сюрприз девушке, которая живет с вами в одном подъезде, вы можете положить нежное письмо ей прямо в почтовый ящик. Если же адресат живет в другом городе, вы положите конверт в другой почтовый ящик, тот, из которого почтальон вынимает почту для отправки. Основной шлюз имеет сетевой интерфейс, который работает таким "почтовым ящиком" для пакетов, адресованных за пределы локальной сети.