Маршрутизация в Windows
Маршрутизация – это процесс передачи IP-трафика адресатам в сети, то есть процесс передачи пакетов от хоста-источника к хосту-адресату через промежуточные маршрутизаторы. Изучая эту статью предполагается что вы изучили материал основы компьютерных сетей.
Изучим как работает маршрутизация в Windows, что бы понять как она работает, а не просто прочитать и забыть, вам необходимо несколько виртуальных машин, а именно:
- ВМ с Windows XP.
- 2 ВМ с Windows Server 2003.
Учтите, что при настройке виртуальных машин, в настройках сети нужно указать «Внутренняя сеть» и задать одинаковое имя сети для всех машин.
Если вы не поленитесь и установите три виртуальные машины, а так же изучите этот материал до конца, то у вас будет практическое понимание работы сети в операционных системах семейства Windows.
Содержание:
- Таблица маршрутизации
- Статическая маршрутизация
- Маршрутизация по умолчанию
- Динамическая маршрутизация, протокол RIP
Для простоты передачи данных хост-источник и маршрутизатор принимают решения о передаче пакетов на основе своих таблиц IP-маршрутизации. Записи таблицы создаются при помощи:
- Программного обеспечения стека TCP/IP.
- Администратора, путем конфигурирования статических маршрутов.
- Протоколов маршрутизации, одним из которых является протокол передачи маршрутной информации – RIP.
По сути, таблица маршрутизации – это база данных, которая хранится в памяти всех IP-узлов. Цель таблицы IP-маршрутизации это предоставление IP-адреса назначения для каждого передаваемого пакета для следующего перехода в сети.
Пример маршрутизации в Windows
Допустим, у нас есть три узла:
- Windows XP.
- Windows Server 2003 – 1.
- Windows Server 2003 – 2.
Хост XP имеет один сетевой адаптер (интерфейс) с IP-адресом 192.168.0.2 и маской подсети 255.255.255.0. Маршрутизатор Server1 имеет два интерфейса с IP-адресами 192.168.0.1 и 192.168.1.1 и масками подсети 255.255.255.0. Маршрутизатор Server2 также имеет 2 сетевых адаптера с IPадресами 192.168.1.2 и 192.168.2.1 и масками подсети 255.255.255.0. Таким образом, мы имеем 3 сети: сеть с IP-адресом 192.168.0.0 (Net 1), сеть с IP-адресом 192.168.1.0 (Net 2), сеть с IP-адресом 192.168.2.0 (Net 3).
Таблица маршрутизации
Таблица маршрутизации по умолчанию создается на узле автоматически с помощью программного обеспечения стека TCP/IP.
При настройке сетевого подключения на хосте XP были статически заданы IP-адрес 192.168.0.2 и маска подсети 255.255.255.0, основной шлюз задан не был. Программное обеспечение стека TCP/IP автоматически создало таблицу маршрутизации по умолчанию.
Что бы просмотреть таблицы маршрутизации на узле XP выполним команду route print
в командной строке (Пуск -> Выполнить -> cmd
).
Таблица маршрутизации содержит для каждой записи следующие поля: Сетевой адрес (Network Destination), Маска сети (Netmask), Адрес шлюза (Gateway), Интерфейс (Interface) и Метрика (Metric). Разберем каждое поле подробнее.
Сетевой адрес. Поле определяет диапазон IP-адресов достижимых с использованием данной таблицы.
Маска сети. Битовая маска, которая служит для определения значащих разрядов в поле Сетевой адрес. Маска состоит из непрерывных единиц и нулей, отображается в десятичном коде. Поля Сетевой адрес и Маска определяют один или несколько IP-адрес.
Адрес шлюза. В этом поле содержаться IP-адрес, по которому должен быть направлен пакет, если он соответствует данной записи таблицы маршрутизации.
Интерфейс. Данное поле содержит адрес логического или физического интерфейса, используемого для продвижения пакетов, соответствующих данной записи таблицы маршрутизации.
Метрика. Используется для выбора маршрута, в случае если имеется несколько записей, которые соответствуют одному адресу назначения с одной и той же маской, то есть в случае если одного адресата можно достичь разными путями, через разные маршруты. При этом, чем меньше значение метрики тем короче маршрут.
На начальном этапе работы (т.е. с таблицами маршрутизации по умолчанию) маршрутизатор (хост) знает только, как достичь сетей, с которыми он соединен непосредственно. Пути в другие сети могут быть «выяснены» следующими способами:
- с помощью статических маршрутов;
- с помощью маршрутов по умолчанию;
- с помощью маршрутов, определенных протоколами динамической маршрутизации.
Рассмотрим каждый из способов по порядку.
Статическая маршрутизация
Статические маршруты задаются вручную. Плюс статических маршрутов в том, что они не требуют рассылки широковещательных пакетов с маршрутной информацией, которые занимают полосу пропускания сети.
Минус статических маршрутов состоит в том, что при изменении топологии сети администратор должен вручную изменить все статические маршруты, что довольно трудоемко, в случае если сеть имеет сложную структуру с большим количеством узлов.
Второй минус заключается в том, что при отказе какого-либо канала статический маршрут перестанет работать, даже если будут доступны другие каналы передачи данных, так как для них не задан статический маршрут.
Но вернемся к нашему примеру. Наша задача, имя исходные данные, установить соединения между хостом XP и Server2 который находится в сети Net3, то есть нужно что бы проходил пинг на 192.168.2.1.
Начнем выполнять на хосте XP команды ping
постепенно удаляясь от самого хоста. Выполните в Командной строке команды ping
для адресов 192.168.0.2, 192.168.0.1, 192.168.1.1.
Мы видим, что команды ping по адресу собственного интерфейса хоста XP и по адресу ближайшего интерфейса соседнего маршрутизатора Server1 выполняются успешно.
Однако при попытке получить ответ от второго интерфейса маршрутизатора Server1 выводится сообщение «Заданный узел недоступен» или «Превышен интервал ожидания для запроса».
Это связано с тем, что в таблице маршрутизации по умолчанию хоста XP имеются записи о маршруте к хосту 192.168.0.2 и о маршруте к сети 192.168.0.0, к которой относится интерфейс маршрутизатора Server1 с адресом 192.168.0.1. Но в ней нет записей ни о маршруте к узлу 192.168.1.1, ни о маршруте к сети 192.168.1.0.
Добавим в таблицу маршрутизации XP запись о маршруте к сети 192.168.1.0. Для этого введем команду route add с необходимыми параметрами:
route add [адресат] [mask маска] [шлюз] [metric метрика] [if интерфейс]
Параметры команды имеют следующие значения:
- адресат — адрес сети или хоста, для которого добавляется маршрут;
- mask — если вводится это ключевое слово, то следующий параметр интерпретируется как маска подсети, соответственно маска — значение маски;
- шлюз — адрес шлюза;
- metric — после этого ключевого слова указывается метрика маршрута до адресата (метрика);
- if — после этого ключевого слова указывается индекс интерфейса, через который будут направляться пакеты заданному адресату.
Индекс интерфейса можно определить из секции Список интерфейсов (Interface List) выходных данных команды route print.
Выполним команду route print
.
Теперь мы видим , что хост XP имеет два интерфейса: логический интерфейс замыкания на себя (Loopback) и физический интерфейс с сетевым адаптером Intel(R) PRO/1000. Индекс физического интерфейса – 0x2.
Теперь, зная индекс физического интерфейса, на хосте добавьте нужный маршрут, выполнив следующую команду:
route add 192.168.1.0 mask 255.255.255.0 192.168.0.1 metric 2 if 0x2
Данная команда сообщает хосту XP о том, что для того, чтобы достичь сети 192.168.1.0 с маской 255.255.255.0, необходимо использовать шлюз 192.168.0.1 и интерфейс с индексом 0x2, причем сеть 192.168.1.0 находится на расстоянии двух транзитных участка от хоста XP.
Выполним пинг на 192.168.1.1 и убедимся, что связь есть.
Продолжим пинговать серверы, теперь проверьте отклик от второго маршрутизатора, присоединенного к сети Net2 (Server2). Он имеет IP-адрес 192.168.1.2.
Получаем сообщение «Превышен интервал ожидания запроса». В данном случае это означает что наш хост XP знает как отправлять данные адресату, но он не получает ответа.
Это происходит по тому, что хост Server2 не имеет информации о маршруте до хоста 192.168.0.1 и до сети 192.168.0.0 соответственно, поэтому он не может отправить ответ.
Для этого необходимо выполнить команду route add с соответствующими параметрами, однако сначала необходимо узнать индекс интерфейса с адресом 192.168.1.2.
На Server2 выполним команду route print и посмотрим индекс первого физического интерфейса. Далее, с помощью команды route add добавьте на Server2 маршрут до сети Net1, аналогично тому, как мы добавляли маршрут хосту XP.
В моем случае это команда:
route add 192.168.0.0 mask 255.255.255.0 192.168.1.1 metric 2 if 0x10003
0x10003
— это индекс физического интерфейса сервера 2.
Индекс физического интерфейса может быть разным, обязательно обращайте на него внимание.
После того, как удостоверитесь в наличии связи между узлами XP и Server2, выполните команду ping 192.168.2.1, т.е. проверьте наличие маршрута узла XP до сети Net3 (192.168.2.1 – IP-адрес маршрутизатора Server2 в сети Net3).
Вместо ответа вы получите сообщение «Заданный узел недоступен». С этой проблемой мы сталкивались еще в самом начале лабораторной работы, машина XP не знает путей до сети 192.168.2.0.
Добавьте в таблицу маршрутизации хоста XP запись о маршруте к сети 192.168.2.0. Это можно сделать путем ввода в командной строке хоста XP команды route add с соответствующими параметрами:
route add 192.168.2.0 mask 255.255.255.0 192.168.0.1 metric 3 if 0x2
Я не буду подробно описывать как полностью настроить статическую маршрутизацию между узлами, думаю что суть ясна. Если у вас появились вопросы — задавайте их в комментариях.
Маршрутизация по умолчанию
Второй способ настройки маршрутизации в Windows — то маршрутизация по умолчанию.
Для маршрутизации по умолчанию необходимо задать на всех узлах сети маршруты по умолчанию.
Для добавления такого маршрута на хосте XP выполните следующую команду:
route add 0.0.0.0 mask 0.0.0.0 192.168.0.1 metric 2 if 0x10003
Эта команда сообщает хосту XP о том, что для того, чтобы достичь любой сети, маршрут к которой отсутствует в таблице маршрутизации, необходимо использовать шлюз 192.168.0.1 и интерфейс с индексом
0x10003
.Это так называемый маршрут по умолчанию.
Проверьте работоспособность с помощью команды ping.
Динамическая маршрутизация, протокол RIP
Протокол RIP (Routing Information Protocol или Протокол передачи маршрутной информации) является одним из самых распространенных протоколов динамической маршрутизации.
Его суть заключается в том, что маршрутизатор использующий RIP передает во все подключенные к нему сети содержимое своей таблицы маршрутизации и получает от соседних маршрутизаторов их таблицы.
Есть две версии протокола RIP. Версия 1 не поддерживает маски, поэтому между сетями распространяется только информация о сетях и расстояниях до них. При этом для корректной работы RIP на всех интерфейсах всех маршрутизаторов составной сети должна быть задана одна и та же маска.
Протокол RIP полностью поддерживается только серверной операционной системой, тогда как клиентская операционная система (например, Windows XP) поддерживает только прием маршрутной информации от других маршрутизаторов сети, а сама передавать маршрутную информацию не может.
Настраивать RIP можно двумя способами:
- В графическом режиме с помощью оснастки “Маршрутизация и удаленный доступ”.
- В режиме командной строки с помощью утилиты netsh.
Рассмотрим настройку в режиме командной строки с помощью утилиты netsh.
Netsh – это утилита командной строки и средство выполнения сценариев для сетевых компонентов операционных систем семейства Windows (начиная с Windows 2000).
Введите в командной строке команду netsh, после появления netsh> введите знак вопроса и нажмите Enter, появиться справка по команде.
Введите последовательно команды:
- routing
- Ip
- rip
- ?
Вы увидите, что среди доступных команд этого контекста есть команда add interface, позволяющая настроить RIP на заданном интерфейсе. Простейший вариант этой команды – add interface «Имя интерфейса».
Если ввести в Windows XP в контексте netsh routing ip rip
команду add interface "Net1"
, то получим сообщение «RIP должен быть установлен первым». Дело в том, что Установить RIP можно только в серверной операционной системе. В Windows Server 2003 в RIP включается в оснастке «Маршрутизация и удаленный доступ» (Пуск –> Программы –> Администрирование –> Маршрутизация и удаленный доступ). Таким образом, включить RIP в нашем случае можно только на маршрутизаторах Server1 и Server2.
Настроим RIP на Server1. Но сначала нужно выключит брандмауэр.
Теперь в оснастке «Маршрутизация и удаленный доступ» в контекстном меню пункта SERVER1 (локально) выберите пункт «Настроить и включить Маршрутизация ЛВСмаршрутизацию и удаленный доступ».
В появившемся окне мастера нажмите «Далее».
На следующем этапе выберите «Особая конфигурация» и нажмите «Далее».
После чего нужно выбрать «Маршрутизация ЛВС» и завершить работу мастера.
То же самое нужно выполнить на Server2.
Настройка через оснастку
В контекстном меню вкладки «Общие» (SERVER1 –> IP-маршрутизация –> Общие) нужно выбрать пункт «Новый протокол маршрутизации».
Затем выделяем строку «RIP версии 2 для IP».
В контекстном меню появившейся вкладки «RIP» выберите «Новый интерфейс». Выделите строку «Подключение по локальной сети» и нажмите ОК.
Перед вами появиться окно.
В появившемся окне необходимо задать следующие настройки:
- Режим работы –> Режим периодического обновления.
- Протокол для исходящих пакетов –> Для RIP версии 1.
- Протокол входящих пакетов –> Только для RIP версии 1.
Оставьте оставшиеся настройки по умолчанию и нажмите ОК.
Далее необходимо выполнить эти действия для второго сетевого интерфейса.
После выполните те же действия для Sever2.
Проверьте, с помощью команды ping, работу сети.
Поздравляю! Маршрутизация в Windows изучена.
Each IP packet contains information about its origin and destination.
A routing table contains the information necessary to forward an IP packet along the best path toward its destination.
In this note i will show how to display the routing table in Windows using the route print
command.
Cool Tip: Check if TCP port is opened in PowerShell! Read more →
To display the routing table in Windows, use the route
command with the print
option.
Display all routing tables:
C:\> route print
Print IPv4 routing table:
C:\> route print -4
Print IPv6 routing table:
C:\> route print -6
Show only the network destinations that match 192*
:
C:\> route print 198*
Example of the routing table in Windows:
IPv4 Route Table ================================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.31 50 127.0.0.0 255.0.0.0 On-link 127.0.0.1 331 127.0.0.1 255.255.255.255 On-link 127.0.0.1 331 192.168.1.0 255.255.255.0 On-link 192.168.1.31 306 192.168.1.31 255.255.255.255 On-link 192.168.1.31 306
Column | Description |
---|---|
Network Destination & Netmask | Specifies the pattern that a request must match with its destination address (IP address or CIDR range). |
Gateway | Specifies where to route a request i.e. the next hop to which the packet is to be sent on the way to its final destination. |
Interface | Indicates a local interface that is responsible for reaching the gateway. |
Metric | Indicates the associated cost of using the indicated route (“distance” to the target). In case of multiple feasible routes, the traffic will go through the gateway with the lowest metric. |
On-link
in the “Gateway” column means that the destination network is directly attached to the interface i.e. the NIC is in direct contact with the destination
network – on the same subnet.
The traffic that matches such route entry will trigger an ARP request on the interface to resolve the destination IP address directly i.e. find out a MAC-address of the target device (without contacting the gateway).
Cool Tip: How to show an ARP table and clear its cache in Windows! Read more →
Was it useful? Share this post with the world!
Статья про таблицу маршрутизации — тема, обещанная около четырех лет тому назад. На самом деле, давно нужно было про нее написать, но никак не мог решиться и только сейчас делаю попытку.
Манипуляции с таблицей маршрутизации позволяют тонко настраивать работу ваших сетей.
Чаще всего это не нужно, но иногда требуется сделать что-то необычное, особенно, когда на комрьютере несколько адаптеров, и тогда
приходится браться за таблицы маршрутизации.
Просмотр таблицы маршрутизации
Приведу вывод команды route print на моем стаионарном компьютере:
Сетевой адрес | Маска сети | Адрес шлюза | Интерфейс | Метрика |
---|---|---|---|---|
0.0.0.0 | 0.0.0.0 | 192.168.1.1 | 192.168.1.100 | 20 |
127.0.0.0 | 255.0.0.0 | On-link | 127.0.0.1 | 306 |
127.0.0.1 | 255.255.255.255 | On-link | 127.0.0.1 | 306 |
127.255.255.255 | 255.255.255.255 | On-link | 127.0.0.1 | 306 |
192.168.1.0 | 255.255.255.0 | On-link | 192.168.1.100 | 276 |
192.168.1.100 | 255.255.255.255 | On-link | 192.168.1.100 | 276 |
192.168.1.255 | 255.255.255.255 | On-link | 192.168.1.100 | 276 |
244.0.0.0 | 240.0.0.0 | On-link | 127.0.0.1 | 306 |
244.0.0.0 | 240.0.0.0 | On-link | 192.168.1.100 | 276 |
255.255.255.255 | 255.255.255.255 | On-link | 127.0.0.1 | 306 |
255.255.255.255 | 255.255.255.255 | On-link | 192.168.1.100 | 276 |
Вот так мы можем просмотреть таблицы маршрутизации. Попробуем описать, что все это означает. Каждая строчка опреедляет, куда отправлять какие пакеты.
То есть для диапазона, задаваемого значениями в колонках «сетевой адрес» и «маска сети» создается сетевой маршрут.
Например, адрес 192.168.0.1 и маска 255.255.255.0 означают, что имеется в виду диапазон 192.168.0.*.
Маска всегда имеет вид, когда вначале стоят 255, в конце — нули, а последним ненулевым числом может быть степень двойки минус один.
Например, для маски 255.255.127.0 и того же адреса 192.168.0.1 диапазон будет чуть шире, в него войдут и адреса
вида 192.168.1.*. Чтобы описать это точнее, надо представить все числа в двоичном виде, но это не является целью статьи.
Итак, если мы определились с диапазоном, мы должны понять, куда же компьютер будет направлять пакеты, если они предназначены
адресам из этого диапазона. Начнем с четвертой колонки. Она определяет тот адаптор, на который нужно отправлять пакеты.
Например, в данном случае, в ней встречаются 192.168.1.100 — это адрес моей сетевой карты и 127.0.0.1 —
так называемая обратная петля. Пакеты «на этот адаптор» компьютер даже не будет пытаться отправлять куда-либо.
Если бы у меня была активна другая карта, например, WiFi, то в четвертой колонке встречался бы и е адрес.
Третья колонка определяет «шлюз» — тот маршрутизатор, которому нужно послать эти пакеты. В случае, когда там написано «On-link»,
имеется в виду, что никаких маршрутизаторов не нужно — адрес и так находится в прямой досягаемости. Последняя колонка — метрика.
Она определяет предпочтение для маршрута, когда есть варианты. Строчки с наименьшей метрикой предпочтительны при
совпадении диапазонов.
Итак, давайте разберем описанные маршруты. На самом деле, самой важной является в данном случае первая строчка.
Она говорит, что для любого адреса (адрес 0.0.0.0 с маской 0.0.0.0 задает полный диапазон) есть маршрут
с использованием моей сетевой карты, и направить можно эти пакеты по адресу 192.168.1.1. Последний адрес
является моим роутером, что все и объясняет. Любой адрес, который компьютер не сможет
найти где-то рядом, он направит на роутер и предоставит тому с ним разбираться.
Поговорим про остальное. Три строчки про 127 — системные, связаны с тем, что эти адреса всегда должны возвращаться
на сам компьютер. Адреса диапазона 192.168.1.* являются локальной сетью, 192.168.1.100 — вообще наш адрес,
192.168.1.255 — специальный адрес для широковещательных пакетов в локальной сети.
Адреса 244.0.0.0 — тоже специальные зафиксированные адреса для широкого вещания, а две последние строчки
определяют сами адаптеры.
Но этот случай достаточно неинтересный. Посмотрим на таблица на моем роутере.
Внешний вид будет немного другой, поскольку на нем Линукс, и я вывожу соответствующие таблицы командой route -n.
Destination | Gateway | Genmask | Flags | Metric | Ref | Use | Iface |
---|---|---|---|---|---|---|---|
10.0.20.43 | 0.0.0.0 | 255.255.255.255 | UH | 0 | 0 | 0 | ppp0 |
192.168.1.0 | 0.0.0.0 | 255.255.255.0 | U | 0 | 0 | 0 | br0 |
10.22.220.0 | 0.0.0.0 | 255.255.255.0 | U | 0 | 0 | 0 | vlan1 |
10.0.0.0 | 10.22.220.1 | 255.224.0.0 | UG | 0 | 0 | 0 | vlan1 |
127.0.0.0 | 0.0.0.0 | 255.0.0.0 | U | 0 | 0 | 0 | lo |
0.0.0.0 | 10.0.20.43 | 0.0.0.0 | UG | 0 | 0 | 0 | ppp0 |
Заметим сразу, что колонки немного изменились. На всех мы останавливаться не будем, существенной измененной колонкой является
последняя — вместо IP-адреса адаптора мы указываем его имя. Здесь lo — это «петля» (никуда не отправлять),
br0 — внутренняя сеть, ppp0 — внешняя, vlan0 — установленное vpn-содениение. Итак, разберем строчки.
Также в колонке с флагами буква G означает Gateway — шлюз, а H — Host, наш компьютер.
Последняя строчка — шлюз по умолчанию. Любой пакет мы может отправить на адрес 10.0.20.43.
Что интересно, это — наш собственный адрес, полученный при установке VPN — соединения!
Так всегда получается, когда установлено VPN-соединения, пакет, в первую очередь отправляем своему виртуальному интерфейсу,
где он инкапсулируется в другой пакет, который пойдет до реального шлюза. Естественно, в таблицах маршрутизации этого не видно.
Также к описанию этого соединения относится и первая строчка.
Настоящий шлюз мы видим в третей строчке — адресы диапазона 10.22.220.* отправляются на vlan1, шлюз,
предоставленный провайдером, коммуникатор, с которым мы соединены сетевым кабелем напрямую.
Вторая строчка говорит о том, что адреса диапазона 192.168.1.* — это локальная сеть, и пакеты
к ним нужно отправлять внутрь, а не вовне. Пятая — обычная информация про «локальные адреса».
Команды таблицы маршрутизации
Я ничего не сказал про предпоследнюю строчку. А она самая интересная, ведь я ее добавил руками.
В чем ее смысл? Адреса диапазона 10.1-32.*.* я отправляю на шлюз 10.22.220.1. Пакеты на эти адреса не пойдут
в интернет, а останутся в локалке провайдера. Да, пакеты на диапазон 10.22.220. и так идут туда,
но этого мало. Так я не получаю полноценного доступа к локальным ресурсам.
В случае Windows такой маршрут в таблицы маршрутизации был бы добавлен командой
route -p add 10.0.0.0 mask 255.224.0.0 10.22.220.1. -p означает, что маршрут постоянный,
он не должен удаляться после перезагрузки компьютера.
Статья и так уже получилась намного длинней обычных статей этого блога, так что я заканчиваю.
Пишите свои вопросы здесь, а если же вы хотите разобрать какие-то спицифические случаи настройки,
лучше обращайтесь на нашем форуме.
comments powered by
Таблица маршрутизации — таблица, состоящая из сетевых маршрутов и предназначенная для определения наилучшего пути передачи сетевого пакета. Каждая запись в таблице маршрутизации состоит, как правило, из таких полей:
- адрес сети или узла назначения, либо указание, что маршрут является маршрутом по умолчанию
- маску сети назначения (маска 255.255.255.255 позволяет указать единичный узел сети)
- шлюз, обозначающий адрес маршрутизатора в сети, на который необходимо отправить пакет, следующий до указанного адреса
- интерфейс, через который доступен шлюз (это может быть порядковый номер, GUID или символьное имя устройства)
- метрику — числовой показатель, задающий предпочтительность маршрута; чем меньше, тем предпочтительнее маршрут
Шлюз по умолчанию (default gateway) — адрес маршрутизатора, на который отправляется трафик, для которого невозможно определить маршрут, исходя из таблиц маршрутизации. Шлюз по умолчанию задаётся записью в таблице маршрутизации вида «сеть 0.0.0.0 с маской сети 0.0.0.0».
Просмотр маршрутов в Windows
Команда route
выводит на экран все содержимое таблицы IP-маршрутизации и позволяет изменять записи. Запущенная без параметров, команда route выводит справку:
> route Обработка таблиц сетевых маршрутов. ROUTE [-f] [-p] [-4|-6] <команда> [<назначение>] [MASK <маска_сети>] [<шлюз>] [METRIC <метрика>] [IF <интерфейс>] -f Очистка таблиц маршрутов от всех записей шлюзов. При указании одной из команд таблицы очищаются до выполнения команды. -p При использовании с командой ADD маршрут сохраняется после перезагрузок системы. По умолчанию маршруты не сохраняются при перезагрузке. Пропускается для остальных команд, всегда изменяющих соответствующие постоянные маршруты. -4 Принудительное использование протокола IPv4. -6 Принудительное использование протокола IPv6. <команда> Одна из следующих команд: PRINT Печать маршрута ADD Добавление маршрута DELETE Удаление маршрута CHANGE Изменение существующего маршрута <назначение> Задает узел. MASK Далее следует значение параметра "маска_сети". <маска_сети> Значение маски подсети для записи данного маршрута. Если этот параметр не задан, по умолчанию используется значение 255.255.255.255. <шлюз> Шлюз. <интерфейс> Номер интерфейса для указанного маршрута. METRIC Определение метрики, т. е. затрат для узла назначения. Проводится поиск всех символических имен узлов в файле сетевой базы данных NETWORKS. Проводится поиск символических имен шлюзов в файле базы данных имен узлов HOSTS. Для команд PRINT и DELETE можно указать узел или шлюз с помощью подстановочного знака либо опустить параметр "шлюз". Если узел содержит подстановочный знак "*" или "?", он используется в качестве шаблона и печатаются только соответствующие ему маршруты. Знак "*" соответствует любой строке, а "?" - любому знаку. Примеры: 157.*.1, 157.*, 127.*, *224*. Соответствие шаблону поддерживает только команда PRINT. Диагностические сообщения: Недопустимое значение MASK вызывает ошибку, если (УЗЕЛ МАСКА) != УЗЕЛ. Например> route ADD 157.0.0.0 MASK 155.0.0.0 157.55.80.1 IF 1 Добавление маршрута завершится ошибкой, так как указан недопустимый параметр маски. (Узел & Маска) != Узел. Примеры: > route PRINT > route PRINT -4 > route PRINT -6 > route PRINT 157* .... Печать только узлов, начинающихся со 157 > route ADD 157.0.0.0 MASK 255.0.0.0 157.55.80.1 METRIC 3 IF 2 узел^ ^маска ^шлюз метрика^ ^ интерфейс^ Если IF не задан, то производится попытка найти лучший интерфейс для указанного шлюза. > route ADD 3ffe::/32 3ffe::1 > route CHANGE 157.0.0.0 MASK 255.0.0.0 157.55.80.5 METRIC 2 IF 2 Параметр CHANGE используется только для изменения шлюза или метрики. > route DELETE 157.0.0.0 > route DELETE 3ffe::/32
Просмотр таблицы маршрутизации:
> route print =========================================================================== Список интерфейсов 21...0a 00 27 00 00 15 ......VirtualBox Host-Only Ethernet Adapter 5...0a 00 27 00 00 05 ......VirtualBox Host-Only Ethernet Adapter #2 20...1c 1b 0d e6 14 bd ......Realtek PCIe GbE Family Controller 1...........................Software Loopback Interface 1 =========================================================================== IPv4 таблица маршрута =========================================================================== Активные маршруты: Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика 0.0.0.0 0.0.0.0 192.168.110.1 192.168.110.2 35 127.0.0.0 255.0.0.0 On-link 127.0.0.1 331 127.0.0.1 255.255.255.255 On-link 127.0.0.1 331 127.255.255.255 255.255.255.255 On-link 127.0.0.1 331 172.28.128.0 255.255.255.0 On-link 172.28.128.1 281 172.28.128.1 255.255.255.255 On-link 172.28.128.1 281 172.28.128.255 255.255.255.255 On-link 172.28.128.1 281 192.168.53.0 255.255.255.0 On-link 192.168.53.1 281 192.168.53.1 255.255.255.255 On-link 192.168.53.1 281 192.168.53.255 255.255.255.255 On-link 192.168.53.1 281 192.168.110.0 255.255.255.0 On-link 192.168.110.2 291 192.168.110.2 255.255.255.255 On-link 192.168.110.2 291 192.168.110.255 255.255.255.255 On-link 192.168.110.2 291 224.0.0.0 240.0.0.0 On-link 127.0.0.1 331 224.0.0.0 240.0.0.0 On-link 172.28.128.1 281 224.0.0.0 240.0.0.0 On-link 192.168.53.1 281 224.0.0.0 240.0.0.0 On-link 192.168.110.2 291 255.255.255.255 255.255.255.255 On-link 127.0.0.1 331 255.255.255.255 255.255.255.255 On-link 172.28.128.1 281 255.255.255.255 255.255.255.255 On-link 192.168.53.1 281 255.255.255.255 255.255.255.255 On-link 192.168.110.2 291 =========================================================================== Постоянные маршруты: Отсутствует IPv6 таблица маршрута =========================================================================== Активные маршруты: Метрика Сетевой адрес Шлюз 1 331 ::1/128 On-link 20 291 fe80::/64 On-link 5 281 fe80::/64 On-link 21 281 fe80::/64 On-link 21 281 fe80::14e:9612:aea9:b378/128 On-link 5 281 fe80::61bb:3768:1294:4dc0/128 On-link 20 291 fe80::a872:bd46:b87d:7fac/128 On-link 1 331 ff00::/8 On-link 21 281 ff00::/8 On-link 5 281 ff00::/8 On-link 20 291 ff00::/8 On-link =========================================================================== Постоянные маршруты: Отсутствует
Команда tracert
предоставляет возможность определить маршрут, по которому проходит пакет до заданного узла:
> tracert ya.ru Трассировка маршрута к ya.ru [87.250.250.242] с максимальным числом прыжков 30: 1 <1 мс <1 мс <1 мс 192.168.110.1 2 1 ms <1 мс <1 мс 78.107.125.69 3 1 ms 1 ms 1 ms stpert-bng1-local.msk.corbina.net [85.21.0.172] 4 1 ms 1 ms 1 ms 10.2.254.10 5 3 ms 3 ms 3 ms korova-bb-be5.corbina.net [195.14.54.195] 6 2 ms 2 ms 2 ms 85.21.224.96 7 2 ms 2 ms 2 ms 85.21.224.54 8 3 ms 2 ms 3 ms m9-br-be1.corbina.net [195.14.54.79] 9 7 ms 7 ms 12 ms corbina-gw.dante.yandex.net [83.102.145.178] 10 5 ms 4 ms 4 ms ya.ru [87.250.250.242] Трассировка завершена.
Просмотр маршрутов в Linux
Команда route
выводит на экран все содержимое таблицы IP-маршрутизации и позволяет изменять записи.
$ $ route --help Использование: route [-nNvee] [-FC] [<AF>] Отобразить таблицу маршрутизации ядра route [-v] [-FC] {add|del|flush} ... Изменить таблицу маршрутизации для AF. route {-h|--help} [<AF>] Детальное описание использование указанной AF. route {-V|--version} Отобразить версию/автора и выйти. -v, --verbose более детальный вывод -n, --numeric не преобразовывать адреса в имена -e, --extend отображать другую/больше информации -F, -fib отобразить информацию форвардинга базы (по умолчанию) -C, --cache отобразить кэш маршрутизации вместо FIB <AF>=Use -4, -6, '-A <af>' or '--<af>'; default: inet Список возможный адресных семейств (которые поддерживают маршрутизацию): inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25) netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP) x25 (CCITT X.25)
Просмотр таблицы маршрутизации:
$ route Таблица маршрутизации ядра протокола IP Destination Gateway Genmask Flags Metric Ref Use Iface default _gateway 0.0.0.0 UG 100 0 0 enp0s3 link-local 0.0.0.0 255.255.0.0 U 1000 0 0 enp0s3 192.168.110.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3
$ route -n Таблица маршрутизации ядра протокола IP Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.110.1 0.0.0.0 UG 100 0 0 enp0s3 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 enp0s3 192.168.110.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3
Утилита traceroute
предоставляет возможность определить маршрут, по которому проходит пакет до заданного узла:
$ sudo apt install traceroute
$ traceroute ya.ru traceroute to ya.ru (87.250.250.242), 30 hops max, 60 byte packets 1 _gateway (192.168.110.1) 0.697 ms 0.607 ms 0.584 ms 2 78.107.125.69 (78.107.125.69) 2.050 ms 1.967 ms 1.777 ms 3 stpert-bng1-local.msk.corbina.net (85.21.0.172) 1.679 ms 1.605 ms 1.499 ms 4 10.2.254.10 (10.2.254.10) 2.215 ms 2.180 ms 2.167 ms 5 korova-bb-be5.corbina.net (195.14.54.195) 3.577 ms 3.544 ms 3.824 ms 6 85.21.224.96 (85.21.224.96) 2.645 ms 2.208 ms 2.149 ms 7 m9-crs-be13.corbina.net (85.21.224.54) 3.762 ms 3.207 ms 3.794 ms 8 m9-br-be3.corbina.net (195.14.62.85) 3.716 ms 3.639 ms m9-br-be1.corbina.net (195.14.54.79) 3.559 ms 9 corbina-gw.dante.yandex.net (83.102.145.178) 6.750 ms 11.716 ms 16.226 ms 10 ya.ru (87.250.250.242) 5.330 ms 8.678 ms 8.628 ms
Поиск:
Linux • Windows • Локальная сеть • route • Маска сети • Шлюз • Маршрут • Таблица • Адрес • Команда
Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Сегодня речь пойдёт о настройке сетевых маршрутов в Windows командой ROUTE. Маршрутизация в сети нужна для того, чтобы устройства могли найти друг друга. Работает это так: мы задаём адрес назначения (destination) и шлюз (gateway), через который пакетам нужно пройти, чтобы достичь адреса назначения.
Команда route в Windows это весьма удобный инструмент для просмотра, добавления, редактирования и удаления сетевых маршрутов. Синтаксис команды выглядит следующим образом:
ROUTE [-f] [-p] [-4|-6] command [destination] [MASK netmask] [gateway] [METRIC metric] [IF interface]
-f — очистка таблиц маршрутов от записей всех шлюзов. При указании одной из команд таблицы очищаются до выполнения команды;
-p — при использовании с командой ADD задаёт сохранение маршрута при перезагрузке системы. По умолчанию маршруты при перезагрузке не сохраняются. В Windows 95 не поддерживается;
-4 — обязательное использование протокола IPv4;
-6 — обязательное использование протокола IPv6;
command — одна из следующих команд:
- PRINT — печать маршрута;
- ADD — добавление маршрута;
- CHANGE — редактирование маршрута;
- DELETE — удаление маршрута;
destination — адресуемый узел;
MASK — указывает, что следующий параметр интерпретируется как маска подсети;
netmask — значение маски подсети для данного маршрута. Если параметр не задан, то используется значение по умолчанию — 255.255.255.255;
gateway — шлюз;
METRIC — указывает, что следующий параметр интерпретируется как метрика. Предназначение метрики — оптимизировать доставку пакета, если конечная точка доступна по нескольким маршрутам. Метрика представляет собой число. Чем меньше значение метрики, тем выше приоритет узла при построении маршрута;
metric — значение метрики;
IF — указание, что следующий параметр интерпретируется как сетевой интерфейс;
interface — номер интерфейса для указанного маршрута.
Рассмотрим применений команды route.
Отобразить текущую таблицу маршрутов:
route print
Отобразить таблицу маршрутов только для IPv6:
route print -6
Отобразить таблицу маршрутов только для узлов, адрес которых начинается с 10:
route print 10*
Немного о том, как читать вывод команды route print.
Список интерфейсов показывает идентификаторы, MAC-адреса и наименования сетевых адаптеров.
Далее идут таблицы маршрутов. Они содержат столбцы сетевой адрес, маска сети, адрес шлюза, интерфейс и метрика.
Сетевой адрес это и есть адрес конечной точки маршрута (адрес назначения). С назначением столбца маска сети всё должно быть понятно по названию. Адрес шлюза относится к тому шлюзу, через который пойдёт пакет, чтобы достигнуть адреса назначения. Если написано On-link, то значит, что шлюз не используется по той причине, что адрес назначения достижим напрямую без маршрутизации. Интерфейс — адрес сетевого интерфейса, через который будет выполняться отправка пакета. Метрика — значение метрики, которая задаёт приоритет маршрутов. Чем меньше значение, тем выше приоритет.
Теперь рассмотрим управление маршрутами при помощи route.
Установить в качестве шлюза по умолчанию (основного шлюза) адрес 192.168.1.1:
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1
Добавить маршрут для узла 10.10.10.10:
route add 10.10.10.10 192.168.1.15
Так как маска не указана, то подразумевается значение 255.255.255.255.
То же самое, но добавление в качестве постоянного маршрута, который сохранится после перезагрузки:
route -p add 10.10.10.10 192.168.1.15
Такой маршрут будет записан в реестр Windows (ветка HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes).
Удалить маршрут для узла 10.10.10.10:
route delete 10.10.10.10
Изменить адрес шлюза для узла 10.20.20.20:
route change 10.20.20.20 192.168.1.10
change можно использовать для изменения только шлюза и метрики.
Очистить таблицу маршрутов:
route -f
При очистке таблицы маршрутов удаляются все маршруты, которые удовлетворяют следующим условиям:
- Не относятся к петлевому интерфейсу (интерфейсу с IP 127.0.0.1 и маской -255.0.0.0);
- Не являются маршрутами для многоадресной (multicast) рассылки (IP 224.0.0.1, маска 255.0.0.0);
- Не являются узловыми маршрутами (когда маска равна 255.255.255.255).
При обработке таблицы маршрутов, статические маршруты имеют более высокий приоритет по сравнению с маршрутами, используемыми по умолчанию.