VPN කන්ටේනරයක ජාලය බෙදාගැනීම: DNS ට සිදුවන්නේ කුමක්ද
බෙදාගත් නාම අවකාශයක් ඔබේ යෙදුමට උමංගේ අතුරුමුහුණත් ලබා දෙයි, ඒකාබද්ධ විසඳන්නෙකු නොවේ. යෙදුම තුළින් පරීක්ෂා කර runtime සහාය දෙන DNS සැකසුමක් භාවිත කරන්න.
VPN කන්ටේනරයක ජාල නාම අවකාශය බෙදාගැනීම ඔබේ යෙදුමට උමංගේ අතුරුමුහුණත් සහ මාර්ග ලබා දෙයි. එය එයට උමංගේ විසඳන්නා ලබා නොදෙයි, හෝ සත්කාරකයේ ඇති වෙනත් කිසිදු දෙයක ඒකාබද්ධ පිටපතක් ලබා නොදෙයි. මෙම පරතරය ඉතා නිශ්චිත අසාර්ථකත්වයක් ඇති කරයි: පොදු නාම විසඳේ, අභ්යන්තර නාම විසඳෙන්නේ නැත, සහ අසාර්ථක වන යෙදුම වැරදි DNS සේවාදායකයක් භාවිත කරන බව පෙනේ, එය ඇත්තෙන්ම එසේ කරන නිසා. අලුත්වැඩියාව සාමාන්යයෙන් රෝග විනිශ්චය යෝජනා කරන ප්රමාණයට වඩා කුඩා වේ.
පියවර 1: සත්කාරකයෙන් නොව යෙදුමෙන් පරීක්ෂා කරන්න
ගැටලුව ඇති කන්ටේනරය තුළ සෙවීම ධාවනය කරන්න, සත්කාරකයේ හෝ බ්රවුසරයේ නොවේ. docker exec app-container getent hosts db.internal වැදගත් වන එකම ප්රශ්නයට පිළිතුරු දෙයි: මෙම ක්රියාවලියේ විසඳන්නා ආපසු ලබා දෙන්නේ කුමක්ද.
සත්කාරකය නාමය විසඳා කන්ටේනරය නොවිසඳන්නේ නම්, ඔබ දෝෂය සොයාගෙන ඇත. මින් පසු සියල්ල එය නිවැරදි කිරීමට සහාය දෙන ක්රමයක් තෝරාගැනීමයි.
පියවර 2: runtime හි සහාය දෙන ආකෘතිය කියවන්න
Docker හි ජාල ලේඛනය තවත් කන්ටේනරයක ජාල ප්රකාරය බෙදාගන්නා කන්ටේනර සඳහා DNS ධජ මත සීමා ලේඛනගත කරයි. Compose තුළ network_mode: service:vpn යෙදුම VPN කන්ටේනරයේ නාම අවකාශයට බැඳ තබයි, සහ සෑම සේවාවකටම dns සැකසුම් සාමාන්ය සේවාවක මෙන් හැසිරෙන්නේ නැත. ඔබට ලැබෙන විසඳුම බෙදාගත් නාම අවකාශයට ඇති එකම විසඳුමයි.
පරිශීලක-නිර්වචිත පාලම් ජාල ද Docker හි ගොඩනඟා ඇති DNS පෙරනිමි පාලමට වඩා වෙනස් ලෙස භාවිත කරයි. එබැවින් dns ක්රියාකාරී පාලම් උදාහරණයකින් පිටපත් කළ වගන්තියක් බෙදාගත් තට්ටුවක කිසිවක් නොකළ හැක. වගන්තිය පිටපත් කිරීමට පෙර සැකසුම පරීක්ෂා කරන්න.
ලූප්බැක් ලිපිනය සැමවිටම අදාළ ජාල සන්දර්භයට යොමු වේ. බෙදාගත් නාම අවකාශයක් තුළ, 127.0.0.1 සත්කාරකයේ විසඳන්නා නොවේ.
පියවර 3: විමසුම එහි ලබන්නා දක්වා අනුගමනය කරන්න
යෙදුමේ විසඳන්නා සැකසුම කියවන්න, පසුව යෙදුම සමඟ එන ඕනෑම යෙදුම්-විශේෂිත සංකේතන DNS කියවන්න, මන්ද තමන්ගේම විසඳන්නෙකු ධාවනය කරන යෙදුම ඔබ සංස්කරණය කළ ගොනුව නොසලකයි. පසුව තෝරාගත් විසඳන්නා VPN හි මාර්ග සහ ෆයර්වෝල් ප්රතිපත්තිය යටතේ ළඟා විය හැකිදැයි පරීක්ෂා කරන්න. උමංගේ අනෙක් පස ඇති විසඳන්නා ලිපිනය නාම අවකාශයට එහි මාර්ගයක් නොමැති නම් නිෂ්ඵලය. ඕනෑම ගොනුවක් සංස්කරණය කිරීමට පෙර ලබන්නා තහවුරු කරන්න.
බ්රවුසරයේ IP-පරීක්ෂා පිටුවට නාම විමසුම් කොහේ ගියාදැයි කිව නොහැක. එය එක් HTTP සම්බන්ධතාවයක් කොහේ ගියාදැයි කියයි.
පියවර 4: අසාර්ථකත්ව පන්ති දෙක වෙන වෙනම නිවැරදි කරන්න
පොදු නාම ක්රියා කරන අතර සේවා නාම අසාර්ථක වන්නේ නම්, ගැටලුව කන්ටේනර ජාලය තුළ සේවා සොයාගැනීමයි, පොදු විසඳන්නන් ලැයිස්තුව නොවේ. සෑම පොදු DNS ලිපිනයක්ම වෙනස් කිරීම ජාලයේ සොයාගැනීම් යාන්ත්රණයෙන් කිසිදා නොඉල්ලූ වාර්තා නොසාදයි.
පන්ති දෙකම අසාර්ථක වන්නේ නම්, විසඳන්නා වෙත ළඟා වීමෙන් ආරම්භ කරන්න. එකක් පමණක් අසාර්ථක වන්නේ නම්, සොයාගැනීම් යාන්ත්රණයෙන් ආරම්භ කරන්න. දෙකට වෙනස් හිමිකරුවන් ඇත, එබැවින් එක් අලුත්වැඩියාවක් කිසිදා දෙකම ආවරණය නොකරයි.
පියවර 5: නැවත නිර්මාණය කිරීමෙන් පසු නැවත පරීක්ෂා කරන්න
runtime හි සහාය දෙන යාන්ත්රණය හරහා සැකසුම වෙනස් කරන්න, පසුව ධාවනය වන කන්ටේනරයක් තුළ ගොනු සංස්කරණය කිරීම වෙනුවට කන්ටේනර නැවත නිර්මාණය කරන්න. නව පෞද්ගලික නාමයක්, නව පොදු නාමයක් සහ සෙවීමෙන් පසු එන යෙදුම් ඉල්ලීම පරීක්ෂා කරන්න. /etc/resolv.conf කන්ටේනරය තුළ සංස්කරණය නැවත නිර්මාණයේදී අතුරුදහන් වන අතර අලුත්වැඩියාව නොකළ විට කළ බව ඔබට ඒත්තු ගන්වයි.
බෙදාගත් ජාල නිර්වචනය අසල විසඳන්නාගේ හිමිකරු සහ අපේක්ෂිත නාම අවකාශය සටහන් කරන්න. ඊළඟ පුද්ගලයාට දෙකම අවශ්ය වේ.