Маршрутизация. Лекции. Маршрутизация. Задача маршрутизации
Скачать 1.05 Mb.
|
Задача маршрутизации Раскроем суть задачи маршрутизации. Пусть имеется составная сеть, задача состоит в том, чтобы доставить пакет из одной подсети в другую подсеть. Известны IP-адрес и маска подсети узла-отправителя (иными словами, ID подсети и ID хоста), IP-адрес узла-получателя. Сложность заключается в многочисленности возможных путей передачи пакета. Например, даже в простой сети, показанной на рис. 4.1, для передачи сообщения из подсети 1 в подсеть 4 существует восемь способов. Ещё одной проблемой является то, что из существующих путей требуется выбрать оптимальный по времени или по надежности. Кроме того, большинство составных сетей отличается динамичным изменением конфигурации, т. е. часть коммуникационных каналов может разрываться, другие, наоборот, возникают. Несмотря на все эти изменения, пакеты должны быстро и надежно доставляться в пункт назначения. В сетях TCP/IP задача маршрутизации решается с помощью специальных устройств - маршрутизаторов, которые содержат таблицы маршрутизации (routing table). Компьютер с операционной системой Windows Server 2003 также может выступать в роли маршрутизатора. Вообще говоря, любой хост, на котором действует стек TCP/IP, имеет свою таблицу маршрутизации (естественно, гораздо меньших размеров, чем на маршрутизаторе). Таблица маршрутизации Таблица маршрутизации, создаваемая по умолчанию на компьютере с Windows Server 2003 (одна сетевая карта, IP-адрес: 192.168.1.1, маска подсети: 255.255.255.0), имеет следующий вид:
В приведенной таблице имеются следующие поля: Network Destination (адрес назначения) - адрес хоста или подсети, для которых задан маршрут в таблице; Netmask (маска подсети) - маска подсети для адреса назначения; Gateway (шлюз - другое название маршрутизатора) - адрес для передачи пакета; Interface (интерфейс) - адрес собственного порта маршрутизатора (сетевой карты), на который следует передать пакет. Любой маршрутизатор содержит не менее двух портов. В компьютере в роли маршрутизатора с Windows Server 2003 портами являются сетевые карты; Metric (метрика) - число маршрутизаторов (число хопов), которые необходимо пройти для достижения хоста назначения. Для двух маршрутов с одинаковыми адресами назначения выбирается маршрут с наименьшей метрикой. Значение 20 в таблице соответствует 100-мегабитной сети Ethernet. Кратко опишем записи в таблице по умолчанию. 0.0.0.0 - маршрут по умолчанию (default route). Эта запись выбирается в случае отсутствия совпадений с адресом назначения. В приведенной таблице маршруту по умолчанию соответствует шлюз 192.168.1.2 - это адрес порта маршрутизатора, который связывает данную подсеть с другими подсетями; 127.0.0.0 - маршрут обратной связи (loopback address), все пакеты с адресом, начинающимся на 127, возвращаются на узел-источник; 192.168.1.0 - адрес собственной подсети узла; 192.168.1.1 - собственный адрес узла (совпадает с маршрутом обратной связи); 192.168.1.255 - адрес широковещательной рассылки (пакет с таким адресом попадает всем узлам данной подсети); 224.0.0.0 - маршрут для групповых адресов; 255.255.255.255 - адрес ограниченной широковещательной рассылки. Принципы маршрутизации в TCP/IP Рассмотрим, каким образом решается задача маршрутизации на примере составной сети, показанной на рис. 3.3, добавив некоторые подробности - IP-адреса и МАС-адреса узлов (рис. 4.2). ID подсети: 160.95.3.0 Маска подсети: 255.255.255.0 Рис. 4.2. Пример составной сети В примере роль маршрутизатора играет компьютер с Windows Server 2003, который содержит четыре сетевые карты (четыре порта). Каждая карта имеет собственные МАС-адрес и IP-адрес, принадлежащий той подсети, к которой порт подключен. Приведем часть таблицы маршрутизации для этого компьютера:
Будем считать, что пакеты передает хост А. Его таблица маршрутизации может иметь следующий вид:
Проанализируем, каким образом будет происходить передача пакетов от хоста А. Возможны три варианта местонахождения получателя: подсеть 1 (хост А хост В); подсеть 2 или подсеть 3 (хост А хост С); внешняя сеть (хост А Интернет). Если узлом назначения является хост В, пакет не должен попадать на маршрутизатор, так как получатель находится в той же сети, что и отправитель. Хост А ищет в своей таблице маршрутизации подходящий маршрут. При этом для каждой строки на адрес назначения (IP хоста В: 160.95.1.11) накладывается маска подсети (операция логического умножения AND) и результат сравнивается с полем Network Destination. Подходящими оказываются два маршрута: 0.0.0.0 и 160.95.1.0. Из них выбирается маршрут с наибольшим числом двоичных единиц1 - 160.95.1.0, т. е. пакет отправляется непосредственно хосту В. IP-адрес хоста В разрешается с помощью протокола ARP в МАС-адрес. В пересылаемом пакете будет указана следующая информация: IP-адрес отправителя: 160.95.1.10 МАС-адрес отправителя: 01-3E-8F-95-64-10 IP-адрес получателя: 160.95.1.11 МАС-адрес получателя: 01-3E-8F-95-64-11 Предположим теперь, что узел А отправляет пакет узлу С (подсеть 3). Поиск в собственной таблице маршрутизации не дает подходящих результатов, кроме маршрута по умолчанию - 0.0.0.0. Для этого маршрута указан адрес порта маршрутизатора 160.95.1.1 (default gateway - шлюз по умолчанию). Протокол ARP помогает определить МАС-адрес порта. Именно на него отправляется пакет сначала, причем указывается IP-адрес конечного получателя (узла С): IP-адрес отправителя: 160.95.1.10 МАС-адрес отправителя: 01-3E-8F-95-64-10 IP-адрес получателя: 160.95.3.20 МАС-адрес получателя: 01-3E-8F-48-54-01 Модуль маршрутизации Windows Server 2003 анализирует полученный пакет, выделяет из него адрес узла С, осуществляет поиск в своей таблице маршрутизации (поиск происходит так же, как на хосте А). Находятся две подходящие записи: 160.95.3.0 и 0.0.0.0. Выбирается первый маршрут, так как в нем больше двоичных единиц. Пакет в подсеть 3 отправляется с порта 160.95.3.1: IP-адрес отправителя: 160.95.1.10 МАС-адрес отправителя: 01-3E-8F-48-54-03 IP-адрес получателя: 160.95.3.20 МАС-адрес получателя: 01-3E-8F-95-64-20 Наконец, в случае, когда хост А осуществляет передачу во внешнюю сеть, пакет сначала попадает на маршрутизатор. Поиск в таблице маршрутизации дает единственный подходящий результат: 0.0.0.0. Поэтому пакет отправляется на порт внешнего маршрутизатора 160.95.0.2. Дальнейшее продвижение пакета выполняют маршрутизаторы Интернета. Создание таблиц маршрутизации Для построения таблиц маршрутизации существует два метода: статический и динамический. Статический метод заключается в том, что администратор вручную создает и удаляет записи в таблице. В состав операционной системы Windows Server 2003 входит утилита route. Она может использоваться с четырьмя командами: print - печать текущего содержимого таблицы; add - добавление новой записи; delete - удаление устаревшей записи; • change - редактирование существующей записи. Запись должна определяться следующим образом: Например: route add 160.95.1.0 mask 255.255.255.0 160.95.1.1 metric 20 IF 1 Кроме того, можно использовать два ключа: -f - удаление из таблицы всех записей, кроме записей по умолчанию; -р - создание постоянной записи (т. е. не исчезающей после перезагрузки). По умолчанию создаются временные записи. Достоинством статического метода является простота. С другой стороны, для сетей с быстро меняющейся конфигурацией этот метод не подходит, так как администратор может не успевать отслеживать все изменения. В этом случае применяют динамический метод построения таблицы маршрутизации, основанный на протоколах маршрутизации. В Windows Server 2003 реализовано два таких протокола - RIP и OSPF. |