# Операционный режим (Operation Mode)

> Руководство по операционному режиму VyOS: show команды, мониторинг системы, диагностика сети, CLI навигация для Yandex Cloud и VK Cloud

Source: https://opennix.org/docs/vyos/admin-guide/vyos-operation-mode/


Операционный режим в VyOS предоставляет команды для мониторинга состояния системы, диагностики проблем и выполнения операционных задач без изменения конфигурации. Это основной режим работы для повседневного администрирования VyOS.

## Основные концепции

### Операционный vs Конфигурационный режим

**Операционный режим** (Operation Mode):
- Режим по умолчанию при входе в систему
- Только чтение и мониторинг
- Выполнение операционных команд (show, monitor, reset, clear)
- Не изменяет конфигурацию
- Приглашение: `vyos@router:~$`

**Конфигурационный режим** (Configuration Mode):
- Для изменения конфигурации
- Команды set, delete, commit, rollback
- Транзакционный подход
- Приглашение: `vyos@router#`
- Вход: команда `configure`

### Категории команд

1. **show** - Просмотр информации (состояние, статистика, конфигурация)
2. **monitor** - Мониторинг в реальном времени
3. **reset** - Сброс состояния (не конфигурации)
4. **clear** - Очистка счетчиков и кэшей
5. **ping/traceroute** - Сетевая диагностика
6. **generate/add/delete** - Системные операции

## Show Commands

### System Information

```bash
# Общая информация о системе
show version

# Вывод:
# Version:          VyOS 1.5.x
# Release train:    current
# Built by:         autobuild@vyos.net
# Built on:         Mon 14 Oct 2024 12:00 UTC
# Build UUID:       ...
# Architecture:     x86_64

# Аппаратная информация
show system hardware

# Использование ресурсов
show system memory
show system cpu
show system storage

# Uptime и load average
show system uptime

# Процессы
show system processes
show system processes summary
show system processes extensive
```

### Network Interfaces

```bash
# Все интерфейсы
show interfaces

# Конкретный интерфейс
show interfaces ethernet eth0
show interfaces bridge br0
show interfaces bond bond0

# Краткий формат
show interfaces brief

# Статистика интерфейса
show interfaces ethernet eth0 statistics
show interfaces ethernet eth0 counters

# Физическое состояние
show interfaces ethernet eth0 physical

# Очереди интерфейса
show interfaces ethernet eth0 queue
```

### IP Configuration and Routing

```bash
# IP адреса
show interfaces addresses

# ARP таблица
show arp
show arp interface eth0

# Таблица маршрутизации
show ip route
show ip route summary
show ip route 192.168.1.0/24

# Конкретный маршрут
show ip route 8.8.8.8

# IPv6 маршруты
show ipv6 route
show ipv6 route summary

# Neighbor таблица (IPv6)
show ipv6 neighbors
```

### Routing Protocols

```bash
# OSPF
show ip ospf neighbor
show ip ospf database
show ip ospf interface
show ip ospf route

# BGP
show ip bgp summary
show ip bgp neighbors
show ip bgp
show ip bgp neighbor 10.0.0.1 advertised-routes
show ip bgp neighbor 10.0.0.1 received-routes

# Route maps и prefix lists
show route-map
show ip prefix-list
show ip community-list
```

### VPN

```bash
# IPsec
show vpn ipsec sa
show vpn ipsec state
show vpn ipsec status

# WireGuard
show interfaces wireguard
show interfaces wireguard wg01

# OpenVPN
show openvpn server
show openvpn client
show openvpn status server server1
```

### Firewall and NAT

```bash
# Firewall правила
show firewall
show firewall name WAN_IN
show firewall statistics

# NAT
show nat source statistics
show nat destination statistics
show nat source rules
show nat destination rules

# Connection tracking
show conntrack table ipv4
show conntrack table ipv6
show conntrack statistics
```

### Services

```bash
# DHCP server
show service dhcp-server leases
show service dhcp-server statistics
show service dhcp-server leases pool LAN

# DHCPv6 server
show service dhcpv6-server leases

# DNS forwarding
show dns forwarding statistics
show dns forwarding nameservers

# NTP
show ntp
show system ntp

# SNMP
show snmp community
show snmp v3
```

