Команда ROUTE — Обработка таблиц сетевых маршрутов.
Формат командной строки:
ROUTE [-f] [-p] [-4|-6] command [destination] [MASK netmask] [gateway] [METRIC metric] [IF interface]
Подсказку по параметрам командной строки можно получить используя встроенную справку ( route /? ):
-f — Очистка таблиц маршрутов от записей всех шлюзов. При указании одной из команд таблицы очищаются до выполнения команды.
-p — При использовании с командой ADD задает сохранение маршрута при перезагрузке системы. По умолчанию маршруты не сохраняются при перезагрузке. Пропускается для остальных команд, изменяющих соответствующие постоянные маршруты. Этот параметр не поддерживается в Windows 95.
-4 — Обязательное использование протокола IPv4.
-6 — Обязательное использование протокола IPv6.
command — Одна из следующих команд:
— PRINT — Печать маршрута
— ADD — Добавление маршрута
— DELETE — Удаление маршрута
— CHANGE — Изменение существующего маршрута
destination — Адресуемый узел.
MASK — Указывает, что следующий параметр интерпретируется как маска сети.
netmask — Значение маски подсети для записи данного маршрута. Если этот параметр не задан, по умолчанию используется значение 255.255.255.255.
interface — Номер интерфейса для указанного маршрута.
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 — отобразить таблицу маршрутов только для IPv4
route PRINT -6 — отобразить таблицу маршрутов только для IPv6
route PRINT 157* — отобразить таблицу маршрутов только для узлов, начинающихся со 157
Если сетевой интерфейс (IF) не задан, то производится попытка найти лучший интерфейс для указанного шлюза.
route ADD 3ffe::/32 3ffe::1 — добавить новый маршрут для узла с IPv6
route CHANGE 157.0.0.0 MASK 255.0.0.0 157.55.80.5 METRIC 2 IF 2 — изменить существующий маршрут для узла IPv4
Параметр CHANGE используется только для изменения шлюза или метрики.
route DELETE 157.0.0.0 — удалить маршрут для IPv4.
route DELETE 3ffe::/32 — удалить маршрут для IPV6
Примеры использования команды ROUTE
route print — отобразить текущую таблицу маршрутов.
Пример отображаемой таблицы:
===========================================================================
Список интерфейсов
24. 00 50 ba 5d 0c c4 . D-Link DFE-538TX 10/100 адаптер
13. 00 19 db ce 97 9c . Сетевая карта Realtek RTL8169/8110 Family NIC
1. Software Loopback Interface 1
17. 00 00 00 00 00 00 00 e0 Адаптер Microsoft ISATAP
12. 00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface
===========================================================================
IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес 0.0.0.0 127.0.0.0 . 224.0.0.0 | Маска сети 0.0.0.0 255.0.0.0 . 240.0.0.0 | Адрес шлюза 192.168.0.1 On-link . On-link | Интерфейс 192.168.0.2 127.0.0.1 . 192.168.0.2 | Метрика 266 306 . 266 |
===========================================================================
Постоянные маршруты:
Сетевой адрес 0.0.0.0 | Маска 0.0.0.0 | Адрес шлюза 192.168.0.1 | Метрика По умолчанию |
===========================================================================
IPv6 таблица маршрута
===========================================================================
Активные маршруты:
Метрика 1 40 19 20 20 1 | Сетевой адрес 306 ::1/128 276 fe80::/64 276 fe80::/64 276 fe80::/64 276 fe80::6034:c4a3:8e4e:b7a 306 ff00::/8 | Шлюз On-link On-link On-link On-link a/128 On-link /128 On-link 7/128 On-link On-link On-link On-link On-link |
===========================================================================
Постоянные маршруты:
Отсутствует
Список интерфейсов — отображаются идентификаторы ( ID ), физические ( MAC ) адреса и названия сетевых адаптеров. В примере:
24 — идентификатор интерфейса
00 50 ba 5d 0c c4 — MAC-адрес сетевого адаптера
D-Link DFE-538TX 10/100 адаптер — название сетевого адаптера.
Сетевой адрес (Network Destination) — IP-адрес, адрес сети, или адрес 0.0.0.0 используемый для шлюза по умолчанию ( Default Gateway ). Это конечная точка маршрута
Маска сети ( Netmask ) — маска сети.
Адрес шлюза ( Gateway ) — IP-адрес шлюза, через который будет выполняться отправка пакета для достижения конечной точки.
В Windows Vista / Windows 7 / 8 и более поздних версиях, для адресов, достижимых локально, в данной колонке отображается On-link . Другими словами, значение On-link в колонке «Шлюз» означает, что шлюз не используется, адрес назначения достижим напрямую, без маршрутизации.
Интерфейс ( Interface ) — IP-адрес сетевого интерфейса, через который выполняется доставка пакета конечной точке маршрута.
Метрика ( metric ) — значение метрики (1-9999). Метрика представляет собой числовое значение, позволяющее оптимизировать доставку пакета получателю, если конечная точка маршрута может быть достижима по нескольким разным маршрутам. Чем меньше значение метрики, тем выше приоритет маршрута.
route print 192.* — отобразить таблицу маршрутов только для адресов, начинающихся с 192.
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1 — установить в качестве шлюза по умолчанию (основного шлюза) адрес 192.168.1.1
route -p add 10.0.0.0 mask 255.0.0.0 10.0.0.1 — добавить маршрут для подсети 10.0.0.0/255.0.0.0 и запомнить его в реестре . Это постоянный статический маршрут. Если маршрут добавлен без использования параметра -p то он сохраняется только до перезагрузки системы (до перезапуска сетевого системного программного обеспечения). Если же, при добавлении маршрута искользовался данный параметр, то информация о маршруте записывается в реестр Windows (раздел HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes ) и будет использоваться постоянно при активации сетевых интерфейсов.
route delete 10.0.0.0 mask 255.0.0.0 — удалить маршрут для подсети 10.0.0.0/255.0.0.0 .
route add 10.10.10.10 192.168.1.158 — добавить маршрут для узла с IP-адресом 10.10.10.10 . Если маска в команде не задана, то подразумевается ее значение равное 255.255.255.255 , т.е конечная точка назначения является одиночным IP-адресом узла.
route delete 10.10.10.10 — удалить маршрут созданный предыдущей командой
route change 10.0.0.0 mask 255.0.0.0 10.10.10.1 — изменить адрес шлюза для существующего маршрута к сети 10.0.0.0/255.0.0.0 на значение 10.10.10.1 Допускается использование данной команды только для изменения адреса шлюза и метрики.
route -f — очистить таблицу маршрутов. После перезагрузки системы, или при перезапуске сетевых подключений таблица маршрутов будет восстановлена исходя из текущей сетевой конфигурации компьютера. При выполнении команды 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) .
При обработке таблицы маршрутов, статические маршруты имеют высший приоритет, по сравнению с маршрутом, использующим для достижения конечной точки шлюз по умолчанию.
Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой «Поделиться»
Таблицы маршрутизации
Статья про таблицу маршрутизации — тема, обещанная около четырех лет тому назад. На самом деле, давно нужно было про нее написать, но никак не мог решиться и только сейчас делаю попытку.
Манипуляции с таблицей маршрутизации позволяют тонко настраивать работу ваших сетей. Чаще всего это не нужно, но иногда требуется сделать что-то необычное, особенно, когда на комрьютере несколько адаптеров, и тогда приходится браться за таблицы маршрутизации.
Просмотр таблицы маршрутизации
Приведу вывод команды 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 означает, что маршрут постоянный, он не должен удаляться после перезагрузки компьютера.
Статья и так уже получилась намного длинней обычных статей этого блога, так что я заканчиваю. Пишите свои вопросы здесь, а если же вы хотите разобрать какие-то спицифические случаи настройки, лучше обращайтесь на нашем форуме.