„Host kasutab seda PAC-faili, seega panin sama URL-i VM-i“ on mõistlik lause ja puudulik plaan. PAC URL osutab poliitikaskriptile, mitte puhverserverile. Kuni külaline ei saa seda skripti hankida, seda külalise enda aadressidega hinnata ja seejärel jõuda puhverserverini, mille skript nimetab, on URL vaid sõne seadete väljal. Suurem osa virtuaalmasinate puhverserveripoliitika segadusest tuleb sellest, et seda üht rida peetakse kogu konfiguratsiooniks.

PAC URL on skript, mitte puhverserver

Fail sisaldab funktsiooni, mis võtab URL-i ja hosti ning tagastab puhverserveri kirjelduse või sõna DIRECT. Miski URL-is ei ütle rakendusele, kuhu liiklust saata; see otsus tehakse käitusajal, skripti sees, andmetega, mida skript platvormilt küsib. Seadete dialoog, mis võtab vastu PAC URL-i, võtab vastu osuti otsustusprotseduurile.

Just see erinevus selgitab, miks URL-i kopeerimine võib tunduda toimivana. Väli on täidetud, seade on salvestatud ja tõrge ilmneb alles hiljem, kui skripti ei saa hankida või kui see tagastab puhverserveri, kuhu külaline ei jõua.

Neli sammu ebaõnnestuvad igaüks eri moodi

Külalise sees peab järjekorras juhtuma neli asja ja igaühel on oma veasignatuur. Külaline hangib PAC-faili. Rakendus hindab skripti soovitud URL-i jaoks kohaliku teabega. Valitud puhverserver lahendatakse ja selleni jõutakse. Autentimine toimub, kui puhverserver seda nõuab.

Alustage hankimise tõestamisest, sest ilma selleta on kõik edasine mõttetu. PAC-fail privaatsel serveril nõuab lubatud teed selle serverini, enne kui ükski reegel saab aidata, ja kättesaamatu skripti sees tehtud puhverserveri valik ei saa luua teed, mis selle hangiks:

curl -sS -o /dev/null -w '%{http_code}\n' http://pac.corp.example/proxy.pac
getent hosts pac.corp.example

Kui see päring külalisest ebaõnnestub ja hostist õnnestub, on probleem külalise teel PAC-serverini, mitte skripti sisus. Kui see tagastab JavaScript-faili, minge teise sammu juurde ja tehke kindlaks, mida skript külalise konteksti jaoks otsustab.

Sama skript otsustab VM-i sees teisiti

PAC-funktsioonid saavad kontrollida soovitud hosti ja teavet masina kohta, mis hindamist teeb. Kliendi enda aadressile ehitatud reegel, näiteks selline, mis kontrollib liidese aadressi või kuulumist alamvõrku, näeb külalise aadressi, mitte füüsilise hosti oma. Hosti poolse NAT-i taga on need erinevad aadressid, seega võib sama skript valida teise puhverserveri või langeda VM-i sees tagasi DIRECT-i.

See ei ole skripti viga. See on skript, mis teeb täpselt seda, milleks see kirjutati, teistsuguse sisendiga, ja see selgitab segadust tekitavat aruannet, kus host kasutab puhverserverit ja külaline ühendub otse. Korrake otsust, selle asemel et selle üle arutleda: PAC-hindaja, mis võtab aadressi ja URL-i, kui teie distributsioonil see on, lahendab küsimuse ühe käsuga. Muul juhul katsetage rakendusega, mida tõesti kasutatakse, ja lugege selle puhverserveri logi, selle asemel et oletada.

Ärge järeldage, et külaline on hosti puhverserveri seaded pärandanud sest selle liiklus läbib hosti poolset tõlget. Võrgutõlge edastab pakette; see ei kopeeri rakenduste konfiguratsiooni ja süsteemne puhverserver on rakenduse konfiguratsioon.

Tööriistad, mis ei loe PAC-i üldse

Käsureatööriistad on eraldi piir ja just seal kaob palju aega. curl ei käivita PAC-faile, nagu selle puhverserveri dokumentatsioon selgelt ütleb. Puhverserveri muutuja suunamine PAC-i allalaadimise URL-ile ei muuda skripti puhverserveri lõpp-punktiks; tööriist üritab JavaScript-failiga HTTP-keeles rääkida ja ebaõnnestub viisil, mis näeb välja nagu võrguprobleem.

Sama kehtib paljude paketihaldurite, keeletäitmiskeskkondade ja ehitustööriistade kohta, mis järgivad ainult selgesõnalisi puhverserveri muutujaid või oma konfiguratsiooni. Kui test, mis teid huvitab, on CLI-tööriist, seadistage see konkreetse puhverserveriga, mille PAC-skript oleks valinud, ja kirjutage üles, kuidas jõudsite selle valikuni, et järgmine inimene saaks seda korrata.

Linuxi töölauarakenduste puhul tuleb süsteemiseade panna automaatsele režiimile ja anda ka URL; URL, mis salvestatakse, kui režiim on veel käsitsi, ei tee midagi. Kontrollige mõlemat ja kontrollige neid külalise sees:

gsettings get org.gnome.system.proxy mode
gsettings get org.gnome.system.proxy autoconfig-url

DIRECT on samuti otsus

PAC-i tulemus DIRECT tähendab, et rakendus möödub HTTP puhverserverist, mitte et ta on võrgust põgenenud. Saadud ühendus võib siiski järgida operatsioonisüsteemi marsruuti läbi tunnel, või ebaõnnestuda põhjustel, millel pole puhverserveri kasutamisega midagi pistmist. Vastupidi, puhverserveri tulemus kirjeldab ühe rakenduse päringut, mitte iga protsessi külalises.

Seega kontrollige selles suunas, milles nõue kirjutati. Kui nõue on „see rakendus jõuab sisemisele saidile“, tõestage, et see rakendus jõuab, ja märkige, milline puhverserver või marsruut seda kandis. Kui nõue on „VM on ettevõtte võrgus“, on valitud puhverserveri kaudu töötav brauser tõend selle brauseri kohta ja mitte midagi enamat.

Parandage kett külalise sees, selle asemel et lülitada välja hosti tunnel või leevendada edastuspoliitikat, et test läbiks. Ketil on neli lüli ja muudatus, mis ühe neist vahele jätab, püsib järgmise korrani, mil skript uuendatakse või külalise aadress muutub.

Seotud artiklid