Статический маршрут на Cisco IOS создаётся в режиме глобальной конфигурации одной строкой: ip route <сеть> <маска> <next hop или локальный интерфейс>. Запись сразу попадает в таблицу маршрутизации, и трафик к указанному префиксу идёт туда, куда его направил администратор, без участия протоколов динамической маршрутизации.
Рабочий порядок занимает четыре шага: configure terminal, команда ip route, проверка через show ip route, сохранение командой copy running-config startup-config. Этого достаточно, чтобы поднять маршрут до удалённой подсети, шлюз по умолчанию или резервный путь.
Базовая форма статического маршрута в IOS XE записывается как ip route PREFIX MASK NEXT-HOP либо как комбинация выходного интерфейса и next hop. При этом поддержка отдельных возможностей зависит от аппаратной модели, версии ПО и лицензии: Cisco публикует отдельные справочники команд и конфигурации для каждой платформы именно потому, что набор поддерживаемых ключей (track, контекст VRF, запись маски через длину префикса) различается между моделями и релизами IOS/IOS XE. Поэтому перед настройкой рабочей сети проверьте команду на тестовом устройстве или в эмуляторе и сверьтесь с документацией для вашей платформы.
Что такое статический маршрут и когда его использовать
Статический маршрут - это вручную созданная запись в таблице маршрутизации. Маршрутизатор не считает топологию и не обменивается обновлениями с соседями: он берёт указанный администратором next hop или интерфейс и отправляет пакеты туда.
Что это даёт на практике:
- Предсказуемость: трафик идёт по заранее определённому пути, что упрощает аудит и разбор инцидентов.
- Нулевые накладные расходы: нет служебных пакетов и расчёта топологии, почти нет нагрузки на CPU и память.
- Быстрая настройка: один маршрут описывается одной строкой, которую видно в running-config.
- Контроль трафика: можно направить отдельные подсети через конкретного провайдера или резервный канал.
Ограничения тоже конкретны. Статика не масштабируется: при изменении топологии маршруты правят руками на каждом устройстве. Автоматического переключения при отказе канала нет, его добавляют плавающими маршрутами или отслеживанием объектов IP SLA. Ошибка в маске или next hop тихо ломает связность и проявляется только тогда, когда по маршруту пойдёт реальный трафик.
Типовые сценарии: маршрут по умолчанию к провайдеру, резервный путь к удалённому офису, доступ к тупиковой сети (stub network) с единственным выходом, маршруты к адресам управления и loopback-интерфейсам. В сетях с десятками подсетей и несколькими путями переходят на динамическую маршрутизацию; практические примеры OSPF и EIGRP для IOS 16.x/17.x собраны в руководстве по маршрутизации Cisco.
Синтаксис команды ip route: разбор параметров
Полная форма команды для IPv4 выглядит так:
ip route <network> <mask> {<next-hop-ip> | <exit-interface>} [<distance>] [<metric>] [permanent] [track <object-number>] [name <route-name>]
Назначение параметров:
- network: адрес удалённой сети, например 192.168.10.0.
- mask: маска подсети в десятичном формате, например 255.255.255.0. Маска должна совпадать с реальной границей сети: лишние биты заставят маршрут покрывать чужие адреса.
- next-hop-ip: IP-адрес следующего маршрутизатора. Он должен быть достижим напрямую или через другой известный маршрут.
- exit-interface: локальный интерфейс, через который доступна сеть (GigabitEthernet0/1, Serial0/0/0, Tunnel0).
- distance: административная дистанция, по умолчанию 1. Большее значение делает маршрут резервным.
- metric: применяется при сравнении маршрутов к одному префиксу с одинаковой административной дистанцией.
- permanent: маршрут остаётся в таблице даже при падении интерфейса.
- track: привязка к объекту отслеживания, обычно IP SLA, для автоматического снятия маршрута.
- name: текстовая метка маршрута для читаемости конфигурации.
Базовые варианты записи:
Router(config)# ip route 192.168.10.0 255.255.255.0 10.0.0.2 Router(config)# ip route 192.168.10.0 255.255.255.0 10.0.0.3 10 Router(config)# ip route 192.168.10.0 255.255.255.0 GigabitEthernet0/1 10.0.0.2
В классической записи маска задаётся десятичными октетами. Некоторые версии IOS XE принимают и формат с длиной префикса, однако подтверждённых данных о том, на каких именно платформах и релизах это работает, у нас нет, поэтому при переносе конфигурации между устройствами безопаснее использовать десятичную форму: введите команду и убедитесь, что строка появилась в show running-config, а маршрут - в show ip route.
Указание next hop и выходного интерфейса: в чём разница
Next hop применяют, когда следующий маршрутизатор известен и достижим по IP. Устройство находит его через таблицу маршрутизации (рекурсивный поиск) и отправляет кадр на его MAC-адрес.
Выходной интерфейс указывают, когда соединение point-to-point и за ним ровно один сосед: Serial, GRE- или IPsec-туннель, иногда point-to-point Ethernet. В такой схеме next hop не нужен, потому что получатель один.
Опасный случай - только выходной интерфейс на многоточечном Ethernet-сегменте. Если в статическом маршруте указан лишь выходной интерфейс, маршрутизатору приходится разрешать адрес для каждого пункта назначения через ARP (proxy ARP), и такой вариант считается худшим по сравнению с указанием next hop. Proxy ARP при этом по умолчанию включён на большинстве маршрутизаторов. Если трафик нужно направить на конкретный шлюз, указывайте next hop, а для однозначности - оба параметра:
Router(config)# ip route 192.168.2.0 255.255.255.0 10.0.0.2 Router(config)# ip route 192.168.2.0 255.255.255.0 GigabitEthernet0/1 10.0.0.2
Вторая форма фиксирует выходной интерфейс, отменяет рекурсивный поиск и удобна при диагностике: сразу видно, куда физически уходит трафик. Порядок параметров в классическом синтаксисе - сначала выходной интерфейс, затем IP-адрес. Обратный порядок распознаётся не всеми версиями, поэтому придерживайтесь документированной формы.
Настройка маршрута по умолчанию на Cisco IOS
Маршрут по умолчанию - статический маршрут с префиксом 0.0.0.0 и маской 0.0.0.0. Он срабатывает, когда для адреса назначения нет более специфичного совпадения, и обычно указывает на провайдера или вышестоящий маршрутизатор.
Router(config)# ip route 0.0.0.0 0.0.0.0 203.0.113.1 Router(config)# ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/0 203.0.113.1 Router(config)# ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/0
Варианты различаются уровнем контроля. Адрес провайдера подходит при статической адресации на WAN: 203.0.113.1 должен быть доступен через подключённую сеть на интерфейсе WAN. Форма с интерфейсом и адресом исключает рекурсивный поиск. Запись только с интерфейсом годится для point-to-point-каналов, где за интерфейсом один сосед.
Маршрут по умолчанию не появится в таблице, если next hop недостижим: IOS не устанавливает запись, пока не найдёт способ доставить пакет до указанного адреса. Это общее правило для статики, и его стоит проверять в первую очередь при диагностике. Подключённые сети показывает show ip interface brief, покрытие адресов - show ip route.
В таблице маршрутизации маршрут по умолчанию помечается звёздочкой и отдельной строкой Gateway of last resort:
S* 0.0.0.0/0 [1/0] via 203.0.113.1 Gateway of last resort is 203.0.113.1 to network 0.0.0.0
Не путайте ip route 0.0.0.0 0.0.0.0 с командой ip default-gateway. Вторая задаёт шлюз для устройств с отключённой IP-маршрутизацией (коммутаторы L2 в режиме управления) и не создаёт маршрут в таблице. На маршрутизаторе с включённой маршрутизацией нужна именно ip route.
Пример статического маршрута к удалённому офису
Топология: главный офис с маршрутизатором R1 и локальной сетью 10.10.0.0/16, удалённый офис с маршрутизатором R2 и подсетью 192.168.10.0/24. Устройства соединены через провайдера, WAN-адреса находятся в сети 198.51.100.0/30.
! R1, главный офис interface GigabitEthernet0/0 description WAN to provider ip address 198.51.100.1 255.255.255.252 ! ip route 192.168.10.0 255.255.255.0 198.51.100.2 name REMOTE-OFFICE
! R2, удалённый офис interface GigabitEthernet0/0 description WAN to provider ip address 198.51.100.2 255.255.255.252 ! ip route 10.10.0.0 255.255.0.0 198.51.100.1 name HQ-LAN
Второй маршрут обязателен. Без обратного пути пакеты из удалённого офиса в главный не вернутся, и вы получите одностороннюю связность: ICMP echo request доходит, echo reply теряется.
Для сети 198.51.100.0/30 отдельный маршрут не нужен, она попадает в таблицу как connected. Если next hop лежит в удалённой подсети, IOS выполняет рекурсивный поиск и установит статику только при наличии пути к самому next hop. Проверить это можно командой show ip route 198.51.100.2.
На point-to-point-канале запись упрощается: ip route 192.168.10.0 255.255.255.0 Serial0/0/0. Такой вариант экономит адресацию на стыке, но жёстко привязывает маршрут к конкретному интерфейсу.
Плавающие статические маршруты и административная дистанция
Плавающий статический маршрут - резервная запись с большей административной дистанцией. Пока основной маршрут к тому же префиксу активен, резервный хранится в конфигурации, но в таблицу маршрутизации не попадает. Как только основной пропадает, резервный занимает его место.
Router(config)# ip route 192.168.10.0 255.255.255.0 10.0.0.2 Router(config)# ip route 192.168.10.0 255.255.255.0 10.0.0.3 10
Первая строка получает дистанцию по умолчанию 1 и становится активной. Вторая с дистанцией 10 остаётся в резерве. Переключение происходит без вмешательства администратора, но только при потере маршрута: если канал деградировал, а интерфейс и next hop отвечают, статика продолжит работать.
Дистанция решает, какой маршрут попадёт в таблицу при совпадении префикса: меньшее значение выигрывает. Статика с дистанцией 1 обходит OSPF (110) и EIGRP (90). Если приоритет должен остаться за динамическим протоколом, статике назначают дистанцию выше, например 200.
Резервный маршрут сработает только при доступном next hop. Когда резервный шлюз находится за туннелем или в другой подсети, добавьте отслеживание:
ip sla 1 icmp-echo 10.0.0.3 source-interface GigabitEthernet0/0 frequency 5 ! track 1 ip sla 1 reachability ! ip route 192.168.10.0 255.255.255.0 10.0.0.3 10 track 1
При потере ICMP-ответов от 10.0.0.3 маршрут снимается с таблицы даже при живом интерфейсе. Похожий принцип резервирования применяется в Linux, где приоритет задаётся метрикой маршрута; сравнение синтаксиса собрано в руководстве по статическим маршрутам в Linux.
Проверка таблицы маршрутизации командой show ip route
Основная команда проверки - show ip route. Она выводит таблицу маршрутизации с кодами источников, административными дистанциями и next hop.
Router# show ip route
Codes: L - local, C - connected, S - static, R - RIP, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
* - candidate default
Gateway of last resort is 203.0.113.1 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 203.0.113.1
S 192.168.10.0/24 [1/0] via 198.51.100.2
198.51.100.0/30 is subnetted, 1 subnet
C 198.51.100.0/30 is directly connected, GigabitEthernet0/0
L 198.51.100.1/32 is directly connected, GigabitEthernet0/0
Строка статического маршрута читается так: S - источник static, 192.168.10.0/24 - префикс, [1/0] - административная дистанция 1 и метрика 0, via 198.51.100.2 - next hop. Маршрут активен, если строка присутствует в выводе show ip route.
Расшифровка обозначений в выводе show ip route
Коды в первой колонке показывают, откуда пришёл маршрут:
- S - статический маршрут, созданный командой ip route.
- S* - статический маршрут по умолчанию, кандидат на роль шлюза последней надежды.
- C - connected, сеть подключена напрямую к интерфейсу.
- L - local, адрес самого интерфейса с маской /32 (для IPv6 - /128).
- O - OSPF, D - EIGRP, R - RIP, B - BGP.
- * рядом с кодом или префиксом - кандидат в маршрут по умолчанию.
Если адрес шлюза последней надежды не назначен, вывод начинается строкой Gateway of last resort is not set: маршрута по умолчанию нет.
Точечные проверки:
- show ip route static - только статические маршруты, удобно для сверки после правок.
- show ip route 192.168.10.0 - какой маршрут выбран для конкретного префикса и через какой next hop.
- show ip route 0.0.0.0 - есть ли маршрут по умолчанию и куда он указывает.
- show ip interface brief - состояние интерфейсов и их IP-адреса.
- show running-config | include ip route - список введённых статических маршрутов.
- ping и traceroute - фактическая доступность сети и путь следования пакетов.
Для разбора маршрутизации в смешанных средах, где рядом живут Linux-хосты и сетевое оборудование, пригодится руководство по IP-маршрутизации и диагностике корпоративных сетей.
Типовые ошибки при настройке статических маршрутов и их устранение
Неверная маска. Запись ip route 192.168.10.0 255.255.255.128 покрывает только половину нужной подсети, вторая половина уходит по другому маршруту или отбрасывается. Симптом: часть хостов доступна, часть нет. Проверка: show ip route 192.168.10.0 и сверка маски с реальной схемой адресации.
Недоступный next hop. IOS не добавляет маршрут, если не может доставить пакет до указанного адреса. Признак: строки нет в show ip route, в логе может появиться сообщение о невозможности установить маршрут. Проверка: ping до next hop и show ip route по адресу next hop; адрес должен быть подключён напрямую или достижим по другому маршруту.
Рекурсивный маршрут без опоры. Маршрут к сети 192.168.10.0/24 через 10.0.0.2 установится только при наличии пути к самой сети 10.0.0.0. Если next hop лежит за туннелем или в удалённой подсети без маршрута, статика не активируется. Решение: сначала поднимите путь до next hop, включая маршрут по умолчанию.
Конфликт с динамической маршрутизацией. Для одного префикса выбирается маршрут с меньшей административной дистанцией, поэтому статика с дистанцией 1 обычно вытесняет OSPF (110) и EIGRP (90). При разной длине префикса работает правило longest prefix match: более специфичный маршрут /25 из OSPF победит статический /24. Проверка: show ip route по конкретному префиксу и осознанное назначение дистанций.
Только выходной интерфейс на Ethernet. Такой маршрут заставляет маршрутизатор разрешать каждый пункт назначения через ARP (proxy ARP), что считается худшим вариантом по сравнению с указанием next hop. Проверка: show arp разрастается адресами хостов из сегмента, а show ip route по отдельным адресам показывает интерфейсные записи вместо ожидаемого next hop. Решение: указывать next hop, при необходимости вместе с интерфейсом.
Опечатка в адресе или префиксе. Лишний октет в 255.255.255.0 или перепутанная подсеть приводят к маршруту в никуда либо к перехвату чужого трафика. Сверяйте строку до сохранения конфигурации.
Порядок разбора проблемы:
- Убедитесь, что маршрут есть: show ip route по префиксу и show running-config | include ip route.
- Проверьте next hop: ping и show ip route по его адресу.
- Сверьте маску с реальной схемой адресации.
- Сравните административные дистанции статики и динамических протоколов.
- Проверьте интерфейс: show ip interface brief, состояние up/up, наличие IP-адреса.
- Пройдите путь целиком: traceroute до удалённого адреса и обратный маршрут на удалённом устройстве.
Команду debug ip routing применяют точечно: она показывает установку и снятие маршрутов в реальном времени, но на загруженном устройстве создаёт заметную нагрузку на CPU и засоряет лог. Отладку выполняют в окно обслуживания и завершают командой undebug all.
Сохранение конфигурации и применение изменений
Команды ip route, введённые в режиме configure terminal, попадают в running-config и живут в оперативной памяти. После перезагрузки они исчезнут, если не скопировать конфигурацию в startup-config.
Router# copy running-config startup-config Destination filename [startup-config]? Building configuration... [OK] Router# show startup-config | include ip route ip route 0.0.0.0 0.0.0.0 203.0.113.1 ip route 192.168.10.0 255.255.255.0 198.51.100.2 ip route 192.168.10.0 255.255.255.0 10.0.0.3 10
Команда write memory делает то же самое и работает как сокращённый вариант. Перед копированием проверьте список маршрутов через show running-config | include ip route: опечатка в маске или next hop сохранится так же надёжно, как и корректная строка.
Если вы меняете маршрут, по которому идёт ваша сессия управления, потеря связи оборвёт работу. Страховка стандартная: перед правкой выполните reload in 10, внесите изменения, проверьте доступность сети и отмените отложенную перезагрузку командой reload cancel. При потере связи устройство само вернётся к сохранённой конфигурации через 10 минут.
В средах с централизованным управлением конфигурация может сохраняться автоматически, но при работе напрямую через CLI копирование в startup-config остаётся обязательным шагом. После копирования проверьте, что маршруты активны в show ip route, а ping и traceroute подтверждают путь к удалённым сетям.
Источники и справочные материалы
Проверенные факты и формулировки в статье опираются на следующие публичные материалы Cisco и профильных ресурсов:
- Command Reference, Cisco IOS XE 17.17.x (Catalyst 9200) — Cisco — справочник команд маршрутизации.
- IP Routing: Protocol-Independent Configuration Guide — Cisco — базовая настройка статических маршрутов.
- Understand Administrative Distance — Cisco — таблица административных дистанций.
- Static Routes With Next Hop As An Exit Interface Or An IP Address — Cisco Community — сравнение вариантов next hop и выходного интерфейса, поведение proxy ARP.
- Cisco Secure Firewall Management Center — Static Routing — Cisco — примеры статической маршрутизации.