Как выставить приоритет между сетями с двумя шлюзами? Добавление маршрутов для IPv4-протокола вручную

Как выставить приоритет между сетями с двумя шлюзами? Добавление маршрутов для IPv4-протокола вручную

Всем привет сегодня расскажу как прописать статический маршрут в windows с помощью утилиты командной строки route и как посмотреть таблицу маршрутизации Windows. Утилита route выводит на экран и изменяет записи в локальной таблице IP-маршрутизации. Когда вам может потребоваться добавление маршрута windows, тут за примером далеко ходить не нужно, самое простое, что вам нужно направить трафик до определенной локальной сети, понятно что все маршруты должен знать шлюз по умолчанию, но не всегда это возможно выполнить по ряду причин и не правильном построении сети. Кстати если кому интересно, то я рассказывал, как делается настройка маршрутов в centos , советую посмотреть для расширения кругозора.

Добавление маршрута windows

Добавление маршрута Windows начинается с изучения синтаксиса команды отвечабщего за это, открываем командную строку от имени администратора и вводим вот такую команду:

Запущенная без параметров, команда route выводит справку.

route [-f] [-p] [команда [конечная_точка] [шлюз] ] ]

  • -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_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes команда Указывает команду, которая будет запущена на удаленной системе. В следующей таблице представлен список допустимых параметров.
  • add > Добавление маршрута
  • change > Изменение существующего маршрута
  • delete > Удаление маршрута или маршрутов
  • print > Печать маршрута или маршрутов

Конечная точка определяет конечную точку маршрута. Конечной точкой может быть сетевой 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, находящемся в папке системный_корневой_каталог\System32\Drivers\Etc. В параметре шлюз можно указывать имена до тех пор, пока они разрешаются в IP-адреса с помощью стандартных способов разрешения узлов, таких как запрос службы DNS, использование локального файла Hosts, находящегося в папке системный_корневой_каталог\system32\drivers\etc, или разрешение имен 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-маршрутизации, введите команду:

либо команду

Чтобы вывести на экран маршруты из таблицы 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

Узнать ID нужного вам интерфейса поможет заметка

Чтобы удалить маршрут к конечной точке 10.41.0.0 с маской подсети 255.255.0.0, введите команду:

route delete 10.41.0.0 mask 255.255.0.0

Чтобы удалить все маршруты из таблицы IP-маршрутизации, которые начинаются с 10., введите команду.

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

Рассмотрим ситуацию на простом примере. Имеется стационарный компьютер, который подключен к Интернету по проводу. Мы запустим на смартфоне, подсоединим и подключимся к этой беспроводной сети. В результате, компьютер подключен к двум сетям одновременно. Соответственно, у нас 2 шлюза: 192.168.95.1 (проводной интерфейс) и 192.168.43.1 (беспроводной адаптер).

Задача: заставить компьютер открывать все сайты через один шлюз, а обращаться к отдельному сайту — через другой. В качестве особенного ресурса возьмем всеми любимый сайт 2ip.ru. На его примере можно будет легко проверить, через какой Интернет-канал осуществляется доступ.

Настройка маршрутизации

Запускаем командную строку .

1. Удаляем шлюз по умолчанию:

Route delete 0.0.0.0

2. Добавляем постоянный маршрут для назначения проводного интерфейса шлюзом по умолчанию:

Route -p add 0.0.0.0 mask 0.0.0.0 192.168.95.1 metric 10

Заходим на 2ip.ru. Видим, что отображается IP нашего проводного провайдера.

Открываем internet.yandex.ru — видим тот же адрес.

3. Вычисляем IP «особенного» сайта, который мы хотим открывать через провайдера №2:

Ping 2ip.ru

Получаем ответ:

Ответ от 188.40.35.183: число байт=32 время=61мс TTL=56

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

Route -p add 188.40.35.183 mask 255.255.255.255 192.168.43.1

Проверка результата

1. Открываем internet.yandex.ru и видим внешний IP основного провайдера.

2. Заходим на 2ip.ru и видим IP провайдера №2. Это значит, что выбранный сайт открывается через другой шлюз. То, что нам и нужно!

Послесловие

С помощью маршрутов можно направить трафик к разным узлам через разные каналы. Таким образом вы можете обеспечить доступ к важному сайту, серверу или службе через отдельный шлюз с более качественным Интернетом (или наоборот — пустить неприоритетный трафик через резервную линию для разгрузки основной).

Шлюз, или маршрутизатор – обязательное условие работоспособности домашней или корпоративной сети. Именно поэтому важна его стабильная работа, а также вы должны уметь правильно устанавливать и настраивать маршрутизатор, чтобы обеспечить бесперебойную работу своей сети. Настроить маршрутизатор в Windows XP и Windows 7 совсем несложно.

