44502 (663319), страница 3
Текст из файла (страница 3)
мым IP-адресом.
Некоторые реализации IP и ARP не ставят в очередь IP-пакеты на то
время, пока они ждут ARP-ответов. Вместо этого IP-пакет просто уничтожа-
ется, а его восстановление возлагается на модуль TCP или прикладной про-
цесс, работающий через UDP. Такое восстановление выполняется с помощью
таймаутов и повторных передач. Повторная передача сообщения проходит
успешно, так как первая попытка уже вызвала заполнение ARP-таблицы.
Следует отметить, что каждая машина имеет отдельную ARP-таблицу для
каждого своего сетевого интерфейса.
* 5. Межсетевой протокол IP *
Модуль IP является базовым элементом технологии internet, а цент-
ральной частью IP является его таблица маршрутов. Протокол IP использует
эту таблицу при принятии всех решений о маршрутизации IP-пакетов. Содер-
жание таблицы маршрутов определяется администратором сети. Ошибки при
установке маршрутов могут заблокировать передачи.
Чтобы понять технику межсетевого взаимодействия, нужно понять то,
как используется таблица маршрутов. Это понимание необходимо для успеш-
ного администрирования и сопровождения IP-сетей.
5.1. Прямая маршрутизация
На рис.6 показана небольшая IP-сеть, состоящая из 3 машин: A, B и C.
Каждая машина имеет такой же стек протоколов TCP/IP как на рис.1. Каждый
сетевой адаптер этих машин имеет свой Ethernet-адрес. Менеджер сети дол-
жен присвоить машинам уникальные IP-адреса.
A B C
| | |
--------------o------o------o------
Ethernet 1
IP-сеть "development"
Рис.6. Простая IP-сеть
Когда A посылает IP-пакет B, то заголовок IP-пакета содержит в поле
отправителя IP-адрес узла A, а заголовок Ethernet-кадра содержит в поле
отправителя Ethernet-адрес A. Кроме этого, IP-заголовок содержит в поле
получателя IP-адрес узла B, а Ethernet-заголовок содержит в поле получа-
теля Ethernet-адрес B.
-----------------------------------------------------
| адрес отправитель получатель |
-----------------------------------------------------
| IP-заголовок A B |
| Ethernet-заголовок A B |
-----------------------------------------------------
Табл.5. Адреса в Ethernet-кадре, передающем IP-пакет от A к B
В этом простом примере протокол IP является излишеством, которое
мало что добавляет к услугам, предоставляемым сетью Ethernet. Однако
протокол IP требует дополнительных расходов на создание, передачу и обра-
ботку IP-заголовка. Когда в машине B модуль IP получает IP-пакет от
машины A, он сопоставляет IP-адрес места назначения со своим и, если
адреса совпадают, то передает датаграмму протоколу верхнего уровня.
В данном случае при взаимодействии A с B используется прямая маршру-
тизация.
5.2. Косвенная маршрутизация
На рис.7 представлена более реалистичная картина сети internet. В
данном случае сеть internet состоит из трех сетей Ethernet, на базе кото-
рых работают три IP-сети, объединенные шлюзом D. Каждая IP-сеть включает
четыре машины; каждая машина имеет свои собственные IP- и Ethernet-
адреса.
----- D -------
A B C | | | E F G
| | | | | | | | |
----o-----o-----o-----o-- | --o-----o-----o-----o---
Ethernet 1 | Ethernet 2
IP-сеть "development" | IP-сеть "accounting"
|
| H I J
| | | |
--o----o-----o-----o----------
Ethernet 3
IP-сеть "fuctory"
Рис.7. Сеть internet, состоящая из трех IP-сетей
За исключением D все машины имеют стек протоколов, аналогичный пока-
занному на рис.1. Шлюз D соединяет все три сети и, следовательно, имеет
три IP-адреса и три Ethernet-адреса. Машина D имеет стек протоколов
TCP/IP, похожий на тот, что показан на рис.3, но вместо двух модулей ARP
и двух драйверов, он содержит три модуля ARP и три драйвера Ethernet.
Обратим внимание на то, что машина D имеет только один модуль IP.
Менеджер сети присваивает каждой сети Ethernet уникальный номер,
называемый IP-номером сети. На рис.7 IP-номера не показаны, вместо них
используются имена сетей.
Когда машина A посылает IP-пакет машине B, то процесс передачи идет
в пределах одной сети. При всех взаимодействиях между машинами, подклю-
ченными к одной IP-сети, используется прямая маршрутизация, обсуждавшаяся
в предыдущем примере.
Когда машина D взаимодействует с машиной A, то это прямое взаимо-
действие. Когда машина D взаимодействует с машиной E, то это прямое вза-
имодействие. Когда машина D взаимодействует с машиной H, то это прямое
взаимодействие. Это так, поскольку каждая пара этих машин принадлежит
одной IP-сети.
Однако, когда машина A взаимодействует с машинами, включенными в
другую IP-сеть, то взаимодействие уже не будет прямым. Машина A должена
использовать шлюз D для ретрансляции IP-пакетов в другую IP-сеть. Такое
взаимодействие называется "косвенным".
Маршрутизация IP-пакетов выполняется модулями IP и является прозрач-
ной для модулей TCP, UDP и прикладных процессов.
Если машина A посылает машине E IP-пакет, то IP-адрес и Ethernet-
адрес отправителя соответствуют адресам A. IP-адрес места назначения
является адресом E, но поскольку модуль IP в A посылает IP-пакет через D,
Ethernet-адрес места назначения является адресом D.
----------------------------------------------------
| адрес отправитель получатель |
----------------------------------------------------
| IP-заголовок A E |
| Ethernet-заголовок A D |
----------------------------------------------------
Табл.6. Адреса в Ethernet-кадре, содержащем IP-пакет от A к E
(до шлюза D)
Модуль IP в машине D получает IP-пакет и проверяет IP-адрес места
назначения. Определив, что это не его IP-адрес, шлюз D посылает этот
IP-пакет прямо к E.
----------------------------------------------------
| адрес отправитель получатель |
----------------------------------------------------
| IP-заголовок A E |
| Ethernet-заголовок D E |
----------------------------------------------------
Табл.7. Адреса в Ethernet-кадре, содержащем IP-пакет от A к E
(после шлюз D)
Итак, при прямой маршрутизации IP- и Ethernet-адреса отправителя
соответствуют адресам того узла, который послал IP-пакет, а IP- и
Ethernet-адреса места назначения соответствуют адресам получателя. При
косвенной маршрутизации IP- и Ethernet-адреса не образуют таких пар.
В данном примере сеть internet является очень простой. Реальные
сети могут быть гораздо сложнее, так как могут содержать несколько шлюзов
и несколько типов физических сред передачи. В приведенном примере нес-
колько сетей Ethernet объединяются шлюзом для того, чтобы локализовать
широковещательный трафик в каждой сети.
5.3. Правила маршрутизации в модуле IP
Выше мы показали, что происходит при передаче сообщений, а теперь
рассмотрим правила или алгоритм маршрутизации.
Для отправляемых IP-пакетов, поступающих от модулей верхнего уровня,
модуль IP должен определить способ доставки - прямой или косвенный - и
выбрать сетевой интерфейс. Этот выбор делается на основании результатов
поиска в таблице маршрутов.
Для принимаемых IP-пакетов, поступающих от сетевых драйверов, модуль
IP должен решить, нужно ли ретранслировать IP-пакет по другой сети или
передать его на верхний уровень. Если модуль IP решит, что IP-пакет дол-
жен быть ретранслирован, то дальнейшая работа с ним осуществляется также,
как с отправляемыми IP-пакетами.
Входящий IP-пакет никогда не ретранслируется через тот же сетевой
интерфейс, через который он был принят.
Решение о маршрутизации принимается до того, как IP-пакет передается
сетевому драйверу, и до того, как происходит обращение к ARP-таблице.
5.4. IP-адрес
Менеджер сети присваивает IP-адреса машинам в соответствии с тем, к
каким IP-сетям они подключены. Старшие биты 4-х байтного IP-адреса опре-
деляют номер IP-сети. Оставшаяся часть IP-адреса - номер узла (хост-
номер). Для машины из табл.1 с IP-адресом 223.1.2.1 сетевой номер равен
223.1.2, а хост-номер - 1. Напомним, что IP-адрес узла идентифицирует
точку доступа модуля IP к сетевому интерфейсу, а не всю машину.
Существуют 5 классов IP-адресов, отличающиеся количеством бит в
сетевом номере и хост-номере. Класс адреса определяется значением его
первого октета.
В табл.8 приведено соответствие классов адресов значениям первого
октета и указано количество возможных IP-адресов каждого класса.
0 8 16 24 31
---------------------------------------------------
Класс A |0| номер сети | номер узла |
---------------------------------------------------
---------------------------------------------------
Класс B |10| номер сети | номер узла |
---------------------------------------------------
---------------------------------------------------
Класс C |110| номер сети | номер узла |
---------------------------------------------------
---------------------------------------------------
Класс D |1110| групповой адрес |
---------------------------------------------------
---------------------------------------------------
Класс E |11110| зарезервировано |
---------------------------------------------------
Рис.8. Структура IP-адресов
-------------------------------------------------------
| Класс Диапазон значений Возможное Возможное |
| первого октета кол-во сетей кол-во узлов |
-------------------------------------------------------
| A 1 - 126 126 16777214 |
| B 128-191 16382 65534 |
| C 192-223 2097150 254 |
| D 224-239 - 2**28 |
| E 240-247 - 2**27 |
-------------------------------------------------------
Табл.8. Характеристики классов адресов
Адреса класса A предназначены для использования в больших сетях
общего пользования. Они допускают большое количество номеров узлов.
Адреса класса B используются в сетях среднего размера, например, сетях
университетов и крупных компаний. Адреса класса C используются в сетях с
небольшим числом компьютеров. Адреса класса D используются при обраще-
ниях к группам машин, а адреса класса E зарезервированы на будущее.
Некоторые IP-адреса являются выделенными и трактуются по-особому.
------------------------------
| все нули | Данный узел
------------------------------
------------------------------
| номер сети | все нули | Данная IP-сеть
------------------------------
------------------------------
| все нули | номер узла | Узел в данной (локальной) IP-сети
------------------------------
------------------------------
| все единицы | Все узлы в данной (локальной) IP-сети
------------------------------
------------------------------
| номер сети | все единицы | Все узлы в указанной IP-сети
------------------------------
------------------------------
| 127 | что-нибудь (часто 1) | "Петля"
------------------------------
Рис.9. Выделенные IP-адреса
Как показано на рис.9, в выделенных IP-адресах все нули соответст-
вуют либо данному узлу, либо данной IP-сети, а IP-адреса, состоящие из
всех единиц, используются при широковещательных передачах. Для ссылок на
всю IP-сеть в целом используется IP-адрес с нулевым номером узла. Особый
смысл имеет IP-адрес, первый октет которого равен 127. Он используется
для тестирования программ и взаимодействия процессов в пределах одной
машины. Когда программа посылает данные по IP-адресу 127.0.0.1, то обра-
зуется как бы "петля". Данные не передаются по сети, а возвращаются
-- 1177 --
модулям верхнего уровня, как только что принятые. Поэтому в IP-сети зап-
рещается присваивать машинам IP-адреса, начинающиеся со 127.
5.5. Выбор адреса
Прежде чем вы начнете использовать сеть с TCP/IP, вы должны получить
один или несколько официальных сетевых номеров. Выделением номеров (как
и многими другими вопросами) занимается DDN Network Information Center
(NIC) [2]. Выделение номеров производится бесплатно и занимает около
недели. Вы можете получить сетевой номер вне зависимости от того, для
чего предназначена ваша сеть. Даже если ваша сеть не имеет связи с объе-
диненной сетью Internet, получение уникального номера желательно, так как
в этом случае есть гарантия, что в будущем при включении в Internet или
при подключении к сети другой организации не возникнет конфликта адресов.
Одно из важнейших решений, которое необходимо принять при установке
сети, заключается в выборе способа присвоения IP-адресов вашим машинам.
Этот выбор должен учитывать перспективу роста сети. Иначе в дальнейшем
вам придется менять адреса. Когда к сети подключено несколько сотен
машин, изменение адресов становится почти невозможным.