Sinu konteiner võib kuulata UDP 1195 peal, samal ajal kui host avaldab 1194, ja see on õige seni, kuni kaardistus nii ütleb. Numbrid moodustavad tõlketabeli: klient valib hostipordi, Docker kirjutab sihtkoha ümber konteineri pordiks ja OpenVPN vastab pordil, mille tema enda konfiguratsioon nimetab. Ükskõik millise lüli lahknevus tekitab vaikse vea, mis näeb välja nagu tulemüür. Sertifikaadid ja šifrid asuvad sellest allavoolu ega suuda seda parandada.

Jälgi üht paketti kliendist protsessini, enne kui autentimises midagi muudad.

Kolm numbrit, üks ühendus

Need kolm numbrit on kaugsihtkoht, mida klient kasutab, hostil avaldatud kaardistus ja konteineri sees olev kuulaja. Need ei pea olema võrdsed, aga peavad moodustama ahela. Võrdsed numbrid on erijuht, mis juhtub olema kõige tavalisem, seepärast on lahknevust lihtne üks kord kirja panna ja hiljem raske märgata.

Kirjuta ahel ühele reale enne silumist: kliendi aadress ja port, hosti kaardistus, konteineri kuulaja, transport. Ahela defekt ilmneb numbrina, mis esineb kaks korda erinevate väärtustega.

LocationExample
Remote client destinationHost address, UDP 1194
Published mappingHost UDP 1194 to container UDP 1195
Container listenerOpenVPN on UDP 1195

Mida lühisüntaks tegelikult ütleb

Lühivormis on vasak pool hostiport ja parem pool konteineri port ning kaldkriipsuga järelliide valib transpordi. Järelliite ärajätmisel käsitleb Docker kaardistust TCP-na, nii et UDP-kuulaja ilma protokollita kaardistuse taga on kuulaja, kelleni keegi ei jõua. See vaikeväärtus on dokumenteeritud ja üllatab endiselt inimesi, kes numbrid klappima panid ja asja lõpetatuks lugesid.

Pikk vorm fikseerib sidumisaadressi ja protokolli selgesõnaliselt, mis on lisaread väärt kõige jaoks, mis on võrgu poole suunatud. Loe avaldatud kaardistus tagasi, selle asemel et usaldada faili, mis selle tekitas.

ports:
  - 1194:1195/udp

Kus pakett võib peatuda

Päring võib kaduda enne Dockerit, Dockeris või kuulaja juures. Dockeri ees võib olla pilve tulemüür või ruuter, mis teeb oma edastust, ja see seade vajab hosti poole jäävat porti ja õiget transporti. Dockeri sees suunab vale konteineri pordi kaardistus suletud soklile.

Siis kuulaja: OpenVPN-i konfiguratsioon nimetab pordi ja protokolli ning klient, kes jõuab konteineri sees teisele pordile, ei jõua kuhugi. UDP-teenuse TCP-ga testimine ei tõesta üheski neist etappidest midagi, seega kasuta transporti, mida klient kasutama hakkab.

Sidumisaadressid otsustavad kättesaadavuse

Loopbacki külge seotud avaldatud kaardistus on kättesaadav ainult hostist, samas kui kõigi liidestega seotud on kättesaadav kõikjal, kus tulemüür lubab. Compose-failis, mis aadressi ära jätab, näevad need kaks välja ühesugused, ja Dockeri vaikeväärtus on laiem.

Otsusta, millist avatust juurutus kavatseb, ja kirjuta see siis selgesõnaliselt. Sisemine test, mis ühendub loopbacki kaudu, ja kaugklient, mis ei saa ühendust, võivad mõlemad olla sama konteineri täpsed kirjeldused.

Loe töötavat olekut

Uuri töötava konteineri tegelikku kaardistust ja kuulajat selle võrgu nimeruumis. Compose-faili võib olla muudetud pärast konteineri käivitamist, pildi metaandmed võivad pordi deklareerida ilma seda avaldamata ja teine konteiner võib hostipordi juba hõivata. Pordi deklareerimine pildis ei ole selle avaldamine ja kumbki neist ei ole sama mis kuulamine.

Kolm erinevat olekut, kolm erinevat käsku ja ainult viimane puudutab OpenVPN-i.

Kui kaardistus on õige

Kui pakett on OpenVPN-ini jõudnud, on selle logi koht, kus lugeda TLS-i ja autentimise kohta. Sertifikaatide uuesti genereerimine, et parandada paketti, mis kunagi ei saabunud, on raisatud töö, mis lisab teise muutuja. Hoia kaardistuse märge kliendiprofiili kõrval, et järgmine inimene loeks ühe rea, selle asemel et kõiki kolme numbrit uuesti avastada. Üks paketipüük hosti poolel otsustab, milline kolmest lülist on vale, ja see maksab vähem kui sertifikaadi uuendamine.

Siin kirjeldatud juhtum on silla kaudu avaldamine. Hosti võrk ja ruuditud konteineri aadressid jätavad tõlke vahele, seega tähendavad samad numbrid nendes lahendustes midagi muud.

Seotud artiklid