FTP-сервер
unix.mgu.com IP - 142.06.13.14 MAC - 484C00054699
Сеть 142.06.0.0
IP31 - 142.06.0.3 MAC31 -00E0F72BA912
DNS-сервер |
IP22- 203.21.4.3 MAC22 - 00E0F734F5C0 |
IPDNS-203.21.4.6 MACdns " 00E0F7751231 |
Ethernet2 Сеть 203.21 Г4.0 |
ip32-203.21.4.12 mac32" 00E0F71AB7F0
Рис. 18.4. Пример IP-маршрутизации
Передача DNS-запроса
1. FTP-клиент передает запрос к работающей на этом же компьютере клиентской части протокола DNS, который в свою очередь формирует к DNS- серверу запрос, интерпретируемый примерно так: «Какой IP-адрес соответствует символьному имени unix.mgu.com?». Запрос упаковывается в UDP-дей- таграмму, затем в IP-пакет (рис. 18.5). В заголовке пакета в качестве адреса назначения указывается IP-адрес DNS-сервера — 203.21.4.6. Этот адрес известен программному обеспечению клиентского компьютера, так как он входит в число его конфигурационных параметров.
2. Прежде чем поместить IP-пакет в кадр Ethernet, необходимо выяснить, надо ли этот пакет маршрутизировать через составную сеть, или он адресован узлу, находящемуся в той же сети, что и отправитель. Для этого модуль IP сравнивает номера сетей в адресах отправителя и получателя, то есть
194.87.23.17 и 203.21.4.6. В результате сравнения выясняется, что пакет направляется в другую сеть, следовательно, его необходимо передать маршрутизатору. Поскольку в сети Ethernet 1 имеется только один маршрутизатор (R1), все конечные узлы этой сети вместо полноценной таблицы маршрутизации пользуются адресом 194.87.23.1 этого маршрутизатора в качестве маршрутизатора по умолчанию.
/''ЗшшовшЦР' _ | йН$*зтрос | ||
ОТП&ШШЯ | t , , 1Ш . r , „ ,Г | ||
1ЭШ.Ш7 . 1.. .1 11 hU.1 UJit UJ UilM IMhl . kllUAM^..... .1............................................................................. | ыл* Ль.Aft ..-ft.'>■ mrtri ,., M*. | i— ...................... | ...................... x................................ |
Рис. 18.5. IP-пакет с DNS-запросом |
3. Чтобы сеть Ethernet 1 смогла доставить пакет маршрутизатору R1, этот пакет необходимо поместить в поле данных кадра Ethernet и снабдить его МАС-ад- ресом. Эта проблема решается с помощью протокола ARP. Пусть, например, нужного адреса в ARP-таблице нет, тогда клиентский узел отправляет широковещательный ARP-запрос: «Какой МАС-адрес соответствует IP-адресу 194.87.23.1?» Этот запрос получают все узлы сети Ethernet 1, но ответ приходит только от интерфейса 1 маршрутизатора R1: «Я имею IP-адрес 194.87.23.1 и мой МАС-адрес 008048ЕВ7Е60». После получения этой информации компьютер cit.mgu.com отправляет по локальной сети пакет, упакованный в кадр Ethernet и имеющий поля, показанные на рис. 18.6.
Заголовок Ethernet | ЗаголовокJP Л | ftflranAROit | ' ......... ........... < > | |
МАС-адрес отправителя | МАС-адрес получателя | ш, | ||
MACc - 00804А17652 | MACn -008048ЕВ7Е60 | Чйдо&яЦ' 203,2148 |
Рис. 18.6. Кадр Ethernet с DNS-запросом, отправленный с клиентского компьютера |
5. На этом этапе модуль IP маршрутизатора R1 должен определить МАС-адрес следующего маршрутизатора по известному IP-адресу 135.12.0.11. Для этого он обращается к протоколу ARP. Допустим, в этот раз в ARP-таблице присутствует запись о нужном адресе:
135.12.0.11 - 00E0F77F5A02
Теперь, зная МАС-адрес маршрутизатора R2 (00E0F77F5A02), маршрутизатор R1 отсылает в сеть FDDI кадр (рис. 18.7).
Заголовок FDDI | ....... V.............. ... ........ 4v............................................................................ BaiwmoKlP | .. т:"..... / ^ , [33] Заголовок | |||
МАС-адрес отправителя | МАС-адрес получателя | UDP • ' % | |||
МАС12 - 00E0F77F1920 | МАС21 - 00E0F77F5A02 | тжшт ....... | Ж.21АГ | ankmg&com? |
Рис. 18.7. Кадр Ethernet с DNS-запросом, отправленный с маршрутизатора R1 маршрутизатору R2 |
6. Аналогично действует модуль IP на маршрутизаторе R2. Получив FDDI- кадр, он отбрасывает его заголовок, а из заголовка IP извлекает IP-адрес назначения и просматривает свою таблицу маршрутизации. Там он обнаруживает, что сеть назначения является непосредственно присоединенной к его второму интерфейсу. Поэтому он посылает ARP-запрос по сети Ethernet2: «Какой МАС-адрес соответствует IP-адресу конечного узла 203.21.4.6?» Получив ответ о МАС-адресе DNS-сервера — 00E0F7751231, маршрутизатор R2 отправляет в сеть Ethernet2 кадр (рис. 18.8).
Заголовок Ethernet | ..... ^.......... w...... ZmmamtPi <, | "{•""-""•""T----------------- Заголовок | - Ш&шрйо | ||
МАС-адрес отправителя | МАС-адрес получателя | ||||
МАС21 - 00E0F734F5C0 | MACdns-00E0F7751231 | ШШЖ17 | . Ш2Ш | ............. г.. |
Рис. 18.8. Кадр Ethernet с DNS-запросом, отправленный с маршрутизатора R2 |
7. Сетевой адаптер DNS-сервера захватывает кадр Ethernet, обнаруживает совпадение МАС-адреса получателя, содержащегося в заголовке, со своим собственным адресом и направляет его модулю IP. После анализа полей заголовка IP из пакета извлекаются данные вышележащих протоколов. DNS-запрос передается программному модулю DNS-сервера. DNS-сервер просматривает свои таблицы, возможно, обращается к другим DNS-серверам и в результате формирует ответ, смысл которого состоит в следующем: Символьному имени unix.mgu.com соответствует IP-адрес 142.06.13.14.
ПРИМЕЧАНИЕ -----------------------------------------------------------------------------------------------------
Заметим, что во время всего путешествия пакета по составной сети от клиентского компьютера до DNS-сервера адреса получателя и отправителя в полях заголовка IP-пакета не изменились. Зато в заголовке каждого нового кадра, который переносил пакет от одного маршрутизатора к другому, аппаратные адреса изменялись на каждом отрезке пути.
Передача DNS-ответа
1. Стек TCP/IP, установленный на DNS-сервере, упаковывает DNS-ответ в UDP- дейтаграмму, затем — в IP-пакет (IP-адрес получателя ему известен из DNS- запроса). Протокол IP определяет, что пакет необходимо маршрутизировать.
2. Протокол IP просматривает таблицу маршрутизации, в результате определяет IP-адрес следующего маршрутизатора 1Р22 — 203.21.4.3.
3. Протокол ARP определяет МАС-адрес интерфейса маршрутизатора — 00E0F734F5C0.
4. IP-пакет размещается в поле данных кадра Ethernet и отправляется в сеть Ethernet2.
5. Маршрутизатор R2 получает кадр, выполняет шаги 2 и 3 и отправляет FDDI- кадр маршрутизатору R1.
6. Маршрутизатор R1 определяет по таблице маршрутизации, что поступивший пакет адресован в сеть, непосредственно подсоединенную к его интерфейсу. Поэтому IP обращается к протоколу ARP, чтобы получить МАС-адрес узла назначения, а не маршрутизатора.
7. В сеть Ethernetl отправляется адресованный FTP-клиенту кадр (рис. 18.9).
Заголовок Ethernet | шршш Заголовок | Ш$-ОТвеГ , | |||
МАС-адрес отправителя | МАС-адрес получателя | < в* | w-щт получателя | ilDF | |
МАСц -008048ЕВ7Е60 | МАСс - 008048А17652 | frmxih | Ш.Ш3.17 | ___ | 1Ш&Ш4 s |
Рис. 18.9. Кадр Ethernet с DNS-запросом, отправленный с маршрутизатора R2 |
8. FTP-клиент извлекает из кадра DNS-ответ, теперь он может продолжить выполнение команды, в которой адрес FTP-сервера указан в виде IP-адреса:
> ftp 142.06.13.14
Передача пакета от FTP-клиента к FTP-серверу
Этот этап полностью аналогичен описанным выше шагам, относящимся к передаче по сети DNS-запроса и DNS-ответа. Однако для читателя будет весьма полезно описать этот процесс, обращая особое внимание на значения адресных полей заголовков кадров и заголовка вложенного IP-пакета.
Маршрутизация с использованием масок
Список ключевых слов: маска, демилитаризованная зона, технология
бесклассовой междоменной маршрутизации, префикс адреса, локализация адресов, подсеть, специфический маршрут, маски переменной длины, агрегирование адресов, перекрытие адресных пространств, CIDR.
Алгоритм маршрутизации усложняется, когда в систему адресации узлов вносятся дополнительные элементы — маски. В чем же причины отказа от хорошо себя зарекомендовавшего в течение многих лет метода адресации, основанного на классах? Основная из них — потребность в структуризации сетей в условиях дефицита нераспределенных номеров сетей.
Часто администраторы сетей испытывают неудобства, поскольку количества централизованно выделенных им номеров сетей недостаточно для того, чтобы структурировать сеть надлежащим образом, например, развести все слабо взаимодействующие компьютеры по разным сетям. В такой ситуации возможны два пути. Первый из них связан с получением от какого-либо центрального органа дополнительных номеров сетей. Второй способ, употребляющийся чаще, связан с использованием технологии масок, которая позволяет разделить одну сеть на несколько сетей.
Структуризация сети масками одинаковой длины
Допустим, администратор получил в свое распоряжение адрес класса В: 129.44.0.0. Он может организовать сеть с большим числом узлов, номера которых брать из диапазона 0.0.0.1-0.0.255.254. Всего получается 216 - 2 адреса (с учетом того, что адреса из одних нулей и одних единиц имеют специальное назначение и не годятся для адресации узлов). Однако ему не нужна одна большая неструктурированная сеть, производственная необходимость диктует администратору другое решение, в соответствии с которым сеть должна быть разделена на три отдельных подсети, при этом трафик в каждой подсети должен быть надежно локализован. Это позволит легче диагностировать сеть и проводить в каждой из подсетей особую политику безопасности. (Заметим, что разделение большой сети с помощью масок имеет еще одно преимущество — оно позволяет скрыть внутреннюю структуру сети предприятия от внешнего наблюдения и тем самым повысить ее безопасность.)
На рис. 18.10 показано разделение всего полученного администратором адресного диапазона на 4 равные части — каждая по 214 адресов. При этом число разрядов, доступное для нумерации узлов, уменьшилось на два бита, а префикс (номер) каждой из четырех сетей стал длиннее на два бита. Следовательно, каждый из четырех диапазонов можно записать в виде 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.
3 байта |
4 байта |
1 байт 2 байта
Поле номера сети класса В (неизменяемое поле) 129 44 |
Поле адресов узлов (адресное пространство) |
Рис. 18.10. Разделение адресного пространства сети класса В 129.44.0.0 на четыре равные части |
Сеть 129.44.0.0 Маска 255.255.192.0 Диапазон номеров узлов от 0 до 214 Сеть 129.44 64.0 Маска 255.255.192.0 Диапазон номеров узлов от 0 до 214 Сеть 129.44.128.0 Маска 255.255.192.0 Диапазон номеров узлов от 0 до 214 Сеть 129.44.192.0 Маска 255.255.192.0 Диапазон номеров узлов от 0 до 214 |
ПРИМЕЧАНИЕ -----------------------------------------------------------------------------------------------------
Некоторые программные и аппаратные маршрутизаторы, следуя устаревшим рекомендациям RFC 950, не поддерживают номера подсетей, которые состоят либо только из одних нулей, либо только из одних единиц. Например, для такого типа оборудования номер сети 129.44.0.0 с маской 255.255.192.0, использованной в нашем примере, окажется недопустимым, поскольку в этом случае разряды в поле номера подсети имеют значение 00. По аналогичным соображениям недопустимым может оказаться номер сети 129.44.192.0 с тем же значением маски. Здесь номер подсети состоит только из единиц. Однако современные маршрутизаторы, поддерживающие рекомендации RFC 1878, свободны от этих ограничений.
Пример сети, построенной путем деления на 4 сети равного размера, показан на рис. 18.11. Весь трафик во внутреннюю сеть 129.44.0.0, направляемый из внешней сети, поступает через маршрутизатор R1. В целях структуризации информационных потоков во внутренней сети установлен дополнительный маршрутизатор R2. Каждая из вновь образованных сетей 129.44.0.0/18, 129.44.64.0/18, 129.44.128.0/18 и 129.44.192.0/18 подключена к соответственно сконфигурированным портам внутреннего маршрутизатора R2.
ПРИМЕЧАНИЕ ----------------------------------------------------------------------------------------------------
В одной из этих сетей (129.44.192.0/18), выделенной для создания соединения между внешним и внутренним маршрутизаторами, для адресации узлов были использованы всего два адреса — 129.44.192.1 (порт маршрутизатора R2) и 129.44.192.2 (порт маршрутизатора R1). Огромное число узлов в этой подсети не используются. Такой пример выбран исключительно в учебных целях, чтобы показать неэффективность сетей равного размера.
Сеть 129.44.128.0 Маска 255.255.192.0 214 узлов Подсеть 2
Рис. 18.11. Маршрутизация с использованием масок одинаковой длины
Извне сеть по-прежнему выглядит, как единая сеть класса В. Однако поступающий в сеть общий трафик разделяется локальным маршрутизатором R2 между четырьмя сетями. В условиях, когда механизм классов не действует, маршрутизатор должен иметь другое средство, которое позволило бы ему определять, какая часть 32-разрядиого числа, помещенного в поле «Адрес назначения», является номером сети. Именно этой цели служит дополнительное поле маски, включенное в таблицу маршрутизации (табл. 18.8).
Таблица 18.8. Таблица маршрутизатора R2 в сети с масками одинаковой длины
|
Первые четыре записи в таблице соответствуют внутренним подсетям, непосредственно подключенным к портам маршрутизатора 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.