Դիստրիբյուտիվի ներսում զննարկումն աշխատում է, և առաջին ներքին հոսթի անունը ձախողվում է այն պահին, երբ թունելը բարձրանում է։ Ռեֆլեքսը հանրային լուծիչ ավելացնելն է, ինչը վերականգնում է ինտերնետը և կորպորատիվ անունը դարձնում անհասանելի օրվա մնացած մասի համար։ WSL 2-ում /etc/resolv.conf գեներացված ելք է, ոչ կազմաձևում, և հենց այդ մեխանիզմն արժե հասկանալ։ Ուղղումը ավելի լավ լուծիչը չէ, այլ ֆայլի սեփականությունը։

Ֆայլը գեներացվում է, ոչ կազմաձևվում

WSL 2-ը ֆայլը գրում է գործարկման պահին Windows-ի այն ադապտերներից, որոնք տեսնում է այդ պահին, և վերևում տպում է մեկնաբանություն, որը դա ասում է։ Երբ VPN-ի հաճախորդը հետագայում ավելացնում կամ վերագրում է ադապտեր, դիստրիբյուտիվը պարտադիր չէ, որ նորից ինչ-որ բան գեներացնի, և ֆայլը շարունակում է նկարագրել ցանց, որն այլևս գոյություն չունի։

Ձախողման երկրորդ եղանակն ավելի հանգիստ է. WSL-ը կարող է սերվերներ պատճենել միայն որոշ ադապտերներից։ Եթե ֆիզիկական ադապտերն արդեն ունի IPv6 լուծիչ, VPN-ի ադապտերի տրամադրած IPv4 սերվերները կարող են դուրս շպրտվել ավելացնելու փոխարեն, և ֆայլը լրիվ է թվում, մինչդեռ բաց է թողնում հենց այն մեկը, որը պատասխանում է ներքին անուններին։

Համեմատեք Windows-ի պատկերը Linux-ի պատկերի հետ

Կարդացեք երկու կողմերն էլ խմբագրելուց առաջ։ Դիստրիբյուտիվի ներսում նայեք, թե ինչ է պարունակում ֆայլը և արդյոք այն սովորական ֆայլ է կամ հղում։ Windows-ում թվարկեք լուծիչը յուրաքանչյուր ադապտերի համար, ներառյալ այն, որը ստեղծել է 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-ին, որի լուծիչի հասցեն փոխվում է սեսիաների միջև։

Զբաղվեք շարժվող լուծիչով, ապա ստուգեք

Որոշ հաճախորդներ տրամադրում են սեսիային հատուկ լուծիչ, ուստի ստատիկ ֆայլը կոտրվում է հաջորդ միացման ժամանակ։ Երկու մոտեցում պաշտպանելի է։ Գրեք ֆայլը փոքր սկրիպտից, երբ հասցեն փոխվում է, կամ թողեք գեներացումը միացված և համոզվեք, որ այն ադապտերը, որից WSL-ը պատճենում է, կրում է կորպորատիվ սերվերը։ Երկրորդը կեռիկ չի պահանջում և ձախողվում է, երբ գեներացումը բաց է թողնում VPN-ի ադապտերը. երկուսն էլ դեռ պահանջում են նախ լուծել IPv6 հակամարտությունը։

Windows-ը կիրառում է նաև իր անվանաքաղաքականությունները, օրինակ՝ վերջածանցների որոնման ցանկ կամ որոշակի տիրույթների լուծման քաղաքականություն, և ադապտերների հասցեները պատճենելը չի վերարտադրում այդ կանոնները։ Եթե անունը լուծվում է Windows-ում և ոչ դիստրիբյուտիվում նույն սերվերով, համեմատեք վերջածանցների մշակումը նախքան թունելին մեղադրելը։

Փորձարկեք անունով, ոչ փաթեթով. getent hosts sensor-access0.corp.example-ը անցնում է լուծիչի կույտով, մինչդեռ ping-ը կարող է հաջողվել քեշավորված կամ բառացի հասցեի դեմ։ Այնուհետև կրկնեք անջատումից և նորից միացումից հետո, որովհետև կարգավորումը, որն աշխատում է մեկ անգամ և վերսկսելիս նորից գեներացվում է, երբեք չի ուղղվել։ Պահպանեք նախորդ բովանդակությունը և նշեք, թե որ բաղադրիչն է տիրապետում ուղուն այդ մեքենայում, որպեսզի հաջորդ փոփոխությունը սկսվի ապացույցով։

Առնչվող հոդվածներ