Маршрутизация между нашими подсетями в Windows
С чем обязательно придётся столкнуться при сопряжении разных подсетей – это маршрутизация. Ох, сколько раз я задумчиво чесал затылок не понимая, почему узел назначения оставался недоступным. Ну чтож, попробуем это чётко спланировать, чтобы не ошибиться.
Я немного перерисовал исходную схему, чтобы было понятно, как будет проходить маршрутизация и какой интерфейс с каким адресом. Вот план нашей задачи (немного преобразованый):
Подпишу сетевые интерфейсы:
- 192.168.10.2/24
- 192.168.10.1/24
- 10.0.0.10/24
- 10.0.0.20/24
- 192.168.20.1/24
- 192.168.20.2/24
Всё просто. Шлюзы внутри с адресом .1, снаружи – по номеру подсети .10 – 10-ая подсеть, .20 – 20-ая подсеть. А хосты с адресом .2. Думаю, с этим вопросов не возникло. Чтож, проверим маршрутизацию сейчас. Для этого с каждого узла пропингуем все остальные хосты.
Доступность узлов в сети
Как мы видим, доступность есть только у узлов, непосредственно связанных виртуальным сетевым кабелем. Будем это исправлять!
Маршруты будем добавлять с помощью команды ROUTE командной строки. Что нам нужно добавить? Смотрим в табличку и добавляем те назначения, которые мы НЕ видим. И прописываем тот узел, который является следующим шагом для пакета на этом пути. Вот подробности:
- Для HOST:
-
- назначение – 10.0.0.0/24 направляем на 192.168.10.1
- назначение – 192.168.20.0/24 направляем на 192.168.10.1
- Для SERV:
-
- назначение – 192.168.20.0/24 направляем на 10.0.0.20
- Для MAIN:
-
- назначение – 192.168.10.0/24 направляем на 10.0.0.10
- Для ADMIN:
-
- назначение – 192.168.10.0/24 направляем на 192.168.20.1
- назначение – 10.0.0.0/24 направляем на 192.168.20.1
Прописываем маршруты Route
Как добавляются маршруты для рабочих станций? Утилита route
Синтаксис примерно такой:
route add MASK <mask><ga></mask>
Покажем на примере. Узел host. Передавать пакеты на узел serv.main.com. Пробуем послать ping, пакеты не доходят. (см. скриншот выше). Почему? Да потому что наш компьютер не знает, куда передавать пакеты в неизвестную подсеть (узел 10.0.0.10). Это не наша подсеть, поэтому теряемся в догадках.
Задача маршрутизации – обеспечить передачу пакетов в другие сети. Если бы у нас был установлен основной шлюз (default gateway), то все пакеты с неизвестным адресом сети назначения передавались бы именно на него “Пусть сами разбираются”, но такой параметр у нас не указан.
Итак, настраиваем узел host.
route add 10.0.0.0 mask 255.0.0.0 192.168.10.1
Все пакеты, адрес назначения которых стоит “подсеть 10.0.0.0/8” будут отправляться на 192.168.10.1. Что происходит при этом на 192.168.10.1? 192.168.10.1 – это узел serv.main.com, который имеет второй сетевой интерфейс 10.0.0.10. Пакеты на этот интерфейс, посланные с host – дойдут без проблем, так как маршрут до узла мы прописали.
Вот такая занимательная маршрутизация. Итак, маршрут до 10.0.0.10 у нас есть. Сделаем аналогичным образом маршруты до подсети 192.168.20.0/24. Всё-всё-всё посылаем на 192.168.10.1 (так как – это наш единственный “выход” с узла host).
Пришла пора настраивать узел serv.main.com, который стал полновесным маршрутизатором.
Идём в управление сервером и смотрим, чтобы была установлена роль “Маршрутизация и удалённый доступ” (Routing and remote access). Если всё ОК, входим в “Администрирование” в эту оснастку.
Маршрутизация и удалённый доступ в Windows Server 2003
Или устанавливаем её. Для этого отключаем службу Windows Firewall
После добавления роли “Маршрутизация и удалённый доступ” мы видим следующую оснастку. Открываем конфигурирование.
Начинаем конфигурирование. Настраивать будем всё вручную, чтобы лучше разобраться в маршрутизации.
А в этом окне мастера настройки маршрутизации и удалённого доступа выбираем “маршрутизацию между сетями”. Как раз то, что нужно.
И у нас появилось вот такое дерево в консоли MMC. Интересует нас “статические маршруты”.
И добавим вот такой маршрут. В общем-то это похоже на графическую оболочку утилиты route, поэтому объясню лишь то, что мы сделали. Для сети 192.168.10.0/24 мы указали адрес следующего прыжка 192.168.10.1 для пакетов, пришедших с интерфейса 10.0.0.10 (т.е. те пакеты, которые идут извне к нам, например от узла MAIN.COM или ADMIN.MAIN.COM
Подобную ситуцию сделаем и на MAIN.COM
В общем виде – то же самое. Указываем “ОТКУДА”, “КУДА” и “КУДА ПОСЫЛАТЬ”. На метрику внимания не обращаем, это для приоретизации одних маршрутов перед другими, когда из одной точки можно добраться в другую разными путями.
Маршруты настроили. Простая проверка PING доказывает. Все узлы доступны друг для друга!
Друзья! Вступайте в нашу группу Вконтакте, чтобы не пропустить новые статьи! Хотите сказать спасибо? Ставьте Like, делайте репост! Это лучшая награда для меня от вас! Так я узнаю о том, что статьи подобного рода вам интересны и пишу чаще и с большим энтузиазмом!
Также, подписывайтесь на наш канал в YouTube! Видео выкладываются весьма регулярно и будет здорово увидеть что-то одним из первых!
Статический маршрут — это заранее определенный путь, по которому должна следовать информация в сети, чтобы достичь определенного хоста или сети.
Вот два типичных сценария, в качестве примеров, когда требуется статический маршрут, рассмотрим их.Сценарий 1:Проблема: Шлюзом ПК-является роутер 2, который предоставляет доступ в интернет. Когда ПК хочет подключиться к серверам сервер 1 и сервер 2, сначала запрос будет отправлен на роутер 2. Поскольку к сервер 1 и сервер 2 нет маршрута в таблице маршрутов роутера 2, запрос будет отклонен.Решение: Добавление статического маршрута на роутере 2Сетевые параметры: Серверы в сетевом сегменте: 172.30.30.0. Маска подсети IP для этого сегмента: 255.255.255.0Сценарий 2:Проблема: Шлюзом сети LAN является роутер 1, роутер 2 подключен по WDS к роутеру 1. В таблице маршрутизации роутера 2 нет записи маршрута от роутера 2 к NTP-серверу, поэтому роутер 2 не может синхронизировать время с NTP сервером.Разрешение: Добавление статического маршрута на роутере 2Сетевые параметры: IP-адрес сервера в Интернете — 132.163.4.101. Маска подсети IP для этого адреса 255.255.255.255 Зайдите на web – страницу настройки роутера.
Для этого в адресной строке браузера наберите 192.168.0.1Шаг 2. Введите имя пользователя и пароль на странице входа. Имя пользователя и пароль по умолчанию — admin.Шаг 3. В меню с левой стороны выберите раздел Настройки маршрутизации – Список статических маршрутов. Шаг 4.
Нажмите Добавить ….
В первом поле введите IP-адрес назначения.
В втором поле введите маску подсети.
В третьем поле IP-адрес шлюза, который должен находиться в том же сегменте локальной сети, что и роутер. Пример ввода параметров для Сценария 1: Пример ввода параметров для Сценария 2: Если у Вас возникнуть какие либо сложности с настройкой, обратитесь в техническую поддержку TP-LinkЧтобы получить подробную информацию о каждой функции и настройке оборудования, перейдите на страницу Загрузки для загрузки руководства пользователя к вашей модели устройства.
[Routing] Шпаргалка про роутинг в Windows
Привет, %username%
! Поскольку часто приходится настраивать ВПНы на чужих машинах и предоставлять доступ к каки-либо ресурсам нашей сети, а чаще всего это просто конкретные машины, то надо записать себе шпаргалку по добавлению статических маршрутов в ОСях семейства Windows (XP/7/8/8.1). Все элементарно и просто.
Синтаксис
route [-f] [-p] [*команда* [*конечная_точка*] [mask <маска_сети>] [<шлюз>] [metric <метрика>]] [if <интерфейс>]]
Параметры
-
-f
— Очищает таблицу маршрутизации от всех записей, которые не являются узловыми маршрутами (маршруты с маской подсети255.255.255.255
), сетевым маршрутом замыкания на себя (маршруты с конечной точкой127.0.0.0
и маской подсети255.0.0.0
) или маршрутом многоадресной рассылки (маршруты с конечной точкой224.0.0.0
и маской подсети240.0.0.0
). При использовании данного параметра совместно с одной из команд (таких, какadd
,change
илиdelete
) таблица очищается перед выполнением команды. -
-p
— При использовании данного параметра с командойadd
указанный маршрут добавляется в реестр и используется для инициализации таблицы IP-маршрутизации каждый раз при запуске протокола TCP/IP. По умолчанию добавленные маршруты не сохраняются при запуске протокола TCP/IP. При использовании параметра с командой print выводит на экран список постоянных маршрутов. Все другие команды игнорируют этот параметр. Постоянные маршруты хранятся в реестре по адресуHKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersPersistentRoutes
-
команда
— Указывает команду, которая будет запущена на удаленной системе.
Список допустимых параметров:
Команда | Назначение |
---|---|
add | Добавление маршрута |
change | Изменение существующего маршрута |
delete | Удаление маршрута или маршрутов |
Печать маршрута или маршрутов |
-
конечная_точка
— Определяет конечную точку маршрута. Конечной точкой может быть сетевой IP-адрес (где разряды узла в сетевом адресе имеют значение 0), IP-адрес маршрута к узлу, или значение0.0.0.0
для маршрута по умолчанию. -
mask <маска_сети>
Указывает маску сети (также известной как маска подсети) в соответствии с точкой назначения. Маска сети может быть маской подсети соответствующей сетевому IP-адресу, например255.255.255.255
для маршрута к узлу или0.0.0.0
. для маршрута по умолчанию. Если данный параметр пропущен, используется маска подсети255.255.255.255
. Конечная точка не может быть более точной, чем соответствующая маска подсети. Другими словами, значение разряда 1 в адресе конечной точки невозможно, если значение соответствующего разряда в маске подсети равно 0. -
шлюз
— Указывает IP-адрес пересылки или следующего перехода, по которому доступен набор адресов, определенный конечной точкой и маской подсети. Для локально подключенных маршрутов подсети, адрес шлюза — это IP-адрес, назначенный интерфейсу, который подключен к подсети. Для удаленных маршрутов, которые доступны через один или несколько маршрутизаторов, адрес шлюза — непосредственно доступный IP-адрес ближайшего маршрутизатора. -
metric <метрика>
— Задает целочисленную метрику стоимости маршрута (в пределах от 1 до 9999) для маршрута, которая используется при выборе в таблице маршрутизации одного из нескольких маршрутов, наиболее близко соответствующего адресу назначения пересылаемого пакета. Выбирается маршрут с наименьшей метрикой. Метрика отражает количество переходов, скорость прохождения пути, надежность пути, пропускную способность пути и средства администрирования. -
if <интерфейс>
— Указывает индекс интерфейса, через который доступна точка назначения. Для вывода списка интерфейсов и их соответствующих индексов используйте командуroute print
. Значения индексов интерфейсов могут быть как десятичные, так и шестнадцатеричные. Перед шестнадцатеричными номерами вводится0х
. В случае, когда параметрif
пропущен, интерфейс определяется из адреса шлюза. -
/?
— Отображает справку в командной строке.
Примечания
- Большие значения в столбце
metric
таблицы маршрутизации — результат возможности протокола TCP/IP автоматически определять метрики маршрутов таблицы маршрутизации на основании конфигурации IP-адреса, маски подсети и стандартного шлюза для каждого интерфейса ЛВС. Автоматическое определение метрики интерфейса, включенное по умолчанию, устанавливает скорость каждого интерфейса и метрики маршрутов для каждого интерфейса так, что самый быстрый интерфейс создает маршруты с наименьшей метрикой. Чтобы удалить большие метрики, отключите автоматическое определение метрики интерфейса в дополнительных свойствах протокола TCP/IP для каждого подключения по локальной сети. - Имена могут использоваться для параметра
<конечная_точка>
, если существует соответствующая запись в файле базы данныхNetworks
, находящемся в папке*системный_корневой_каталог*System32DriversEtc
. В параметре<шлюз>
можно указывать имена до тех пор, пока они разрешаются в IP-адреса с помощью стандартных способов разрешения узлов, таких как запрос службы DNS, использование локального файлаHosts
, находящегося в папке*системный_корневой_каталог*system32driversetc
, или разрешение имен NetBIOS. - Если команда —
print
илиdelete
, параметр<шлюз>
опускается и используются подстановочные знаки для указания точки назначения и шлюза. Значение<конечной_точки>
может быть подстановочным значением, которое указывается звездочкой (*
). При наличии звездочки (*
) или вопросительного знака (?
) в описании конечной точки, они рассматриваются как подстановки, тогда печатаются или удаляются только маршруты, соответствующие точке назначения. Звездочка соответствует любой последовательности символов, а вопросительный знак — любому одному символу.10.*.1
,192.168.*
,127.*
и*224*
являются допустимыми примерами использования звездочки в качестве подстановочного символа. - При использовании недопустимой комбинации значений конечной точки и маски подсети (маски сети) выводится следующее сообщение об ошибке:
Маршрут: неверная маска подсети адреса шлюза
. Ошибка появляется, когда одно или несколько значений разрядов в адресе конечной точки равно 1, а значения соответствующих разрядов маски подсети — 1. Для проверки этого состояния выразите конечную точку и маску подсети в двоичном формате. Маска подсети в двоичном формате состоит из последовательности единичных битов, представляющей часть сетевого адреса конечной точки, и последовательности нулевых битов, обозначающей часть адреса узла конечной точки. Проверьте наличие единичных битов в части адреса точки назначения, которая является адресом узла (как определено маской подсети). - Параметр
-p
поддерживается в командеroute
только в операционных системах Windows NT 4.0, Windows 2000, Windows Millennium Edition и Windows XP. Этот параметр не поддерживается командойroute
в системах Windows 95 и Windows 98. - Эта команда доступна, только если в свойствах сетевого адаптера в объекте Сетевые подключения в качестве компонента установлен протокол Интернета (TCP/IP).
Примеры
Чтобы вывести на экран все содержимое таблицы IP-маршрутизации, введите команду:
route print
Чтобы вывести на экран маршруты из таблицы IP-маршрутизации, которые начинаются с *10.*
, введите команду:
route print 10.*
Чтобы добавить маршрут по умолчанию с адресом стандартного шлюза 192.168.12.1
, введите команду:
route add 0.0.0.0 mask 0.0.0.0 192.168.12.1
Чтобы добавить маршрут к конечной точке 10.41.0.0
с маской подсети 255.255.0.0
и следующим адресом перехода 10.27.0.1
, введите команду:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1
Чтобы добавить постоянный маршрут к конечной точке 10.41.0.0
с маской подсети 255.255.0.0
и следующим адресом перехода 10.27.0.1
, введите команду:
route -p add 10.41.0.0 mask 255.255.0.0 10.27.0.1
Чтобы добавить маршрут к конечной точке 10.41.0.0
с маской подсети 255.255.0.0
и следующим адресом перехода 10.27.0.1
и метрикой 7
, введите команду:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 metric 7
Чтобы добавить маршрут к конечной точке 10.41.0.0
с маской подсети 255.255.0.0
и следующим адресом перехода 10.27.0.1
и использованием индекса интерфейса 0х3
, введите команду:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 if 0x3
Чтобы удалить маршрут к конечной точке 10.41.0.0
с маской подсети 255.255.0.0
, введите команду:
route delete 10.41.0.0 mask 255.255.0.0
Чтобы удалить все маршруты из таблицы IP-маршрутизации, которые начинаются с *10.*
, введите команду:
route delete 10.*
Чтобы изменить следующий адрес перехода для маршрута с конечной точкой 10.41.0.0
и маской подсети 255.255.0.0
с 10.27.0.1
на 10.27.0.25
, введите команду:
route change 10.41.0.0 mask 255.255.0.0 10.27.0.25
На этом все! Profit!
Обсудить статью в чате TG или в Slack
Используемые источники:
- https://litl-admin.ru/windows-2/nastrojka-marshrutizacii-mezhdu-podsetyami.html
- https://www.tp-link.com/ru/support/faq/560/
- https://jtprog.ru/windows-route-add/