Файл стану рахує сесії, а не LAN за ними
Знімок перелічує сесії VPN і стан маршрутизації, а не кожну машину за майданчиком. Читайте заголовки, типи записів і вік файлу разом.
Хтось питає, скільки машин у VPN, і файл стану пред’являють як доказ. Він відповідає на вужче питання: скільки сесій існує в цьому знімку і які віртуальні адреси маршрутизує сервер. Саме в проміжку між цими питаннями живе більшість помилок звітності, і закрити його можна, почавши з читання власних заголовків файлу.
Що насправді містить знімок
Файл записується через інтервал, коли для цього екземпляра сервера налаштовано вивід стану, тому це періодична картина, а не живий потік. Його розділи окремо перелічують сесії та внутрішній стан маршрутизації, а версія формату визначає розкладку стовпців.
status /run/openvpn/office.status 30
status-version 3Версія 3 записує поля, розділені табуляцією, з рядком заголовка, тоді як старі формати відрізняються, а пізніші версії можуть додавати поля. Читайте заголовок замість жорсткого задання номера стовпця, бо скрипт, що припускає позиції, тихо ламається під час наступного оновлення.
| Record | What it describes | What it cannot tell you |
|---|---|---|
| Client list | A session in this snapshot | How many people or machines that session represents |
| Real address | The outer peer address and port | Which device is behind it |
| Routing rows | Virtual addresses and route ownership | Which downstream hosts are alive |
Рахуйте сесії, а не людей чи машини
Одне з’єднання майданчика може нести трафік кількох дозволених машин за собою. Одна людина теж може тримати більше однієї сесії одночасно, з ноутбука й телефона. Жодна з цих схем не видна в числі, тому підключені користувачі набувають сенсу лише після визначення одиниці. Запитайте, яка одиниця потрібна звіту, перш ніж хтось почне рахувати.
Якщо число важливе для ліцензування чи ємності, визначте одиницю в тому самому документі, що й звіт. Звіт, який не вказує, чи рахує він сесії, ідентичності чи пристрої, буде прочитано як та одиниця, яку очікував читач.
Зовнішня адреса — не ідентифікатор
Поле реальної адреси — це адреса й порт партнера такими, якими їх бачить сервер. Кілька клієнтів за однією трансльованою публічною адресою ділять цю адресу, тож групування за нею зливає не пов’язані сесії. Порт теж змінюється між з’єднаннями, що робить пару непридатною як стабільний ключ. Звіт, згрупований так, виглядає точним і є хибним.
Для групування використовуйте ефективну ідентичність клієнта, а адресу вважайте деталлю транспорту. Коли два рядки ділять ідентичність, це зазвичай означає одночасні сесії, а не дубльований запис.
Рядки маршрутизації — не інвентар хостів
Запис маршрутизації може називати підмережу, за яку відповідає один партнер, а підмережа — не список її хостів. Сервер знає, що має надсилати цей діапазон конкретній сесії, і не має уявлення, які з цих машин увімкнені, автентифіковані в застосунку чи комусь корисні. Таблиця маршрутизації описує досяжність, а не зайнятість. Саме ця різниця є всією причиною, чому VPN не може відповісти на питання інвентаризації.
Кілька рядків також можуть указувати на одного партнера, бо майданчик може оголошувати більше одного діапазону. Підрахунок рядків і називання результату кількістю пристроїв завищує розгортання на довільний коефіцієнт.
Якщо вимога справді про інвентар активів, використовуйте процес інвентаризації, якому належить ця мережа. VPN може визначити, який партнер несе маршрут, і це інший факт, ніж те, які хости існують за ним.
Вік, права та живий перегляд
Зберігайте час зміни файлу з кожною відповіддю. Сервер, що зупинився кілька годин тому, залишає свій останній знімок на місці, а застарілий файл, поданий як актуальний, гірший за відсутність звіту.
Каталог має існувати й бути доступним для запису обліковому запису, від якого служба справді працює, що легко забути після етапу зміцнення. Файл зазвичай містить імена й адреси, тому тримайте його в адміністративному місці, а не будь-де, звідки вебсервер може його віддати. Перевіряйте права з облікового запису служби, а не зі своєї оболонки. Знімок, який тихо перестав оновлюватися, виглядає точно як спокійна мережа.
Для потреб, керованих подіями, використовуйте підтримуваний інтерфейс керування замість частішого опитування. Ставтеся до цього інтерфейсу як до керування, а не як до метрик, і ніколи не відкривайте його в інтернет лише для підрахунку сесій.