OpenVPN TAP på macOS: sjekk klienten før du feilsøkjer
TAP ber Ethernet-rammer og TUN ber IP, og dei fleste macOS-klientane i dag har droppa det første. Stadfest modusen og migrer deretter saman med servereigaren.
Ein gammal profil landar på ein aktuell Mac, klienten importerer han utan klager, og sambandet fell eller slepp aldri trafikk gjennom. Før du brukar ein ettermiddag på sertifikat, les eininga si linje i profilen. Står det dev tap, ber du klienten om eit Ethernet-liknande grensesnitt, og på macOS er det nettopp denne førespurnaden dei fleste slike økter endar på.
Steg 1: stadfest at profilen verkeleg ber om TAP
Profilar blir døypte om, pakka inn og eksporterte på nytt, så sjekk fila du faktisk importerte. Sjå etter eininga sitt direktiv og kvar include som kan overstyre det. To linjer med utdata avgjer spørsmålet i dei fleste tilfelle. Når både dev og dev-type dukkar opp, vinn det seinare direktivet, og det er nettopp slike detaljar ein kopiert profil skjuler.
grep -nE "^[[:space:]]*(dev|dev-type)[[:space:]]" client.ovpn
ls -l ~/Library/Application\ Support/ 2>/dev/null
Viss fila inneheld dev tap eller dev tap0, må klienten implementere eit TAP-grensesnitt. Inneheld ho dev tun, gjeld ikkje resten av denne artikkelen, og feilen ligg ein annan stad.
Skriv ned namnet og versjonen til klienten, macOS-versjonen og kvar profilen kom frå. Desse tre fakta avgjer kva av dei to vegane nedanfor som i det heile er mogleg.
Steg 2: vit kva einingsmodusen faktisk endrar
Eit TUN-grensesnitt ber IP-pakkar. Klienten les og skriv pakkar adresserte til ein IP-motpart, og operativsystemet rutar dei som eit kva som helst anna grensesnitt.
Eit TAP-grensesnitt ber Ethernet-rammer, inkludert broadcast og ARP. Det er dette som lèt ein brúa tenar dele ut adresser via DHCP og ein klient oppdage einingar ved å rope, og difor er nokre eldre design avhengige av det.
Prisen er at TAP treng ein drivar som presenterer eit Ethernet-grensesnitt for systemet. Apple har avvikla kjernemodellen som eldre TAP-drivarar for Mac bygde på, og erstatnings-API-et dukkar ikkje opp magisk i klientar som aldri er oppdaterte for å bruke det. Ein plattformevne og eit levert produkt er to ulike ting.
Steg 3: vel mellom ein kompatibel klient og ein migrering
Det finst to ærlege vegan. Den første er ein klient der utgivaren for din macOS-versjon og maskinvare erklærer at han støttar TAP-oppsettet du treng. Ikkje eit foruminnlegg frå for fire år sidan, og ikkje ein arkivert installasjonspakke: ei gjeldande fråsegn pluss ei prøvetilkopling.
Den andre er å flytte tenesta til TUN, som er ei tenar-endring like mykje som ei klientendring. Det krev ein ruta topologi, ein adressepool, pusha ruter for fjernnetta og ein returveg frå desse netta tilbake til poolen.
Det som ikkje fungerer, er å endre tap til tun i den lokale kopien og håpe. Tenaren brúa framleis, klienten snakkar no IP, og ingenting stemmer.
Steg 4: samle fakta før du endrar ei teneste som verkar
Lat den opphavlege profilen vere urørt og lag ein kopi til eksperiment. Ei fil du kan gjenopprette på eit minutt, er meir verd enn ei ryddig mappe. Når erstatninga verkar, slett kopien med vilje i staden for å la det liggje att to profilar som ser identiske ut i ei liste. Den eine vanen førebyggjer det meste av forvirringa som følgjer ein mislukka migrering. Noter den noverande åtferda slik at du kan prove kva som endra seg: kjem tunnelen opp, får han ei adresse, når du ein kjend vert, og verkar namneoppslag.
Spør eigaren av porten tre spørsmål. Køyrer tenaren ein brúa eller ruta topologi? Kva fjernprefiks skal vere tilgjengelege? Og finst det eit vedlikehaldsvindauge for ei konfigurasjonsendring, eller er det venta at dette skal verke utan å røre tenaren?
Svara på det avgjer om du løyser eit klientproblem i ettermiddag eller planlegg ei nettverksendring neste veke.
Steg 5: stadfest migreringa frå begge endar
Når tenaren har ein ruta konfigurasjon og du har ein passande profil, test i denne rekkjefølgja: tunnelen blir oppretta, klienten får ei adresse frå den nye poolen, ein vert på fjernsida svarar, og eit namn blir løyst gjennom den pusha DNS-innstillinga.
Test deretter det som før var avhengig av Ethernet-åtferd. Viss eit program oppdaga einingar via broadcast, vil det ikkje finne dei over ein ruta tunnel, og inga mengd klientkonfigurasjon bringar det tilbake. Det programmet treng ei kjend adresse, ein lokal hjelpevert eller ein annan oppdagingsmetode.
Avslutt med å kople til på nytt og starte på nytt éin gong, fordi ein profil som berre verkar ved første forsøk, vanlegvis tyder på at dei pusha rutene eller DNS-innstillinga ikkje blir brukte ved gjenoppkopling.
Når det framleis feilar, les den første feilen
Ein klient som ikkje kan opprette grensesnittet, seier det i loggen sin, vanlegvis innan dei første linjene. Ein klient som opprettar det og deretter ikkje autentiserer, er for lengst forbi eininga sitt spørsmål, og å halde fram med å jage TAP sløser bort økta.
Hald på den opphavlege profilen og den fungerande konfigurasjonen til erstatninga er prova. Å rulle tilbake ei klientendring er snøgt; å byggje opp att eit brúa nettverk som nokon demonterte på ein innskytelse, er det ikkje.