route

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

Синтаксис:

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

Опции:

-f
Удалить все маршруты (в соответствии с flush). При использовании вместе с командами add, change, delete или get утилита route удаляет все маршруты перед выполнением соответствующей команды.
-n
Не выводить символические имена хостов и сетей при сообщении о действиях. (Процесс преобразования между символическими именами и их численными эквивалентами может занимать много времени и требовать корректной работы сети; таким образом, рекомендуется воздержаться от использования этой опции, особенно в случае попытки настройки работы сети.)
-q
Не выводить информацию: подавить весь поток вывода.
-v
Вывести расширенную информацию: отображать дополнительные данные.
-d
Запуск только в режиме отладки, т.е. не модифицировать таблицу маршрутизации.
-t
Запуск только в тестовом режиме. Вместо сокета используется /dev/null.
-S
Печатать пробел, когда флаг отсутствует, чтобы флаги были вертикально.
-s
Подавляет весь вывод команды get, за исключением фактического шлюза, который будет использоваться. То, как будет выведен шлюз зависит от типа просматриваемого маршрута.
команда
[[модификаторы] аргументы] Действительными являются следующие команды: add, change, delete, flush и show. Синтаксис и описание каждой команды приведены в разделе "Описание".

Платформы:

ЗОСРВ «Нейтрино»

Целевые архитектуры:

aarch64, arm, armv7, e2k, mips, ppc, x86

Описание:

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

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

Утилита route принимает следующие команды:

[-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
Шлюз в следующем сегменте сети (переходе), на который направляются пакеты.


Note: Если указано ключевое слово 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. Его полномочия определяются ядром.

Классификация:

Базовые подсистемы ЗОСРВ «Нейтрино»

Тематические ссылки:

/etc/autoconnect, netmanager, phlip, pppd, routed




Предыдущий раздел: Утилиты