Η περιήγηση μέσα στη διανομή λειτουργεί, και το πρώτο εσωτερικό όνομα κεντρικού υπολογιστή αποτυγχάνει τη στιγμή που σηκώνεται η σήραγγα. Η αντανακλαστική κίνηση είναι να προστεθεί ένας δημόσιος resolver, που επαναφέρει το διαδίκτυο και κάνει το εταιρικό όνομα απρόσιτο για την υπόλοιπη ημέρα. Στο WSL 2, το /etc/resolv.conf είναι παραγόμενο αποτέλεσμα και όχι διαμόρφωση, και αυτός είναι ο μηχανισμός που αξίζει να κατανοήσουμε. Η διόρθωση δεν είναι καλύτερος resolver, είναι η κυριότητα του αρχείου.

Το αρχείο παράγεται, δεν διαμορφώνεται

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

Ένας δεύτερος τρόπος αποτυχίας είναι πιο ήσυχος: το WSL μπορεί να αντιγράψει διακομιστές μόνο από μερικές προσαρμογείς. Αν η φυσική προσαρμογέας έχει ήδη resolver IPv6, οι διακομιστές IPv4 που παρέχει η προσαρμογέας του VPN μπορεί να απορριφθούν αντί να προστεθούν, και το αρχείο φαίνεται πλήρες ενώ παραλείπει ακριβώς εκείνον που απαντά στα εσωτερικά ονόματα.

Συγκρίνετε την όψη των Windows με την όψη του Linux

Διαβάστε και τις δύο πλευρές πριν επεξεργαστείτε. Μέσα στη διανομή, δείτε τι περιέχει το αρχείο και αν είναι κανονικό αρχείο ή σύνδεσμος. Στα Windows, καταγράψτε τον resolver για κάθε προσαρμογέα, συμπεριλαμβανομένης εκείνης που δημιούργησε το VPN:

ls -l /etc/resolv.conf
cat /etc/resolv.conf
Get-DnsClientServerAddress -AddressFamily IPv4
Get-NetAdapter | Where-Object Status -eq 'Up'

Όταν η προσαρμογέας του VPN δείχνει τους εταιρικούς διακομιστές και το Linux δείχνει κάτι άλλο, η διαφωνία είναι στην παραγωγή και όχι στην προσβασιμότητα. Συγκρίνετε τη λίστα προσαρμογέων καθώς και τις διευθύνσεις, γιατί μια απούσα προσαρμογέας εξηγεί έναν απόντα διακομιστή. Αυτή η διάκριση αποφασίζει αν διορθώνετε το WSL ή ένα τείχος προστασίας, και τα δύο δεν έχουν τίποτα κοινό.

Απενεργοποιήστε την παραγωγή και γράψτε το δικό σας αρχείο

Μια τεκμηριωμένη ρύθμιση εμποδίζει το WSL να ξαναγράψει το αρχείο, και βρίσκεται στο /etc/wsl.conf. Προσθέστε ένα τμήμα δικτύου σε εκείνο το αρχείο:

[network]
generateResolvConf = false

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

nameserver 172.28.4.10
nameserver 172.28.4.11
search site.corp.example
options timeout:1 attempts:2 rotate

Χωρίς τομέα αναζήτησης, ένα μη πλήρες όνομα κεντρικού υπολογιστή συμπληρώνεται με τη δημόσια ρίζα και επιστρέφει ως ανύπαρκτος τομέας. Το timeout εμποδίζει έναν νεκρό πρώτο διακομιστή να μπλοκάρει κάθε αναζήτηση, το attempts περιορίζει πόσες προσπάθειες ξοδεύει μια αναζήτηση, και το rotate μοιράζει τις επαναλήψεις αντί να ξεκινά πάντα από την κορυφή. Το αντιστάθμισμα είναι ότι το αρχείο δεν ακολουθεί πλέον ένα VPN του οποίου η διεύθυνση resolver αλλάζει μεταξύ συνεδριών.

Χειριστείτε έναν resolver που μετακινείται και μετά επαληθεύστε

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

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

Δοκιμάστε με όνομα και όχι με πακέτο: το getent hosts sensor-access0.corp.example περνά από τη στοίβα του resolver, ενώ ένα ping μπορεί να πετύχει σε μια αποθηκευμένη ή κυριολεκτική διεύθυνση. Έπειτα επαναλάβετε μετά από αποσύνδεση και επανασύνδεση, γιατί μια ρύθμιση που λειτουργεί μία φορά και αναπαράγεται κατά τη συνέχιση δεν διορθώθηκε ποτέ. Αποθηκεύστε το προηγούμενο περιεχόμενο και σημειώστε ποιο στοιχείο κατέχει τη διαδρομή σε εκείνο το μηχάνημα, ώστε η επόμενη αλλαγή να ξεκινά με στοιχεία.

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