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-адресов в физические.
Дополнительные
модификаторы:
-
-expire
-
-hopcount
-
-mtu
-
-recvpipe
-
-rtt
-
-rttvar
-
-sendpipe
-
-ssthresh
Эти модификаторы предоставляют начальные значения
показателей, которые ведутся в записи маршрутизации. Для
блокирования любых этих модификаторов установите перед
соответствующим модификатором метамодификатор -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" ("Уведомление об авторских
правах третьих сторон").