Ниет орынды: бір компания доменінің бәрін туннель арқылы жіберіп, қалғанын жайына қалдыру. Өңделіп жатқан нұсқаулық маршруттарды орнатады, ал маршрутта салыстыратын хост атауы деген ұғым жоқ. Оған wildcard жазу әрекетінің әрқайсысы не талдау қатесін, не, одан да жаманы, бүгін кездейсоқ жұмыс істеп тұрған маршрутты береді, өйткені атау бір мекенжайға шешілді. Екі түрлі механизмге бір-бірінің жұмысын істеу талап етілуде.

Маршрут нені орнатады және нені ешқашан оқымайды

Маршрут жазбасы баратын жер префиксіне интерфейс арқылы қол жеткізуге болатынын айтады. Ядро пакеттерді сол префикстермен салыстырады, сондықтан қатысатын жалғыз идентификаторлар — мекенжайлар мен маскалар. Хост атауы ешқашан жіберу шешімінде көрінбейді, сондықтан онда үлгіні салыстыру мүмкін емес.

OpenVPN кейбір маршрут параметрлерінде шешілетін атауды қабылдай алады, және бұл төзімділік шатасудың көзі. Атау конфигурация қолданылған кезде шешіліп, қарапайым маршруттарға айналатын бір немесе бірнеше мекенжайды жасайды. Одан кейін атау суреттен мүлдем жоғалады.

Сондықтан атаудан құрастырылған маршрут — ереже емес, сурет. Ол атаудың туннель басталған сәтте шешілген нәрсесін қамтиды, және бұл өзгеретін хосттар отбасы үшін сіз қаламайтын дәл сол мінез-құлық. Ертең орнын ауыстыратын жазба маршрутты кешеге нұсқап қалдырады.

Баратын жер шынымен префикс болғанда

Егер мақсат белгілі жеке желі болса, префиксті жазыңыз. Құжаттама кеңістігінен мысал үшін бір хост пен бір қосалқы желі былай көрінеді:

route 10.60.4.20 255.255.255.255
route 10.60.0.0 255.255.0.0

Екі жазба да мекенжайлар мен маскаларды атайды, және екеуі де DNS өзгерістеріне төтеп береді, өйткені оларда ешнәрсе атауға тәуелді емес. Бұл — бүкіл артықшылық: маршрут — бір рет болған іздеу туралы емес, топология туралы мәлімдеме.

Бір DNS жауабынан үлкен префикс шығармаңыз. Бір мекенжайға шешілетін бір хост атауы оның артындағы желінің көлемі туралы ештеңе айтпайды, ал болжамды префикс — туннельдің ақырында ешкім өткізуді ойламаған трафикті ұстап алуының жолы. Іздеуден қорытынды жасаудың орнына желі иесінен нақты префиксті сұраңыз.

Жұмыс бірлігі хост атауы болғанда

Домен бойынша таңдау доменді оқитын нәрсені, яғни қолданбалық қабат компонентін қажет етеді. Әдеттегі жауап — туннельдің арғы жағында тұратын HTTP прокси, ал клиент оған қандай сұраныстар жіберуді таңдайды.

Прокси конфигурациясының файлы бұл таңдауды білдіре алады. Төмендегі үлгі ережелер бір домен мен оның қосалқы домендерін проксиге, ал қалғанын тікелей жібереді:

function FindProxyForURL(url, host) {
    var h = host.toLowerCase();
    if (h === "corp.example" || dnsDomainIs(h, ".corp.example")) {
        return "PROXY 10.60.0.12:3128";
    }
    return "DIRECT";
}

Нақты атауды салыстыру доменнің өзін қамтиды, ал жұрнақты салыстыру оның ұрпақтарын қамтиды, бірақ ұқсас таңбалармен ғана аяқталатын атауға сәйкес келмейді. Екеуі де қажет, ал біреуін қалдырса, дұрыс көрінетін және шыңды немесе алаяқты аттап кететін ереже шығады.

Бұл ережелер проксиді таңдайды; оны жасамайды және операциялық жүйенің ешбір маршрутын өзгертпейді. Прокси мекенжайына әлі де туннель арқылы өз жолы қажет, ал тікелей деп белгіленген сұраныстар машинада бұрыннан бар маршруттау саясатына бағынады.

Прокси опциясы нені қамтымайды

Браузердің прокси конфигурациясын елемейтін бағдарламаларға бұның ешқайсысы әсер етпейді. Пәрмен жолы құралдары, жаңартқыштар және өз желілік стекі бар қолданбалар PAC файлын емес, маршруттар кестесін алады, сондықтан бұл жағдайларға қолдау көрсетілетін әр қолданбаға арналған механизм немесе басқа дизайн қажет. Браузер ережесі жұмыс ағынын қамтиды деп уәде бермес бұрын маңызды клиенттерді түгендеңіз.

Тікелей қайту да қашу жолы емес. Егер машинаның маршруттау саясаты бәрін туннельге жіберіп жатса, тікелей деп белгіленген сұраныс оның ішінде қалады, өйткені прокси таңдауы мен маршруттар кестесі әртүрлі қабаттарда қабылданатын әртүрлі шешімдер.

Атауларды шешу — үшінші жеке сұрақ. Қандай сұраныстар проксиге баратынын таңдау оларға қай шешуші жауап беретіні туралы ештеңе айтпайды, ал екеуін бір параметр ретінде қарау сырттан біреу тексермейінше көрінбейтін ағулар тудырады. Әр сұранысқа қайда жауап берілетінін шешіп, сол шешімді прокси ережесінің қасына жазыңыз. Туннель көтерілгендіктен өзгеретін шешуші жауапты үнсіз жылжытады.

Екі жолды да сынау, тек бақыттысын ғана емес

Сәйкесуі тиіс хост атауын, сәйкеспеуі тиіс хост атауын және домен шыңын сынаңыз, өйткені шың — тек жұрнақ ережесі жиі аттап кететін жағдай. Содан кейін беттің жүктелгенінен қорытынды жасаудың орнына әр сұраныстың шын мәнінде қай жолдан өткенін растаңыз.

Соңында, сәтсіздік тармағын сынаңыз. Қол жетпейтін прокси алдын ала шешкен тәсілмен сәтсіздікке ұшырауы керек, үнсіз тікелей қосылымға қайта түсуі емес. Желілік параметрлер анықтамасы маршрут параметрлерін дәл құжаттайды; бұл дизайнның домендік жартысы толығымен оның сыртында өмір сүреді.

Қатысты мақалалар