CLI Cisco / Juniper / MikroTik — одни задачи, три синтаксиса
Концепции сетей одинаковы у всех вендоров (VLAN, OSPF, BGP, ACL — это стандарты). Различается синтаксис и философия CLI. Хороший инженер думает концепциями, а команды подсматривает. Этот модуль — твоя референс-шпаргалка: одна и та же задача показана параллельно на трёх самых частых платформах, плюс навыки выживания в любом незнакомом CLI.
«Заявка #52440. Открываем кассовую зону в филиале „Восток“: добавить VLAN 30 (10.30.0.0/24) и обеспечить его маршрутизацию до ЦО. Внимание: в филиале стоит MikroTik, на агрегации — Cisco, на границе с оператором — Juniper». Одна задача — три железки — три синтаксиса. Реальность большинства сетей в СНГ именно такая: зоопарк. Инженера, который теряется вне Cisco, эта заявка останавливает на день; инженера с концептуальным мышлением — на полчаса. К концу урока ты будешь вторым.
- Объяснить три философии CLI: «сразу в прод» (Cisco/MikroTik) vs candidate+commit (Junos)
- Сориентироваться в незнакомом CLI за минуты:
?, Tab, пайпы, поиск по конфигу - Выполнить базовые задачи на трёх вендорах: интерфейс, маршрут, VLAN, OSPF, BGP, ACL, NAT
- Читать диагностику на любом из трёх: show-команды, ping/traceroute, логи
- Менять конфиг удалённо и не «отрезать себя»: commit confirmed / reload in
- Закрыть заявку #52440 сквозняком через все три устройства
- Объяснить, почему это дорога в NetDevOps (Netmiko/NAPALM/Ansible)
Все команды этого урока — это синтаксис для концептов, которые ты уже знаешь: VLAN и trunk — модуль 3, подсети и wildcard-маски — модуль 4, статика и AD — модуль 5, OSPF (area, router-id) — модуль 6, BGP (AS, соседи) — модуль 7, ACL и NAT — модуль 10. Если какой-то концепт забылся — сходи освежить: урок про синтаксис не заменит понимания.
1. Три философии конфигурирования
Cisco IOS
Команды применяются сразу, построчно. Режимы: user → privileged (enable) →
global config (conf t). Сохранение — отдельно (write memory). Ошибся — уже в проде.
Juniper Junos
Правишь candidate config, который не активен, пока не сделаешь commit. Можно
проверить (commit check), откатить (rollback), даже commit confirmed
с авто-откатом. Иерархическая структура, как дерево.
MikroTik RouterOS
Плоская команда-ориентированная модель: /interface, /ip address и т.д. Применяется
сразу. Есть и Winbox (GUI), и API. Логика своя, но осваивается быстро.
2. Навыки выживания в незнакомом CLI
Прежде чем зубрить команды — научись их находить. Три приёма работают почти на любой сетевой железке и экономят часы:
? — CLI покажет возможные продолжения
с описаниями. На Cisco/Junos работает в любом месте команды (show ip ?),
на MikroTik — двойной Tab или ? в конце. Это главный инструмент в незнакомой системе.sh ip int br = show ip interface brief. На собеседованиях и в бою
печатают именно так.grep в Linux. Таблица ниже.show running-config постранично и теряет строку. Инженер пишет
| include / | match / print where — и получает ровно
нужные строки. Это тот же навык, что grep в Linux-треке.
3. База: вход в режим, hostname, сохранение
4. Настройка интерфейса и IP
/24) сразу. Cisco IOS исторически хочет
десятичную маску (255.255.255.0) — поэтому считать подсети в уме (модуль 4) особенно важно на Cisco.
И заметь: description/comment — везде. Подписанный порт — святое правило эксплуатации.5. Статический и default-маршрут
6. VLAN и trunk
7. OSPF
network + wildcard, Junos — перечислением
интерфейсов в area, MikroTik — через network-объекты. Концепт (area, router-id) — один.8. BGP (eBGP-сосед)
9. ACL / фильтрация
10. NAT: выпустить локальную сеть в интернет
Самая частая NAT-задача из модуля 10 — «серые адреса наружу через один белый» (PAT/masquerade) — на трёх вендорах:
overload, Junos — source-nat interface, MikroTik — masquerade.
На собеседовании могут спросить любым из трёх слов — теперь ты знаешь, что это одно и то же.11. Диагностика — show, ping, traceroute, логи
Активная диагностика и логи — тоже свои на каждом вендоре:
12. Сохранение, откат, бэкап
13. Разбор руками: закрываем заявку #52440 на трёх железках
Вернёмся к заявке из начала урока: VLAN 30 (кассы, 10.30.0.0/24) в филиале «Восток», маршрутизация до ЦО. Топология: MikroTik (филиал, шлюз VLAN 30) → Cisco (агрегация, транзит и OSPF) → Juniper (граница, NAT наружу). Смотри, как одна заявка распадается на знакомые концепты:
/interface vlan add name=vlan30 vlan-id=30 interface=bridge1 →
/ip address add address=10.30.0.1/24 interface=vlan30 →
маршрут в ЦО уже есть (default на Cisco-агрегацию). Проверка:
/ip address print, /ping 10.30.0.1.ip route 10.30.0.0 255.255.255.0 <адрес MikroTik> →
отдать сеть в OSPF: router ospf 1 → redistribute static subnets
(или network, если линк к филиалу в OSPF). Проверка: show ip route 10.30.0.0 —
маршрут есть; на соседях появился как external. Не забудь: write memory.set security nat source
rule-set LAN-OUT rule R2 match source-address 10.30.0.0/24 … →
commit confirmed 5 (мы на удалённой границе — страхуемся!) → проверка с кассы:
ping 8.8.8.8 → если работает, commit — подтвердили.14. Мини-лаба: потрогай все три CLI бесплатно
Все три системы можно пощупать за вечер, не покупая железа:
show ip int brief и show run | include interface.configure → поменяй hostname → show | compare
(увидишь дифф!) → commit check → commit → rollback 1 →
снова show | compare. Прочувствуй цикл candidate→commit→rollback руками./ip address add address=10.0.0.1/24 interface=ether1, /ip address print,
/export. Сравни вывод export с тем, что ты вводил.? и Tab. Уложился за 2 минуты на каждой —
навык выживания в чужом CLI освоен.15. Мост в DevOps: от CLI к автоматизации
Ровно эта «зоопарк-проблема» (разный синтаксис у вендоров) и породила сетевую автоматизацию (NetDevOps) — твой следующий большой шаг к DevOps:
- Netmiko — Python-библиотека, которая абстрагирует SSH-доступ к Cisco/Juniper/MikroTik и десяткам других.
- NAPALM — единый API: одна функция
get_bgp_neighbors()работает на любом вендоре. - Ansible network modules — описываешь желаемое состояние, Ansible применяет на нужном вендоре.
- NETCONF/RESTCONF + YANG — структурированная замена «парсинга show-команд глазами».
Когда ты автоматизируешь сеть через Ansible/NAPALM, ты оперируешь концептами (BGP-сосед, VLAN, ACL), а библиотека сама генерит синтаксис под вендора. Инженер, который мыслит концептами, переходит в NetDevOps легко. Тот, кто зазубрил только команды Cisco, — застревает.
16. Вопросы с собеседования
commit; есть commit check,
rollback, commit confirmed с авто-откатом. Cisco применяет команды сразу, построчно.reload in 5 (плановая перезагрузка через 5 мин) перед рискованным изменением: если
потерял доступ — устройство перезагрузится в сохранённый конфиг. На Junos для этого есть commit confirmed.ip nat inside
source list … interface … overload, у Junos — source-nat interface. Концепт один.17. Частые ошибки джунов
write memory не сделан). На Junos этой ошибки нет — там commit и так пишет.
commit confirmed,
на Cisco — reload in заранее.
commit. «Я же всё ввёл» — но это candidate, в проде ничего не изменилось.
| include / | match /
print where — Page Down двадцать раз и «не нашёл». Фильтры вывода — базовая гигиена.
18. Задачи: переведи между вендорами
Классическое упражнение мультивендорного инженера — «услышал на одном языке, повтори на другом»:
Задача 1. Коллега продиктовал Cisco-команду: «ip route 0.0.0.0 0.0.0.0 203.0.113.1». Сделай то же на MikroTik и Junos.
MikroTik: /ip route add dst-address=0.0.0.0/0 gateway=203.0.113.1.
Junos: set routing-options static route 0.0.0.0/0 next-hop 203.0.113.1 + commit.
Концепт: default-маршрут (модуль 5).
Задача 2. На Junos ты ввёл 12 строк set-команд, проверил glazami — всё верно. Сеть не изменилась. Почему?
Не сделан commit — команды легли в candidate config и не активны. Перед commit
стоит глянуть show | compare (дифф) и commit check (валидация).
Задача 3. Нужно найти все упоминания BGP в конфиге на каждом из трёх вендоров — по одной команде.
Cisco: show run | include bgp (или | section bgp — целыми блоками).
Junos: show configuration | match bgp (или show configuration protocols bgp).
MikroTik: /routing bgp connection print (+ /export и поиск).
Задача 4. Ты меняешь firewall на границе (Junos) удалённо. Какой командой применишь изменения и почему именно ей?
commit confirmed 5: изменения применятся, но если за 5 минут не подтвердить
обычным commit (например, ты отрезал себе доступ), Junos сам откатится к прошлому
конфигу. Страховка от «закрыл свой же SSH».
Задача 5. «Выпусти сеть 192.168.5.0/24 в интернет через ether1» — одна команда MikroTik. А как назвали бы это в Cisco-документации?
/ip firewall nat add chain=srcnat src-address=192.168.5.0/24 out-interface=ether1
action=masquerade. В терминах Cisco это NAT overload (PAT) — ip nat inside source
list … interface … overload.
Задача 6. После перезагрузки Cisco-роутера пропали вчерашние настройки VLAN. Что произошло и как проверить заранее?
Вчера не сделали write memory — конфиг жил только в running-config. Проверка
заранее: show archive config differences или простое сравнение
show run | include vlan vs show start | include vlan. Правило: изменил —
сохрани — перечитай сохранённое.
19. Словарик модуля (термины + английский)
| Термин | По-английски | Смысл в одну строку |
|---|---|---|
| Пользовательский режим | user EXEC (>) | первый уровень Cisco CLI: только просмотр, ничего не поменять |
| Привилегированный режим | privileged EXEC (#) | после enable: все show, отладка, вход в конфигурацию |
| Режим конфигурации | global configuration | configure terminal — здесь меняют настройки Cisco/Huawei |
| Текущий конфиг | running-config | то, что работает прямо сейчас (в RAM); теряется без сохранения |
| Сохранённый конфиг | startup-config | то, что загрузится после перезагрузки; обновляется write memory |
| Кандидат-конфиг | candidate configuration | черновик в Junos: правки копятся и не действуют до commit |
| Фиксация | commit / commit confirmed | применение кандидата в Junos; confirmed сам откатится, если ты потерял доступ |
| Откат | rollback | возврат к одной из прошлых версий конфига (Junos хранит их автоматически) |
| Обратная маска | wildcard mask | инверсия маски в ACL/OSPF у Cisco: /24 → 0.0.0.255 |
| Линии VTY | VTY lines | виртуальные терминалы для SSH/Telnet-сессий на Cisco |
| Фильтр вывода | | include / | match | показать только нужные строки: Cisco — include, Junos — match |
| Автодополнение | ? и Tab | две клавиши выживания в любом незнакомом CLI |
- Концепции (VLAN/OSPF/BGP/ACL/NAT) — стандарты; различается синтаксис и философия CLI.
- Cisco/MikroTik применяют сразу; Junos — candidate → commit (+ check, rollback, commit confirmed).
- В незнакомом CLI выживают три навыка:
?, Tab, фильтры вывода (| include / | match / print where). - Cisco хочет десятичную маску; Junos и MikroTik принимают CIDR.
- OSPF: Cisco — network+wildcard, Junos — по интерфейсам в area, MikroTik — network-объекты. Концепт один.
- overload = source-nat interface = masquerade — одно и то же на трёх языках.
- Удалённые изменения страхуй: Junos
commit confirmed, Ciscoreload in. - Думай концептами — синтаксис ищется; это и есть путь в NetDevOps (Netmiko/NAPALM/Ansible).
Ты умеешь настраивать и читать состояние на трёх вендорах. Но что делать, когда «всё настроено,
а не работает», и show-команды выглядят прилично? Тогда наступает время смотреть сами
пакеты: методология troubleshooting и packet capture — следующий модуль. Спойлер:
команды ping … df-bit и ping … source из этого урока станут там
главными героями.