Konttisi voi kuunnella UDP 1195:ssä, kun isäntä julkaisee 1194:n, ja se on oikein niin kauan kuin mappaus niin sanoo. Numerot muodostavat käännöstaulukon: asiakas valitsee isäntäportin, Docker kirjoittaa kohteen uudelleen konttiportiksi ja OpenVPN vastaa portissa, jonka sen oma kokoonpano nimeää. Poikkeama missä tahansa näistä lenkeistä tuottaa hiljaisen virheen, joka näyttää palomuurilta. Varmenteet ja salaukset ovat tämän jälkeen eivätkä voi korjata sitä.

Seuraa yhtä pakettia asiakkaasta prosessiin ennen kuin muutat mitään todennuksessa.

Kolme numeroa, yksi yhteys

Kolme numeroa ovat etäkohde, jota asiakas käyttää, isännälle julkaistu mappaus ja kontin sisäinen kuuntelija. Niiden ei tarvitse olla samoja, mutta niiden täytyy muodostaa ketju. Samat numerot ovat erikoistapaus, joka sattuu olemaan tavallisin, ja siksi poikkeama on helppo kirjoittaa kerran ja vaikea huomata myöhemmin.

Kirjoita ketju yhdelle riville ennen vianetsintää: asiakkaan osoite ja portti, isännän mappaus, kontin kuuntelija, siirto. Ketjun vika näkyy numerona, joka esiintyy kahdesti eri arvoilla.

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

Mitä lyhyt syntaksi oikeasti sanoo

Lyhyessä muodossa vasen puoli on isäntäportti ja oikea puoli konttiportti, ja vinoviivallinen jälkiliite valitsee siirron. Jos jätät jälkiliitteen pois, Docker käsittelee mappauksen TCP:nä, joten UDP-kuuntelija ilman protokollaa olevan mappauksen takana on kuuntelija, johon kukaan ei pääse. Tämä oletus on dokumentoitu ja yllättää yhä ne, jotka saivat numerot täsmäämään ja pitivät asiaa valmiina.

Pitkä muoto kiinnittää sidontaosoitteen ja protokollan nimenomaisesti, mikä on ylimääräisten rivien arvoista kaikessa verkkoon päin olevalle. Lue julkaistu mappaus takaisin sen sijaan, että luottaisit tiedostoon, joka sen tuotti.

ports:
  - 1194:1195/udp

Missä paketti voi pysähtyä

Pyyntö voidaan pudottaa ennen Dockeria, Dockerissa tai kuuntelijassa. Dockerin edessä voi olla pilvipalomuuri tai reititin, joka tekee oman välityksensä, ja se laite tarvitsee isäntään päin olevan portin ja oikean siirron. Dockerin sisällä väärään konttiporttiin tehty mappaus välittää suljettuun pistokkeeseen.

Sitten kuuntelija: OpenVPN:n kokoonpano nimeää portin ja protokollan, ja asiakas, joka saapuu kontin sisällä toiseen, ei saavuta mitään. UDP-palvelun testaaminen TCP:llä ei todista mitään missään näistä vaiheista, joten käytä siirtoa, jota asiakas tulee käyttämään.

Sidontaosoitteet ratkaisevat saavutettavuuden

Loopbackiin sidottu julkaistu mappaus on saavutettavissa vain isännästä, kun taas kaikkiin rajapintoihin sidottu on saavutettavissa siellä, missä palomuuri sallii. Ne näyttävät samalta Compose-tiedostossa, joka jättää osoitteen pois, ja Dockerin oletus on laaja.

Päätä, mitä altistusta käyttöönotto tavoittelee, ja kirjoita se sitten nimenomaisesti. Sisäinen testi, joka yhdistää loopbackin kautta, ja etäasiakas, joka ei voi yhdistää, voivat molemmat olla tarkkoja kuvauksia samasta kontista.

Lue käynnissä oleva tila

Tarkista käynnissä olevan kontin tehokas mappaus ja kuuntelija sen verkkonimiavaruudessa. Compose-tiedostoa on voitu muokata kontin käynnistymisen jälkeen, kuvan metatiedot voivat ilmoittaa portin julkaisematta sitä, ja toinen kontti voi jo pitää isäntäporttia. Portin ilmoittaminen kuvassa ei ole sen julkaisemista, eikä kumpikaan ole sama kuin kuunteleminen.

Kolme eri tilaa, kolme eri komentoa, ja vain viimeinen liittyy OpenVPN:ään.

Kun mappaus on oikein

Kun paketti saapuu OpenVPN:ään, sen loki on paikka, josta lukee TLS:stä ja todennuksesta. Varmenteiden uudelleenluonti sellaisen paketin korjaamiseksi, joka ei koskaan saapunut, on hukattua työtä, joka lisää toisen muuttujan. Pidä mappausmerkintä asiakasprofiilin vieressä, jotta seuraava henkilö lukee yhden rivin sen sijaan että löytäisi kaikki kolme numeroa uudelleen. Yksi paketin tallennus isännän puolella ratkaisee, mikä kolmesta lenkistä on väärin, ja se maksaa vähemmän kuin varmenteen uusinta.

Tässä kuvattu tapaus on sillan kautta julkaiseminen. Isännän verkko ja reititetyt konttiosoitteet ohittavat käännöksen, joten samat numerot tarkoittavat noissa malleissa jotain muuta.

Aiheeseen liittyvät artikkelit