OpenVPN remote-random: разбъркан ред, един тунел
remote-random разбърква реда на конфигурираните remote редове при свързване. Той не сменя изхода ви при всяка заявка, не балансира пакети и не променя работещ тунел.
Предположението е, че добавянето на remote-random превръща профила във въртящ се пул и всяка връзка излиза от различен адрес. Всъщност директивата прави друго: разбърква списъка с remote редове веднъж, когато клиентът започне да се свързва, и после ги опитва в този нов ред. Тунелът, който накрая се вдига, все пак завършва в една крайна точка и остава там за целия живот на сесията.
Тази разлика е важна както за тестовете, така и за твърденията за поверителност.
Какво променя опцията при свързване
Клиентският профил може да съдържа няколко реда remote, всеки със собствено име на хост и порт. Без директивата те се опитват в реда на файла; с нея списъкът се разбърква веднъж в началото на сесията и печели първият адрес, който отговори. Останалите остават резервни варианти за този опит, а не паралелни пътища. Профил с един remote не дава на директивата какво да разбърка и това е най-бързият начин да се види дали тя може да има значение.
Ръководството на OpenVPN документира опцията като влияеща на реда на опитите за свързване и точно такъв обхват трябва да се очаква в поведението.
Повторното свързване започва нов цикъл на избор, така че по-късна сесия може да попадне другаде. Работещият тунел не се мести, докато е вдигнат.
Мит: всяка заявка получава нов сървър
След установяване тунелът пренася целия трафик на тази сесия до избрания партньор. Няма повторен избор при всяка заявка и директивата не е балансьор на натоварването за отделни връзки: тя разбърква кандидатите, а не разпределя пакети. Всяко приложение, което споделя този тунел, споделя и същия партньор. Каквото браузърът съобщава за изхода си, се отнася за сесията, а не за отделна заявка.
Ако тест покаже два различни изхода, търсете две отделни сесии, а не една хитра опция. Тази разлика обяснява и защо браузърен тест и тест за изтегляне могат да не съвпаднат, когато между тях е имало повторно свързване.
За какво служи remote-random-hostname
Втора директива с подобно име променя името на хоста, използвано за резолюция, а не реда на списъка с remote. Тя съществува за внедрявания, при които име се разрешава до няколко адреса чрез round-robin DNS, и трябва да се използва само когато услугата е изградена за това. Променя се само стъпката на резолюция; редът на списъка с кандидати не се променя.
Включването ѝ, защото имената изглеждат свързани, е често срещана грешка. Сертификат с шаблон или DNS схема, която не очаква промененото име, просто няма да се разреши или да се валидира.
Прочетете избраната крайна точка от журнала
Запишете кой партньор всъщност е използвала сесията, преди да правите изводи. Подробният изход посочва адреса, който се опитва, а самият профил показва колко кандидата има. Сравнете този брой с адреса в журнала, преди да обвинявате разбъркването.
grep -c '^remote ' client.ovpn openvpn --config client.ovpn --verb 4 2>&1 | grep -i -E 'attempting|peer connection' openvpn --help | grep -A2 remote-random head -20 client.ovpn
За сравнение на производителността фиксирайте крайната точка, като коментирате другите remote, така че променливата в теста да е протоколът или клиентът, а не пътят. За въпрос за поверителност оценявайте идентичността на услугата и журналите ѝ като цяло; разбърканият първи избор не изчиства бисквитки, не премахва вход в акаунт и не прави два оператора еквивалентни.
Дръжте доставените доверителни материали и поддържания набор от крайни точки заедно. Разбъркването променя само реда, в който този набор се опитва.