🛠 Шпаргалка сетевых команд
Полный справочник команд, которые сетевой инженер использует каждый день. Каждая команда — отдельная карточка: что делает, когда применять, синтаксис и пример вывода. Можно открывать как чек-лист при работе или для подготовки к собеседованию.
Команды разбиты по 12 категориям. Если нужно «проверить, доходит ли пакет до сервера» — это раздел «Диагностика». Если «посмотреть таблицу маршрутизации» — раздел «Маршрутизация». Используй оглавление ниже для быстрой навигации.
📡 1. Диагностика связности
Самое первое, что делает инженер при жалобе «не работает» — проверяет, что вообще доходит до удалённого хоста и за какое время.
Что делает
Отправляет ICMP Echo Request на хост и ждёт Echo Reply. Показывает достижимость, RTT (время туда-обратно), долю потерь.
Когда применять
- Первая проверка «жив ли удалённый хост». Базовый smoke test.
- Измерение latency между точками (RTT в миллисекундах).
- Поиск потерь пакетов:
ping -c 100 hostи смотришь % packet loss. - Проверка MTU пути:
ping -M do -s 1472 host(DF=1, не разрешать фрагментацию). - Постоянный мониторинг во время работ:
ping -i 0.2 hostили ping без флагов в Linux.
Важно
- ICMP часто блокируется файрволом → «не пингуется» ≠ «недоступен».
- Высокий RTT при плотном трафике может означать bufferbloat, а не реальную медленную сеть.
- Размер пакета по умолчанию ~64 байта (8 ICMP + 56 data). Может маскировать MTU-проблемы.
Пример
Что делает
Показывает путь пакета от тебя до удалённого хоста через все промежуточные маршрутизаторы (hops). Использует трюк с TTL: первый пакет с TTL=1, дальше +1.
Когда применять
- «Высокий ping — где именно лагает» → видишь, какой хоп прибавляет задержку.
- «Пакеты не доходят» → видишь, на каком хопе они теряются.
- Проверка маршрутизации: «через какого провайдера трафик уходит наружу».
- Подтверждение, что failover на резервный канал произошёл (другой первый хоп).
Флаги
-n— не резолвить имена (быстрее, ничего не зависает на DNS).sudo traceroute -T— TCP-режим (если ICMP/UDP блокируется). Требует root: использует RAW-сокеты.sudo traceroute -I— ICMP echo вместо UDP. Тоже RAW → sudo.-p <port>— указать порт назначения (полезно с-Tдля специфичного порта).
⚠️ Дефолтный UDP-режим работает без root (использует unprivileged ports >33434). Но -T и -I требуют либо sudo, либо setcap cap_net_raw+ep $(which traceroute).
Пример
Что делает
Гибрид ping + traceroute: непрерывно пингует каждый хоп на пути и показывает % потерь и RTT по каждому в реальном времени.
Когда применять
- Незаменим для поиска интермиттентных проблем — обычный
tracerouteловит «снимок», аmtrкопит статистику. - «Где конкретно теряется 5% пакетов» — увидишь на каком хопе колонка
Loss%резко растёт. - Снять отчёт для тикета:
mtr -r -c 100 host→ распечатать вывод за 100 циклов.
Важно
Потери на промежуточных хопах ≠ реальные потери. Маршрутизаторы могут rate-limit'ить ICMP TTL Exceeded для control plane. Реальный показатель — Loss% на последнем хопе.
Пример
↑ Хоп 3 теряет 12% — но последний 0%. Скорее всего, маршрутизатор хопа 3 rate-limit'ит ICMP. Реальной проблемы для трафика нет.
Что делает
Пингует много хостов параллельно. Сильно быстрее, чем ping в цикле.
Когда применять
- Быстро узнать, какие IP в подсети живы:
fping -a -g 192.168.1.0/24. - Инвентаризация: какие хосты в VLAN отвечают.
- Регулярный health-check большого пула хостов в скрипте.
Пример
🔌 2. Интерфейсы и IP
Что делает
Показывает все сетевые интерфейсы и их IP-адреса (IPv4 и IPv6). Современная замена ifconfig.
Когда применять
- Узнать, какой у машины IP-адрес.
- Проверить, что DHCP выдал адрес (или присвоен ли статический).
- Увидеть VLAN-интерфейсы, bridge, bond, veth.
- Показать состояние интерфейса: UP/DOWN.
Связанные команды
ip addr add 10.0.0.5/24 dev eth0— добавить IP на интерфейс.ip addr del 10.0.0.5/24 dev eth0— удалить IP.ip -4 addr/ip -6 addr— только IPv4/IPv6.ip -br addr— компактный однострочный вывод.
Пример
Что делает
Управление L2-параметрами интерфейса: состояние up/down, MTU, MAC-адрес, статистика.
Когда применять
- «Поднять» / «опустить» интерфейс:
ip link set eth0 up/down. - Изменить MTU:
ip link set eth0 mtu 9000(для jumbo frames). - Сменить MAC:
ip link set eth0 address 02:01:02:03:04:05(LAA). - Посмотреть счётчики RX/TX, errors, drops:
ip -s link show eth0.
Пример
Что делает
Глубокая инспекция сетевой карты: скорость, дуплекс, статус линка, фичи offloading'а, статистика NIC, информация о SFP-трансивере.
Когда применять
- Узнать скорость и дуплекс линка:
ethtool eth0. - Проверить, что link физически поднят: строка
Link detected: yes. - Прочитать EEPROM трансивера (модель SFP, длина волны, температура):
ethtool -m eth0. - Включить/выключить offloading:
ethtool -K eth0 tso off gso off. - Драйвер и firmware NIC:
ethtool -i eth0. - Расширенные счётчики ошибок (rx_crc_errors, rx_no_buffer):
ethtool -S eth0.
Пример
🛣️ 3. Маршрутизация
Что делает
Показывает таблицу маршрутизации ядра. По ней ядро решает, куда отправить пакет.
Когда применять
- «Куда уходит default gateway» — первая строка обычно
default via X.X.X.X. - Понять, как пакет пойдёт до конкретной подсети (longest prefix match).
- Дебажить multi-WAN: какие маршруты активны на каком интерфейсе.
- Проверить policy-based routing:
ip route show table all.
Связанные
ip route add 10.0.0.0/24 via 192.168.1.1— добавить статический маршрут.ip route del 10.0.0.0/24— удалить маршрут.ip route replace 10.0.0.0/24 via 192.168.1.254— атомарно заменить (без drop пакетов).ip route show table all— все таблицы маршрутизации, включая policy-based.
⚠️ ip route flush cache не работает для IPv4 с ядра 3.6+ (route cache был удалён).
Для IPv6 в редких случаях ещё актуально.
Пример
Что делает
Показывает, как именно ядро отправит пакет на конкретный IP: через какой интерфейс, через какой шлюз, с каким source-адресом, по какой routing table.
Когда применять
- «Multi-homed сервер, не понимаю, через какую сетевуху уйдёт трафик» →
ip route get 8.8.8.8. - Дебаг policy-based routing — показывает, какая таблица сработала.
- Узнать source IP для коннекта на конкретный destination.
Пример
🏷️ 4. ARP и соседи L2
Что делает
Показывает ARP-таблицу (IPv4) и NDP-таблицу (IPv6). Соответствие IP↔MAC в локальной сети.
Когда применять
- «Хост не пингуется в одной подсети» → проверь, есть ли запись в ARP, и нет ли там
FAILED. - Сброс заглохшей записи:
ip neigh flush all(после смены MAC у gateway). - Поиск дубликатов MAC — если один MAC на двух IP, это уже плохо.
Состояния
REACHABLE— недавно подтверждён трафиком.STALE— давно не подтверждался, но запись валидна.FAILED— попытка резолва не удалась (хост не отвечает).INCOMPLETE— ARP-запрос в процессе.
Пример
Что делает
Отправляет ARP-запросы (не ICMP!) на target IP в локальной подсети. Работает на L2 — обходит файрволы, которые блокируют ICMP.
Когда применять
- «Хост не пингуется, файрвол блокирует ICMP» —
arpingпокажет, отвечает ли он на L2. - Проверка IP-конфликта (Duplicate Address Detection).
- Узнать MAC соседа, не зная заранее.
- Понять, реально ли хост находится в одной подсети с тобой.
Пример
🌐 5. DNS — резолвинг имён
Что делает
Главный инструмент сетевого инженера для работы с DNS. Гибкий, точный, показывает всё.
Когда применять
- Узнать IP домена:
dig example.com. - Проверить конкретный тип записи:
dig example.com MX(или A, AAAA, CNAME, TXT, NS). - Спросить конкретный DNS-сервер:
dig @8.8.8.8 example.com. - Только ответ без шума:
dig +short example.com. - Полная цепочка от root:
dig +trace example.com. - Проверить DNSSEC:
dig +dnssec example.com.
Пример
Что делает
Упрощённый аналог dig. Минимум синтаксиса, человекочитаемый вывод.
Когда применять
- Быстро проверить резолвинг в скрипте.
- Reverse DNS (IP → имя):
host 1.1.1.1.
Пример
Что делает
Управление и диагностика systemd-resolved — современным DNS-резолвером на большинстве дистрибутивов.
Когда применять
- Посмотреть, какие DNS-серверы реально используются (включая per-link):
resolvectl status. - Сбросить локальный DNS-кэш:
resolvectl flush-caches. - Проверить, какой DNS использовался для конкретного запроса:
resolvectl query example.com. - Дебаг split-DNS / VPN-resolver конфликтов.
🔗 6. Сокеты и порты — кто что слушает и куда коннектится
Что делает
Показывает открытые сокеты: listening (слушающие) и established (активные соединения). Современная замена netstat, в разы быстрее.
Когда применять
- «Какие порты сейчас слушаются на сервере»:
ss -tulnp. - «Сколько активных TCP-соединений к порту 443»:
ss -tan state established '( dport = :443 )' | wc -l. - «Кто открыл порт 8080»:
ss -tlnp | grep 8080— увидишь PID и имя процесса. - Дебаг TIME_WAIT-накопления:
ss -tan state time-wait | wc -l. - Подробная статистика TCP (cwnd, ssthresh, RTT):
ss -ti.
Флаги (запоминается как «туалет на ноге»)
-t— TCP.-u— UDP.-l— listening.-n— numeric (не резолвить имена).-p— показать процесс (нужны права root для чужих PID).-a— все сокеты.-s— суммарная статистика.
Пример
Что делает
«List open files» — показывает всё, что процессы держат открытым, включая сетевые сокеты.
Когда применять
- «Кто держит порт 80»:
sudo lsof -i :80. - «Какие коннекты открыл этот процесс»:
lsof -p <PID> -i. - Поиск утечки файловых дескрипторов.
Пример
🧪 7. Тесты подключения к портам и сервисам
Что делает
Универсальный инструмент для работы с TCP/UDP: открыть соединение, послушать порт, передать файл, проверить файрвол. «Universal Swiss Army knife».
Когда применять
- Быстрая проверка «открыт ли порт»:
nc -zv 1.2.3.4 443. Самый частый use case. - Сканирование диапазона портов:
nc -zv host 80-90. - Слушать порт (для теста файрвола):
nc -lvnp 8080на одной машине,nc target 8080на другой. - Передача файлов:
nc -l 1234 > out.bin←cat in.bin | nc host 1234. - Простой HTTP-запрос вручную:
echo -e "GET / HTTP/1.1\r\nHost: x.com\r\n\r\n" | nc x.com 80.
Флаги
-z— zero data (только проверить, не передавать).-v— verbose.-u— UDP вместо TCP.-l— listen mode.-n— не резолвить.-w sec— таймаут.
Пример
Что делает
Открывает интерактивное TCP-соединение к произвольному порту. Можно вручную набирать запросы (HTTP, SMTP, SSH-banner).
Когда применять
- Быстрая проверка порта, если
ncне установлен. - Посмотреть banner SMTP/POP3/IMAP-сервера (для диагностики совместимости).
- Послать HTTP-запрос вручную и увидеть raw-ответ.
Важно
Telnet как протокол — небезопасный, использовать только для отладки. SSH давно стандарт.
Пример
Что делает
Гибкая утилита для HTTP/HTTPS/FTP/etc. Сетевой инженер использует её каждый день для диагностики веб-сервисов.
Когда применять
- Только заголовки ответа:
curl -I https://example.com. - Полный лог запроса/ответа:
curl -v https://example.com. - Проверить конкретный backend по IP без DNS:
curl --resolve example.com:443:1.2.3.4 https://example.com. - Игнорировать невалидный TLS:
curl -k(для дебага self-signed). - Замер времени запроса:
curl -w "%{time_namelookup} %{time_connect} %{time_starttransfer}\n" -o /dev/null -s URL. - POST с JSON:
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL.
Пример
Что делает
Открывает TLS-соединение к серверу и показывает всё: версию TLS, выбранный cipher suite, цепочку сертификатов, ALPN-протокол.
Когда применять
- Проверить, какой сертификат отдаёт сервер (особенно при SNI mismatch).
- Узнать срок действия cert:
openssl s_client -connect host:443 | openssl x509 -noout -dates. - Проверить, поддерживается ли TLS 1.3:
openssl s_client -connect host:443 -tls1_3. - Дебаг handshake failure: видишь, на какой стадии падает.
Пример
🎯 8. Захват пакетов — tcpdump / tshark
Что делает
Захватывает пакеты на интерфейсе. Самый мощный инструмент диагностики: видишь точно, что реально идёт по проводу.
Когда применять
- «Доходит ли пакет до сервера» — слушаешь на сервере и смотришь.
- «Кто запрашивает / отвечает по протоколу X» — фильтруешь и видишь.
- Дебаг TLS-handshake, ARP-резолвинга, BGP, OSPF, всего.
- Запись pcap для последующего анализа в Wireshark.
Базовые флаги
-i IF— на каком интерфейсе слушать.-i any— на всех.-nn— не резолвить ни имена, ни порты (быстрее).-e— показать Ethernet-заголовок (MAC-адреса).-c N— захватить N пакетов и выйти.-w file.pcap— записать в файл для Wireshark.-r file.pcap— прочитать из файла.-v/-vv/-vvv— детальность.-X— hex+ASCII payload.
Полезные BPF-фильтры
host 1.2.3.4— трафик к/от хоста.src 1.2.3.4/dst 1.2.3.4— только src/dst.port 443— конкретный порт.tcp and port 443— TCP на 443.icmp— только ICMP.arp— только ARP.net 10.0.0.0/24— трафик в подсеть.not port 22— всё, кроме SSH (полезно когда сам по SSH сидишь).tcp[tcpflags] & (tcp-syn) != 0— только пакеты с SYN.
Пример
Что делает
Wireshark в командной строке — тот же движок диссектора, что в GUI. Понимает протоколы прикладного уровня (HTTP, DNS, TLS, OSPF, BGP) — в отличие от tcpdump, который ограничен в L7-разборе.
Когда применять
- Когда tcpdump уже не хватает, а GUI Wireshark на сервере не запустить.
- Извлечь конкретные поля из pcap в CSV для скрипта.
- Декодировать gRPC, HTTP/2, QUIC, MQTT.
Пример
⚡ 9. Замер скорости и throughput
Что делает
Клиент-серверная утилита для замера реальной пропускной способности линка. На одной стороне запускаешь сервер (-s), на другой клиента (-c).
Когда применять
- «Гигабитный линк — а скорость 200 Mbps. Где теряется» — iperf проверит чистую пропускную способность.
- Сравнение разных путей (через VPN vs напрямую).
- Тестирование TCP vs UDP throughput.
- Стресс-тест нового оборудования при приёмке.
Флаги
-s— режим сервера.-c host— режим клиента.-t 60— длительность теста (по умолчанию 10с).-u— UDP вместо TCP.-P 4— параллельные потоки (полезно для high-BDP линков).-R— реверс (сервер шлёт клиенту).-b 100M— ограничить bandwidth (для UDP).
Пример
Что делает
Замер скорости интернет-канала через speedtest.net (Ookla) из терминала. Не для внутренних замеров — только наружу.
Когда применять
- «Провайдер обещает 100 Mbps — а реально сколько» с сервера или роутера.
- Регулярный мониторинг канала в скрипте (по cron).
🛡️ 10. Файрвол — iptables / nftables
Что делает
Управление netfilter — встроенным файрволом ядра Linux. На современных дистрибутивах постепенно заменяется nftables, но iptables ещё повсюду.
Когда применять
- Посмотреть текущие правила:
sudo iptables -L -nv. - Посмотреть NAT-таблицу (DNAT/SNAT, MASQUERADE):
sudo iptables -t nat -L -nv. - Разрешить порт:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT. - Заблокировать IP:
sudo iptables -A INPUT -s 1.2.3.4 -j DROP. - Включить роутер-NAT:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE. - Сохранить правила (зависит от дистрибутива):
- Debian/Ubuntu (нужен пакет
iptables-persistent):sudo iptables-save > /etc/iptables/rules.v4 - RHEL/CentOS 7 (legacy):
sudo service iptables save→ пишет в/etc/sysconfig/iptables - Современные RHEL/Fedora: уже на
nftables+firewalld— см. карточкуnftниже.
Цепочки и таблицы
- Таблица
filter(по умолчанию):INPUT(входящие на хост),OUTPUT(исходящие от хоста),FORWARD(транзитные). - Таблица
nat:PREROUTING(DNAT),POSTROUTING(SNAT/MASQUERADE). - Таблица
mangle: маркировка пакетов для PBR.
Пример
Что делает
Современная замена iptables. Один синтаксис для IPv4+IPv6, лучшая производительность, атомарные обновления.
Когда применять
- Новый проект — пиши сразу на nft. Не плоди legacy.
- Посмотреть весь ruleset:
sudo nft list ruleset. - Конфиг хранится в
/etc/nftables.conf.
🟦 11. Cisco IOS — основные show-команды
Что делает
Показывает текущую активную конфигурацию устройства (в RAM). Команда №1 любого инженера.
Когда применять
- «А что сейчас настроено на этой коробке» — всегда сначала это.
- Целиком:
show running-config. - По интерфейсу:
show running-config interface Gi0/1. - По секции:
show running-config | section bgp. - Фильтр:
show run | include vlan.
Связанное
show startup-config— конфиг, который загрузится при reboot (в NVRAM).copy running-config startup-configилиwrite memory/wr— сохранить.
Что делает
Подробная информация об интерфейсе: состояние, скорость, дуплекс, ошибки, счётчики, MTU.
Когда применять
- «Линк поднят, всё нормально?» — целиком
show interfaces Gi0/1. - Сводка по всем портам:
show interfaces status. - Подписи к портам:
show interfaces description. - Только ошибки:
show interfaces counters errors. - Статистика SFP/трансивера:
show interfaces Gi0/1 transceiver detail.
На что смотреть
line protocol is up— L2 живой.input errors,CRC,runts,giants— проблемы L1.output drops— переполнение очереди (нужен QoS).
Что делает
Показывает таблицу маршрутизации устройства. Главная команда после show running.
Когда применять
- «Куда роутер шлёт пакеты на этот префикс»:
show ip route 10.0.0.0/24. - Только BGP-маршруты:
show ip route bgp. - Только OSPF:
show ip route ospf. - Только подключённые:
show ip route connected. - Default-маршрут: смотри строку
Gateway of last resort is X.X.X.X to network 0.0.0.0в шапке выводаshow ip route. Это «куда уходит трафик, не подпадающий под более специфичные маршруты».
Запись S* 0.0.0.0/0 [1/0] via X.X.X.X со звёздочкой — это и есть candidate default route. * в выводе всегда означает «активный default».
Условные обозначения слева
C— connected (прямо подключённая сеть).S— static (прописана вручную).O— OSPF.B— BGP.D— EIGRP.R— RIP.*— candidate default route.
Что делает
Показывает все VLAN на коммутаторе и какие порты к каким привязаны (access).
Когда применять
- «В каком VLAN сейчас этот порт» — основа любого L2-troubleshooting.
- Сводка:
show vlan brief. - Один VLAN:
show vlan id 10.
Что делает
Показывает CAM-таблицу свитча: какие MAC видны на каких портах.
Когда применять
- «На каком порту коробка с этим MAC» —
show mac address-table | include aabb.ccdd. - «MAC flapping в логах» — увидишь, между какими портами скачет.
- «Кто включён в порт Gi0/5» —
show mac address-table interface Gi0/5.
Что делает
Показывает все trunk-порты, их native VLAN и список разрешённых VLAN на trunk'е.
Когда применять
- «VLAN 50 не проходит между свитчами» — проверь, разрешён ли он в
allowed vlan. - Native VLAN mismatch warning — увидишь сразу.
Что делает
Показывает топологию Spanning Tree: кто root bridge, какие порты forwarding/blocking, кто root для каждого VLAN.
Когда применять
- «После подключения нового свитча всё легло» — проверь, не сменился ли root.
- «Один из uplink'ов не работает» — может быть STP block.
- Сводка:
show spanning-tree summary. - Кто root:
show spanning-tree root.
Что делает
Показывает соседей в L2-сегменте: имя устройства, модель, port ID, на каком твоём порту он висит. Базовый инструмент инвентаризации топологии.
CDP vs LLDP — в чём разница
- CDP (Cisco Discovery Protocol) — проприетарный Cisco. Работает только между Cisco-устройствами (и теми, кто реализовал поддержку — некоторые VoIP-телефоны).
- LLDP (Link Layer Discovery Protocol, IEEE 802.1AB) — открытый стандарт. Работает между любыми вендорами: Cisco, Juniper, MikroTik, HPE, Arista, Mellanox, Linux-серверами с
lldpd. - В смешанной сети — всегда включай LLDP, иначе не увидишь не-cisco соседей.
Когда применять
- «Куда воткнут этот свитч на самом деле»:
show cdp neighbors detailпокажет имя соседа, его IP, модель, версию IOS. - Multi-vendor среда:
show lldp neighbors detail— единственный универсальный способ. - Документирование топологии без визита в стойку.
- Поиск «лишних» подключений — кто-то подключил незарегистрированный свитч?
Включение LLDP на Cisco
На Linux (узнать, что висит на порту)
Что делает
Состояние BGP/OSPF-соседей и обмена маршрутами. Для BGP должно быть Established, для OSPF — Full.
Базовое — состояние сессии
show ip bgp summary— все BGP-пиры в одной таблице, состояние, PfxRcd (сколько получено).show ip ospf neighbor— все OSPF-соседи и их state.show ip bgp neighbors 1.2.3.4— полная статистика по конкретному соседу.
Углублённый BGP-troubleshooting (must know)
Главный вопрос при дебаге BGP — «что мы шлём соседу» vs «что он шлёт нам». Это две разные вещи и проверяются раздельно:
show ip bgp neighbors 1.2.3.4 advertised-routes— что мы анонсируем соседу. Если префикса нет — проверь route-map / prefix-list на исходе.show ip bgp neighbors 1.2.3.4 routes— что мы приняли от соседа (после фильтров на входе).show ip bgp neighbors 1.2.3.4 received-routes— что сосед нам прислал до фильтров (требуетsoft-reconfiguration inbound).show ip bgp 10.0.0.0/24— все известные пути к конкретному префиксу, помечен best path.
Типичные сценарии
- «Сосед получает не тот префикс» →
advertised-routesпокажет, что мы шлём на самом деле. - «Префикс в BGP-таблице есть, но не в RIB» → проверь best-path selection и AD.
- «BGP в Idle/Active не поднимается» →
show ip bgp neighbors X, смотриLast resetиBGP state.
Пример
Что делает
Загрузка CPU и память устройства. На железных свитчах/роутерах высокий CPU == беда.
Когда применять
- «Свитч тормозит» —
show processes cpu sorted. - «Утечка памяти» —
show processes memory sorted. - История за 60с/час:
show processes cpu history.
Что делает
Системный лог устройства. Сообщения уровня INFO, WARN, ERROR, CRITICAL.
Когда применять
- «Интерфейс flapped в 14:32» —
show logging | include eth0/1. - «Кто-то стал root в STP» —
show logging | include STP. - OSPF/BGP события:
show logging | include OSPF.
🌍 12. IPv6 — основные команды
IPv6 — уже не «когда-нибудь потом», а реальность mobile-операторов (T-Mobile, Verizon на IPv6-only), новых ДЦ и cloud-провайдеров. Базовый набор обязателен.
Что делает
То же, что обычный ping, но через ICMPv6. На многих системах ping сам определяет версию по адресу, флаг -6 явно говорит «использовать IPv6».
Когда применять
- Проверка IPv6-связности:
ping -6 2606:4700:4700::1111(Cloudflare DNS). - Проверка link-local адреса — обязательно с интерфейсом:
ping -6 fe80::1%eth0(синтаксис%интерфейс). - Дебаг dual-stack: «по IPv4 работает, по IPv6 — нет».
Пример
Что делает
То же, что для IPv4, но для IPv6. Просмотр маршрутов, адресов, таблицы NDP (заменяет ARP в IPv6).
Когда применять
ip -6 addr— какие IPv6-адреса у хоста (включая link-localfe80::/10, который всегда есть).ip -6 route— маршруты IPv6, включая default::/0.ip -6 neigh— NDP-кэш (аналог ARP). Состояния:REACHABLE / STALE / FAILED.- «Получил ли я RA (Router Advertisement) от роутера» →
ip -6 route | grep defaultпокажет источник.
Пример
Что делает
IPv6-аналоги show ip route и show ip arp. NDP-кэш Cisco называет «IPv6 neighbors».
Когда применять
show ipv6 route— таблица маршрутизации IPv6. Условные обозначения те же:C/S/O/B/D/L.show ipv6 route summary— сколько маршрутов какого типа в таблице.show ipv6 neighbors— кэш соседей (REACH / STALE / DELAY / PROBE).show ipv6 interface brief— IPv6-адреса по интерфейсам.show ipv6 ospf neighbor/show bgp ipv6 unicast summary— соседи OSPFv3 / BGP IPv6.
Включение IPv6 на интерфейсе Cisco
🏢 13. VRF — изоляция маршрутизации (Enterprise / ISP)
VRF (Virtual Routing and Forwarding) — это несколько независимых таблиц маршрутизации на одном устройстве. На L3 это аналог VLAN на L2: разные клиенты (или сегменты) живут в разных VRF и не видят друг друга, даже если у них одинаковые IP. Основа MPLS L3VPN и multi-tenant провайдерских сетей.
Что делает
Любые операции маршрутизации в Cisco — внутри конкретной VRF. Без указания vrf работаешь в глобальной таблице.
Когда применять
- «В этой VRF есть нужный префикс»:
show ip route vrf CUSTOMER-A 10.0.0.0/24. - Проверка связности изнутри VRF:
ping vrf CUSTOMER-A 10.0.0.1. - Trace через конкретную VRF:
traceroute vrf CUSTOMER-A 10.0.0.1. - Все интерфейсы в VRF:
show ip interface brief | section CUSTOMER-Aилиshow vrf detail. - BGP-таблица VPNv4:
show ip bgp vpnv4 vrf CUSTOMER-A.
Базовая настройка VRF
Пример
Что делает
Запускает произвольную команду в контексте определённой Linux VRF. Без этого ping/traceroute/curl уходят через глобальную таблицу, минуя VRF.
Когда применять
- «Пинг с роутера должен пойти через management VRF» →
sudo ip vrf exec mgmt ping 8.8.8.8. - SSH из конкретной VRF:
sudo ip vrf exec CUSTOMER-A ssh user@10.0.0.5. - curl через VRF:
sudo ip vrf exec CUSTOMER-A curl https://internal.example.com. - Связанное:
ip -d link show type vrf— список всех VRF на хосте. ip route show vrf <name>— таблица маршрутизации конкретной VRF.
Пример
🛠 14. Утилиты сетевика — backup, сканирование, OSINT
Что делает
Бэкап текущего конфига устройства на внешний сервер. Базовая гигиена: перед любым изменением — снимай бэкап.
Когда применять
- Перед опасными изменениями (новые ACL, перестройка BGP, обновление IOS).
- Регулярные ночные бэкапы по cron / automation (rancid, oxidized, NetBox).
- «Что было до того, как кто-то накосячил» — diff текущего и вчерашнего бэкапа.
Варианты
copy running-config tftp:— на TFTP-сервер (legacy, без авторизации, без шифрования).copy running-config scp:— по SSH/SCP (современный, шифрованный, с паролем/ключом).copy running-config flash:— локальный snapshot во встроенную флешку.copy startup-config running-config— откатить runtime к startup (опасно, без подтверждения rebooot).
Пример
Связанное
show archive— встроенный механизм версионирования Cisco.archive config— снять snapshot во flash.- Junos:
save config /tmp/fileилиsave | display set | saveдля set-формата.
Что делает
Мощный сканер портов и сервисов. Когда одного nc -zv мало (например, нужно проверить целую подсеть или диапазон портов) — это nmap.
Когда применять
- «Какие хосты живы в подсети + какие порты открыты»:
nmap -sS 192.168.1.0/24. - Полное сканирование одного хоста:
nmap -sS -p- -A 10.0.0.5(все 65535 портов + детект ОС и сервисов). - Диагностика файрвола:
nmap -sS -p 22,80,443,3306 host— открыт ли конкретный набор портов. - Когда хост не отвечает на ICMP:
nmap -Pn host(не пытаться пинговать перед сканом). - UDP-сканирование (медленно, но иногда нужно):
nmap -sU -p 53,123,161 host.
Важно
- Большинство SYN-сканов (
-sS) требуют root. - Скан чужих сетей без разрешения = нелегально во многих странах. Только своя инфра / тестовые лабы / с явного согласия.
Пример
Что делает
Узнать свой внешний (публичный) IP с хоста, который сидит за NAT. Просто, без чтения логов на роутере.
Когда применять
- «Какой у меня снаружи IP» — особенно из туннеля/VPN.
- «В какую страну меня видят» —
curl ipinfo.io/jsonвернёт страну, ASN, провайдера. - Проверка работы NAT/Hairpin/VPN.
- В скрипте: записать публичный IP в DNS для DDNS.
Альтернативы
curl ifconfig.me— простой IP, одна строка.curl ifconfig.co— то же, IPv6-aware.curl ipinfo.io— JSON с гео, ASN, hostname.dig +short myip.opendns.com @resolver1.opendns.com— через DNS, без HTTP.
Пример
Что делает
Информация из регистратур (ARIN / RIPE / APNIC / AFRINIC / LACNIC): кому принадлежит IP-блок, какой ASN, контакты, abuse-mail.
Когда применять
- «С этого IP идут странные запросы — кому жаловаться» →
whois 1.2.3.4 | grep -i abuseнайдёт abuse-контакт провайдера. - Определить, какой провайдер:
whois 8.8.8.8→ Google LLC. - Узнать ASN по IP:
whois -h whois.cymru.com " -v 8.8.8.8"(Team Cymru lookup). - Информация по AS-номеру:
whois AS15169. - Контакты владельца домена (часто скрыты privacy-протекцией):
whois example.com.
Пример
🔍 15. Сценарии «не работает» — какие команды куда применять
Самое сложное в работе сетевика — не знать команды, а знать, какую команду применить первой. Вот частые сценарии и порядок действий.
ping -c 4 8.8.8.8— проверь, что хоть что-то наружу работает.ping -c 4 192.168.1.1— проверь gateway.ip route— есть ли default route?ip neigh— резолвится ли ARP gateway?traceroute -n <цель>— на каком хопе теряется.- На целевом хосте:
sudo tcpdump -i any icmp— доходит ли запрос вообще? - Если не доходит — проверь файрвол на пути:
sudo iptables -L -nv.
nc -zv -w 3 host port— открыт ли порт.- Если
refused— сервис не слушает или crashed. - Если
timed out— файрвол на пути или сервис висит. - На сервере:
ss -tlnp | grep :port— слушает ли вообще. - На сервере:
sudo tcpdump -i any port <port>— доходят ли SYN? - Если SYN доходят, RST/ACK нет — проблема в приложении.
- Если SYN не доходят — что-то блокирует.
dig @8.8.8.8 example.com— резолвит ли публичный DNS?- Если да, а локально нет — проблема в твоём resolver'е.
cat /etc/resolv.confилиresolvectl status— какие DNS настроены.resolvectl flush-caches— сбросить кэш.nc -zv -w 3 <dns-server> 53— доступен ли DNS-сервер вообще.- Внутренние домены: проверь split-DNS, VPN-routing.
nc -zv host 443— TCP-коннект проходит?openssl s_client -connect host:443 -servername host— что говорит handshake.- Если cert expired / hostname mismatch — увидишь в выводе.
- Если cipher suite mismatch — попробуй явно:
openssl s_client -tls1_2 -cipher ECDHE-RSA-AES128-GCM-SHA256. - Время на хосте:
date— если часы убежали на год вперёд, cert будет невалиден.
ethtool eth0— Speed и Duplex что показывают? (полнодуплекс 1000 — норма).ethtool -S eth0 | grep -i error— растут ли ошибки?ip -s link show eth0— RX/TX dropped, errors.iperf3 -c host -t 30— чистая пропускная (TCP).- Если throughput плохой, retransmit'ы много (
ss -ti) → проблема пути. - Если TX errors на NIC → плохой кабель / трансивер / порт.
- Проверь, что маска у обеих сторон одинаковая (
ip addr show). arping -I eth0 <ip>— есть ли L2-ответ?ip neigh— есть запись?- На свитче:
show mac address-table | include <mac>— на каком порту? show vlan brief— оба порта в одном VLAN?show interface trunk— если хосты на разных свитчах, VLAN в trunk allowed?- На целевом хосте:
iptables -L INPUT -nv— не блокирует ли файрвол?
- Снизу вверх по OSI. Сначала L1 (кабель, линк), потом L2 (VLAN, MAC), потом L3 (IP, маршрут), потом L4 (порт), и только потом L7 (приложение).
- Изменяй одно за раз. Если потрогал три вещи и заработало — не знаешь, что починилось.
- Слушай в двух местах. tcpdump на источнике и на получателе одновременно — мгновенно понятно, где пакет теряется.
- Сохраняй вывод. Команды → файл. Перед изменением конфига —
show running-configв текст. - Сравнивай с рабочим. Если есть второй порт/свитч/линк, который работает — diff конфигов.