Kial ĵokera signo en OpenVPN-ruta direktivo ne povas funkcii
la itinero instalas adresajn prefiksojn, do ŝablono de gastignomo havas nenion kongruendan. Uzu prefikson por retoj kaj prokurilon aŭ PAC-dosieron kiam domajnoj devas decidi.
La intenco estas racia: sendi ĉion por unu firmao-domajno tra la tunelo kaj lasi la reston trankvila. La direktivo redaktata instalas itinerojn, kaj itinero havas nenian koncepton de gastignomo por kongrui. Ĉiu provo skribi ĵokeran signon en ĝin produktas aŭ analizan eraron aŭ, pli malbone, itineron, kiu hodiaŭ hazarde funkcias ĉar la nomo solviĝis al unu adreso. Du malsamaj mekanismoj estas petataj fari unu la laboron de la alia.
Kion itinero instalas, kaj kion ĝi neniam legas
Itinera ero diras, ke cela prefikso estas atingebla tra interfaco. La kerno kongruigas pakaĵojn kun tiuj prefiksoj, do la solaj koncernataj identigiloj estas adresoj kaj maskoj. Gastignomo neniam aperas en la plusenda decido, kaj tial ŝablono ne povas esti kongruigita tie.
OpenVPN povas akcepti solveblan nomon en iuj itinero-parametroj, kaj tiu toleremo estas fonto de konfuzo. La nomo solviĝas dum la agordo aplikiĝas, produktante unu aŭ pliajn adresojn, kiuj fariĝas ordinaraj itineroj. Post tio, la nomo tute malaperas el la bildo.
Do itinero konstruita el nomo estas momenta bildo, ne regulo. Ĝi kovras tion, al kio tiu nomo solviĝis en la momento, kiam la tunelo ekfunkciis, kaj tio estas ĝuste la konduto, kiun vi ne volas por familio de gastigantoj, kiu ŝanĝiĝas. Rikordo, kiu translokiĝos morgaŭ, lasas la itineron montri al hieraŭ.
Kiam la celo vere estas prefikso
Se la celo estas konata privata reto, skribu la prefikson. Por ekzemplo el la dokumentada spaco, unu gastiganto kaj unu subreto aspektas tiel:
route 10.60.4.20 255.255.255.255
route 10.60.0.0 255.255.0.0
Ambaŭ eroj nomas adresojn kaj maskojn, kaj ambaŭ postvivas DNS-ŝanĝojn ĉar nenio ĉe ili dependas de nomo. Tio estas la tuta avantaĝo: la itinero estas aserto pri topologio, ne pri serĉo, kiu okazis unufoje.
Ne konkludu grandan prefikson el unu DNS-respondo. Unu gastignomo solviĝanta al unu adreso diras al vi nenion pri la grandeco de la reto malantaŭ ĝi, kaj divenita prefikso estas la maniero, kiel tunelo finas kaptante trafikon, kiun neniu intencis sendi tra ĝi. Demandu la retposedanton pri la fakta prefikso anstataŭ konkludi ĝin el serĉo.
Kiam la laborunuo estas gastignomo
Elektado laŭ domajno postulas ion, kio legas la domajnon, do komponanton de aplika tavolo. La kutima respondo estas HTTP-prokurilo, kiu loĝas sur la malproksima flanko de la tunelo, dum la kliento elektas, kiujn petojn sendi al ĝi.
Prokurila agorda dosiero povas esprimi tiun elekton. La ilustraj reguloj sube sendas unu domajnon kaj ĝiajn subdomajnojn al prokurilo kaj ĉion alian rekte:
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";
}
La komparo de preciza nomo kovras la domajnon mem, kaj la sufiksa komparo kovras ĝiajn idojn sen kongrui nomon, kiu simple finiĝas per similaj signoj. Ambaŭ necesas, kaj lasi unu for produktas regulon, kiu aspektas ĝusta kaj preterlasas la pinton aŭ trompanton.
Ĉi tiuj reguloj elektas prokurilon; ili ne kreas ĝin, kaj ili ne ŝanĝas iun ajn operaciuman itineron. La prokurila adreso ankoraŭ bezonas sian propran vojon tra la tunelo, kaj petoj markitaj kiel rektaj ankoraŭ sekvas tiun enkursigan politikon, kiun la maŝino jam havas.
Kion la prokurila opcio ne kovras
Programoj, kiuj ignoras la prokurilan agordon de la retumilo, ne estos tuŝitaj de io ajn el tio. Komandliniaj iloj, ĝisdatigiloj kaj aplikaĵoj kun propra reta stako prenas la itineran tabelon, ne la PAC-dosieron, do tiuj kazoj bezonas subtenatan mekanismon por unuopa aplikaĵo aŭ alian dezajnon. Inventaru la klientojn, kiuj gravas, antaŭ ol promesi, ke la retumila regulo kovras la laborfluon.
Reiri rekte ankaŭ ne estas eskapaĵo. Se la enkursiga politiko de la maŝino jam sendas ĉion en la tunelon, peto markita kiel rekta restas interne, ĉar la prokurila elekto kaj la itinera tabelo estas malsamaj decidoj faritaj en malsamaj tavoloj.
Nomosolvado estas tria aparta demando. Elekti, kiuj petoj iras al prokurilo, diras nenion pri tio, kiu solvilo respondas ilin, kaj trakti la du kiel unu agordon produktas likojn, kiuj estas nevideblaj ĝis iu testas de ekstere. Decidu, kie ĉiu demando estas respondata, kaj skribu tiun decidon apud la prokurila regulo. Solvilo, kiu ŝanĝiĝas ĉar la tunelo leviĝis, kviete movos la respondon.
Testi ambaŭ vojojn, ne nur la feliĉan
Testu gastignomon, kiu devus kongrui, gastignomon, kiu ne devus, kaj la pinton de la domajno, ĉar la pinto estas la kazo plej ofte preterlasata de regulo nur sufiksa. Poste konfirmu, kiun vojon ĉiu peto efektive prenis, anstataŭ konkludi ĝin el tio, ĉu la paĝo ŝargiĝis.
Fine, testu la malsukcesan branĉon. Prokurilo, kiu ne estas atingebla, devus malsukcesi tiel, kiel vi anticipe decidis, anstataŭ kviete reiri al rekta konekto. La referenco pri retaj opcioj dokumentas la itinero-parametrojn precize; la domajna duono de ĉi tiu dezajno vivas tute ekster ĝi.