🗺️ Путеводитель по сетям Windows: от пакета до сервера

Каждый раз, когда ты открываешь сайт, твой компьютер совершает маленькое чудо. Он упаковывает твой запрос, отправляет его в путешествие через десятки устройств и получает ответ — всё за доли секунды. И всем этим управляет таблица маршрутизации.

Изучив эту статью, ты научишься читать её как рентгеновский снимок. Но это не точно.

Как читать таблицы маршрутизации, понимать UDP, TTL и заставллять трафик ходить туда, куда нужно

Автор: Твой братишка-админ


📚 Оглавление

  1. Глава 1: Три кита сетей — ICMP, TCP, UDP
  2. Глава 2: Анатомия IP-пакета
  3. Глава 3: Таблица маршрутизации — карта твоего трафика
  4. Глава 4: Инструменты управления маршрутами (route)
  5. Глава 5: Магия масок (netmask)
  6. Глава 6: Работа с интерфейсами (netsh)
  7. Глава 7: Как ходит трафик от тебя до сервера и обратно
  8. Глава 8: Диагностика и отладка
  9. Глава 9: Шпаргалка команд

🌐 Глава 1: Три кита сетей — ICMP, TCP, UDP

В интернете данные передаются разными способами. Представь, что тебе нужно передать важное сообщение.

📨 TCP (Transmission Control Protocol)

Аналогия: Заказное письмо с уведомлением о вручении.

Ты отправляешь письмо, почтальон проверяет, что адресат дома, вручает, расписывается и приносит тебе подтверждение. Если письмо потерялось — ты отправляешь снова. Надёжно, но медленно.

Где используется: Веб-сайты (HTTP), email, скачивание файлов, мессенджеры.

В консоли видно как:

text

Flags [S]  — SYN (запрос на соединение)
Flags [.]  — ACK (подтверждение)
Flags [P]  — PUSH (данные)
Flags [F]  — FIN (завершение)

📣 UDP (User Datagram Protocol)

Аналогия: Крик в толпе или телеграмма.

Ты крикнул — и пошёл дальше. Не знаешь, услышали тебя или нет. Быстро, но ненадёжно.

Где используется: DNS-запросы, видео-звонки, онлайн-игры, стриминг.

Почему это важно: DNS-серверы работают на UDP-порту 53. Поэтому nslookup может не работать, даже если ping идёт — это разные протоколы!

🛎️ ICMP (Internet Control Message Protocol)

Аналогия: Служебный курьер, который проверяет адрес.

Он не носит письма, он только стучится и ждёт ответа «Есть кто?».

Где используется: pingtraceroute, сообщения об ошибках.

Важно: Именно ICMP использует команда ping, поэтому она может работать, даже если сайты не открываются.


📦 Глава 2: Анатомия IP-пакета

Когда ты отправляешь данные, они не летят одним куском. Они нарезаются на пакеты. Каждый пакет — это конверт с адресами и содержимым.

text

┌─────────────────────────────────┐
│ IP-заголовок │
├─────────────────────────────────┤
│ Откуда: 192.168.1.167 │
│ Куда: 8.8.8.8 │
│ TTL: 64 │
│ Протокол: UDP (17) или TCP (6) │
├─────────────────────────────────┤
│ Данные (payload) │
└─────────────────────────────────┘

⏱️ TTL (Time To Live) — счётчик жизней пакета

Каждый раз, когда пакет проходит через маршрутизатор (хоп), его TTL уменьшается на 1. Когда TTL доходит до 0, пакет уничтожается. Это нужно, чтобы пакеты не бродили по сети вечно.

TTL = 64 → обычно ставят Linux, VPN-серверы, Docker
TTL = 128 → обычно ставят Windows
TTL = 255 → сетевые устройства (роутеры)

Как использовать: Если при включённом VPN у тебя ping 8.8.8.8 показывает TTL=64, а без VPN TTL=106 (или 128) — ты точно знаешь, что трафик идёт через VPN.


🗺️ Глава 3: Таблица маршрутизации — карта твоего трафика

Таблица маршрутизации — это навигатор Windows. Когда компьютеру нужно отправить пакет, он смотрит в таблицу и решает: «А через какую дверь мне выйти?».

