Docker බහාලුම් ට්රැෆික් සත්කාරක VPN මඟ හරියි: පරීක්ෂා කරන ආකාරය
සත්කාරක VPN ආවරණය කරන්නේ සත්කාරකයේ ජාල නාම අවකාශය පමණි. පාලමේ බහාලුම් ට්රැෆික් උමගට ඇතුළු වේද නැතහොත් සෘජුවම පිටවේද යන්න මෙම පරීක්ෂණවලින් දැනගන්න.
සත්කාරකයේ ඔබේ බ්රව්සරය VPN පිටවීමේ ලිපිනය පෙන්වයි, බහාලුම ඔබේ නිවෙස් සම්බන්ධතාවය වාර්තා කරයි, සහ යමෙක් එය කාන්දුවක් ලෙස හඳුන්වයි. කිසිවක් කාන්දු වී නැත. සත්කාරක උමග යනු සත්කාරකයේ ජාල නාම අවකාශයට අයත් අතුරුමුහුණත්, මාර්ග සහ නීති එකතුවකි, සහ පාලමක ඇති බහාලුම තමන්ගේම පෙරනිමි මාර්ගය සහිත වෙනත් නාම අවකාශයකි. VPN සේවාලාභියා සති ගණනක් සම්බන්ධ වී තිබුණත් එකද බහාලුම් පැකට්ටුවක් එයට කිසිදා ඇතුළු නොවූ Compose තැටියක මම වාඩි වී සිටියෙමි.
ට්රේ නිරූපකයට පෙර නාම අවකාශය පරීක්ෂා කරන්න
නාම අවකාශ යනු මුළු තර්කයයි. Docker පාලම් ජාලයක බහාලුමක් ආරම්භ කරන විට, එය ජාල නාම අවකාශයක් සාදයි, veth යුගලයේ එක් කෙළවරක් එහි ඇතුළත සම්බන්ධ කරයි, සහ එම නාම අවකාශයට ලිපිනයක් සහ පෙරනිමි මාර්ගයක් දෙයි. උමගේ අතුරුමුහුණත, එය කුමන නමකින් හැඳින්වුවත්, සත්කාරකයේ නාම අවකාශයේ ජීවත් වේ. බහාලුම තුළ ඇති ට්රැෆික් එය දැකිය නොහැක, සහ පිටතින් කිසිදු සේවාලාභී සැකසුමක් එය වෙනස් නොකරයි.
හුදකලාවෙන් පිටතට ගෙන යන ආධාරක ගමන් දෙකක් ඇත. --network host බහාලුම සත්කාරකයේ නාම අවකාශය තුළ තබයි, එබැවින් එය සත්කාරකයේ මාර්ග සහ ඒ නිසාම උමග උරුම කර ගනී. --network container:vpn වෙනත් බහාලුමක නාම අවකාශය බෙදා ගනී, සහ බොහෝ පැත්තේ-බහාලුම් නිර්මාණ වැඩ බර VPN බහාලුමක් හරහා යවන්නේ එලෙසය. දෙකම පැහැදිලි තේරීම්; සාමාන්යයෙන් ඒවායින් එකක් පමණක් යෙදවන්නා අදහස් කළ දෙයයි.
සත්කාරක ආකාරය නොමිලේ උත්ශ්රේණිගත කිරීමක් නොවේ. බහාලුමට තමන්ගේම ලිපිනයක් තිබීම නවතී, තොටුපළ ප්රකාශනය බල නොපවත්වයි, සහ එහි NET_ADMIN ඇති ක්රියාවලියකට සත්කාරකයේ මාර්ගකරණය නැවත ලිවිය හැක. එය පිළිගැනීම නිවැරදි තීරණය විය හැක. එය දැනටමත් සක්රීය යැයි උපකල්පනය කිරීම යනු කිසිදා මාර්ගයේ නොතිබූ උමගක් නිදොස් කිරීමට මිනිසුන් සවසක් ගත කරන ආකාරයයි.
පැකට්ටුව පාලමෙන් පිටතට අනුගමනය කරන්න
පාලම් බහාලුම තම පැකට්ටුව තම පෙරනිමි ද්වාරයට යවයි, එය සත්කාරකයේ පාලම් අතුරුමුහුණතයි. පසුව සත්කාරකය පැකට්ටුව ඉදිරියට යවයි, සහ පෙරනිමි වින්යාසයේදී පැකට්ටුව පිටවීමට පෙර මූල ලිපිනය තම ලිපිනයට පරිවර්තනය කරයි. එම පරිවර්තන පියවරයි ප්රතිපත්තිය නිහඬව පරාජය කරන්නේ.
පැකට්ටුව උමගේ අන්ත ලක්ෂ්යයට ළඟා වන විට එය සත්කාරකයේ ලිපිනය දරයි. බහාලුමේ මුල් ලිපිනය මත පදනම් වූ ඕනෑම නීතියක්, ප්රතිපත්ති මාර්ගයක් හෝ බෙදූ උමග් තීරණයක් ගැළපීම නවතී, සහ වෙනස් පිටවීම් හරහා පිටවිය යුතු බහාලුම් දෙකක් මූලයෙන් පමණක් වෙන් කර හඳුනාගත නොහැක. ඔබට බහාලුමකට මාර්ගකරණය අවශ්ය නම්, තීරණය පරිවර්තනයට පෙර හෝ ඔබ පාලනය කරන නාම අවකාශයක් තුළ ගත යුතුය.
Docker මෙම නීති තමාම නඩත්තු කරයි, ඩීමන් වින්යාසගත කළ කුමන ගිනිපවුරු පසුතලය හරහා වුවද. යවන ලද ට්රැෆික් සඳහා ආධාරක කොක්කෙන් පිටතින් අතින් ලියූ නීති, DOCKER-USER, ඩීමන් නැවත ආරම්භ වන විට හෝ සත්කාරකය උත්ශ්රේණි වන විට නැවත අනුපිළිවෙලට හෝ ඉවත් කළ හැක. පැකට් පෙරහන පිළිබඳ Docker ලේඛනය දාම අනුපිළිවෙල පෙන්වයි; ප්රායෝගික කරුණ නම් සෑම නීතියකටම හිමිකරුවෙකු සහ ඔබ සැබවින්ම පරීක්ෂා කළ නැවත පූරණ මාර්ගයක් අවශ්ය වීමයි.
පද්ධති දෙක වෙන් වෙන්ව පරීක්ෂා කරන්න
එක් නාම අවකාශයක සාක්ෂි අනෙක ගැන කිසිවක් නොකියයි. VPN බහාලුම තුළ ධාවනය කළ ඉල්ලීමක් එම බහාලුමට උමග ක්රියා කරන බව ඔප්පු කරයි. එය සත්කාරකය ගැන සාක්ෂියක් නොවේ, සහ --network host බහාලුමකින් ධාවනය කළ එම විධානය පාලම ගැන සාක්ෂියක් නොවේ.
# host namespace
ip route get 1.1.1.1
ip -brief addr show
# a fresh container on the same bridge network
docker run --rm --network appnet alpine sh -c 'ip route; cat /etc/resolv.conf; ip -6 route'
පසුව පරීක්ෂණය සමාන රූපයක් වෙනුවට සැබෑ යෙදුම් බහාලුම තුළ නැවත කරන්න. යෙදුමට අමතර මාර්ගයක්, ප්රොක්සි පරිසර විචල්යයක් හෝ වෙනත් විසඳන්නෙකු තිබිය හැක, සහ ඒවායින් එකින් එක පිළිතුර වෙනස් කරයි. සෑම විටම නාම විභේදනය සහ දෙවන ලිපින පවුල පරීක්ෂා කරන්න: පරිශීලක-නිර්වචිත පාලම්වල බහාලුම් Docker හි ගොඩනඟන ලද විසඳන්නා හරහා 127.0.0.11 හි විසඳෙයි, සහ පාලමේ IPv6 පෙරනිමි මාර්ගයකට ඔබ IPv4 පමණක් උමග පරීක්ෂා කරමින් සිටියදී ට්රැෆික් පිටතට ගෙන යා හැක.
අක්තපත්ර ස්පර්ශ කිරීමට පෙර රටාව කියවන්න
සත්කාරකය ක්රියා කර බහාලුම නොකරන විට, හේතුව සෑම විටම පාහේ ව්යුහාත්මකය, සහ යතුරු කරකැවීම හෝ සේවාලාභියා නැවත ස්ථාපනය කිරීම සවසක් නාස්ති කරයි. පළමුව රෝග ලක්ෂණය පිළියෙළ කරන්න, සහ නිවැරදි කිරීම සාමාන්යයෙන් තමන්ටම නමක් දෙයි.
| What you see | Usual cause | First check |
|---|---|---|
| Host exits through the VPN, container shows the ISP address | The container never entered the tunnel | Default route inside the container |
| Container works until the daemon restarts, then stops | Rules outside the supported hook, or a changed backend | Daemon's reported firewall backend and DOCKER-USER |
| Container loses internal hosts after the tunnel comes up | VPN prefix overlaps the Docker bridge subnet | ip route on the host, then docker network inspect |
| Small replies arrive, large ones hang | Tunnel MTU or missing MSS clamping | Link MTU on both ends of the tunnel |
| Container falls back to the ISP address when the tunnel drops | Nothing enforces the kill switch for forwarded traffic | Stop the tunnel with a request in flight |
අතිච්ඡාදන පේළියට තමන්ගේම වාක්යයක් වටී. 172.17.0.0/16 සඳහා, හෝ ඔබේ පාලම් උපසර්ගය අහම්බෙන් අඩංගු 10.0.0.0/8 සඳහා මාර්ගය තල්ලු කරන VPN පැතිකඩක් උමග බහාලුම් උපජාලයට හිමිකම් කියන්නට සලස්වයි, සහ පරිවර්තිත ලිපිනවලට යන පිළිතුරු වැරදි දිශාවට යයි හෝ අතුරුදහන් වේ. Docker ජාලය නැවත අංකනය කිරීම සාමාන්යයෙන් ව්යතිරේක එකතු කිරීමට වඩා පිරිසිදුය.
ආවරණය පැහැදිලි කරන්න, පසුව එය හිතාමතා කඩන්න
සමාලෝචනයකට ඔරොත්තු දෙන නිර්මාණ දෙකක් ඇත. VPN බහාලුමේ නාම අවකාශය බෙදා ගන්න, එවිට ආවරණය වූ සෑම වැඩ බරක්ම එක් නැවත ආරම්භ කිරීමේ සීමාවක් සහිත එක් උමගක් භාවිත කරයි, එය එක් සේවාවකට වෙනත් පිටවීමක් හෝ තමන්ගේම DNS මාර්ගයක් අවශ්ය වන තෙක් සරලය. නැතහොත් බහාලුම් ජාලය සත්කාරකයේ VPN ද්වාරයකට මාර්ගගත කරන්න: යැවීම සක්රීය, පාලම් උපසර්ගය උමග දෙසට, ආපසු ට්රැෆික් පැහැදිලිව හසුරුවා ඇත. එය ජාලයකට පාලනයක් මිලදී ගනී, සහ ඩීමන් සහ සේවාලාභී උත්ශ්රේණි හරහා නඩත්තු කළ යුතු නීති කට්ටලයක් ඔබට වැය කරයි.
කෙසේ වුවද, වැදගත් පරීක්ෂණය වන්නේ අසාර්ථක අවස්ථාවයි. බහාලුම් ඉල්ලීමක් ගුවන්ගතව ඇති විට උමග නවත්වන්න, සහ පැකට්ටුව යන තැන බලන්න. එය සෘජු මාර්ගයට ආපසු වැටේ නම්, ආවරණය කිසිදා බලාත්මක කර නැත, මන්ද සේවාලාභියාගේ kill switch සේවාලාභියාගේම ට්රැෆික් පාලනය කරයි, පාලමකින් යවන ලද පැකට්ටු නොවේ. පසුව ඩීමන් සහ සත්කාරකය නැවත ආරම්භ කර ප්රතිඵලය දෙවන වරට තහවුරු කරන්න; අතින් ලියූ නීති අතුරුදහන් වන මොහොත එයයි.
එය අවසන් යැයි කීමට පෙර කරුණු හතරක් තහවුරු කරන්න: උමගේ අතුරුමුහුණත ට්රැෆික් සමඟ එකම නාම අවකාශයේ ඇත, බහාලුම් පරීක්ෂණය සැබෑ බහාලුම තුළ සිදු විය, නාම විභේදනය සහ ලිපින පවුල් දෙකම පරීක්ෂා කර ඇත, සහ උමග් අසාර්ථක පරීක්ෂණය තවමත් වැසී අසාර්ථක වේ. පසුව ගිනිපවුරු පසුතලය, සේවාලාභී අනුවාදය සහ සෑම නීතියක හිමිකරු ලියන්න. එම වාර්තාවයි ඊළඟ උත්ශ්රේණියට පැරණි උපකල්පනවල ලේඛනගත නොකළ මිශ්රණයක් ඉතිරි කිරීම වළක්වන්නේ.