Материал предоставлен http://it.rfet.ru

Таблицы маршрутизации в IP-сетях

Рассмотрим, как выполняется маршрутизация. Представим, что компьютер А отправляет пакет компьютеру Б. Если оба эти компьютеры находятся в одной сети, то, что никакой маршрутизатор не нужен — пакет должен быть отправлен сразу компьютеру Б. Кто же принимает решение перенаправить пакет или нет? Решение принимается как узлом А, так и маршрутизатором сети. Общий алгоритм выглядит так:

  1. Сначала определяется в какой подсети находится компьютер Б.
  2. Если компьютер Б находится в той же подсети что и компьютер А, пакет просто отправляется компьютеру Б напрямую.
  3. Если же компьютер Б находится в другой сети, IP-уровень компьютера А просматривает имеющуюся в его памяти таблицу маршрутизации, в которой может находиться путь к узлу Б.
  4. Если маршрута к узлу Б нет в таблице маршрутизации компьютера А, то пакет отправляется маршрутизатору по умолчанию (default gateway) — пусть он разбирается, что делать с этим пакетом.
  5. Маршрутизатор просматривает свою таблицу маршрутизации. Если же маршрут к узлу Б снова не найден, то маршрутизатор отправляет пакет другому маршрутизатору — М2, который для него является маршрутизатором по умолчанию (default gateway).
  6. Маршрутизатор М2 просматривает свою таблицу маршрутизации и т.д.
  7. При обнаружении следующего маршрута пакет отправляется на следующий маршрутизатор — это явление называется переходом или транзитом (hop). Если пакет так и не достиг узла Б, компьютеру А отправляется сообщение об ошибке.

Пример таблицы маршрутизации

Посмотреть таблицу маршрутизации своего компьютера можно из командной строки при помощи команды netstat -arn (команда имеет одинаковые ключи в Windows и UNIX-like системах) а модифицировать при помощи команды route (синтаксис команды немного отличается в разных операционных системах).

Ниже приведен вывод команды для операционной системы Windows:

С:\>netstat -arn

Route Table
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x10003 ...00 16 e6 51 a3 ac ...... Broadcom NetLink (TM) Gigabit Ethernet
===========================================================================
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.1.1     192.168.1.2       10
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
      192.168.1.0    255.255.255.0      192.168.1.2     192.168.1.2       10
      192.168.1.2  255.255.255.255        127.0.0.1       127.0.0.1       10
    192.168.1.255  255.255.255.255      192.168.1.2     192.168.1.2       10
        224.0.0.0        240.0.0.0      192.168.1.2     192.168.1.2       10
  255.255.255.255  255.255.255.255      192.168.1.2     192.168.1.2       1
Default Gateway:       192.168.1.1
===========================================================================
Persistent Routes:
  None

Попробуем разобраться с полями таблицы маршрутизации:

  • Network destination (Сетевой адрес) — это адрес сети-назначения.
  • Netmask (Маска) — это сетевая маска сети-назначения.
  • Gateway address (Адрес шлюза) — это адрес шлюза для данной сети. Для того чтобы дойти до адресатов этой сети, пакеты будут направлены на адрес шлюза.
  • Interface (Интерфейс) — это адрес интерфейса, через который будет отправлен пакет.
  • Metric (Метрика) — это число маршрутизаторов на пути пакета до того, как он достигнет назначения, то есть сколько пересадок пакету нужно будет сделать на своем пути. Но обычно это поле используется маршрутизатором по-другому. Это своеобразный признак непосредственного подключения к сети. Метрика 1 (или 0 на некоторых маршрутизаторах) говорит о том, что данная сеть подключена непосредственно к порту маршрутизатора. Если возникает неоднозначность в выборе интерфейса через который направить пакет, то при прочих равных будет выбран интерфейс с меньшей метрикой.

В таблице маршрутизации по умолчанию содержатся следующие записи:

  • 0.0.0.0 — маршрут по умолчанию к любой сети, которая не описана в таблице маршрутизации (default gateway);
  • широковещание в сети, — используется для широковещания (broadcast) во всей сети;
  • широковещание в подсети — используется для широковещания (broadcast) в локальной подсети;
  • loopback (интерфейс-петля) — используется для тестирования конфигурации и сетевых программ (127.0.0.1);
  • локальная сеть — используется для отправки пакетов другим компьютерам локальной сети;
  • локальный узел — адрес локального компьютера.
Маршрутизаторы, мосты и шлюзыСтатическая маршрутизация