Посмотрим на типичную таблицу:

text

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.1.1    192.168.1.167     50
          0.0.0.0          0.0.0.0         On-link         10.33.0.2     10
          1.0.0.0        255.0.0.0         On-link         10.33.0.2      6
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
      192.168.1.0    255.255.255.0         On-link     192.168.1.167    306

🧩 Как читать таблицу

КолонкаЧто означаетПример
Network DestinationСеть назначения0.0.0.0 (все сети)
NetmaskМаска сети0.0.0.0 (все адреса)
GatewayКуда отправлять пакет192.168.1.1 (роутер)
InterfaceЧерез какой интерфейс10.33.0.2 (VPN-адаптер)
MetricПриоритет (чем меньше, тем важнее)50106

🎯 Главное правило Windows

Windows просматривает таблицу сверху вниз и выбирает самое точное совпадение с наименьшей метрикой .

Пример:

  • Если нужно отправить пакет на 8.8.8.8, Windows ищет:
    • Сначала точное совпадение 8.8.8.8 → нет
    • Потом сеть 8.8.8.0/24 → есть, метрика 6 → идёт через VPN
    • Иначе попадёт в 0.0.0.0/0 → через роутер

🚨 Почему у нас всё ломалось

Когда tun2socks создавал кучу маршрутов типа 1.0.0.0/82.0.0.0/7 и т.д., Windows начинала отправлять туда все пакеты, которые подходили под эти маски. А метрика 6 была ниже, чем у наших специальных маршрутов (1), поэтому они не использовались.


🛠️ Глава 4: Инструменты управления маршрутами (route)

route print — просмотр таблицы

cmd

route print -4           # только IPv4
route print -6           # только IPv6
route print -4 | findstr "0.0.0.0"   # поиск конкретных маршрутов

route add — добавление маршрута

cmd

route add 8.8.8.0 mask 255.255.255.0 10.33.0.2 metric 5
  • 8.8.8.0 — сеть назначения
  • mask 255.255.255.0 — маска (определяет размер сети)
  • 10.33.0.2 — шлюз (куда отправлять)
  • metric 5 — приоритет (чем меньше, тем важнее)
  • Без -p — маршрут исчезнет после перезагрузки
  • С -p — постоянный маршрут

route delete — удаление маршрута

cmd

route delete 8.8.8.0
route delete 0.0.0.0 mask 0.0.0.0 192.168.1.1

🧠 Важный приём: удаление по маске

Если маршрутов много, можно удалить все, ведущие через определённый шлюз:

cmd

route delete 0.0.0.0 mask 0.0.0.0 10.33.0.2

🎭 Глава 5: Магия масок (netmask)

Маска определяет, какая часть IP-адреса относится к сети, а какая — к устройству.

text

IP:     192.168.1.167
Маска:  255.255.255.0

Это значит: первые 3 числа (192.168.1) — сеть, последнее (167) — устройство.

📊 Популярные маски

МаскаCIDRСколько адресовПример назначения
255.255.255.255/321Конкретный IP
255.255.255.0/24256Домашняя сеть
255.255.0.0/1665536Большая сеть
255.0.0.0/816 млнОгромная сеть

Почему 1.0.0.0 mask 255.0.0.0 — это плохо?
Это значит: «Все IP, начинающиеся с 1 (от 1.0.0.0 до 1.255.255.255), отправляй через VPN». А таких адресов — 16 миллионов! Туда попадает половина интернета.


🔧 Глава 6: Работа с интерфейсами (netsh)

netsh — мощнейший инструмент для управления сетью из командной строки.

Просмотр интерфейсов

cmd

netsh interface show interface

Узнать имя интерфейса (важно для DNS!)

cmd

netsh interface show interface

Важно: Имя интерфейса (например, tun2) стабильно, а цифровой индекс (например, 43) может меняться. Всегда работай по имени!

Настройка DNS

cmd

# Установить основной DNS
netsh interface ip set dns name="tun2" static 8.8.8.8 validate=no

# Добавить запасной DNS
netsh interface ip add dns name="tun2" 1.1.1.1 index=2 validate=no

# Посмотреть текущие DNS
netsh interface ip show dns name="tun2"