Инструкция

  • Для начала настройки откройте «Пуск», затем – «Панель управления», и выберите меню сетевых подключений. Кликните правой клавишей мыши по адаптеру, для которого нужно настроить шлюз, затем нажмите в выпавшем меню «Свойства».
  • Откройте вкладку «Сеть». Найдите раздел «Компоненты, используемые этим подключением» для изменения протоколов.
  • Откройте раздел «Протокол Интернета TCP/IPv4» и нажмите на «Свойства», чтобы изменить IP. Вам будет предложено выбрать как автоматическое получение IP-адресов и адресов DNS-серверов, так и настройку этих параметров вручную.
  • Настроив получение адресов автоматически, вы сделаете свой шлюз DHCP-сервером. Если вы настроите адреса вручную, вашим основным шлюзом будет тот IP-адрес, который вы ввели.
  • Закончив настройку шлюза, добавьте маршруты сети с помощью командной строки. Для ее вызова откройте Пуск, нажмите «Выполнить» и введите команду cmd в появившееся окно.
  • Вносите новые маршруты по следующей схеме: route -p add [место назначения] [-p]

    Основные ключи:

    • -f - удаляет из таблицы маршрутизации все маршруты;
    • -p – сохраняет маршрут на постоянную основу;
    • add – добавляет новый маршрут;
    • change - меняет текущий маршрут в таблице маршрутизации;
    • delete - удаляет маршрут из таблицы маршрутизации;
    • print - отображает содержимое таблицы маршрутизации;
    • destination - при добавлении или изменении маршрута этот параметр используется для указания идентификатора сети назначения;
    • mask - при добавлении или изменении маршрута этот параметр используется для указания маски подсети для сети назначения;
    • gateway - при добавлении или изменении нового маршрута этот параметр используется для указания шлюза (маршрутизатора или модема );
    • metric - используется для указания целого числа в диапазоне от 1 до 9999, являющегося метрикой стоимости для маршрута. Если для определенной сети назначения существует несколько возможных маршрутов, будет использован маршрут с наименьшим значением метрики;
    • if - используется для указания номера индекса интерфейса, который подключен к сети назначения.

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

    route print

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

    Автоматическое переключение между основным и резервным интернет каналом

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

    Спустя какое то время я родил скрипт (batch-файл - он же.bat), который просто поместил в автозагрузку и запустил. Несомненно, это временное решение, но если надо сейчас или даже прямо сейчас, а работы другой непочатый край, то подойдет. Ниже исходники скрипт автоматического переключения на резервный канал:

    :first_ping
    Ping -n 4 -l 1 8.8.8.8>Nul
    If "%ERRORLEVEL%"=="1" goto reserv
    if "%ERRORLEVEL%"=="0" Echo First IP OK.
    set Timer=60
    ping -n %Timer% 127.0.0.1>nul
    goto first_ping

    :second_ping
    Ping -n 4 -l 1 192.168.0.50>Nul
    If "%ERRORLEVEL%"=="1" echo First IP is not response.
    if "%ERRORLEVEL%"=="0" goto first
    set Timer=60
    ping -n %Timer% 127.0.0.1>nul
    goto second_ping

    :rezerv
    net send Началось переключение сервера на резервный канал интернет.
    echo Reserv IP configuring. Plese wait.
    echo ==================================
    netsh interface ip set address inet static 192.168.0.57 255.255.255.0 192.168.0.50 1 >
    echo IP Reconfiguring OK
    netsh interface ip set dns inet static 192.168.0.17 >nul # замена первичного DNS.

    echo First DNS OK
    netsh interface ip add dns inet 192.168.0.9 >
    echo Second DNS OK
    echo Reserv IP configured.
    echo Testing...
    Ping -n 4 -l 1 8.8.8.8>Nul
    If "%ERRORLEVEL%"=="1" net send Оба провайдера недоступны.
    if "%ERRORLEVEL%"=="0" goto second_ping

    :first
    echo First IP configuring. Plese wait.
    echo =================================
    netsh interface ip set address inet static 192.168.0.58 255.255.255.0 192.168.0.51 1 >nul # inet - имя сетевого подключения. Адреса: 1 - IP, 2 - маска, 3 - шлюз.
    echo IP Reconfiguring OK
    netsh interface ip set dns inet static 192.168.0.9 >nul # замена первичного DNS.
    echo Reserv IP configure starting. Plese wait.
    echo First DNS OK
    netsh interface ip add dns inet 192.168.0.17 >nul # добавление вторичного DNS
    echo Second DNS OK
    echo Reserv IP configured.
    echo Testing...
    Ping -n 4 -l 1 192.168.0.51>Nul
    If "%ERRORLEVEL%"=="1" goto rezerv
    if "%ERRORLEVEL%"=="0" goto first_ping

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

    ===============================================================================
    The NAT32 Software Router



  • © 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows