Маршрут обучения
Что читать и в каком порядке
Не начинайте с RFC. RFC — точная спецификация для реализации и проверки, но не лучший первый учебник. Сначала пройдите вводный материал, затем вернитесь к стандарту по конкретному вопросу.
Адресация
IP-адрес, подсеть и CIDR
IPv4-адрес — 32-битный адрес сетевого интерфейса. Запись 192.168.50.34/24 объединяет адрес узла и длину сетевого префикса: первые 24 бита описывают сеть, оставшиеся 8 — адрес внутри неё.
192.168.50.34 | Адрес конкретного интерфейса |
/24 | Длина префикса; эквивалент маски 255.255.255.0 |
192.168.50.0/24 | Вся подсеть; в обычной /24 адреса узлов — .1–.254 |
0.0.0.0/0 | Любой IPv4-адрес; используется default route |
Частные диапазоны RFC 1918 не маршрутизируются в публичном интернете: 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16. Qeli-пулы и домашние LAN должны быть разными и не пересекаться.
IP принадлежит интерфейсу, а CIDR описывает сеть. 10.9.0.7 — один адрес клиента; 10.9.0.0/24 — весь VPN-пул. Ошибка между ними меняет один маршрут на сотни адресов.
Уровень L3
Как компьютер выбирает маршрут
Для адреса назначения система ищет самое точное совпадение в таблице маршрутов. Маршрут 192.168.50.0/24 точнее 0.0.0.0/0, поэтому будет выбран первым. При одинаковом префиксе учитываются metric и политика платформы.
| Поле | Что означает |
| Назначение | IP или CIDR, для которого действует запись |
| Следующий узел | Роутер, которому передать пакет дальше |
| Интерфейс | Физический NIC или виртуальный TUN, через который отправить пакет |
metric | Приоритет среди подходящих маршрутов одного уровня |
безопасная проверка маршрута в Linux
ip -br address
ip -4 route
ip route get 192.168.50.10
Связь всегда двусторонняя. Прямой маршрут доставляет запрос, но ответу нужен обратный путь. Для LAN за Qeli-сервером домашний роутер должен знать маршрут к pool.cidr через LAN-адрес сервера.
Два разных механизма
Маршрутизация и NAT — не одно и то же
| Маршрутизация | NAT |
| Что делает | Выбирает следующий путь и сохраняет адреса | Изменяет исходный или конечный адрес пакета |
| Обратный путь | Должен быть явно известен сети | Состояние соединения скрывает внутреннюю сеть |
| Где применять | LAN, site-to-site, управляемые сети | Выход частного пула в интернет или неизменяемая внешняя сеть |
| Компромисс | Нужна настройка всех маршрутов | Теряются исходные адреса и прозрачность журналов |
Правило для документации Qeli: если обеими сетями можно управлять, показываем маршрутизацию и обратный маршрут. NAT используем для интернет-egress или обозначаем как вынужденный запасной вариант.
От теории к конфигу
Как сетевые понятия называются в Qeli
| Ключ | Роль |
tun.address | Адрес серверной стороны виртуальной сети |
pool.cidr | VPN-подсеть и диапазон адресов клиентов |
route | Маршрут, который сервер передаёт профилю или пользователю |
gateway | Локальный выбор клиента: split или default route через Qeli |
include / exclude | Локальные сети внутри или вне туннеля |
client_subnet | Сеть, находящаяся за конкретным клиентом |
allowed_networks | ACL: куда пользователь имеет право отправлять пакеты |
routing.forward_private | Разрешение серверу пересылать пакеты между TUN и частными сетями без NAT |
routing.nat.enabled | Подмена исходного адреса для интернет-egress; не замена маршрутам |
Открыть полное руководство по маршрутизации Qeli →
Виртуальный интерфейс
TUN и путь пакета через Qeli
TUN передаёт программе IP-пакеты уровня L3; TAP передаёт Ethernet-кадры уровня L2. Обычный Qeli-туннель работает с TUN: операционная система маршрутизирует пакет в виртуальный интерфейс, Qeli читает его, шифрует и отправляет по TCP или UDP.
| 1 | Приложение создаёт пакет к IP назначения |
| 2 | Таблица маршрутов выбирает Qeli TUN |
| 3 | Клиент Qeli шифрует пакет и помещает его в транспорт |
| 4 | Сервер расшифровывает пакет и маршрутизирует дальше |
| 5 | Ответ проходит тот же логический путь в обратную сторону |
Транспорт не заменяет маршрут. TCP/UDP доставляет зашифрованные данные между клиентом и сервером, но выбор пакетов для туннеля всё равно делает таблица маршрутов ОС.
Несущий канал
TCP, UDP, QUIC и порты
| Термин | Что означает | В Qeli |
| TCP | Надёжный упорядоченный поток с повторной передачей | reality-tls, fake-tls, obfs, plain |
| UDP | Отдельные датаграммы без гарантии доставки и порядка | udp-fake-tls, udp-quic, udp-obfs |
| Порт | Номер службы внутри TCP или UDP; протокол является частью адресации | bind.port; TCP 443 и UDP 443 — разные точки входа |
| QUIC | Стандартный защищённый транспорт поверх UDP | udp-quic использует QUIC-подобное оформление трафика; это не HTTP/3-сервер общего назначения |
Сравнить все транспортные режимы Qeli →
Размер и имена
MTU, MSS, PMTU и DNS
| MTU | Максимальный IP-пакет для интерфейса без фрагментации; у туннеля меньше места из-за внешних заголовков |
| MSS | Максимальная TCP-полезная нагрузка в одном сегменте; обычно MTU минус IP/TCP-заголовки |
| PMTU | Минимальный допустимый MTU на всём пути; неверное значение проявляется зависанием крупных передач |
| DNS | Система преобразования имён в IP-адреса; маршрут применяется уже к полученному адресу |
Безопасный старт Qeli: mtu = 0; для UDP оставьте mtu_probe = true. Серверный MSS clamp защищает TCP от PMTU-чёрных дыр. DNS-прокси Qeli отвечает за резолвинг, но не превращает доменное имя в правило маршрутизации.
Защита канала
Какие криптографические системы встречаются в Qeli
| Примитив | Назначение | Стандарт |
| X25519 | Классический обмен ключами на эллиптической кривой | RFC 7748 |
| ML-KEM-768 | Постквантовый механизм инкапсуляции ключей | NIST FIPS 203 |
| ChaCha20-Poly1305 | AEAD: шифрование пакета и проверка целостности | RFC 8439 |
| Argon2id | Устойчивое к перебору получение и хранение парольных значений | RFC 9106 |
| TLS 1.3 | Стандартный защищённый канал режима reality-tls | RFC 8446 |
Стандарт примитива не является аудитом продукта. RFC и FIPS объясняют алгоритм; безопасность Qeli также зависит от реализации, управления ключами, конфигурации, платформы и модели угроз.
Лаборатория без изменений
Команды, с которых стоит начать
Linux · read-only
ip -br address
ip -4 route
ip route get 1.1.1.1
ss -lntup
tracepath 1.1.1.1
Windows · PowerShell
Get-NetIPAddress -AddressFamily IPv4
Get-NetRoute -AddressFamily IPv4
Test-NetConnection vpn.example.com -Port 443
Читайте результат по порядку: адрес интерфейса → подходящий маршрут → следующий узел → доступность порта → журнал Qeli. Захват tcpdump полезен позже, но может содержать чувствительные адреса и незашифрованные локальные пакеты.
Отобранная библиотека
Учебники, руководства и стандарты
Для сервера Qeli в приоритете актуальные Debian Reference и Debian Manpages. Русская Настольная книга администратора Debian 11 удобна для изучения основ; общие источники оставлены для понимания протоколов и диагностики клиентов на других платформах.
Первоисточники
Где проверить реализацию Qeli 0.8.1