### System Services

```bash
# SSH
show service ssh

# Пользователи
show users
show users recent

# Логи
show log
show log tail
show log tail 50
show log | match error
show log | match eth0

# Сервисы
show system services
```

### Configuration

```bash
# Текущая конфигурация
show configuration

# Конкретная секция
show configuration interfaces
show configuration service dhcp-server

# Команды для воспроизведения
show configuration commands
show configuration commands | match interface

# Сохраненная конфигурация
show configuration file /config/config.boot

# История commit
show system commit
show system commit diff 5
```

## Monitor Commands

### Real-Time Monitoring

```bash
# Логи в реальном времени
monitor log
monitor log colored

# Трафик интерфейса
monitor interfaces
monitor interfaces eth0
monitor interfaces eth0 traffic

# Firewall
monitor firewall
monitor firewall name WAN_IN

# BGP соседи
monitor protocol bgp

# Bandwidth usage
monitor bandwidth interface eth0
```

### Traffic Capture

```bash
# Захват трафика (tcpdump)
monitor traffic interface eth0
monitor traffic interface eth0 filter "port 80"
monitor traffic interface eth0 save /tmp/capture.pcap

# С дополнительными фильтрами
monitor traffic interface eth0 filter "host 192.168.1.100 and port 443"

# Verbose output
monitor traffic interface eth0 verbose
```

## Reset Commands

### Connection and Session Reset

```bash
# Сброс BGP соседа
reset ip bgp 10.0.0.1

# Сброс OSPF процесса
reset ip ospf process

# Сброс IPsec SA
reset vpn ipsec-peer 203.0.113.1

# Сброс conntrack соединений
reset conntrack-sync external
reset conntrack-sync internal
```

### Terminal Reset

```bash
# Сброс терминала
reset terminal
```

## Clear Commands

### Clearing Counters and Cache

```bash
# Очистка счетчиков интерфейса
clear interfaces ethernet eth0 counters

# Очистка firewall counters
clear firewall name WAN_IN counters
clear firewall statistics

# Очистка ARP кэша
clear arp

# Очистка route кэша
clear ip route cache

# Очистка DNS кэша
clear dns forwarding cache

# Очистка conntrack таблицы
clear conntrack table ipv4
clear conntrack table ipv6
```

### Clearing System State

```bash
# Очистка системных логов
clear system login history user vyos

# Очистка DHCP leases
clear service dhcp-server lease 192.168.1.100
```

## Network Diagnostic Commands

### Connectivity Testing

```bash
# Ping
ping 8.8.8.8
ping 8.8.8.8 count 5
ping 8.8.8.8 size 1400
ping 8.8.8.8 source-address 192.168.1.1

# Ping IPv6
ping 2001:4860:4860::8888
ping6 2001:4860:4860::8888

# Traceroute
traceroute 8.8.8.8
traceroute 8.8.8.8 source-address 192.168.1.1

# Traceroute IPv6
traceroute6 2001:4860:4860::8888

# MTU path discovery
ping 8.8.8.8 do-not-fragment size 1500
```

### DNS and Network Tools

```bash
# DNS lookup
nslookup google.com
nslookup google.com 8.8.8.8

# Dig
dig google.com
dig google.com @8.8.8.8 +short
dig google.com MX

# Host
host google.com
host 8.8.8.8

# Telnet
telnet 192.168.1.1 22
telnet smtp.gmail.com 25
```

### Network Scanning

```bash
# Port scan (если установлен nmap)
scan port 192.168.1.1
scan port 192.168.1.0/24 port 22

# ARP scan
scan arp interface eth1
```

## System Operation Commands

### Power Management

```bash
# Перезагрузка
reboot
reboot now
reboot in 10

# Выключение
poweroff
poweroff now
poweroff in 30

# Отмена запланированной перезагрузки
shutdown -c
```

### Image Management

```bash
# Список образов
show system image

# Установка нового образа
add system image https://downloads.vyos.io/...

# Удаление образа
delete system image 1.4.0

# Установка образа по умолчанию
set system image default-boot 1.5.0
```

### Configuration Management

```bash
# Копирование конфигурации
copy file /config/config.boot to /config/config.boot.backup
copy running-config file /tmp/running.conf

# Загрузка конфигурации
load /config/config.boot.backup

# Сохранение конфигурации
save
save /config/config.boot.backup
```

### PKI Operations

```bash
# Генерация ключей
generate pki key-pair
generate pki key-pair install my-key

# Генерация сертификата
generate pki certificate sign my-ca install my-cert

# Генерация CSR
generate pki certificate-request install my-csr

# Просмотр сертификатов
show pki ca
show pki certificate
```

### SSH Keys

```bash
# Генерация SSH ключей
generate ssh-key user vyos

# Показать SSH ключи
show ssh fingerprints
show ssh server-key
```

## Advanced Operational Commands

### System Debugging

```bash
# Включить debug для протокола
debug ospf events
debug bgp updates

# Посмотреть debug output
show log | match debug

# Отключить debug
no debug ospf events
no debug all
```

### Hardware Information

```bash
# PCI устройства
show hardware pci

# CPU информация
show hardware cpu

# Memory banks
show hardware mem

# Sensors (температура, вентиляторы)
show hardware sensors
```

### Container Operations

```bash
# Список контейнеров
show container

# Детали контейнера
show container name my-container

# Логи контейнера
show container log name my-container

# Статистика контейнера
show container name my-container statistics
```

## Примеры практического использования

### 1. Диагностика проблем с подключением

```bash
# Шаг 1: Проверить интерфейсы
show interfaces brief

# Шаг 2: Проверить IP адреса
show interfaces addresses

# Шаг 3: Проверить маршрутизацию
show ip route 8.8.8.8

# Шаг 4: Проверить conntrack
show conntrack table ipv4 | match 8.8.8.8

# Шаг 5: Ping test
ping 8.8.8.8 source-address <your-ip>

# Шаг 6: Traceroute
traceroute 8.8.8.8
```

### 2. Проверка VPN статуса

```bash
# IPsec
show vpn ipsec sa
show vpn ipsec status

# Если туннель down - логи
show log | match ipsec

# Статистика интерфейса VTI
show interfaces vti vti0 statistics

# Routing через VPN
show ip route | match vti0
```

### 3. Мониторинг производительности

```bash
# CPU и память
show system uptime
show system cpu
show system memory

# Network throughput
show interfaces eth0 statistics

# Connection tracking usage
show conntrack statistics

# Топ процессов
show system processes extensive | head -20
```

### 4. Диагностика BGP

```bash
# Состояние BGP соседей
show ip bgp summary

# Детали соседа
show ip bgp neighbors 10.0.0.1

# Получаемые маршруты
show ip bgp neighbor 10.0.0.1 received-routes

# Анонсируемые маршруты
show ip bgp neighbor 10.0.0.1 advertised-routes

# BGP таблица
show ip bgp

# Путь к конкретной сети
show ip bgp 203.0.113.0/24
```

### 5. Анализ firewall

```bash
# Все правила firewall
show firewall

# Статистика конкретного ruleset
show firewall name WAN_IN statistics

# Connection tracking
show conntrack table ipv4 | wc -l

# Топ источников conntrack
show conntrack table ipv4 | awk '{print $5}' | cut -d= -f2 | sort | uniq -c | sort -rn | head -10

# Проверка конкретного соединения
show conntrack table ipv4 | match "192.168.1.100"
```

### 6. DHCP troubleshooting

```bash
# Активные leases
show service dhcp-server leases

# Статистика DHCP
show service dhcp-server statistics

# Leases конкретного pool
show service dhcp-server leases pool LAN

# Логи DHCP
show log | match dhcp
```

## Полезные техники

### Фильтрация вывода

```bash
# Grep (match)
show configuration | match interface
show log | match error

# Exclude
show configuration | no-more | grep -v "!"

# Head/Tail
show log tail 50
show log | head -20

# Pipe to less для длинного вывода
show configuration | no-more
```

### Форматирование вывода

```bash
# JSON формат (для API)
show interfaces format json
show configuration format json

# Без пагинации
show log | no-more

# С timestamps
show log | match error | tail
```

### Копирование и сохранение вывода

