Router, Static routing

Автор работы: Пользователь скрыл имя, 19 Марта 2013 в 04:28, лабораторная работа

Краткое описание

Маршрутизация" (она же "роутинг") - это технология, позволяющая доставить информацию в пункт назначения, передавая её от одного маршрутизатора до другого. Здесь мы рассмотрим как настроить IP-роутеры для того, чтобы они правильно передавали друг другу пакеты.
"IP" - кроме IP маршрутизируемыми протоколами являются IPX и DecNet.
"Статическая" - кроме нее бывает динамическая маршрутизация, когда таблицы маршрутизации составляются/задаются не администратором-человеком, а программами, обменивающимися информацией о состоянии каналов связи и о доступности сетей. Впрочем, таблицы маршрутизации, составленные этими программами, ничем принципиально не отличаются от статических таблиц, а в интервалах между изменениями маршрутизация работает как статическая.

Вложенные файлы: 1 файл

Лабораторная работа 6 Роутер дополнением.doc

— 85.50 Кб (Скачать файл)

Практическое  занятие № 6 «Router, Static routing»

Цель: изучить работу технологию маршрутизации.

Вид работы: фронтальный

Время выполнения: 3 часа

Теоретические сведения

  • "Маршрутизация" (она же "роутинг") - это технология, позволяющая доставить информацию в пункт назначения, передавая её от одного маршрутизатора до другого. Здесь мы рассмотрим как настроить IP-роутеры для того, чтобы они правильно передавали друг другу пакеты.
  • "IP" - кроме IP маршрутизируемыми протоколами являются IPX и DecNet.
  • "Статическая" - кроме нее бывает динамическая маршрутизация, когда таблицы маршрутизации составляются/задаются не администратором-человеком, а программами, обменивающимися информацией о состоянии каналов связи и о доступности сетей. Впрочем, таблицы маршрутизации, составленные этими программами, ничем принципиально не отличаются от статических таблиц, а в интервалах между изменениями маршрутизация работает как статическая.

Обозначения:

  • IP-адрес – четырёхбайтное число, записываемое либо в шестнадцатеричном виде типа 0xC0A80E05, либо в десятичном виде, где байты разделены точками типа 192.168.14.5 (в качестве примера в обоих случаях использовался один и тот же номер). В своих примерах будем использовать вторую нотацию, но будем использовать буквы, например, X.Y.Z.5.
  • Маска - тоже четырёхбайтное число, но все старшие биты, начиная с некоторого, всегда установлены в единицу, а все младшие - в ноль. Примеры: 255.255.255.0 - маска сети класса "C" на 256 номеров; 255.255.255.192 - маска маленькой сети на 64 номера (192=256-64). Если мне надо указать сочетание номера и маски, я буду использовать запись адрес/число_установленных_битов_в_маске - так сочетание номера X.Y.Z.W и маски 255.255.255.0 будет записано в виде X.Y.Z.W/24.
  • Адресом сети называют число, получаемое из номера интерфейса применением побитовой операции AND с маской, т.е. в номере интерфейса обнуляются биты на тех местах, на которых стоят нулевые биты в маске.
  • Звёздочка в IP-номере обозначает, что на её месте может находиться любое число от 0 до 255. Два числа "A" и "B", разделённые двумя точками и заключённые в квадратные скобки, обозначают, что на этом месте может находиться любое число в интервале от "A" до "B". Запись "172.[16..31].*.*" обозначает, что первый байт должен иметь значение 172"; второй байт может иметь значение от 16 до 31; третий и четвёртый байты могут иметь любое значение; эта запись - синоним "172.16.0.0/16"
  • DefGW (Default GateWay) - маршрутизация по умолчанию, т.е. применяемая в случаях, когда ни одна другая запись не сработала (отсюда следует, что DefGW - самая низкоприоритетная запись маршрутизации). Имеет собственное имя вследствие того, что применяется очень часто (практически на всех машинах). DefGW соответствует маршруту в сеть "0.0.0.0/0" или, что то же самое, "*.*.*.*".
  • "Пул" ("pool") или "диапазон" - группа последовательно идущих IP-адресов.
  • "Маршрутизатор" или "роутер" - компьютер, имеющий более одного сетевого интерфейса и пересылающий IP-пакеты из одного сегмента сети в другой.
  • "Тупиковый сегмент" - это сегмент, имеющий единственный маршрутизатор наружу.

