Разбираемся с таблицами маршрутизации Windows

Опубликовано: 24 Марта, 2023
Разбираемся с таблицами маршрутизации Windows

Просмотр таблиц маршрутизации

Таблицы маршрутизации являются важной частью стека протоколов Windows TCP/IP, но они не являются чем-то, что операционная система обычно отображает для случайного пользователя. Если вы хотите увидеть таблицы маршрутизации, вам придется открыть окно командной строки, а затем ввести команду ROUTE PRINT. После этого вы увидите экран, подобный показанному на рисунке A.

Изображение 20860
Рисунок A. Так выглядят таблицы маршрутизации Windows.

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

IPКОНФИГ/ВСЕ

Причина, по которой я рекомендую вам использовать команду IPCONFIG /ALL, заключается в том, что она показывает, как на самом деле настроен TCP/IP на машине. Конечно, вы можете заглянуть в раздел TCP/IP листа свойств сетевого адаптера, но информация будет более надежной, если вы получите ее из IPCONFIG. За последние годы я видел несколько случаев, когда IPCONFIG сообщал совершенно другую информацию, чем та, которая была введена на экране конфигурации TCP/IP машины. Это случается не часто, но если возникает ошибка правильного типа, вы можете столкнуться с этим типом несоответствия. Проще говоря, информация, введенная в лист свойств TCP/IP, отражает то, как вы хотите, чтобы Windows настроила протокол TCP/IP для выбранной сети. Информация, представленная IPCONFIG, показывает, как Windows на самом деле настроила протокол.

Даже если у вас не было какой-либо странной ошибки Windows, все равно полезно получить информацию о конфигурации через IPCONFIG. Если на машине установлено несколько сетевых карт, может быть сложно запомнить, какая конфигурация привязана к какой карте. IPCONFIG перечисляет различные конфигурации в легко читаемом виде для каждой сетевой карты, как показано на рисунке B.

Изображение 20861
Рисунок B: IPCONFIG /ALL отображает конфигурацию TCP/IP машины для каждой сетевой карты.

Изучение таблиц маршрутизации

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

Как вы видели на рисунке B, экран IPCONFIG /ALL отображал некоторую базовую информацию TCP/IP, такую как IP-адрес, шлюз по умолчанию и т. д. Однако таблицы маршрутизации не столь интуитивно понятны. Поэтому я хочу уделить немного времени обсуждению того, как читать таблицы маршрутизации и что означает информация в таблицах.

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

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

Если вы посмотрите на экран Route Print, вы заметите, что таблицы маршрутизации разделены на пять разных столбцов. Первый столбец — это столбец назначения сети. В этом столбце перечислены все сегменты сети, к которым подключен маршрутизатор. Столбец Netmask содержит маску подсети не сетевого интерфейса, подключенного к сегменту, а самого сегмента. Это в основном позволяет маршрутизатору определить класс адреса для сети назначения.

Третий столбец — это столбец шлюза. Как только маршрутизатор определил, в какую сеть назначения ему нужно отправить пакет, он просматривает список шлюзов. Список шлюзов сообщает маршрутизатору, через какой IP-адрес пакет должен быть перенаправлен, чтобы достичь сети назначения.

Столбец «Интерфейс» сообщает маршрутизатору, какая сетевая карта подключена к соответствующей сети назначения. Технически столбец интерфейса сообщает маршрутизатору только IP-адрес, назначенный сетевой карте, которая соединяет маршрутизатор с сетью назначения. Однако маршрутизатор достаточно умен, чтобы знать, к какому физическому интерфейсу привязан адрес.