Параметр validate=no — отключает проверку доступности DNS-сервера. Иначе команда может падать с ошибкой, если сеть ещё не поднялась.

Сброс всех настроек интерфейса

cmd

netsh interface ip delete dns name="tun2" all

🔄 Глава 7: Как ходит трафик от тебя до сервера и обратно

Давай проследим путь одного пакета.

Шаг 1: Ты открываешь сайт

Браузер говорит: «Мне нужен IP-адрес google.com«.

Шаг 2: DNS-запрос

Система смотрит в таблицу маршрутизации:

text

Куда: 8.8.8.8 (порт 53, UDP)

Находит маршрут 8.8.8.0/24 → шлюз 10.33.0.2 (VPN-адаптер)

Шаг 3: Инкапсуляция

Пакет заворачивается в VPN-шифрование и отправляется на реальный интерфейс.

Шаг 4: Получение ответа

Сервер 8.8.8.8 отвечает. Пакет приходит на VPN-сервер, расшифровывается и отправляется тебе.

Шаг 5: Применение правил firewall

В этот момент в игру вступает KillSwitch. Если он настроен блокировать UDP-порты, кроме исключений — пакет может быть отброшен.


🕵️ Глава 8: Диагностика и отладка

Цепочка проверок при проблемах

  1. Есть ли связь с сервером?cmdping 172.29.172.1Если нет — VPN не поднялся.
  2. Ходит ли трафик в интернет?cmdping 8.8.8.8Если да — базовая связность есть.
  3. Работает ли DNS?cmdnslookup google.com nslookup google.com 8.8.8.8 # принудительно через 8.8.8.8Если nslookup не работает, а ping 8.8.8.8 работает — проблема в DNS/UDP.
  4. Проверка конкретного порта и протоколаcmdtest-netconnection 8.8.8.8 -port 53 -InformationLevel DetailedTcpTestSucceeded: True — TCP работает, UDP может быть заблокирован.
  5. Анализ таблицы маршрутизацииcmdroute print -4Ищи:
    • Два маршрута 0.0.0.0 → конфликт
    • Маршруты с масками /8, /7, /6 → мусор от VPN
    • Маршрут к твоему DNS с низкой метрикой

📝 Глава 9: Шпаргалка команд

Маршруты (route)

cmd

route print -4                         # показать таблицу IPv4
route add 8.8.8.0 mask 255.255.255.0 10.33.0.2 metric 5   # добавить маршрут
route add -p 0.0.0.0 mask 0.0.0.0 10.33.0.2 metric 5      # постоянный маршрут
route delete 8.8.8.0                    # удалить маршрут
route delete 0.0.0.0 mask 0.0.0.0 192.168.1.1   # удалить конкретный

Интерфейсы и DNS (netsh)

cmd

netsh interface show interface           # список интерфейсов
netsh interface ip show dns name="tun2"  # показать DNS для интерфейса
netsh interface ip set dns name="tun2" static 8.8.8.8 validate=no
netsh interface ip add dns name="tun2" 1.1.1.1 index=2 validate=no
netsh interface ip delete dns name="tun2" all  # сбросить DNS

Диагностика

cmd

ping -n 4 8.8.8.8                       # 4 пинга
ping -f -l 1472 8.8.8.8                 # проверить MTU (флаг "не фрагментировать")
nslookup google.com                      # системный DNS
nslookup google.com 8.8.8.8              # принудительно через 8.8.8.8
nslookup -vc google.com 8.8.8.8          # использовать TCP вместо UDP
test-netconnection 8.8.8.8 -port 53 -InformationLevel Detailed
tracert 8.8.8.8                          # проследить путь пакета

Сброс сети (когда всё сломалось)

cmd

netsh int ip reset
netsh winsock reset
ipconfig /flushdns

🎯 Заключение

Теперь ты понимаешь:

  • ✅ Почему ping работает, а сайты нет (ICMP vs UDP)
  • ✅ Как читать таблицу маршрутизации
  • ✅ Как TTL выдает VPN
  • ✅ Почему маски /8 ломают интернет
  • ✅ Как заставить Windows использовать правильные DNS
  • ✅ Где искать проблему, когда всё сломалось
Anton Derbushev
Anton Derbushev
Статей: 43

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *