route

Манипулирование таблицами маршрутизации вручную

Синтаксис:

route [-f] [-n] [-q] [-v] команда { [[модификаторы] аргументы] }

Поддерживаемые платформы:

Neutrino

Опции:

-f

Удалить все маршруты (в соответствии с flush). При использовании вместе с командами add, change, delete или get утилита route удаляет все маршруты перед выполнением соответствующей команды.

-n

Не выводить символические имена хостов и сетей при сообщении о действиях. (Процесс преобразования между символическими именами и их численными эквивалентами может занимать много времени и требовать корректной работы сети; таким образом, рекомендуется воздержаться от использования этой опции, особенно в случае попытки настройки работы сети.)

-q

Не выводить информацию: подавить весь поток вывода.

-v

Вывести расширенную информацию: отображать дополнительные данные.

команда [[модификаторы] аргументы]


Действительными являются следующие команды: add, change, delete, flush и show. Синтаксис и описание каждой команды приведены в разделе "Описание".

Описание:

Утилита route используется для манипулирования таблицами сетевой маршрутизации вручную. Поскольку обычно таблицы маршрутизации обрабатываются сервисом routed, эта утилита используется редко.

Опции для аргумента команда

Утилита route принимает следующие команды: add, change, delete, flush, get, monitor и show.

Ниже приведены синтаксис и описание каждой команды:

[-n] add [-net|-host] место_назначения шлюз

Добавить маршрут.

[-n] change [-net|-host] адрес_назначения шлюз

Изменить параметры маршрута (например, шлюз).

[-n] delete [-net|-host] адрес_назначения шлюз

Удалить определенный маршрут.

[-n] flush [семейство]

(Только для INET и INET6) Очистить таблицы маршрутизации всех записей шлюза. Если требуется удалить только те маршруты, для которых адреса назначения относятся к определенному семейству, укажите в качестве значения переменной семейство INET или INET6.

[-n] get [-net|-host] адрес_назначения шлюз

Выполнить поиск и отобразить маршрут до адреса назначения.

[-n] monitor

Регулярно сообщать об изменениях в данных маршрутизации.

[-n] show

Показать таблицу маршрутизации (команда, аналогичная netstat -r).

адрес_назначения

Хост-получатель или сеть-получатель.

gateway

Шлюз в следующем сегменте сети (переходе), на который направляются пакеты.

Примечание.

Если указано ключевое слово default или сетевой адрес 0.0.0.0, то все пакеты, которые отправляются в удаленную сеть, не определенную в таблицах маршрутизации, направляются на заданный шлюз.

Если выбран поставщик услуг Интернета (Internet Service Provider, ISP), то пакеты, отправляемые хостам в Интернете, направляются на шлюз, предоставляемый этим поставщиком. См. описание опции defaultroute для утилиты pppd.

Маршруты к определенному хосту отличаются от маршрутов к сети способом интерпретации IP-адреса, соответствующего адресу_назначения. При выборе необязательных ключевых слов -net и -host адрес назначения интерпретируется как сеть или хост соответственно.

Если для аргумента адрес_назначения указан "локальный адрес" INADDR_ANY или адресом_назначения является символическое имя сети, то адресом назначения маршрута считается сеть; в противном случае адресом назначения маршрута считается хост. Пример:

Адрес_назначения

Интерпретация

128.32

-host 128.0.0.32

128.32.130

-host 128.32.0.130

-net 128.32

128.32.0.0

-net 128.32.130

128.32.130.0.


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

Для определения дополнительного параметра адреса, который интерпретируется как маска сети, можно использовать необязательный модификатор -netmask. Этот модификатор используется аналогично переадресации OSI ESIS с использованием маски сети или для добавления вручную маршрутов по подсети с масками сети, отличающимися от масок сети предполагаемого сетевого интерфейса (что в противном случае выполняется с использованием протоколов маршрутизации OSPF или ISIS). После дополнительного модификатора -netmask укажите адрес параметра, который следует интерпретировать как маску сети.

Чтобы переопределить неявную маску сети, созданную в случае INET, укажите данную опцию после параметра адрес_назначения.

Аналогичным образом можно использовать модификатор -prefixlen для IPv6.

При отправке на адреса назначения, соответствующие маршрутам, для этих маршрутов устанавливаются флаги, влияющие на работу протоколов. Для установки (или в некоторых случаях снятия) этих флагов укажите следующие соответствующие модификаторы:

-cloning

RTF_CLONING – создание нового маршрута на основе используемого.

-xresolve

RTF_XRESOLVE – распространение сообщения (mesg) (для внешнего поиска).

-iface

~RTF_GATEWAY – адреса назначения можно достичь напрямую.

-static

RTF_STATIC – маршрут, добавленный вручную.

-nostatic

~RTF_STATIC – симуляция добавления маршрута ядром или сервисом

-reject

RTF_REJECT – распространение сообщения о недостижимости ICMP в случае соответствия.

-blackhole

RTF_BLACKHOLE – отбрасывание пакетов (pkts) без оповещения (во время обновления).

-proto1

RTF_PROTO1 – установка флага маршрутизации для протокола #1.

-proto2

RTF_PROTO2 – установка флага маршрутизации для протокола #2.

-llinfo

RTF_LLINFO – действительное преобразование IP-адресов в физические.

Дополнительные модификаторы:
Эти модификаторы предоставляют начальные значения показателей, которые ведутся в записи маршрутизации. Для блокирования любых этих модификаторов установите перед соответствующим модификатором метамодификатор -lock; также можно указать метамодификатор -lockrest для блокирования всех последующих показателей.

Поиск всех символических имен, указанных для адреса назначения или шлюза, сначала выполняется как поиск имени хоста с использованием функции gethostname(). Если поиск не дал результатов, используется функция getnetbyname(), интерпретирующая имя как имя сети.

Утилита route использует сокет маршрутизации и новые типы сообщений: RTM_ADD, RTM_DELETE и RTM_CHANGE. Соответственно, изменять таблицы маршрутизации может только суперпользователь.

Диагностика

add [host | network ] %s: gateway %s flags %x

Указанный маршрут добавляется в таблицы. Выводятся значения записи таблицы маршрутизации, определенные при вызове ioctl(). Если используемый адрес шлюза не является его первичным адресом (первым адресом, возвращаемым командой gethostname()), то адрес шлюза выводится в числовом и символьном виде.

delete [ host &| network ] %s: gateway %s flags %x

Как и в предыдущем случае, но при удалении записи.

%s %s done

Таблица маршрутизации удаляется с помощью команды flush.

Network is unreachable

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

not in table

Попытка выполнения операции delete для записи, отсутствующей в таблицах.

routing table overflow

Попытка выполнения операции add в случае недостаточности ресурсов системы и невозможности выделения памяти для создания новой записи.

Permission denied

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

Лицензия:

Эта утилита разработана на основе программного обеспечения, авторское право на которое принадлежит членам правления Калифорнийского университета (The Regents of the University of California) и Кристосу Зуласу (Christos Zoulas). Уведомление об авторских правах см. в разделе route в приложении "Third-Party Copyright Notices" ("Уведомление об авторских правах третьих сторон").