Ένα προφίλ που λειτουργεί σε φορητό υπολογιστή αποτυγχάνει στο τηλέφωνο. Η προφανής κίνηση είναι να αλλάξετε μία λέξη στη διαμόρφωση του πελάτη. Αυτή η λέξη δεν θα βοηθήσει, γιατί τα δύο άκρα δεν μιλούν για τον ίδιο τύπο κίνησης.

Το TAP μεταφέρει πλαίσια Ethernet. Το TUN μεταφέρει πακέτα IP. Σε μια εφαρμογή VPN για Android δίνεται μια διεπαφή IP, και αυτό κάνει τη μία από τις δύο διατάξεις εφικτή και την άλλη όχι, ανεξάρτητα από το τι λέει η διαμόρφωση.

Η σύγκριση είναι σύντομη, αλλά καθορίζει αν μπορείτε να το διορθώσετε στο τηλέφωνο ή αν πρέπει να αλλάξετε την υπηρεσία.

Δύο τύποι σήραγγας με διαφορετικό ωφέλιμο φορτίο

Μια διεπαφή TAP συμπεριφέρεται σαν προσαρμογέας Ethernet. Μεταφέρει πλαίσια, δηλαδή ARP, εκπομπή και ό,τι άλλο μεταφέρει ένα LAN κάτω από το IP. Αυτό κάνει εφικτή τη γεφύρωση: η σήραγγα επεκτείνει ένα πεδίο εκπομπής και οι πελάτες συμπεριφέρονται σαν να είναι συνδεδεμένοι σε μεταγωγέα.

Μια διεπαφή TUN μεταφέρει πακέτα IP που απευθύνονται σε αυτήν. Δεν υπάρχει επίπεδο ζεύξης για διαπραγμάτευση, ούτε ARP, ούτε εκπομπή. Η δρομολόγηση αποφασίζει τι μπαίνει στη σήραγγα, και η διαμόρφωση στην πλευρά του διακομιστή χρησιμοποιεί υποδίκτυο αντί για γέφυρα.

Και τα δύο άκρα πρέπει να συμφωνήσουν ποιο από τα δύο κάνουν. Η αλλαγή του dev tap σε dev tun στη μία πλευρά δεν μετατρέπει την υπηρεσία· παράγει έναν πελάτη που περιμένει δρομολογημένη σήραγγα και έναν διακομιστή που στέλνει ακόμη πλαίσια, και η χειραψία μπορεί να πετύχει ενώ δεν περνά τίποτα χρήσιμο.

Τι δίνει πραγματικά το Android στην εφαρμογή

Το API VpnService της πλατφόρμας δίνει σε μια εφαρμογή μια εικονική διεπαφή για πακέτα IP, διαμορφωμένη με διευθύνσεις, διαδρομές και MTU. Δεν υπάρχει προσαρμογέας Ethernet σε αυτό το API, ούτε τρόπος για την εφαρμογή να επινοήσει έναν.

Γι’ αυτό το OpenVPN Connect τεκμηριώνει υποστήριξη για δρομολογημένες συνδέσεις TUN στο Android και όχι για γεφύρωση TAP. Οι συχνές ερωτήσεις για το Android είναι η δήλωση της πλευράς του πελάτη για αυτό το όριο, και συμφωνεί με το API της πλατφόρμας.

Εργαλεία δικτύου με δικαιώματα root, προσαρμοσμένο firmware ή ένα προϊόν που υλοποιεί ρητό επίπεδο μετάφρασης είναι άλλες διατάξεις. Η συνήθης περίπτωση είναι αυτή γύρω από την οποία πρέπει να σχεδιάσετε: μια εφαρμογή που μπορεί να εισαγάγει το αρχείο σας και να τρέξει ως κανονικός χρήστης, με διεπαφή IP και τίποτα από κάτω.

Πώς φαίνεται όταν το επιχειρήσετε ούτως ή άλλως

Η σύνδεση συνήθως εγκαθίσταται. Αυτό κάνει την αποτυχία μπερδευτική: ο πελάτης αναφέρει σύνδεση, το αρχείο καταγραφής του διακομιστή δείχνει έναν ομότιμο, και καμία εφαρμογή δεν λειτουργεί.

Η κίνηση που απευθύνεται στη διεύθυνση του τηλεφώνου δεν φτάνει, γιατί ο διακομιστής γεφυρώνει πλαίσια σε μια διεύθυνση MAC που το τηλέφωνο δεν είχε ποτέ. Η ανακάλυψη που εξαρτάται από εκπομπή μένει κενή. Αν το LAN βασίζεται σε DHCP μέσω της γέφυρας, το τηλέφωνο δεν θα πάρει μίσθωση με αυτόν τον τρόπο, και μια χειροκίνητη διεύθυνση στο γεφυρωμένο υποδίκτυο εξακολουθεί να μη δημιουργεί τη διεπαφή που λείπει.