```bash
# Сохранить в файл
show configuration > /tmp/config.txt
show running-config | cat > /tmp/running.txt

# SCP копирование
scp /tmp/config.txt user@server:/backup/
```

### Alias для частых команд

В конфигурационном режиме:
```bash
configure
set system login user vyos alias sh="show"
set system login user vyos alias si="show interfaces"
set system login user vyos alias sir="show ip route"
commit
save
```

Теперь в операционном режиме:
```bash
sh version      # вместо show version
si brief        # вместо show interfaces brief
sir summary     # вместо show ip route summary
```

## Command Cheat Sheet

### Топ-20 команд для ежедневной работы

1. `show interfaces brief` - Краткий статус интерфейсов
2. `show ip route` - Таблица маршрутизации
3. `show configuration` - Текущая конфигурация
4. `show system uptime` - Uptime системы
5. `show log tail 50` - Последние 50 строк лога
6. `ping 8.8.8.8` - Тест подключения
7. `show service dhcp-server leases` - DHCP leases
8. `show vpn ipsec sa` - IPsec туннели
9. `show ip bgp summary` - BGP статус
10. `show firewall` - Firewall правила
11. `show conntrack table ipv4` - Connection tracking
12. `monitor log` - Логи в реальном времени
13. `show system memory` - Использование памяти
14. `show system cpu` - Использование CPU
15. `show interfaces statistics` - Статистика интерфейсов
16. `show nat source statistics` - NAT статистика
17. `show version` - Версия системы
18. `show users` - Залогиненные пользователи
19. `show system commit` - История commit'ов
20. `save` - Сохранить конфигурацию

## Best Practices

1. **Регулярный мониторинг**
   - Проверять `show system uptime` ежедневно
   - Мониторить `show system memory` и CPU
   - Отслеживать `show conntrack statistics`
   - Проверять `show log | match error`

2. **Документирование**
   - Сохранять вывод важных команд
   - Делать screenshots при проблемах
   - Вести log book операций
   - Документировать изменения

3. **Troubleshooting workflow**
   - Начинать с `show interfaces brief`
   - Проверять `show log tail 100`
   - Использовать `monitor log` для real-time
   - Собирать всю диагностику перед обращением в поддержку

4. **Performance monitoring**
   - Регулярно проверять `show system resources`
   - Мониторить interface statistics
   - Отслеживать conntrack usage
   - Следить за routing table size

5. **Безопасность**
   - Регулярно проверять `show users`
   - Мониторить `show system login`
   - Проверять firewall statistics
   - Анализировать conntrack для аномалий

6. **Automation**
   - Использовать скрипты для регулярных проверок
   - Собирать метрики в системы мониторинга
   - Автоматизировать рутинные задачи
   - Создавать health check скрипты

7. **Backup awareness**
   - Регулярно делать `save`
   - Периодически `show configuration commands > backup.txt`
   - Хранить backup вне устройства
   - Тестировать restore процедуру

8. **Learning path**
   - Начать с базовых show commands
   - Изучать вывод команд
   - Экспериментировать с фильтрами
   - Создавать собственные alias

9. **Remote management**
   - Использовать SSH вместо telnet
   - Настроить tmux/screen для длительных сессий
   - Иметь out-of-band доступ
   - Документировать recovery процедуры

10. **Command history**
    - Использовать историю команд (стрелки вверх/вниз)
    - Ctrl+R для поиска в истории
    - Сохранять часто используемые команды
    - Создавать команды-шаблоны

## Заключение

Операционный режим VyOS предоставляет мощный набор команд для мониторинга, диагностики и управления системой. Освоение этих команд критично для эффективного администрирования VyOS и быстрого решения проблем в production окружениях.

**Ключевые takeaways**:
- Операционный режим - для мониторинга, не для изменений
- Show commands - основа диагностики
- Monitor commands - real-time visibility
- Reset/Clear - для операционных задач
- Практика использования - ключ к мастерству

**Дополнительные ресурсы**:
- [VyOS Command Reference](https://docs.vyos.io/)
- [Configuration Guide](/docs/vyos/) - для изменения конфигурации
- [Troubleshooting](/docs/vyos/admin-guide/vyos-troubleshooting/) - методология решения проблем