Следует помнить, что IP-адрес присваивается не компьютеру, а интерфейсу (сетевому выходу либо последовательному порту). В принципе, можно дать нескольким интерфейсам один номер; можно также присвоить несколько адресов одному интерфейсу.

В сегменте сети все машины имеют IP-адреса с одинаковым адресом сети и одинаковой маской. В одной локальной сети можно совместить две и больше разных IP-сетей, они даже могут знать друг о друге и нормально общаться, но это всё-таки будут две разные сети.

Принято следующее деление в  зависимости от значения старшего байта IP-номера:

0..127 - сети класса "A" по 2^24 адресов с маской 0xFF000000;

128..191 - сети класса "B" по 2^16 адресов с маской 0xFFFF0000;

192..223 - сети класса "C" по 2^8 адресов с маской 0xFFFFFF00;

224..239 - сети класса "D" для multicast (групповой) рассылки;

остальные пока зарезервированы.

Многие программы по адресу автоматически определяют класс  сети, хотя это можно поправить вручную. В принципе никто не мешает разбить сеть на две или больше подсетей с любыми масками, но организациям, как правило, выделяют адреса блоками, соответствующими классам "A", "B" и "C" - это связано с системой DNS, позволяющей узнать доменное имя машины по её IP-адресу.

Сеть класса "A" с адресом 127 (127.*.*.*) - loopback, т.е. предназначена для общения компьютера с самим собой. IP-номер 127.0.0.1 обозначается "loopback" или "localhost" и каждым компьютером рассматривается как "я сам". IP-пакеты с адресом источника и/или адресом назначения, принадлежащим пулу "127.*.*.*", вообще не должны распространяться по сетям; появление таких пакетов следует рассматривать как атаку.

В любой сети адрес (IP-адрес и маска) является адресом всей сети и не может быть присвоен никому конкретно. Адрес (IP-адрес или не маска), являющийся последним номером в сети, предназначен для broadcasting (широковещательных) сообщений, которые доставляются всем машинам сегмента сети. Соответственно, при выделении группы адресов в сеть два Адреса становятся недоступны.

В Unix команды настройки  сетевых интерфейсов, как правило, запускаются из файла /etc/rc или запускаемых из него файлах, а в M$-Windows - загрузчиком операционной системы в соответствие с system.ini или registry.

Главному шлюзу в  сети нужно присваивать первый (наименьший) номер в сети (нулевой, недоступен). Если в сети присутствует второй шлюз, через который подсоединен другой сегмент, то этому шлюзу (промежуточному маршрутизатору) будет присваиваться последний (наибольший) номер в сети.

Рисунок - Сегмент сети с единственным шлюзом наружу

Рабочая станция ws.5 (впрочем, это может быть и сервер - с точки зрения IP-маршрутизации нет никакой разницы) конфигурируется просто: мы присваиваем ей IP-номер X.Y.Z.5, маску 255.255.255.0 и указываем шлюз X.Y.Z.1 (конечно, в реальности надо настраивать много чего ещё, то оно всё не имеет отношения к IP-маршрутизации). Всё это можно сделать штатными инструментами - во FreeBSD программой /stand/sysinstall, в Windows - через свойства сетевого окружения. Интерфейс loopback конфигурируется автоматически (правда, во FreeBSD можно сделать так, что loopback не сконфигурируется; но это не даст только лишние проблемы).