Μερικοί πελάτες αποτυγχάνουν νωρίτερα, κατά την εισαγωγή του προφίλ, όταν βλέπουν τύπο συσκευής που δεν μπορούν να υλοποιήσουν. Και οι δύο συμπεριφορές σημαίνουν το ίδιο, και καμία δεν διορθώνεται προσθέτοντας διαδρομές, αλλάζοντας DNS ή διευρύνοντας το εύρος διευθύνσεων της σήραγγας.

Τι πρέπει να αλλάξει η πλευρά του διακομιστή

Η διόρθωση ανήκει σε όποιον διαχειρίζεται την υπηρεσία VPN, και συνήθως είναι προσθετική παρά μετάβαση. Εκτελέστε ένα δεύτερο στιγμιότυπο OpenVPN με δρομολογημένη συσκευή, δικό του υποδίκτυο πελατών και διαμόρφωση στην πλευρά του διακομιστή που εκχωρεί διευθύνσεις και προωθεί τις διαδρομές που χρειάζονται τα τηλέφωνα. Το υπάρχον γεφυρωμένο στιγμιότυπο συνεχίζει να εξυπηρετεί τις συσκευές που χρειάζονται πραγματικά Ethernet.

Δύο λεπτομέρειες το κάνουν να λειτουργεί στην πράξη. Το LAN χρειάζεται διαδρομή επιστροφής για το νέο υποδίκτυο πελατών, με κατεύθυνση τον κεντρικό υπολογιστή VPN, αλλιώς οι απαντήσεις δεν θα επιστρέψουν ποτέ. Και το τείχος προστασίας στον κεντρικό υπολογιστή της σήραγγας πρέπει να προωθεί μεταξύ της διεπαφής σήραγγας και του LAN, και αυτό είναι το βήμα που παραλείπεται συχνότερα όταν μια δοκιμή από τον ίδιο τον κεντρικό υπολογιστή πετυχαίνει.

Αν ο διαχειριστής δεν μπορεί να προσθέσει υπηρεσία, η εναλλακτική είναι μια συσκευή που μπορεί να ενταχθεί στη γέφυρα, δηλαδή ένας φορητός υπολογιστής ή ένας δρομολογητής που ενεργεί για λογαριασμό του τηλεφώνου. Πρόκειται για παράκαμψη με δικό της κόστος διαχείρισης, όχι για διαμόρφωση Android.

Αποφασίστε από την εφαρμογή, όχι από τη σήραγγα

Ρωτήστε τι πρέπει πραγματικά να φτάσει το τηλέφωνο, και μετά χαρτογραφήστε το. Ένας κοινόχρηστος φάκελος ή ένας ιστότοπος intranet που προσεγγίζεται με όνομα ή διεύθυνση είναι απαίτηση IP, και μια δρομολογημένη σήραγγα την ικανοποιεί μόλις το DNS λύσει το όνομα και υπάρχει η διαδρομή. Ένα εργαλείο ανακάλυψης που περιηγείται στο τοπικό πεδίο εκπομπής δεν είναι απαίτηση IP, και καμία ποσότητα δρομολόγησης δεν θα το γεμίσει.

RequirementTunnel that satisfies it
File server or intranet by hostnameRouted TUN, with working DNS
Broadcast or ARP-based discoveryEthernet bridging, so not an ordinary Android client
Multicast deliveryBridging or an explicit multicast relay
One application to one addressRouted TUN, narrowest possible route

Αυτός ο πίνακας είναι και το αίτημα που θα στείλετε. Ονομάστε την εφαρμογή, τη διεύθυνση ή το όνομα που χρησιμοποιεί, και αν εξαρτάται από την ανακάλυψη. Ένας διαχειριστής μπορεί να ενεργήσει με βάση αυτή την περιγραφή, κάτι που κανείς δεν μπορεί να κάνει με ένα τηλέφωνο που δεν συνδέεται.

Τέλος, κρατήστε την υπηρεσία TAP για τις συσκευές που τη χρειάζονται, αντί να κάνετε κάθε πελάτη να μιμείται προσαρμογέα LAN. Δύο υπηρεσίες με σαφείς σκοπούς υποστηρίζονται ευκολότερα από μία που λειτουργεί μισά για όλους.

Σχετικά άρθρα