
- •Назначение адресов узлам сети. Протоколы bootp и dhcp.
- •Доставка пакетов. Маршрутизация. Rip, ospf.
- •Типы алгоритмов маршрутизации.
- •Показатели алгоритмов (метрики)
- •Протоколы маршрутизации на основе алгоритма вектора расстояния
- •Распространение "хорошей" новости в сети.
- •Проблема возрастания до бесконечности.
- •Пример ситуации, когда правило расщепления горизонта не действует.
- •Протоколы маршрутизации на основе алгоритма состояния канала
Лекция
10. Сетевой уровень
Протокол ARP
Этот протокол предназначен для преобразования IP-адресов в МАС - адреса канального уровня. Рассмотрим локальную вычислительную сеть, построенную на основе использования протоколов семейства Ethernet. Для организации соединений на сетевом уровне применяется стек протоколов TCP/IP. IP- пакеты, содержащие в заголовке IP-адрес устройства назначения, передаются на канальный уровень в ПО компьютера и инкапсулируются в кадры. В заголовке кадра должен быть МАС - адрес устройства назначения. Таким образом, для работы сети необходим алгоритм, обеспечивающий установление соответствия между IP-адресом устройства и его МАС - адресом. Для реализации этого алгоритма и разработан протокол разрешения адресов ARP (Address Resolution Protocol) и программное обеспечение в составе стека TCP/IP. Для определения МАС - адреса устройства назначения IP-пакета передающее устройство отправляет в сеть широковещательный (broadcast) запрос с заголовком Ethernet, включающим:
1) Поля с адресами источника и назначения Ethernet.
При этом используется специальный адрес назначения Ethernet, состоящий из всех единиц, означающий широковещательный адрес. Кадры с таким адресом будут получены всеми Ethernet интерфейсами сегмента сети.
2) Двухбайтовый тип кадра (frame type) Ethernet указывающий, данные какого типа пойдут следом. Для ARP запроса или ARP отклика это поле содержит 0x0806.
Вкладываемый в кадр ARP запрос имеет следующий формат:
Тип оборудования – тип интерфейса, аппаратный адрес которого запрашивается, для Ethernet это значение равно единице.
Тип протокола - указывает тип адреса используемого протокола. Для IP адресов используется значение 0x0800.
HA-len – длина аппаратного адреса. В ARP запросах и откликах для Ethernet 6 байт.
PA-len - длина адреса протокола. В ARP запросах и откликах для IP-адреса 4 байта.
Код операции указывает на тип операции: ARP запрос (значение устанавливается в 1), ARP отклик (2), RARP запрос (3) и RARP отклик (4). (протокол RARP является дополнением к протоколу ARP и решает обратную задачу определения IP-адреса для заданного МАС-адреса) Это поле необходимо, так как поля типа фрейма (frame type) одинаковы для ARP запроса и ARP отклика.
Следующие четыре поля: аппаратный адрес отправителя (Ethernet адрес в рассматриваемом случае), адрес протокола (IP адрес), аппаратный адрес назначения и адрес протокола назначения. Обратите внимание, что в данном случае происходит некоторое дублирование информации: аппаратный адрес отправителя может быть получен как из Ethernet заголовка, так и из ARP запроса.
Из структуры ARP – запроса видно, что это достаточно универсальный протокол и рассчитан на использование отнюдь не только в сетях Ethernet.
Кадр ARP- запроса принимают и анализируют все сетевые устройства. Получатель по наличию своего IP- адреса определяет, что запрос адресован ему, и отправляет ответный пакет, в заголовке которого указан MAC - адрес передатчика, а в составе пакета содержится МАС - адрес получателя. Передатчик получает этот пакет, определяет МАС - адрес получателя и подставляет его во все кадры, инкапсулирующие IP- пакеты, которые должны быть переданы получателю.
Назначение адресов узлам сети. Протоколы bootp и dhcp.
IP-адреса и маски назначаются узлам при их конфигурировании вручную или автоматически с использованием специализированных серверов. Ручное назначение адресов требует внимания — некорректное назначение адресов и масок приводит к невозможности связи по IP, однако с точки зрения надежности и безопасности (защиты от несанкционированного доступа) оно имеет свои преимущества. С другой стороны для достаточно масштабной сети централизованная система управления адресным пространством, а значит и централизованное назначение адресов, практически не имеют альтернативы.
Примером протокола данного типа является BootP (Bootstrap Protocol). Данный протокол разрабатывался во времена, когда сети еще не были слишком большими и не представлялось принципиально трудным прописать сетевые настройки каждого из хостов вручную. Поэтому он был предназначен для решения проблемы загрузки и конфигурирования для работы в сети бездисковых станций. Такие станции не имели возможности хранить у себя код операционной системы и загружали его с соответствующего сетевого сервера. Но чтобы сделать даже это необходимо быть уже сконфигурированным узлом сети, т.е. как минимум иметь определенный сетевой адрес. При включении же бездисковая рабочая станция располагает только аппаратным адресом своего интерфейса и простейшую стартовую программу, хранимую в ПЗУ..
Поэтому при инициализации такой узел посылает широковещательный запрос, на который BootP-сервер ответит пакетом с IP-адресом, маской, а также адресами шлюзов (gateways) и серверов службы имен (nameservers). Эти данные хранятся на сервере в списке, составленном по МАС-адресам клиентов BootP. Естественно, что по отключении узла его IP-адрес не может быть использован другими узлами.
Рассмотрим формат 300-байтного BOOTP запроса и отклика:
Первое однобайтное поле несет код операции. Значение 1 говорит о том, что данное сообщение является запросом, а значение 2 указывает на то, что сообщение является откликом.
Значение полей «тип аппаратуры» и «длина аппаратного адреса» (H-тип и Hlen) очевидно из названия. Для Ethernet H-тип=1, а HLen=6.
Счетчик пересылок (hop count) устанавливается клиентом в 0, однако может быть использован уполномоченным сервером.
Идентификатор транзакции (transaction ID) - 32-битное целое число, которое устанавливается клиентом и возвращается сервером. Оно позволяет клиенту сопоставить отклик с запросом. Клиент устанавливает в это поле случайное число для каждого запроса.
В поле количество секунд (number of seconds) клиент записывает время, когда он предпринял первую попытку загрузиться. На основании значения этого поля вторичный сервер делает вывод о том, что первичный сервер не доступен. (Вторичный сервер делает подобный вывод если величина в поле количества секунд достигла определенного значения.)
Если клиент уже знает свой IP адрес, он заполняет поле IP адрес клиента (client IP address). Есле нет - клиент устанавливает это значение в 0. В последнем случае сервер вставляет в поле ваш IP адрес (your IP address) IP адрес клиента. Поле IP адрес сервера (server IP address) заполняется сервером.
Для протокола BootP предоставление клиенту конфигурационной информации является только первым этапом работы. После его завершения он обеспечивает загрузку операционной системы с о специализированного сервера. Все необходимое для выполнения данной процедуры в нем также предусмотрено.
Развитием BOOTP является DHCP (Dynamic Host Configuration Protocol) — протокол, обеспечивающий автоматическое динамическое назначение IP-адресов и масок подсетей для узлов-клиентов DHCP-сервера. Адреса вновь активированным узлам назначаются автоматически из области адресов (пула), выделенных DHCP-серверу. По окончании работы узла его адрес возвращается в пул и в дальнейшем может назначаться для другого узла. Применение DHCP облегчает инсталляцию и диагностику для узлов, а также снимает проблему дефицита IP-адресов.
DHCP является инструментом системного администратора. управляемым путем задания желательных конфигурационных параметров.
К этому протоколу предъявляется много требований. Каждый клиент должен быть способен автоматически получить локальные конфигурационные параметры. При этом не обязательно, чтобы в каждой подсети был свой DHCP сервер.
Клиент DHCP вполне может получить несколько откликов на запрос конфигурационных параметров, поскольку для повышения надежности и быстродействия можно использовать несколько DHCP-серверов, обслуживающих перекрывающиеся области сети. И клиент должен уметь сделать выбор в такой ситуации.
DHCP должен при этом уметь сосуществовать с ЭВМ, сконфигурированым вручную.
DHCP должен обслуживать существующих клиентов BOOTP
DHCP должен гарантировать, что любой специфический сетевой адрес не будет использоваться более чем одним клиентом DHCP одновременно.
Протокол должен поддерживать конфигурацию клиента при перезагрузке сервера, и, по мере возможности, DHCP-клиенту должен присваиваться один и тот же набор конфигурационных параметров.
DHCP поддерживает три механизма выделения IP-адресов. При "автоматическом выделении", DHCP присваивает клиенту постоянный IP-адрес. При "динамическом присвоении", DHCP присваивает клиенту IP-адрес на ограниченное время. При "ручном выделении", IP-адрес выделяется клиенту сетевым администратором, а DHCP используется просто для передачи адреса клиенту. Конкретная сеть использует один или более этих механизмов, в зависимости от политики сетевого администратора.