Последним столбцом в таблице маршрутизации является столбец Metric. Метрики сами по себе являются наукой, но я попытаюсь дать вам краткое объяснение того, что они делают. Лучшее объяснение метрик, которое я когда-либо слышал, — это с точки зрения аэропорта. Представьте на мгновение, что мне нужно лететь из Шарлотты, Северная Каролина (ближайший крупный аэропорт к моему дому в Южной Каролине) в Майами, Флорида. Поскольку аэропорт Шарлотты довольно большой, у меня есть много вариантов, как добраться до Майами-Бич. Я мог бы сесть на рейс North West Airlines. Это приведет меня в Детройт, штат Мичиган, а затем в Майами (Детройт немного в стороне). Точно так же я мог сесть на рейс Continental Airlines, который доставит меня в Хьюстон, штат Техас, а затем в Майами. Другой вариант — просто сесть на беспосадочный рейс US Airways в Майами. Так какую авиакомпанию мне выбрать?

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

Маршрутизация работает так же. Во многих случаях маршрутизатор может отправить пакет несколькими способами. В таком случае имеет смысл отправить пакет по кратчайшему (или самому надежному) пути. Здесь в игру вступают метрики. Windows даже не смотрит на метрики, если не существует нескольких путей к месту назначения. Однако, если есть несколько путей, Windows проверяет метрики, чтобы определить кратчайший маршрут. Это слишком упрощенное объяснение, но оно дает понять суть.

Дополнительные параметры маршрутизации

Ранее я показывал вам команду Route Print, но на самом деле есть много других вещей, которые вы можете делать с помощью команды ROUTE. Синтаксис команды ROUTE следующий:

МАРШРУТ [-f] [-p] [команда [пункт назначения] []

Переключатель –f является необязательным. Этот переключатель указывает Windows очистить таблицу маршрутизации от всех записей шлюза. Если переключатель –f используется в сочетании с другими командами, то все записи шлюза будут очищены перед выполнением других инструкций внутри команды.

Переключатель –p делает указанный маршрут постоянным. Обычно, когда сервер перезагружается, все маршруты, указанные вами с помощью команды ROUTE, удаляются. Переключатель –p указывает Windows сохранить маршрут, даже если система будет перезагружена.

Командная часть синтаксиса команды ROUTE относительно проста. Набор команд состоит из четырех опций: ПЕЧАТЬ, ДОБАВИТЬ, УДАЛИТЬ и ИЗМЕНИТЬ. Я уже показывал вам команду ROUTE PRINT, но даже у команды ROUTE PRINT есть другие параметры. Например, вы можете использовать подстановочные знаки с этой командой. Например, если вы хотите распечатать только маршруты, относящиеся к подсети 192.xxx, вы можете использовать команду ROUTE PRINT 192*.

Команда ROUTE DELETE очень похожа на команду ROUTE Print. Просто введите команду ROUTE DELETE, а затем пункт назначения или шлюз, который вы хотите удалить из таблицы маршрутизации. Например, если вы хотите удалить шлюз 192.0.0.0, вы можете ввести команду ROUTE DELETE 192.0.0.0.

Команды ROUTE CHANGE и ROUTE ADD имеют одинаковый базовый синтаксис. Когда вы вводите эту команду, вы обычно должны указать пункт назначения, маску подсети и шлюз. Вы также можете указать метрику и интерфейс, но это необязательно. Например, если вы хотите добавить место назначения, используя минимальный синтаксис, вы можете сделать это следующим образом:

МАРШРУТ ДОБАВИТЬ 147.0.0.0 255.0.0.0 148.100.100.100

В этой команде 147.0.0.0 — это новое место назначения, которое вы добавляете. 255.0.0.0 будет маской подсети для пункта назначения, а 148.100.100.100 будет адресом шлюза. Вы можете расширить команду параметрами METRIC и IF. Это будет выглядеть примерно так:

МАРШРУТ ДОБАВИТЬ 147.0.0.0 255.0.0.0 148.100.100.100 МЕТРИЧЕСКИЙ 1 ЕСЛИ 1

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

Вывод

В этой статье я объяснил, как использовать команду ROUTE для отображения таблиц маршрутизации Windows и внесения изменений в эти таблицы, если это необходимо. Если вам нужна дополнительная помощь, вы можете получить больше примеров синтаксиса, введя ROUTE /? Команда.