OpenVPN Connect afviser fragment: ret profilens kilde
OpenVPN Connect understøtter ikke fragment, så en profil, der kan parses, kan stadig fejle. Skaf en, der er bygget til den klient, eller ændr serversiden bevidst.
Fejlen kommer ved import, før nogen forhandling, og nævner et direktiv, som klienten nægter at acceptere. OpenVPN Connect kører OpenVPN 3-bibliotekskode, som slet ikke implementerer fællesskabsklientens fragment-valgmulighed. Det gør det til et kompatibilitetsspørgsmål mellem to ender snarere end et tuning-spørgsmål om pakkestørrelse.
Sletter du linjen, får du en fil, som klienten kan parse, og en server, der måske stadig forventer det format, linjen beskrev. Gå det igennem fra importskærmen og udad, før du redigerer noget.
Hvor importen stopper
Importeren parser direktiver, før den kontakter serveren, så en afvisning der er en lokal beslutning om syntaks og ikke et netværksresultat, og OpenVPNs liste over ikke-understøttede direktiver registrerer samme begrænsning. Det forklarer, hvordan én fil kan virke i fællesskabsklienten og fejle i Connect på samme maskine. Læs meddelelsen for direktivets navn, og gem den oprindelige fil, fordi den tekst er det eneste bevis på, hvad klienten protesterede imod. En importfejl og en forbindelsestimeout kommer fra forskellige faser og fortjener forskellige svar.
Hvis meddelelsen nævner fragment, er spørgsmålet tilbage, om serveren også afhænger af det. Svar på det, før du rører den profil, du fik.
Hvad fragment ændrer i fællesskabsklienten
I fællesskabsklienten aktiverer direktivet OpenVPNs egen datagramfragmentering, som opdeler nyttelasten, før den når det ydre IP-lag. Den findes for at overleve ruter, der dropper store UDP-datagrammer, og for at holde en tunnel brugbar, hvor man ikke kan stole på sti-MTU-opdagelse. Det er ikke synonymt med at sænke interface-MTU’en, og det er ikke IP-fragmentering udført af styresystemet. En klient uden mekanismen kan ikke få den ved at sænke et tal.
Fordi indstillingen også findes i serverkonfigurationen, ændrer det kun din side at fjerne den fra din kopi. Serveren forventer måske stadig en modpart, der forstår valgmuligheden, og en profil, der kan parses, er endnu ikke en session, der oprettes. De to fakta forklarer den forvirrende mellemtilstand, hvor en redigeret fil forbinder og derefter går i stå.
Bed om en profil, der er bygget til denne klient
Den rene vej er en anden profil dokumenteret til OpenVPN Connect, hvis tjenesten udgiver en. Mange udbydere gør det, og forskellen er normalt de direktiver, de udelader, snarere end det endepunkt, de peger på. Bed om den ved klientens navn i stedet for at beskrive fejlen, da en supportdesk kan matche en profil til en klient langt hurtigere, end den kan diagnosticere en strippet fil.
Hvis du driver serveren, er beslutningen bredere end din egen klient. Slår du fragmentering fra, påvirker det hver modpart, også dem, der havde brug for det for at forblive forbundet over en dårlig rute. At udgive en anden listener eller en anden konfiguration til den berørte klient holder eksisterende brugere kørende, mens den nyere klient får noget, den kan parse. Uanset hvad du vælger, så skriv ned, hvilken konfiguration der betjener hvilken klient, for den kobling forsvinder hurtigt ellers.
Bekræft forbindelsen, ikke kun importen
En vellykket import beviser kun, at parseren accepterede filen. Etabler tunnelen med fællesskabsklienten på en maskine, du kontrollerer, med samme profil, og læs loggen for transport- og cipher-forhandling. Kommandoerne nedenfor gør det uden desktop-appen i vejen.
openvpn --config client.ovpn --verb 3
ip -4 addr show tun0
curl -sS --interface tun0 -o /dev/null -w '%{http_code}\n' --max-time 8 https://example.com/
Loggen viser, hvor forsøget stoppede: en valgmulighedsfejl vises før nogen TLS-udveksling, mens en autentificerings- eller cipher-fejl vises efter den. Hvis tunnelen kommer op, og anmodningen stadig fejler, er problemet flyttet fra kompatibilitet til routing. Sammenlign det med Connects adfærd på samme netværk, før du konkluderer noget om serveren.
Hold den fungerende profil og klientversionen ved siden af noten. En fremtidig klientudgivelse kan tilføje understøttelse af et direktiv, og det ændrer svaret, uden at nogen rører serveren.