Компьютерные сети

Компьютерные сети

Н. Олифер

Пример IP-маршрутизации без масок
Рассмотрим процесс продвижения пакета в составной сети на примере IP-сети, показанной на рис. 16.4. При этом будем считать, что все узлы сети, рассматриваемой в примере, имеют адреса, основанные на классах. Особое внимание будет уделено взаимодействию протокола IP с протоколами разрешения адресов ARP и DNS.

Итак, пусть пользователю компьютера cit.mgu.com, находящегося в сети 129.13.0.0, необходимо установить связь с FTP-сервером. Пользователю известно символьное имя сервера unix.mgu.com, поэтому он набирает на клавиатуре команду обращения к FTP-серверу по имени:
> ftp unix.mgu.com
Выполнение этой команды инициирует три последовательные операции:

1. DNS-клиент (работающий на компьютере cit.mgu.com) передает DNS-серверу сообщение, в котором содержится запрос об IP-адресе сервера unix.mgu.com, с которым он хочет связаться по протоколу FTP.
2. DNS-сервер, выполнив поиск, передает ответ DNS-клиенту о найденном IP-адресе сервера unix.mgu.com.
3. FTP-клиент (работающий на том же компьютере cit.mgu.com), используя найденный IP-адрес сервера unix.mgu.com, передает сообщение работающему на нем FTP-серверу.

Конфигурационныепараметры:Маршрутизатор по умолчанию IP-129.13.5.1DNS-сервер IP-200.5.16.6
Рис. 16.4. Пример IP-маршрутизации
Давайте последовательно, по шагам, рассмотрим, как при решении этих задач взаимодействуют между собой протоколы DNS, IP, ARP и Ethernet и что происходит при этом с кадрами и пакетами.

1. Формирование IP-пакета с инкапсулированным в него DNS-запросом. Программный модуль FTP-клиента, получив команду > ftp uni х .mgu. com, передает запрос к работающей на этом же компьютере клиентской части протокола DNS, которая, в свою очередь, формирует к DNS-серверу запрос, интерпретируемый примерно так: «Какой IP-адрес соответствует символьному имени unlx.mgu.com?» Запрос упаковывается в UDP-дейтаграмму, затем в IP-пакет. В заголовке пакета в качестве адреса назначения указывается IP-адрес 200.5.16.6 DNS-сервера. Этот адрес известен программному обеспечению клиентского компьютера, так как он входит в число его конфигурационных параметров. Сформированный IP-пакет будет перемещаться по сети в неизменном виде (как показано на рис. 16.5), пока не дойдет до адресата — DNS-сервера.

2. Передача кадра Ethernet с IP-пакетом маршрутизатору R3. Для передачи этого IP-пакета необходимо его упаковать в кадр Ethernet, указав в заголовке МАС-адрес получателя. Технология Ethernet способна доставлять кадры только тем адресатам, которые

находятся в пределах одной подсети с отправителем. Если же адресат расположи этой подсети, то кадр надо передать ближайшему маршрутизатору, чтобы тот вз* себя заботу о дальнейшем перемещении пакета. Для этого модуль IP, сравнив но сетей в адресах отправителя и получателя, то есть 129.13.23.17 и 200.5.16.6, выяс что пакет направляется в другую сеть, следовательно, его необходимо передать м рутизатору, в данном случае маршрутизатору по умолчанию. IP-адрес маршрутиза по умолчанию также известен клиентскому узлу, поскольку он входит в число ко] гурационных параметров. Однако для кадра Ethernet необходимо указать не IP-a, а МАС-адрес получателя. Эта проблема решается с помощью протокола ARP, коте для ответа на вопрос: «Какой МАС-адрес соответствует IP-адресу 194.87.23.1?» — де поиск в своей ARP-таблице. Поскольку обращения к маршрутизатору происходят ч будем считать, что нужный МАС-адрес обнаруживается в таблице и имеет знач 008048ЕВ7Е60. После получения этой информации клиентский компьютер cit.mgu отправляет маршрутизатору R3 пакет, упакованный в кадр Ethernet (рис. 16.6).