Присвоение сетевому интерфейсу IP-адреса X.Y.Z.5 с маской 255.255.255.0 создаёт в таблице маршрутизации две записи. Одна предписывает направлять IP-пакеты с IP-адресом назначения X.Y.Z.5 на более подробную разборку вверх по стеку протоколов: анализируется принадлежность пакета к протоколу TCP, UDP, ICMP или другому; для TCP и UDP происходит анализируется номер порта; и в зависимости от этого IP-пакет направляется программе, которая должна его обрабатывать. Вторая запись предписывает направлять IP-пакеты с IP-адресами X.Y.Z.* прямо через этот интерфейс в локальную сеть с использованием протокола ARP.

Указание в качестве шлюза IP-адреса X.Y.Z.1 создаёт запись, в соответствии с которой все пакеты (все, потому что любой адрес подходит под 0.0.0.0/0) будут отправляться на машину, имеющую интерфейс X.Y.Z.1. Информация о том, как можно добраться до интерфейса X.Y.Z.1, содержится в настройке IP-номера/маски, которая определила способ доступа ко всем машинам X.Y.Z.* через сетевой интерфейс.

Таким образом, у нас  сложилась примерно такая ситуация:

Вообще, система маршрутизации (за исключением предельно вырожденных  случаев) древовидна, т.е. одни записи включают в себя другие. Частичное пересечение невозможно, ибо границы адресного пространства, на которое действует каждая запись, выровнены на размер этого пространства. Порядок хранения и просмотра таблицы может быть разный, но должен обеспечивать приоритет записей с маленьким пространством перед записями с большим пространством. В данном случае обращение к машине X.Y.Z.9 попадает под юрисдикцию двух записей маршрутизации, но обращаться к ней наша рабочая станция будет в соответствии с X.Y.Z.0/24->LAN.

Собственно, так ненавязчиво  мы познакомились с тремя видами IP-маршрутизации:

"На себя" - все  IP-пакеты с адресом назначения, совпадающим с одним из IP-адресов машины, передаются выше по стеку TCP/IP-протоколов; в конечном счёте информация, передаваемая в них, достигает приложений, выполняющихся на данной машине, что и является конечной целью работы IP-сети.

"В локальную сеть" - при  отправке пакета он упаковывается  в пакет локальной сети (в Ethernet это называется "кадр", в ATM - "ячейка") и отсылается нужной  станции. Для того, чтобы узнать, какой MAC-адрес соответствует данному IP-адресу, используется ARP.

"Следующему марщрутизатору". В простейших случаях в сети стоит единственный шлюз наружу, через который передается все, кроме предназначенного в локальную сеть; рабочие станции (и серверы) в сети не интересуются устройством сети вне локальной и предоставляют этому шлюзу самому решить, куда отправить тот или иной IP-пакет. В большинстве случаев шлюз из локальной сети наружу тоже имеет единственный шлюз "ещё более наружу", с которым связан либо выделенным каналом (физическим модемным или виртуальным в сети X.25 или FrameRelay) либо, реже, локальной сетью.

Сетевому интерфейсу шлюза надо присвоить IP-номер X.Y.Z.1 и маску 255.255.255.0. На самом деле, у нашего шлюза может (и должно) быть много интерфейсов; на рисунке это отображено тем, что шлюз как бы "недорисован". Ещё раз обращаю внимание на то, что номер и маска сети совпадают для всех машин этого сегмента.

Пример

Для иллюстрации различных аспектов маршрутизации мы будем использовать следующий пример использования  команды netstat:

% netstat -r

Routing tables

 

Destination      Gateway            Flags     Refs     Use     Netif Expire

 

default      outside-gw     UGSc       37      418  ppp0

localhost    localhost      UH      0      181   lo0

test0        0:e0:b5:36:cf:4f   UHLW    5    63288   ed0     77

10.20.30.255     link#1         UHLW    1     2421

example.com  link#1         UC      0    0

host1        0:e0:a8:37:8:1e    UHLW    3     4601   lo0

