В некоторых системах команда ifconfig создает для каждого интерфейса, которому назначен IP-адрес, запись в таблице маршрутизации. Каждый интерфейс является маршрутом в определенную сеть.
Даже если узел не является шлюзом, его интерфейс - это его «маршрут» в локальную сеть, ifconfig определяет конечную сеть маршрута, применяя адресную маску интерфейса к IP-адресу интерфейса. Например, интерфейсу dnetO узла crab присвоены адрес 172.16.12.1 и маска 255.255.255.0. Применив маску к адресу, мы получим конечную сеть 172.16.12.0. Вывод команды netstat -in содержит конечный адрес:
% netstat -in Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue leO 1500 172.16.12.0 172.16.12.1 1125826 16 569786 0 8914 0 loO 1536 127.0.0.0 127.0.0.1 94280 0 94280 0 0 0
Протокол маршрутной информации RIP (Routing Information Protocol) иногда применяется в системах Unix. RIP выполняет две функции: передает информацию маршрутизации другим узлам, а также использует поступающую информацию маршрутизации для динамического создания таблиц маршрутизации. Маршруты, созданные программой ifconfig, - один из источников информации маршрутизации, распространяемой протоколом RIP, а для управления тем, как RIP использует такую информацию, может использоваться аргумент metric команды ifconfig.
RIP принимает решения по маршрутизации на основе стоимости маршрута. Стоимость маршрута определяется связанной с ним метрикой маршрутизации. Метрика маршрутизации - это просто число. Чем меньше число, тем меньше стоимость маршрута. Чем больше число, тем стоимость выше. Создавая таблицу маршрутизации, RIP отдает предпочтение более дешевым маршрутам. Сети с прямым подключением получают очень низкую стоимость маршрута. Таким образом, нулевая метрика по умолчанию отмечает маршруты, пролегающие через интерфейсы с напрямую подключенными сетями. При помощи параметра metric можно указать иную метрику маршрутизации для интерфейса.
Чтобы повысить стоимость интерфейса до значения 3 (в этом случае протокол RIP будет отдавать предпочтение маршрутам стоимости 0, 1 или 2), выполните такую команду:
|
Используйте параметр metric только в случае, когда существует иной маршрут в конечную сеть, и он должен стать основным. Мы не воспользовались подобной командой для узла crab, поскольку этот узел имеет лишь один интерфейс для связи с внешним миром. В присутствии второго соединения, скажем, по высокоскоростному каналу, вышеприведенная команда могла бы послужить для направления трафика через высокопроизводительный интерфейс.
Похожий параметр ifconfig существует и в системе Solaris. RIP создает таблицу маршрутизации, выбирая наиболее экономичные маршруты, и передает информацию маршрутизации другим узлам. Параметр metric позволяет менять выбор маршрутов, назначая менее предпочтительным маршрутам более высокую стоимость. Аргумент private, доступный в системах Solaris, управляет распределением маршрутов для RIP. Наличие аргумента private в командной строке ifconfig запрещает RIP распространять маршрут, который будет создан при выполнении данной команды. По умолчанию принимается значение -private, разрешающее распространение маршрута. Параметр private поддерживается не всеми системами.
Кроме того, не все системы обращают внимание на аргумент metric. В системе Linux выполнение команды ifconfig не приводит к созданию записи в таблице маршрутизации. При настройке системы для создания маршрутов, пролегающих через интерфейсы, используется явная команда route. (О команде route речь пойдет в следующей главе.) Система Linux отвергает аргумент metric, как видно из этого примера:
|
SIOCSIFMETRIC: Operation not supported
Указывайте метрику в специальном файле настройки маршрутизации, а не в командной строке ifconfig. Это предпочтительный способ указания сведений для современных пакетов маршрутизации. Формат файлов настройки маршрутизации мы обсудим в следующей главе.