и
IP DNS-сервера
IP DNS-клиента
DNS-запрос:unlx.mgu.com?
129.13.23.17
200.5.16.6
'P'"'
;
<V*к /- ,хг'*
Рис. 16.5. IP-пакет с инкапсулированным в него DNS-запросом
Интерфейс
Интерфейс
маршрутизатора
компьютера
R3
FTP-клиентаDNS-клиента
cit.mgu.com
-
IP-129.13.5.1
IP-129.13.23.17
MAC - 008048ЕВ7Е60
MAC - 008048А17652
_
MAC клиента
IP клиента
008048А17652
129.13.23.17
*
DNS-запрос: I
MAC мар-ра R3
IP DNS-сервера
unlx.mgu.com? I
008048ЕВ7Е60
200.5.16.6

Рис. 16.6. Кадр Ethernet с инкапсулированным IP-пакетом, отправленный с клиентского
компьютера
3. Определение IP-адреса и МАС-адреса следующего маршрутизатора R2. Кадр принт ся интерфейсом 129.13.5,1 маршрутизатора R3. Протокол Ethernet, работающий на: интерфейсе, извлекает из этого кадра IP-пакет и передает его протоколу IP. Протоке
таблицы маршрутизации. Пусть маршрутизатор R3 не обнаруживает специфического маршрута для адреса назначения 200.5.16.6, но находит в своей таблице следующую запись:

200.5.16.0 198.21.17.7 198.21.17.6

Эта запись говорит о том, что пакеты для сети 200.5.16.0 маршрутизатор R3 должен передавать на свой выходной интерфейс 198.21.17.6, с которого они поступят на интерфейс следующего маршрутизатора R2, имеющего IP-адрес 198.21.17.7. Однако знания IP-адреса недостаточно, чтобы передать пакет по сети Ethernet. Необходимо определить МАС-адрес маршрутизатора R3. Как известно, такой работой занимается протокол ARP. Пусть на этот раз в ARP-таблице нет записи об адресе маршрутизатора R3. Тогда в сеть отправляется широковещательный ARP-запрос, который поступает на все интерфейсы сети 198.21.17.0. Ответ приходит только от интерфейса маршрутизатора R3: «Я имею IP-адрес 198.21.17.7 и мой МАС-адрес 00E0F77F5A02» (рис. 16.7).

Интерфейс
маршрутизатора
R3
Интерфейс
маршрутизатора
R2
IP-198.21.17.7 MAC - 00E0F77F5A02
Кадры Ethernet
IP-129.13.5.1 MAC - 008048EB7E60
MAC маршрутизатора R3 - 008048EB7E60
Широковещательный MAC FFFFFFFFFFFF
■'ШМJl.’
t
, „ , ARP-onwr:
«Я*мфо ■ivj.'.'r,
«мад МАЙ-адрес OOEOF77FSA02*
MAC маршрутизатора R2 - 00E0F77F5A02
MAC маршрутизатора R3 - 008048ЕВ7Е60
Рис. 16.7. Кадры Ethernet с инкапсулированными ARP-запросом и ARP-ответом

Теперь, зная МАС-адрес маршрутизатора R2 (00E0F77F5A02), маршрутизатор R3 отсылает ему IP-пакет с DNS-запросом (рис. 16.8).

4. Маршрутизатор R2 доставляет пакет DNS-серверу. Модуль IP на маршрутизаторе R2 действует в соответствии с уже не раз описанной нами процедурой: отбросив заголовок кадра Ethernet, он извлекает из пакета IP-адрес назначения и просматривает свою таблицу маршрутизации. Там он обнаруживает, что сеть назначения 200.5.16.0 является непосредственно присоединенной к его второму интерфейсу. Следовательно, пакет не нужно маршрутизировать, однако требуется определить МАС-адрес узла назначения. Протокол ARP «по просьбе» протокола IP находит (либо из ARP-таблицы, либо по запросу) требуемый МАС-адрес 00E0F7751231 DNS-сервера. Получив ответ