host2        0:e0:a8:37:8:1e    UHLW    0    5   lo0 =>

host2.example.com link#1        UC      0    0

224      link#1         UC      0    0

В первых двух строках задаются маршрут  по умолчанию  и маршрут на localhost.

Интерфейс (колонка Netif), который указан в этой таблице маршрутов для использования с localhost и который назван lo0, имеет также второе название, устройство loopback. Это значит сохранение всего трафика для указанного адреса назначения внутри, без посылки его по сети, так как он все равно будет направлен туда, где был создан.

Следующими выделяющимися адресами являются адреса, начинающиеся с 0:e0:.... Это аппаратные адреса Ethernet, или MAC-адреса. FreeBSD будет автоматически распознавать любой хост (в нашем примере это test0) в локальной сети Ethernet и добавит маршрут для этого хоста, указывающий непосредственно на интерфейс Ethernet, ed0. С этим типом маршрута также связан параметр таймаута (колонка Expire), используемый в случае неудачной попытки услышать этот хост в течении некоторого периода времени. Если такое происходит, то маршрут до этого хоста будет автоматически удалён. Такие хосты поддерживаются при помощи механизма, известного как RIP (Routing Information Protocol), который вычисляет маршруты к хостам локальной сети при помощи определения кратчайшего расстояния.

FreeBSD добавит также все маршруты  к подсетям для локальных подсетей (10.20.30.255 является широковещательным адресом для подсети 10.20.30, а имя example.com является именем домена, связанным с этой подсетью). Назначение link#1 соответствует первому адаптеру Ethernet в машине. Отметьте отсутствие дополнительного интерфейса для этих строк.

В обеих этих группах (хосты и  подсети локальной сети) маршруты конфигурируются автоматически  даемоном, который называется routed. Если он не запущен, то будут существовать только статически заданные (то есть введенные явно) маршруты.

Строка host1 относится к нашему хосту, который известен по адресу Ethernet. Так как мы являемся посылающим хостом, FreeBSD знает, что нужно использовать loopback-интерфейс (lo0) вместо того, чтобы осуществлять посылку в интерфейс Ethernet.

Две строки host2 являются примером того, что происходит при использовании алиасов в команде ifconfig(8) (обратитесь к разделу об Ethernet для объяснения того, почему мы это делаем). Символ => после интерфейса lo0 указывает на то, что мы используем не просто интерфейс loopback (так как это адрес, обозначающий локальный хост), но к тому же это алиас. Такие маршруты появляются только на хосте, поддерживающем алиасы; для всех остальных хостов в локальной сети для таких маршрутов будут показаны просто строчки link#1.

Последняя строчка (подсеть назначения 224) имеет отношение к многоадресной посылке, которая будет рассмотрена в другом разделе.

И наконец, различные атрибуты каждого  маршрута перечисляются в колонке Flags. Ниже приводится краткая таблица некоторых из этих флагов и их значений:

U

Up: Маршрут актуален.

H

Host: Адресом назначения является  отдельный хост.

G

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

S

Static: Маршрут был настроен вручную,  а не автоматически сгенерирован  системой.

C

Clone: Новый маршрут сгенерирован  на основе указанного для машин,  к которым мы подключены. Такой  тип маршрута обычно используется для локальных сетей.

W

WasCloned: Указывает на то, что маршрут  был автоматически сконфигурирован  на основе маршрута в локальной  сети (Clone).

L

Link: Маршрут включает ссылку  на аппаратный адрес Ethernet.


 

 Маршруты по умолчанию

Когда локальной системе нужно установить соединение с удаленным хостом, она обращается к таблице маршрутов для того, чтобы определить, существует ли такой маршрут. Если удаленный хост попадает в подсеть, для которой известен способ ее достижения (маршруты типа Cloned), то система определяет возможность подключиться к ней по этому интерфейсу.

Информация о работе Router, Static routing