අද අපි NSX Edge අපට ලබා දෙන VPN වින්යාස කිරීමේ විකල්ප දෙස බලන්නෙමු.
සාමාන්යයෙන්, අපට VPN තාක්ෂණයන් ප්රධාන වර්ග දෙකකට බෙදිය හැකිය:
- අඩවියෙන් අඩවියට VPN. IPSec හි වඩාත් පොදු භාවිතය වන්නේ ආරක්ෂිත උමගක් නිර්මාණය කිරීමයි, උදාහරණයක් ලෙස, ප්රධාන කාර්යාල ජාලයක් සහ දුරස්ථ වෙබ් අඩවියක හෝ වලාකුළක ජාලයක් අතර.
- දුරස්ථ ප්රවේශ VPN. VPN සේවාලාභී මෘදුකාංගය භාවිතයෙන් තනි පරිශීලකයින් ආයතනික පුද්ගලික ජාල වෙත සම්බන්ධ කිරීමට භාවිතා කරයි.
NSX Edge අපට විකල්ප දෙකම භාවිතා කිරීමට ඉඩ සලසයි.
ස්ථාපිත ඩීමන් එකක් සහිත ලිනක්ස් සේවාදායකයක් වන NSX Edge දෙකක් සහිත පරීක්ෂණ බංකුවක් භාවිතයෙන් අපි වින්යාස කරන්නෙමු.
IPsec
- vCloud අධ්යක්ෂක අතුරුමුහුණතෙහි, පරිපාලන අංශය වෙත ගොස් vDC තෝරන්න. Edge Gateways ටැබය මත, අපට අවශ්ය Edge තෝරන්න, දකුණු-ක්ලික් කර Edge Gateway Services තෝරන්න.
- NSX Edge අතුරුමුහුණත තුළ, VPN-IPsec VPN පටිත්ත වෙත ගොස්, IPsec VPN අඩවි කොටස වෙත ගොස් නව වෙබ් අඩවියක් එක් කිරීමට + ක්ලික් කරන්න.
- අවශ්ය ක්ෂේත්ර පුරවන්න:
- සක්රීයයි - දුරස්ථ වෙබ් අඩවිය සක්රිය කරයි.
- පීඑෆ්එස් - සෑම නව ගුප්තකේතන යතුරක් පෙර කිසිදු යතුරක් සමඟ සම්බන්ධ නොවන බව සහතික කරයි.
- දේශීය හැඳුනුම්පත සහ දේශීය අන්ත ලක්ෂ්යයt යනු NSX Edge හි බාහිර ලිපිනයයි.
- දේශීය උපජාලයs - IPsec VPN භාවිතා කරන දේශීය ජාල.
- Peer ID සහ Peer Endpoint - දුරස්ථ අඩවියේ ලිපිනය.
- සම සම ජාල - දුරස්ථ පැත්තේ IPsec VPN භාවිතා කරන ජාල.
- සංකේතාංකන ඇල්ගොරිතම - උමං සංකේතාංකන ඇල්ගොරිතම.
- තහවුරු කරගැනීමේ - අපි සම වයසේ මිතුරන් සත්යාපනය කරන්නේ කෙසේද? ඔබට පෙර-බෙදාගත් යතුරක් හෝ සහතිකයක් භාවිතා කළ හැකිය.
- පෙර බෙදාගත් යතුර - සත්යාපනය සඳහා භාවිතා කරන යතුර සඳහන් කරන්න සහ දෙපැත්තටම ගැලපෙන්න.
- Diffie Hellman සමූහය - යතුරු හුවමාරු ඇල්ගොරිතම.
අවශ්ය ක්ෂේත්ර පිරවීමෙන් පසු, Keep ක්ලික් කරන්න.
- අමාරුයි.
- අඩවිය එකතු කිරීමෙන් පසු, Activation Status ටැබයට ගොස් IPsec සේවාව සක්රිය කරන්න.
- සැකසුම් යෙදීමෙන් පසු, සංඛ්යාලේඛන -> IPsec VPN ටැබයට ගොස් උමගෙහි තත්ත්වය පරීක්ෂා කරන්න. උමඟ ඉහළ ගොස් ඇති බව අපට පෙනේ.
- Edge gateway console වෙතින් උමං තත්ත්වය පරීක්ෂා කරන්න:
- ipsec සේවාව පෙන්වන්න - සේවාවේ තත්ත්වය පරීක්ෂා කරන්න.
- සේවා ipsec අඩවිය පෙන්වන්න - අඩවියේ තත්ත්වය සහ සාකච්ඡා කළ පරාමිතීන් පිළිබඳ තොරතුරු.
- ipsec sa සේවාව පෙන්වන්න - ආරක්ෂක සංගමයේ (SA) තත්ත්වය පරීක්ෂා කරන්න.
- දුරස්ථ අඩවියක් සමඟ සම්බන්ධතාව පරීක්ෂා කිරීම:
root@racoon:~# ifconfig eth0:1 | grep inet inet 10.255.255.1 netmask 255.255.255.0 broadcast 0.0.0.0 root@racoon:~# ping -c1 -I 10.255.255.1 192.168.0.10 PING 192.168.0.10 (192.168.0.10) from 10.255.255.1 : 56(84) bytes of data. 64 bytes from 192.168.0.10: icmp_seq=1 ttl=63 time=59.9 ms --- 192.168.0.10 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 59.941/59.941/59.941/0.000 ms
දුරස්ථ ලිනක්ස් සේවාදායකයකින් රෝග විනිශ්චය සඳහා වින්යාස ගොනු සහ අමතර විධාන:
root@racoon:~# cat /etc/racoon/racoon.conf log debug; path pre_shared_key "/etc/racoon/psk.txt"; path certificate "/etc/racoon/certs"; listen { isakmp 80.211.43.73 [500]; strict_address; } remote 185.148.83.16 { exchange_mode main,aggressive; proposal { encryption_algorithm aes256; hash_algorithm sha1; authentication_method pre_shared_key; dh_group modp1536; } generate_policy on; } sainfo address 10.255.255.0/24 any address 192.168.0.0/24 any { encryption_algorithm aes256; authentication_algorithm hmac_sha1; compression_algorithm deflate; } === root@racoon:~# cat /etc/racoon/psk.txt 185.148.83.16 testkey === root@racoon:~# cat /etc/ipsec-tools.conf #!/usr/sbin/setkey -f flush; spdflush; spdadd 192.168.0.0/24 10.255.255.0/24 any -P in ipsec esp/tunnel/185.148.83.16-80.211.43.73/require; spdadd 10.255.255.0/24 192.168.0.0/24 any -P out ipsec esp/tunnel/80.211.43.73-185.148.83.16/require; === root@racoon:~# racoonctl show-sa isakmp Destination Cookies Created 185.148.83.16.500 2088977aceb1b512:a4c470cb8f9d57e9 2019-05-22 13:46:13 === root@racoon:~# racoonctl show-sa esp 80.211.43.73 185.148.83.16 esp mode=tunnel spi=1646662778(0x6226147a) reqid=0(0x00000000) E: aes-cbc 00064df4 454d14bc 9444b428 00e2296e c7bb1e03 06937597 1e522ce0 641e704d A: hmac-sha1 aa9e7cd7 51653621 67b3b2e9 64818de5 df848792 seq=0x00000000 replay=4 flags=0x00000000 state=mature created: May 22 13:46:13 2019 current: May 22 14:07:43 2019 diff: 1290(s) hard: 3600(s) soft: 2880(s) last: May 22 13:46:13 2019 hard: 0(s) soft: 0(s) current: 72240(bytes) hard: 0(bytes) soft: 0(bytes) allocated: 860 hard: 0 soft: 0 sadb_seq=1 pid=7739 refcnt=0 185.148.83.16 80.211.43.73 esp mode=tunnel spi=88535449(0x0546f199) reqid=0(0x00000000) E: aes-cbc c812505a 9c30515e 9edc8c4a b3393125 ade4c320 9bde04f0 94e7ba9d 28e61044 A: hmac-sha1 cd9d6f6e 06dbcd6d da4d14f8 6d1a6239 38589878 seq=0x00000000 replay=4 flags=0x00000000 state=mature created: May 22 13:46:13 2019 current: May 22 14:07:43 2019 diff: 1290(s) hard: 3600(s) soft: 2880(s) last: May 22 13:46:13 2019 hard: 0(s) soft: 0(s) current: 72240(bytes) hard: 0(bytes) soft: 0(bytes) allocated: 860 hard: 0 soft: 0 sadb_seq=0 pid=7739 refcnt=0
- සියල්ල සූදානම්, අඩවියෙන් අඩවියට IPsec VPN ක්රියාත්මක වෙමින් පවතී.
මෙම උදාහරණයේ දී, අපි PSK භාවිතා කළේ සම වයසේ සත්යාපනය සඳහා, නමුත් සහතික සත්යාපනය ද හැකි ය. මෙය සිදු කිරීම සඳහා, ගෝලීය වින්යාස පටිත්ත වෙත ගොස්, සහතික සත්යාපනය සක්රීය කර සහතිකයම තෝරන්න.
මීට අමතරව, අඩවි සැකසුම් තුළ, ඔබට සත්යාපන ක්රමය වෙනස් කිරීමට අවශ්ය වනු ඇත.
IPsec උමං ගණන යොදවා ඇති Edge Gateway හි ප්රමාණය මත රඳා පවතින බව මම සටහන් කරමි (මේ ගැන කියවන්නපළමු ලිපිය ).
SSL VPN
SSL VPN-Plus යනු දුරස්ථ ප්රවේශ VPN විකල්පයන්ගෙන් එකකි. එය තනි තනි දුරස්ථ පරිශීලකයින්ට NSX Edge Gateway පිටුපස පුද්ගලික ජාල වෙත ආරක්ෂිතව සම්බන්ධ වීමට ඉඩ සලසයි. සේවාදායකයා (වින්ඩෝස්, ලිනක්ස්, මැක්) සහ එන්එස්එක්ස් එජ් අතර එස්එස්එල් වීපීඑන්-ප්ලස් සම්බන්ධයෙන් සංකේතාත්මක උමගක් ස්ථාපිත කර ඇත.
- අපි පිහිටුවීම ආරම්භ කරමු. Edge Gateway සේවා පාලන පැනලය තුළ, SSL VPN-Plus ටැබයට ගොස්, පසුව සේවාදායක සැකසීම් වෙත යන්න. පැමිණෙන සම්බන්ධතා සඳහා සේවාදායකය සවන් දෙන ලිපිනය සහ වරාය අපි තෝරා ගනිමු, ලොග් වීම සක්රිය කර අවශ්ය සංකේතාංකන ඇල්ගොරිතම තෝරන්න.
මෙහිදී ඔබට සේවාදායකය භාවිතා කරන සහතිකයද වෙනස් කළ හැක. - සියල්ල සූදානම් වූ පසු, සේවාදායකය සක්රිය කර සැකසුම් සුරැකීමට අමතක නොකරන්න.
- මීලඟට, අපි සම්බන්ධතාව මත ගනුදෙනුකරුවන්ට නිකුත් කරන ලිපින සංචිතයක් සකස් කළ යුතුය. මෙම ජාලය ඔබගේ NSX පරිසරයේ පවතින ඕනෑම උපජාලයකින් වෙන් වන අතර එයට යොමු වන මාර්ග හැර භෞතික ජාල වල වෙනත් උපාංග මත වින්යාස කිරීම අවශ්ය නොවේ.
IP Pools ටැබයට ගොස් + ක්ලික් කරන්න.
- ලිපින, සබ්නෙට් මාස්ක් සහ ගේට්වේ තෝරන්න. මෙහිදී ඔබට DNS සහ WINS සේවාදායකයන් සඳහා සැකසුම් වෙනස් කළ හැකිය.
- ප්රතිඵලයක් වශයෙන් සංචිතය.
- දැන් අපි VPN වෙත සම්බන්ධ වන පරිශීලකයින්ට ප්රවේශය ඇති ජාල එකතු කරමු. Private Networks ටැබ් එකට ගිහින් + ක්ලික් කරන්න.
- අපි පුරවන්නේ:
- ජාලය - දුරස්ථ පරිශීලකයින්ට ප්රවේශය ඇති දේශීය ජාලයකි.
- ගමනාගමනය යවන්න, එයට විකල්ප දෙකක් ඇත:
- උමග හරහා - උමග හරහා ජාලයට ගමනාගමනය යවන්න,
— bypass tunnel—උමග මඟ හරිමින් කෙලින්ම ජාලයට ගමනාගමනය යවන්න. - TCP Optimization සබල කරන්න - ඔබ over tunnel විකල්පය තෝරා ගත්තේ දැයි පරීක්ෂා කරන්න. ප්රශස්තිකරණය සක්රීය කර ඇති විට, ඔබට ගමනාගමනය ප්රශස්ත කිරීමට අවශ්ය වරාය අංක සඳහන් කළ හැක. එම විශේෂිත ජාලයේ ඉතිරි වරායන් සඳහා ගමනාගමනය ප්රශස්ත නොවේ. වරාය අංක සඳහන් කර නොමැති නම්, සියලුම වරායන් සඳහා ගමනාගමනය ප්රශස්ත වේ. මෙම විශේෂාංගය ගැන වැඩිදුර කියවන්න
මෙහි .
- ඊළඟට, Authentication ටැබ් එකට ගොස් + ක්ලික් කරන්න. සත්යාපනය සඳහා, අපි NSX Edge මතම දේශීය සේවාදායකයක් භාවිතා කරන්නෙමු.
- මෙහිදී අපට නව මුරපද උත්පාදනය සඳහා ප්රතිපත්ති තෝරාගත හැකි අතර පරිශීලක ගිණුම් අවහිර කිරීම සඳහා විකල්ප වින්යාසගත කළ හැක (උදාහරණයක් ලෙස, මුරපදය වැරදි ලෙස ඇතුළත් කර ඇත්නම් නැවත උත්සාහ කිරීම් ගණන).
- අපි දේශීය සත්යාපනය භාවිතා කරන බැවින්, අපට පරිශීලකයන් නිර්මාණය කිරීමට අවශ්ය වේ.
- නමක් සහ මුරපදයක් වැනි මූලික දේවල් වලට අමතරව, මෙහිදී ඔබට, උදාහරණයක් ලෙස, පරිශීලකයාට මුරපදය වෙනස් කිරීම තහනම් කිරීම හෝ, අනෙක් අතට, ඊළඟ වතාවේ ඔහු ලොග් වූ විට මුරපදය වෙනස් කිරීමට ඔහුට බල කළ හැකිය.
- අවශ්ය සියලුම පරිශීලකයින් එකතු කළ පසු, ස්ථාපන පැකේජ පටිත්ත වෙත ගොස්, + ක්ලික් කර ස්ථාපකයම සාදන්න, එය ස්ථාපනය සඳහා දුරස්ථ සේවකයෙකු විසින් බාගත කරනු ලැබේ.
- + ඔබන්න. සේවාලාභියා සම්බන්ධ වන සේවාදායකයේ ලිපිනය සහ වරාය තෝරන්න, සහ ඔබට ස්ථාපන පැකේජය උත්පාදනය කිරීමට අවශ්ය වේදිකා තෝරන්න.
මෙම කවුළුව තුළ, ඔබට වින්ඩෝස් සඳහා සේවාදායක සැකසුම් නියම කළ හැකිය. තෝරා:- ප්රවේශය මත සේවාදායකයා ආරම්භ කරන්න - VPN සේවාලාභියා දුරස්ථ යන්ත්රයේ ආරම්භයට එක් කරනු ලැබේ;
- ඩෙස්ක්ටොප් නිරූපකය සාදන්න - ඩෙස්ක්ටොප් එකේ VPN සේවාදායක නිරූපකයක් සාදනු ඇත;
- සේවාදායක ආරක්ෂක සහතිකය වලංගු කිරීම - සම්බන්ධතාවය මත සේවාදායක සහතිකය වලංගු වේ.
සේවාදායක පිහිටුවීම සම්පූර්ණයි.
- දැන් අපි අවසාන පියවරේදී සාදාගත් ස්ථාපන පැකේජය දුරස්ථ පරිගණකයකට බාගත කරමු. සේවාදායකය සැකසීමේදී, අපි එහි බාහිර ලිපිනය (185.148.83.16) සහ වරාය (445) සඳහන් කළෙමු. මේ ලිපිනයට තමයි අපිට web browser එකකට යන්න ඕන. මගේ නඩුවේ එය එසේ ය
185.148.83.16 : 445.අවසර කවුළුව තුළ, ඔබ අප කලින් නිර්මාණය කළ පරිශීලක අක්තපත්ර ඇතුළත් කළ යුතුය.
- අවසරය ලැබීමෙන් පසු, බාගත කිරීම සඳහා නිර්මාණය කර ඇති ස්ථාපන පැකේජ ලැයිස්තුවක් අපට පෙනේ. අපි නිර්මාණය කර ඇත්තේ එකක් පමණි - අපි එය බාගත කරන්නෙමු.
- අපි සබැඳිය ක්ලික් කරන්න, සේවාදායකයාගේ බාගත කිරීම ආරම්භ වේ.
- බාගත කළ සංරක්ෂිතය ඉවත් කර ස්ථාපකය ධාවනය කරන්න.
- ස්ථාපනය කිරීමෙන් පසු, සේවාලාභියා දියත් කරන්න, අවසර කවුළුව තුළ, පිවිසුම ක්ලික් කරන්න.
- සහතික තහවුරු කිරීමේ කවුළුව තුළ, ඔව් තෝරන්න.
- අපි කලින් නිර්මාණය කළ පරිශීලකයා සඳහා අක්තපත්ර ඇතුළත් කර සම්බන්ධතාවය සාර්ථකව අවසන් කර ඇති බව දකිමු.
- අපි දේශීය පරිගණකයේ VPN සේවාදායකයාගේ සංඛ්යාලේඛන පරීක්ෂා කරන්නෙමු.
- වින්ඩෝස් විධාන රේඛාවේ (ipconfig / all), අතිරේක අථත්ය ඇඩැප්ටරයක් දර්ශනය වී ඇති අතර දුරස්ථ ජාලයට සම්බන්ධතාවයක් ඇති බව අපට පෙනේ, සියල්ල ක්රියා කරයි:
- අවසාන වශයෙන්, Edge Gateway කොන්සෝලයෙන් පරීක්ෂා කරන්න.
L2 VPN
ඔබට භූගෝලීය වශයෙන් කිහිපයක් ඒකාබද්ධ කිරීමට අවශ්ය වූ විට L2VPN අවශ්ය වේ
එක් විකාශන වසමකට බෙදා හරින ලද ජාල.
උදාහරණයක් ලෙස, අතථ්ය යන්ත්රයක් සංක්රමණය කිරීමේදී මෙය ප්රයෝජනවත් විය හැකිය: VM වෙනත් භූගෝලීය ප්රදේශයකට ගමන් කරන විට, යන්ත්රය එහි IP ලිපින සැකසුම් රඳවා තබා ගන්නා අතර එය සමඟ එකම L2 වසමේ පිහිටා ඇති අනෙකුත් යන්ත්ර සමඟ සම්බන්ධතාව නැති නොවේ.
අපගේ පරීක්ෂණ පරිසරය තුළ, අපි වෙබ් අඩවි දෙකක් එකිනෙකට සම්බන්ධ කරන්නෙමු, අපි ඒවා පිළිවෙලින් A සහ B ලෙස හඳුන්වමු.අපට NSX දෙකක් සහ විවිධ දාරවලට අනුයුක්ත කර ඇති සමාන ලෙස සාදන ලද මාර්ගගත ජාල දෙකක් ඇත. A යන්ත්රයට 10.10.10.250/24 ලිපිනය ඇත, B යන්ත්රයට 10.10.10.2/24 ලිපිනය ඇත.
- vCloud Director එකේ Administration tab එකට ගිහින් අපිට ඕන VDC එකට ගිහින් Org VDC Networks කියන ටැබ් එකට ගිහින් අලුත් නෙට්වර්ක් දෙකක් ඇඩ් කරන්න.
- මාර්ගගත ජාල වර්ගය තෝරන්න සහ මෙම ජාලය අපගේ NSX වෙත සම්බන්ධ කරන්න. අපි Create කියන කොටුව උප අතුරු මුහුණත ලෙස තබමු.
- ප්රතිඵලයක් වශයෙන්, අපි ජාල දෙකක් ලබා ගත යුතුය. අපගේ උදාහරණයේදී, ඒවා එකම ද්වාර සැකසුම් සහ එකම මාස්ක් සහිත network-a සහ network-b ලෙස හැඳින්වේ.
- දැන් අපි පළමු NSX හි සැකසුම් වෙත යමු. මෙය A Network A අමුණා ඇති NSX වේ. එය සේවාදායකයක් ලෙස ක්රියා කරයි.
අපි NSx Edge අතුරුමුහුණත වෙත ආපසු යමු / VPN ටැබයට යන්න -> L2VPN. අපි L2VPN සක්රිය කර, සේවාදායක මෙහෙයුම් ආකාරය තෝරන්න, සර්වර් ග්ලෝබල් සැකසුම් තුළ අපි උමග සඳහා වරායට සවන් දෙන බාහිර NSX IP ලිපිනය සඳහන් කරමු. පෙරනිමියෙන්, සොකට් 443 වරාය මත විවෘත වනු ඇත, නමුත් මෙය වෙනස් කළ හැක. අනාගත උමග සඳහා සංකේතාංකන සැකසුම් තෝරා ගැනීමට අමතක නොකරන්න.
- Server Sites tab එකට ගිහින් peer එකක් add කරන්න.
- අපි සම වයසේ මිතුරා සක්රිය කර, නම, විස්තරය, අවශ්ය නම්, පරිශීලක නාමය සහ මුරපදය සකසන්න. සේවාදායක අඩවිය පිහිටුවීමේදී අපට මෙම දත්ත පසුව අවශ්ය වේ.
Egress Optimization Gateway Address එකේ අපි gateway address එක සකසනවා. IP ලිපින ගැටුමක් ඇති නොවන පරිදි මෙය අවශ්ය වේ, මන්ද අපගේ ජාල වල ද්වාරය එකම ලිපිනයක් ඇති බැවිනි. ඉන්පසු SELECT SUB-INTERFACES බොත්තම ක්ලික් කරන්න.
- මෙහිදී අපි අපේක්ෂිත උප අතුරු මුහුණත තෝරා ගනිමු. අපි සැකසුම් සුරකිමු.
- අලුතින් සාදන ලද සේවාදායක වෙබ් අඩවිය සැකසීම් තුළ දර්ශනය වී ඇති බව අපට පෙනේ.
- දැන් අපි සේවාදායකයා පැත්තෙන් NSX වින්යාස කිරීමට යමු.
අපි NSX පැත්ත B වෙත යන්න, VPN -> L2VPN වෙත යන්න, L2VPN සක්රිය කරන්න, L2VPN මාදිලිය සේවාදායක ප්රකාරයට සකසන්න. Client Global පටිත්තෙහි, NSX A හි ලිපිනය සහ වරාය සකසන්න, එය අපි කලින් Listening IP සහ Port ලෙස සේවාදායක පැත්තේ සඳහන් කළෙමු. උමඟ එසවීමේදී ඒවා අනුකූල වන පරිදි එකම සංකේතාංකන සැකසුම් සකස් කිරීම ද අවශ්ය වේ.
අපි පහත අනුචලනය කරන්න, L2VPN සඳහා උමග ගොඩනගනු ලබන උප අතුරු මුහුණත තෝරන්න.
Egress Optimization Gateway Address එකේ අපි gateway address එක සකසනවා. පරිශීලක හැඳුනුම්පත සහ මුරපදය සකසන්න. අපි උප අතුරු මුහුණත තෝරාගෙන සැකසුම් සුරැකීමට අමතක නොකරන්න. - ඇත්ත වශයෙන්ම, එපමණයි. සූක්ෂ්මතා කිහිපයක් හැර, සේවාදායකයාගේ සහ සේවාදායක පැත්තේ සැකසුම් බොහෝ දුරට සමාන වේ.
- ඕනෑම NSX එකක සංඛ්යාලේඛන -> L2VPN වෙත යාමෙන් අපගේ උමඟ ක්රියා කර ඇති බව දැන් අපට පෙනේ.
- අපි දැන් ඕනෑම Edge Gateway එකක කොන්සෝලය වෙත ගියහොත්, අපට arp වගුවේ ඇති VM දෙකේම ලිපිනයන් එකින් එක පෙනෙනු ඇත.
NSX Edge හි VPN ගැන එච්චරයි. යමක් අපැහැදිලි නම් අහන්න. එය NSX Edge සමඟ වැඩ කිරීම පිළිබඳ ලිපි මාලාවක අවසාන කොටස ද වේ. ඔවුන් ප්රයෝජනවත් වේ යැයි අපි බලාපොරොත්තු වෙමු 🙂
මූලාශ්රය: www.habr.com