о МАС-адресе, маршрутизатор R2 отправляет в сеть назначения кадр Ethernet с DNS-запросом (рис. 16.9).
Интерфейс
маршрутизатора
R2
Интерфейс
маршрутизатора
R3
IP-198.21.17.7 IP-129.13.5.1
MAC - 00E0F77F5A02 MAC - 008048EB7E60
KI А/*
4
1|ЛЩ 11Г\(1Т1449ТЛГ>0
ID vnuauTo
мао маршрутизатора R3 - 008048ЕВ7Е60
ir* клиента 129.13.23.17
fcЭ
DNS-запрос: I
MAC маршрутизатора R2 - 00E0F77F5A02
IP DNS-сервера 200.5.16.6
unlx.mgu.com? I

Рис. 16.8. Кадр Ethernet с DNS-запросом, отправленный с маршрутизатора R3маршрутизатору R2
Интерфейс DNS-сервера
Интерфейс
маршрутизатора
R2
IP-200.5.16.6 MAC - 00E0F7751231
IP-198.21.17.7 MAC - 00E0F77F5A02
MAC маршрутизатора R2 - 00E0F77F5A02
IP клиента 129.13.23.17
UDP
DNS-запрос: Iunix.mgu.com? 1
MAC DNS-сервера 00E0F7751231
IP DNS-сервера 200.5.16.6
Рис. 16.9. Кадр Ethernet с DNS-запросом, отправленный с маршрутизатора R2

5. Сетевой адаптер DNS-сервера захватывает кадр Ethernet, обнаруживает совпадение МАС-адреса назначения, содержащегося в заголовке, со своим собственным адресом и направляет его модулю IP. После анализа полей заголовка IP из пакета извлекаются данные вышележащих протоколов. DNS-запрос передается программному модулю DNS-сервера DNS-сервер просматривает свои таблицы, возможно, обращается к другим DNS-серверам и в результате формирует ответ, смысл которого состоит в следующем: «Символьному имени Unlx.mgu.com соответствует IP-адрес 56.01.13.14».

Процесс доставки DNS-ответа клиенту clt.mgu.com совершенно аналогичен процессу передачи DNS-запроса, который мы только что так подробно описали. Работая в тесной кооперации, протоколы IP, ARP и Ethernet передают клиенту DNS-ответ через всю составную сеть (рис. 16.10).
ПРИМЕЧАНИЕ-

Заметим, что во время всего путешествия пакета по составной сети от клиентского компьютера до DNS-сервера IP-адреса получателя и отправителя в полях заголовка IP-пакета не изменяются. Зато в заголовке каждого нового кадра, который переносил пакет от одного маршрутизатора к другому, MAC-адреса отправителя и получателя изменяются на каждом отрезке пути.
Интерфейс
маршрутизатора
R3
IP-129.13.5.1 MAC - 008048ЕВ7Е60
Интерфейс
компьютера
FTP-клиента

DNS-клиента cit.mgu.com IP-129.13.23.17 MAC -008048A17652
•if
Рис. 16.10. Кадр Ethernet с DNS-ответом, отправленный с маршрутизатора R3компьютеру-клиенту
FTP-клиент, получив IP-адрес FTP-сервера, посылает ему свое сообщение, используя те же описанные ранее механизмы доставки данных через составную сеть. Однако для читателя будет весьма полезно мысленно воспроизвести этот процесс, обращая особое внимание на значения адресных полей заголовков кадров и заголовка вложенного IP-пакета.

Маршрутизация с использованием масок
Алгоритм маршрутизации усложняется, когда в систему адресации узлов вносятся дополнительные элементы — маски. В чем же причины отказа от хорошо себя зарекомендовавшего в течение многих лет метода адресации, основанного на классах? Основная из них — потребность в структуризации сетей в условиях дефицита нераспределенных номеров сетей.

Часто администраторы сетей испытывают неудобства, поскольку количества централизованно выделенных им номеров сетей недостаточно для того, чтобы структурировать сеть надлежащим образом, например развести все слабо взаимодействующие компьютеры по разным сетям. В такой ситуации возможны два пути. Первый из них связан с получением от какого-либо центрального органа дополнительных номеров сетей. Второй способ, употребляющийся чаще, связан с использованием технологии масок, которая позволяет разделить одну сеть на несколько.

Структуризация сети масками одинаковой длины
Допустим, администратор получил в свое распоряжение сеть класса В: 129.44.0.0. Он может организовать сеть с большим числом узлов, номера которых доступны ему из диапазона
0.0.0.1-0.0.255.254. Всего в его распоряжении имеется (2
58

- 2) адреса. Вычитание двойки связано с учетом того, что адреса из одних нулей и одних единиц имеют специальное назначение и не годятся для адресации узлов. Однако ему не нужна одна большая неструктурированная сеть. Производственная необходимость диктует администратору другое решение, в соответствии с которым сеть должна быть разделена на три отдельных подсети, при этом трафик в каждой подсети должен быть надежно локализован. Это позволит легче диагностировать сеть и проводить в каждой из подсетей особую политику безопасности. (Заметим, что разделение большой сети с помощью масок имеет еще одно преимущество — оно позволяет скрыть внутреннюю структуру сети предприятия от внешнего наблюдения и тем самым повысить ее безопасность.)

На рис. 16.11 показано разделение всего полученного администратором адресного диапазона на 4 равные части — каждая по 2
14
адресов. При этом число разрядов, доступное для нумерации узлов, уменьшилось на два бита, а префикс (номер) каждой из четырех сетей стал длиннее на два бита. Следовательно, каждый из четырех диапазонов можно записать в виде IP-адреса с маской, состоящей из 18 единиц, или в десятичной нотации -
255.255.192.0.
129.44.0.0/18 (10000001 00101100 00000000 00000000)

129.44.64.0/18 (10000001 00101100 01000000 00000000)
129.44.128.0/18 (10000001 00101100 10000000 00000000)
129.44.192.0/18 (10000001 00101100 11000000 00000000)
Из приведенных записей видно, что администратор получает возможность использовать для нумерации подсетей два дополнительных бита (выделенных жирным шрифтом). Именно это позволяет ему сделать из одной централизованно выделенной сети четыре, в данном примере это 129.44.0.0/18,129.44.64.0/18,129.44.128.0/18,129.44.192.0/18.
ПРИМЕЧАНИЕ-

Некоторые программные и аппаратные маршрутизаторы, следуя устаревшим рекомендациям RFC 950, не поддерживают номера подсетей, которые состоят либо только из одних нулей, либо только из одних единиц. Например, для такого типа оборудования номер сети 129.44.0.0 с маской

255.255.192.0, использованной в нашем примере, окажется недопустимым, поскольку в этом случае разряды в поле номера подсети имеют значение 00. По аналогичным соображениям недопустимым может оказаться номер сети 129.44.192.0 с тем же значением маски. Здесь номер подсети состоит только из единиц. Однако современные маршрутизаторы, поддерживающие рекомендации RFC 1878, свободны от этих ограничений.
А
Сеть 129.44.0.0 Маска

Рис. 16.11. Разделение адресного пространства 129.44.0.0 сети класса В на четыре равные части
255.255.192.0 Диапазон номеров
^ ^узлов от 0 до 2™
А
Сеть 129.44.64.0 Маска
255.255.192.0 Диапазон номеров
^ ^узлов от 0 до 2
14
А
Сеть 129.44.128.0 Маска
255.255.192.0 Диапазон номеров
^ ^узлов от 0 до 2
14
А
Сеть 129.44.192.0 Маска
255.255.192.0 Диапазон номеров
^ ^узлов от 0 до 2
14
ПРИМЕЧАНИЕ-

В одной из этих сетей (129.44.192.0/18), выделенной для организации соединения между внешним и внутренним маршрутизаторами, для адресации узлов задействованы всего два адреса — 129.44.192.1 (порт маршрутизатора R2) и 129.44.192.2 (порт маршрутизатора R1). Огромное число узлов в этой подсети не используется. Такой пример выбран исключительно в учебных целях, чтобы показать неэффективность сетей равного размера.

Извне сеть по-прежнему выглядит, как единая сеть класса В. Однако поступающий в сеть общий трафик разделяется локальным маршрутизатором R2 между четырьмя сетями. В условиях, когда механизм классов не действует, маршрутизатор должен иметь другое средство, которое позволило бы ему определять, какая часть 32-разрядного числа, помещенного в поле адреса назначения, является номером сети. Именно этой цели служит дополнительное поле маски, включенное в таблицу маршрутизации (табл. 16.8).

Первые четыре записи в таблице соответствуют внутренним подсетям, непосредственно подключенным к портам маршрутизатора R2.
Запись 0.0.0.0 с маской 0.0.0.0 соответствует маршруту по умолчанию.

Последняя запись определяет специфический маршрут к узлу 129.44.128.15. В тех строках таблицы, в которых в качестве адреса назначения указан полный IP-адрес узла, маска имеет значение 255.255.255.255. В отличие от всех других узлов сети 129.44.128.0, к которым пакеты поступают с интерфейса 129.44.128.5 маршрутизатора R2, к данному узлу они должны приходить через маршрутизатор R3.
Сеть 129.44.0.0 Маска 255.255.192.0 2
14
узлов Подсеть 0
Сеть 129.44.128.0 Маска 255.255.192.0 2
14

узлов Подсеть 2 Рис. 16.12. Маршрутизация с использованием масок одинаковой длины
Таблица 16.8. Таблица маршрутизатора R2 в сети с масками одинаковой длины
Адрес назначения
Маска
Адрес следующего маршрутизатора
Адрес порта
Расстояние
129.44.0.0
255.255.192.0
129.44.0.1
129.44.0.1
Подключена
129.44.64.0
255.255.192.0
129.44.64.7
129.44.64.7
Подключена
129.44.128.0
255.255.192.0
129.44.128.5
129.44.128.5
Подключена
129.44.192.0
255.255.192.0
129.44.192.1
129.44.192.1
Подключена
0.0.0.0
0.0.0.0

129.44.192.2
129.44.192.1
-
129.44.128.15
255.255.255.255
129.44.64.8
129.44.64.7
-
Просмотр таблиц маршрутизации с учетом масок
Алгоритм просмотра таблиц маршрутизации, содержащих маски, имеет много общего с описанным алгоритмом просмотра таблиц, не содержащих маски. Однако в нем имеются и существенные изменения.

1. Поиск следующего маршрутизатора для вновь поступившего IP-пакета протокол начинает с того, что извлекает из пакета адрес назначения (обозначим его IPd)- Затем протокол IP приступает к процедуре просмотра таблицы маршрутизации, также состоящей из двух фаз, как и процедура просмотра таблицы, в которой столбец маски отсутствует.

2. Первая фаза состоит в поиске специфического маршрута для адреса IPd. С этой целью из каждой записи таблицы, в которой маска имеет значение 255.255.255.255, извлекается адрес назначения и сравнивается с адресом из пакета IPd. Если в какой-либо строке совпадение произошло, то адрес следующего маршрутизатора для данного пакета берется из данной строки.

3. Вторая фаза выполняется только в том случае, если во время первой фазы не произошло совпадения адресов. Она состоит в поиске неспецифического маршрута, общего для группы узлов, к которой относится и пакет с адресом IPd. Для этого средствами IP заново просматривается таблица маршрутизации, причем с каждой записью производятся следующие действия:
1) маска (обозначим ее М), содержащаяся в данной записи, «накладывается» на IP-адрес узла назначения IPd, извлеченный из пакета: IPd AND М;

2) полученное в результате число сравнивается со значением, которое помещено в поле адреса назначения той же записи таблицы маршрутизации;
3) если происходит совпадение, протокол IP соответствующим образом отмечает эту строку;
4) если просмотрены не все строки, то протокол IP аналогичным образом просматривает следующую строку, если все (включая строку о маршруте по умолчанию), то просмотр записей заканчивается, и происходит переход к следующему шагу. •

4. После просмотра всей таблицы маршрутизатор выполняет одно их трех действий:
1) если не произошло ни одного совпадения и маршрут по умолчанию отсутствует, то пакет отбрасывается;
2) если произошло одно совпадение, то пакет отправляется по маршруту, указанному в строке с совпавшим адресом;

3) если произошло несколько совпадений, то все помеченные строки сравниваются и выбирается маршрут из той строки, в которой количество совпавших двоичных разрядов наибольшее (другими словами, в ситуации, когда адрес назначения пакета принадлежит сразу нескольким подсетям, маршрутизатор использует наиболее специфический маршрут).
ПРИМЕЧАНИЕ-

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

Проиллюстрируем, как маршрутизатор R2 (см. рис. 16.12) использует описанный алгоритм для работы со своей таблицей маршрутизации (см. табл. 16.8). Пусть на маршрутизатор R2 поступает пакет с адресом назначения 129.44.78.200. Модуль IP, установленный на этом маршрутизаторе, прежде всего сравнит этот адрес с адресом 129.44.128.15, для которого определен специфический маршрут. Совпадения нет, поэтому модуль IP начинает последовательно обрабатывать все строки таблицы, накладывая маски и сравнивая результаты до тех пор, пока не найдет совпадения номера сети в адресе назначения и в строке таблицы. В результате определяется маршрут для пакета 129.44.78.200 — он должен быть отправлен на выходной порт маршрутизатора 129.44.64.7 в сеть 129.44.64.0, непосредственно подключенную к данному маршрутизатору.

Использование масок переменной длины
Во многих случаях более эффективным является разбиение сети на подсети разного размера. В частности, для подсети, которая связывает два маршрутизатора по двухточечной схеме, даже количество адресов сети класса С явно является избыточным.
На рис. 16.13 приведен другой пример распределения того же адресного пространства 129.44.0.0/16, что и в предыдущем примере. Здесь половина из имеющихся адресов (2
15

) отведена для создания сети 1> имеющей адрес 129.44.0.0 и маску 255.255.128.0.
Поле номера подсети
^Поле номера сети класса В
1 байт 129
10000001
10000001
10000001
4-
2 байта 44
00101100 00101100 00101100
Поле номеров узлов
3 байта
4 байта
4-
30000000:00000000
00000000100000001
0000000100000010
10000001
10000001
10000001
00101100
00101100 00101100
1111111-11111111
000000;0000000о 000000:00000001
10000001
10000001
10000001
10000001
10000001
00101100
tin 1111111111111

00Ю1100 jftprnwwmmpt о 001 01 100
А
^ -00101100 00101100
11#(ЗМ1 tlOPOOQQlWOOOC 1
о
01
0
1
Диапазон адресов (2” -4) свободный для образования новых сетей
1 0000001100 1 01 1 00
111
111
00000
00000
00000000
00000001
Сеть 1
129.44.0. 0,
* маска 255 255.128.0 Число узлов 2

Сеть 2
129.44.128.0,
* маска 255.255.192.0
Число узлов 2
й
Сать 3
(вспомогательная)
129.44.192.0,
маска 255.255.255.252
Число узлов -4
Сеть 4
„ 129.44.224.0,
маска 255.255.224.0
Число узлов 2


Все материалы, размещенные в боте и канале, получены из открытых источников сети Интернет, либо присланы пользователями  бота. 
Все права на тексты книг принадлежат их авторам и владельцам. Тексты книг предоставлены исключительно для ознакомления. Администрация бота не несет ответственности за материалы, расположенные здесь

Report Page